已校对

This commit is contained in:
carolinewuyan 2014-10-20 16:34:17 +08:00
parent 2edd38f75d
commit c9f5ff952c

View File

@ -1,14 +1,14 @@
使用Linux命令行嗅探HTTP流量
================================================================================
假设由于某种原因你需要嗅探HTTP站点的流量如HTTP请求与响应。举个例子你可能在测试一个web服务器的实验性功能或者 你在为某个web应用或RESTful服务排错又或者你正在为PAC排错或寻找某个站点下载的恶意软件。不论什么原因在这些情况下进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。
假设由于某种原因你需要嗅探HTTP站点的流量如HTTP请求与响应。举个例子你可能在测试一个web服务器的实验性功能或者你在为某个web应用或RESTful服务排错又或者你正在为PAC(proxy auto config)排错或寻找某个站点下载的恶意软件。不论什么原因在这些情况下进行HTTP流量嗅探对于系统管理、开发者、甚至最终用户来说都是很有帮助的。
数据包嗅工具tcpdump被广泛用于实时数据包的导出但是你需要设置过滤规则来捕获HTTP流量甚至它的原始输出通常不能方便的停 在HTTP协议层。实时web服务器日志解析器如[ngxtop][3]提供可读的实时web流量跟踪痕迹但这仅适用于可完全访问live web服务器日志的情况。
数据包嗅工具tcpdump被广泛用于实时数据包的导出但是你需要设置过滤规则来捕获HTTP流量甚至它的原始输出通常不能方便的停在HTTP协议层。实时web服务器日志解析器如[ngxtop][3]提供可读的实时web流量跟踪痕迹但这仅适用于可完全访问live web服务器日志的情况。
要是有一个仅用于抓取HTTP流量的类tcpdump的数据包嗅探工具就非常好了。事实上[httpry][4]就是:**HTTP包嗅探工具**。httpry捕获HTTP数据包并且将HTTP协议层的数据内容以可读形式列举出来。通过这篇指文章让我们了解如何使用httpry工具嗅探HTTP流 量。
要是有一个仅用于抓取HTTP流量的类tcpdump的数据包嗅探工具就非常好了。事实上[httpry][4]就是:**HTTP包嗅探工具**。httpry捕获HTTP数据包并且将HTTP协议层的数据内容以可读形式列举出来。通过这篇指文章让我们了解如何使用httpry工具嗅探HTTP流量。
###在Linux上安装httpry###
基于Debian系统Ubuntu 或 LinuxMint,基础仓库中没有httpry安装包(译者注本人ubuntu14.04,仓库中已有包,可直接安装)。所以我们需要通过源码安装:
基于Debian系统Ubuntu 或 LinuxMint,基础仓库中没有httpry安装包(译者注本人ubuntu14.04,仓库中已有包,可直接安装)。所以我们需要通过源码安装:
$ sudo apt-get install gcc make git libpcap0.8-dev
$ git clone https://github.com/jbittel/httpry.git
@ -16,11 +16,11 @@
$ make
$ sudo make install
在FedoraCentOS 或 RHEL系统可以使用如下yum命令安装httpry。在CentOS/RHEL系统上运行yum之前使能[EPEL repo][5]。
在FedoraCentOS 或 RHEL系统可以使用如下yum命令安装httpry。在CentOS/RHEL系统上运行yum之前使[EPEL repo][5]。
$ sudo yum install httpry
如果逆向通过源码来构httpry的话你可以通过这几个步骤实现
如果你仍想通过基于RPM系统的源码来安装httpry的话你可以通过这几个步骤实现
$ sudo yum install gcc make git libpcap-devel
$ git clone https://github.com/jbittel/httpry.git
@ -34,11 +34,11 @@
$ sudo httpry -i <network-interface>
httpry就会监听指定的网络接口并且实时的显示捕获到的HTTP 请求/响
httpry就会监听指定的网络接口并且实时的显示捕获到的HTTP请求/相应
![](https://farm4.staticflickr.com/3883/14985851635_7b94787c6d_z.jpg)
在大多数情况下,由于发送与接到的数据包过多导致刷屏很快,难以分析。这时候你肯定想将捕获到的数据包保存下来以离线分析。可以使用'b'或'-o'选项保存数据包。'-b'选项将数据包以二进制文件的形式保存下来这样可以使用httpry软件打开文件以浏览。另 一方面,'-o'选项将数据以可读的字符文件形式保存下来。
在大多数情况下,由于发送与接到的数据包过多导致刷屏很快,难以分析。这时候你肯定想将捕获到的数据包保存下来以便离线分析。可以使用'b'或'-o'选项保存数据包。'-b'选项将数据包以二进制文件的形式保存下来这样可以使用httpry软件打开文件以浏览。另一方面'-o'选项将数据以可读的字符文件形式保存下来。
以二进制形式保存文件:
@ -54,7 +54,7 @@ httpry就会监听指定的网络接口并且实时的显示捕获到的HTTP
$ sudo httpry -i eth0 -o output.txt
###httpry 的高级应用
###httpry 的高级应用###
如果你想监视指定的HTTP方法GETPOSTPUTHEADCONNECT等使用'-m'选项:
@ -66,10 +66,10 @@ httpry就会监听指定的网络接口并且实时的显示捕获到的HTTP
- **hostnames**: 显示唯一主机名列表.
- **find_proxies**: 探测web代理.
- **search_terms**: 查找及计算输入检索服务的检索词。
- **search_terms**: 查找及计算在搜索服务里面的搜索词。
- **content_analysis**: 查找含有指定关键的URL。
- **xml_output**: 将输出转换为XML形式。
- **log_summary**: 生成日志摘要
- **log_summary**: 生成日志汇总
- **db_dump**: 将日志文件数据保存数据库。
在使用这些脚本之前,首先使用'-o'选项运行httpry。当获取到输出文件后立即使用如下命令执行脚本
@ -77,13 +77,13 @@ httpry就会监听指定的网络接口并且实时的显示捕获到的HTTP
$ cd httpry/scripts
$ perl parse_log.pl -d ./plugins <httpry-output-file>
你可能在使用插件的时候遇到警告。比如如果你没有安装带有DBI接口的MySQL数据库那么使用db_dump插件时可能会失败。如果一个 插件初始化失败的话,那么这个插件不能使用。所以你可以忽略那些警告。
你可能在使用插件的时候遇到警告。比如如果你没有安装带有DBI接口的MySQL数据库那么使用db_dump插件时可能会失败。如果一个插件初始化失败的话那么这个插件不能使用。所以你可以忽略那些警告。
当parse_log.pl完成后你将在httpry/scripts 目录下看到数个分析结果。例如log_summary.txt 与如下内容类似。
![](https://farm4.staticflickr.com/3845/14799162189_b85abdf21d_z.jpg)
当你要分析HTTP数据包的时候httpry非常有用。它可能并不被大多Linux使用着所熟知但会用总是有好处的。你对这个工具有什么看法呢?
的来说当你要分析HTTP数据包的时候httpry非常有用。它可能并不被大多Linux使用者所熟知但会用总是有好处的。你觉得这个工具怎么样呢?
--------------------------------------------------------------------------------