如何使用python从pcap文件中过滤字符串?

时间:2017-02-26 04:10:00

标签: python filter wireshark pcap

我有一些大的pcap文件(每个大约100MB),我想过滤掉那些包含字典文件(txt)字符串的数据包。字典文件的格式如下:

line 1: word1
line 2: word2
line 3: word3
line 4: word4

那么,如果word1存在于pcap文件中的任何位置(应该在TCP有效负载中?),我想删除该字符串或者只是想从pcap文件中删除该数据包。 有没有办法有效地实现这个目标(足够快)?

1 个答案:

答案 0 :(得分:0)

我自己想出来了。对于其他用户,Tshark可用于搜索tcp流中的字符串。如果要搜索字符串并希望输出源和目标的IP地址,则以下内容非常有用:

tshark -r <capture-file> -T fields -e ip.src -e ip.dst -e data |\
 grep `echo -n "<ascii-string>" | xxd -p` |\
 cut -f 1,2

因此,为了实现我想要的问题,遵循bash脚本可能很有用:

value=`cat bad_words.txt`

for i in ${value[@]}; do tshark -r my_test.pcap -T fields -e ip.src -e ip.dst -e data |\
 grep `echo -n $i | xxd -p` |\
 cut -f 1| uniq > $i; echo $i; done