如何分析流量包中有没有某些内容呢?尤其是当一个数据包比较大,内容比较杂的时候。这里介绍几种方法
科来网络分析系统
对HTTP流量分析效果较好
搜索功能强大
方式1:导出数据本地分析
然后就可以对CSV文件做进一步内容搜索了
方式2:直接使用科来网络分析系统
在科来官方教程中,科来网络分析系统还是支持模糊搜索的,现在已经不可以了,由于搜索功能变的更强大,因此搜索的语法也就更细化。
针对最常用的URI内容检索,介绍两种检索方法:
方法1:以明文字符匹配的方式,检索uri地址中的某些字符
使用单引号包住搜索的内容,就可以看到uri中包含指定内容的所有流量:log.url.find('secret')
方式2:使用正则检索字符串
使用斜线包住搜索的内容,后面可以添加修饰符,就可以看到uri中包含指定内容的所有流量:
log.url.find(/\d\x2fsecret/i)
某些情景中,你可能需要限制请求方法、状态码:
log.url.find(/\d\x2fsecret/i) and log.method = 'GET' and log.statuscode = '404'
Brim
能快速打开数据量巨大的流量包(相对于wireshark)
简单易用的搜索功能
工具的使用参见:流量分析工具Brim
BurpSuite
针对HTTPS流量,可以看到流量明文
流量走BurpSuite,从BurpSuite中检索流量
- BurpSuite设置监听地址和端口
- 确认代理可以正常使用
dirsearch -u http://192.168.229.136/ --full-url -R 2 -x 404,403 -e php,txt --proxy=http://192.168.229.1:8080
- 搜索流量内容
开发脚本
更高的自定义度,能获知匹配上的数据包内容
上面的三种方式,只能以简单的方式,应对常规的web流量分析,如果要进一步分析,可以使用如下脚本,脚本会读取到数据包所有的HTTP负载内容,然后与你输入的正则内容相匹配,并给出匹配结果。
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) # 清除报错
from scapy.all import *
import re
'''
分析pcap的mini版:
用来针对单个数据包进行分析,能够快速得知匹配上的数据包的内容
'''
filename = r'C:\Users\asuka\Desktop\test\123.pcap' # 测试数据包的绝对路径
keyword = 'secret' # 检查的关键字,写法为正则写法
# keyword = 'GET.*?secret\shttp' # 检查的关键字,写法为正则写法
# 下面的代码用来把数据包中的内容输出到一个文本中
# desktop_path = os.path.join(os.path.expanduser("~"), 'Desktop')
# path_result = os.path.join(desktop_path, 'result.txt')
# a = open(path_result, 'w', encoding='utf8')
pkts = rdpcap(filename)
for pkt in pkts.res:
try: # decode编码实体内容的时候容易出错,使用异常处理
pkt_load = pkt.getlayer('Raw').fields['load'].decode().strip() # 提取负载内容,即wireshatk追踪流看到的东西
# print(pkt_load)
# a.write(pkt_load) # 可以导出数据包内容便于后期分析
re_keyword = keyword # 使用正则过滤出数据
if re.search(re_keyword, pkt_load, re.I):
print('检测成功:')
print(re.search(re_keyword, pkt_load))
print(pkt_load + '\n')
except:
pass
# a.close()
Snort
更强的检测能力,更强的检测范围,但是不能看到匹配上的数据包内容
以Snort为例,借助它,你可以进一步的去检索数据包内容
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134188.html