问题
我使用Wireshark捕捉HTTP视频流,我已经使用下面的过滤器过滤出相关的GET请求。
http.request.uri contains "identifier" && http.request.method == "GET" && ip.addr == xxx.xxx.xxx.xxx
问题
是否可以提取所有获得GET网址分离.txt文件?
或有可能使得我有一堆单个视频文件的最终以提取原始响应数据包(不带报头)相匹配的上方单独的文件的过滤器,其?
我希望我自己很清楚;-)
谢谢
虽然这可能是可行的使用Wireshark,这是数量级更容易弟兄 。
提取的URI
只需使用您的跟踪文件运行它:
bro -r <trace>
这个调用生成在当前目录下一堆的日志文件。 一个你感兴趣的是http.log
。 您可以过滤输出只获得GET请求:
bro-cut id.orig_h id.resp_h method host uri < http.log | awk '$3 == "GET"'
示例输出:
192.168.1.104 212.96.161.238 GET update.avg.com /softw/90/update/avg9infowin.ctf
192.168.1.104 77.67.44.206 GET backup.avg.cz /softw/90/update/u7avi1777u1705ff.bin
192.168.1.104 198.189.255.75 GET aa.avg.com /softw/90/update/u7iavi2511u2510ff.bin
192.168.1.104 77.67.44.206 GET backup.avg.cz /softw/90/update/x8xplsb2_118c8.bin
正如你所看到的,最后两列组成完整的URL。 要删除的空间之间,你可以使用awk来串连最后两个字段。
解压文件
注:即将到来的弟兄2.1版本将有文件提取重大改进。 在那之前,你可以通过指定的MIME类型的文件存储中提取从HTTP流中的所有文件:
bro -r <trace> 'HTTP::extract_file_type = /video\/avi/'
BRO嗅探MIME类型一个HTTP主体的,如果它的正则表达式匹配/video\/avi/
时,它创建与所述前缀的文件http-item
。 您可以通过重新定义更改前缀名HTTP::extraction_prefix
变量。
解决方案问题1: -
使用tshark的效用。 安装简单,只需“ 命令和apt-get安装tshark的 ”
我用同样的命令是: -
tshark -R 'tcp.port==80 && (http.request.method == "GET" || http.request.method=="HEAD" || http.request.method=="POST" )' -r eth2uplink_00001 -Tfields -e ip.dst -e http.request.method -e http.request.full_uri > requests_eth2_00001
指所有Wireshark的显示滤镜功能: - https://www.wireshark.org/docs/dfref/
这是更好的方式方法比使用兄弟,因为,兄弟是非常复杂的安装,因为它有特定的依赖性,他们很难得到满足。
我目前没有问题2解决办法,但我相信它可以构造类似的东西线。 下列选项可能是你想什么有用的。
-O只显示这些协议的数据包细节,以逗号分隔
-x增加十六进制和ASCII转储(包字节),你可以参考tshark的--help获得更多信息的输出 。
希望这可以帮助。 谢谢。
文章来源: Extract GET URIs or their responses from Wireshark capture to separate file(s)