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
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive