Linux中國

Linux 命令行下嗅探 HTTP 流量的工具:httpry

要是有一個僅用於抓取HTTP流量的類似tcpdump的數據包嗅探工具就非常好了。事實上,httpry就是:HTTP嗅探工具httpry捕獲HTTP數據包,並且將HTTP協議層的數據內容以可讀形式列舉出來。通過這篇指文章,讓我們了解如何使用httpry工具嗅探HTTP流量。

在Linux上安裝httpry

基於Debian系統(Ubuntu 或 LinuxMint),基礎倉庫中沒有httpry安裝包(譯者註:本人ubuntu14.04,倉庫中已有包,可直接安裝)。所以我們需要通過源碼安裝:

$ sudo apt-get install gcc make git libpcap0.8-dev
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install

在Fedora,CentOS 或 RHEL系統,可以使用如下yum命令安裝httpry。在CentOS/RHEL系統上,運行yum之前使其能夠訪問EPEL repo

$ sudo yum install httpry 

如果你仍想通過基於RPM系統的源碼來安裝httpry的話,你可以通過這幾個步驟實現:

$ sudo yum install gcc make git libpcap-devel
$ git clone https://github.com/jbittel/httpry.git
$ cd httpry
$ make
$ sudo make install 

httpry的基本用法

以下是httpry的基本用法

$ sudo httpry -i <network-interface> 

httpry就會監聽指定的網路介面,並且實時的顯示捕獲到的HTTP請求/相應。

在大多數情況下,由於發送與接到的數據包過多導致刷屏很快,難以分析。這時候你肯定想將捕獲到的數據包保存下來以便離線分析。可以使用'b'或'-o'選項保存數據包。'-b'選項將數據包以二進位文件的形式保存下來,這樣可以使用httpry軟體打開文件以瀏覽。另一方面,'-o'選項將數據以可讀的字元文件形式保存下來。

以二進位形式保存文件:

$ sudo httpry -i eth0 -b output.dump

瀏覽所保存的HTTP數據包文件:

$ httpry -r output.dump

注意,不需要根用戶許可權就可以使用'-r'選項讀取數據文件。

將httpry數據以字元文件保存:

$ sudo httpry -i eth0 -o output.txt

httpry 的高級應用

如果你想監視指定的HTTP方法(如:GET,POST,PUT,HEAD,CONNECT等),使用'-m'選項:

$ sudo httpry -i eth0 -m get,head

如果你下載了httpry的源碼,你會發現源碼下有一些Perl腳本,這些腳本用於分析httpry輸出。腳本位於目錄httpry/scripts/plugins。如果你想寫一個定製的httpry輸出分析器,則這些腳可以作為很好的例子。其中一些有如下的功能:

  • hostnames: 顯示唯一主機名列表。
  • find_proxies: 探測web代理。
  • search_terms: 查找及統計在搜索服務裡面的搜索詞。
  • content_analysis: 查找含有指定關鍵的URL。
  • xml_output: 將輸出轉換為XML形式。
  • log_summary: 生成日誌匯總。
  • db_dump: 將日誌文件數據保存資料庫。

在使用這些腳本之前,首先使用'-o'選項運行httpry。當獲取到輸出文件後,立即使用如下命令執行腳本:

$ cd httpry/scripts
$ perl parse_log.pl -d ./plugins <httpry-output-file>

你可能在使用插件的時候遇到警告。比如,如果你沒有安裝帶有DBI介面的MySQL資料庫,那麼使用db_dump插件時可能會失敗。如果一個插件初始化失敗的話,那麼只是這個插件不能使用,所以你可以忽略那些警告。

當parse_log.pl完成後,你將在httpry/scripts 目錄下看到數個分析結果。例如,log_summary.txt 與如下內容類似。

總的來說,當你要分析HTTP數據包的時候,httpry非常有用。它可能並不被大多Linux使用者所熟知,但會用總是有好處的。你覺得這個工具怎麼樣呢?

via: http://xmodulo.com/2014/08/sniff-http-traffic-command-line-linux.html

作者:Dan Nanni 譯者:DoubleC 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國