Understand yourself in order to better understanding others
知己方能解人
本篇简单介绍一款流量抓取神器—justniffer,其能在线抓取流量也能离线分析数据包。justniffer与网络抓包神器wireshark相比,用法更为简单且对网络影响较小。面对海量的流量,我们需要经常从中分析出恶意请求,从而去做好防御,因此我在此记录justniffer的一些基础用法,以做备份查阅。
Install
|
|
Usage
基础命令
|
|
重点参数
- -i 指定监听的网络接口
- -l 指定日志输出格式
- -u 将不可打印的字符解析为.
日志格式
- %request.header.host #请求头中的HOST
- %request.method #请求类型
- %request.url #请求URL
- %request.grep(\r\n\r\n(.*)) #请求数据包
- %response.grep(\r\n\r\n(.*)) #response的数据包
后期处理
一般来说我们在抓取流量后,需要先保存在本地然后再进行规则的分析。然而如何保存,保存后该怎么提取关键内容呢?这里提供一个小小的方法。
抓取流量存入文件
可以使用如下命令抓取指定几个参数的流量内容,并存入到文件:
说明:该命令获取了流量的host、method、url、response_body、request_body内容(注意:这里只筛选了GET、POST的请求),然后将其存入了/log/20170927.log文件中。我们可以运行此命令一段时间,比如1个小时,当结束进程后我们便收集了一个小时的流量信息。
处理日志文件
打开/log/20170927.log文件,我们看到的每一行的内容格式如下:
说明:每一行文件内容都包含一份流量信息,流量信息分为五个内容,每个内容间用NMASK(特殊字符串,可自定义)隔开。然后我们便可以写python脚本,遍历日志文件,并用split(“NMASK”)获取每一个流量信息了。
更多的配置信息、命令参数,可参考:http://www.jianshu.com/p/02021de8f82e
Python使用justniffer
需要借助subprocess模块: