当前位置: 首页 > 工具软件 > justniffer > 使用案例 >

python抓包库大流量数据对比_justniffer抓取流量大法

燕朝明
2023-12-01

Understand yourself in order to better understanding others

知己方能解人

本篇简单介绍一款流量抓取神器—justniffer,其能在线抓取流量也能离线分析数据包。justniffer与网络抓包神器wireshark相比,用法更为简单且对网络影响较小。面对海量的流量,我们需要经常从中分析出恶意请求,从而去做好防御,因此我在此记录justniffer的一些基础用法,以做备份查阅。

Install1

2

3sudo add-apt-repository ppa:oreste-notelli/ppa

sudo apt-get update

sudo apt-get install justniffer

Usage

基础命令1justniffer -i eth5 -u -l "%request.header.host %request.method %request.url %response.grep(\r\n\r\n(.*)) %request.grep(\r\n\r\n(.*))"

重点参数-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的数据包

后期处理

一般来说我们在抓取流量后,需要先保存在本地然后再进行规则的分析。然而如何保存,保存后该怎么提取关键内容呢?这里提供一个小小的方法。

抓取流量存入文件

可以使用如下命令抓取指定几个参数的流量内容,并存入到文件:

1justniffer -i eth5 -u -l "%request.header.host NMASKnmask %request.method NMASKnmask %request.url NMASKnmask %response.grep(\r\n\r\n(.*)) NMASKnmask %request.grep(\r\n\r\n(.*))" | awk -F nmask '$1 !~ /^-/ && $2 ~ /(GET|POST).*/ {print$2,$1,$3,$4,$5}' >> /log/20170927.log 2>&1

说明:该命令获取了流量的host、method、url、response_body、request_body内容(注意:这里只筛选了GET、POST的请求),然后将其存入了/log/20170927.log文件中。我们可以运行此命令一段时间,比如1个小时,当结束进程后我们便收集了一个小时的流量信息。

处理日志文件

打开/log/20170927.log文件,我们看到的每一行的内容格式如下:

1GET NMASK www.baidu.com NMASK /test.html NMASK response_body={"result":"123"} NMASK request_body={"get":"123"}

说明:每一行文件内容都包含一份流量信息,流量信息分为五个内容,每个内容间用NMASK(特殊字符串,可自定义)隔开。然后我们便可以写python脚本,遍历日志文件,并用split(“NMASK”)获取每一个流量信息了。

Python使用justniffer

需要借助subprocess模块:

1

2

3

4

5

6

7

8

9import subprocess

popen=subprocess.Popen("justniffer -i eth0 -u -l '%request.header.host nmask %request.method nmask %request.url nmask %response.grep(\r\n\r\n(.*))' | awk -F nmask '$1 !~ /^-/ {print}'",shell=True,stdout=subprocess.PIPE)

while 1:

p=popen.stdout.readline() #一行一行取

print p #可自定义函数去处理流量

if not p:

break

 类似资料: