检索流量包

目录

  • 科来网络分析系统
  • Brim
  • BurpSuite
  • 开发脚本
  • Snort

如何分析流量包中有没有某些内容呢?尤其是当一个数据包比较大,内容比较杂的时候。这里介绍几种方法

科来网络分析系统

对HTTP流量分析效果较好
搜索功能强大

方式1:导出数据本地分析
检索流量包_第1张图片
然后就可以对CSV文件做进一步内容搜索了
检索流量包_第2张图片
方式2:直接使用科来网络分析系统
在科来官方教程中,科来网络分析系统还是支持模糊搜索的,现在已经不可以了,由于搜索功能变的更强大,因此搜索的语法也就更细化。
检索流量包_第3张图片
针对最常用的URI内容检索,介绍两种检索方法:
方法1:以明文字符匹配的方式,检索uri地址中的某些字符
检索流量包_第4张图片
使用单引号包住搜索的内容,就可以看到uri中包含指定内容的所有流量:log.url.find('secret')
检索流量包_第5张图片
方式2:使用正则检索字符串
使用斜线包住搜索的内容,后面可以添加修饰符,就可以看到uri中包含指定内容的所有流量:
log.url.find(/\d\x2fsecret/i)
检索流量包_第6张图片
某些情景中,你可能需要限制请求方法、状态码:
log.url.find(/\d\x2fsecret/i) and log.method = 'GET' and log.statuscode = '404'
检索流量包_第7张图片

Brim

能快速打开数据量巨大的流量包(相对于wireshark)
简单易用的搜索功能

工具的使用参见:流量分析工具Brim
检索流量包_第8张图片

BurpSuite

针对HTTPS流量,可以看到流量明文

流量走BurpSuite,从BurpSuite中检索流量

  1. BurpSuite设置监听地址和端口

检索流量包_第9张图片

  1. 确认代理可以正常使用
dirsearch -u http://192.168.229.136/ --full-url -R 2 -x 404,403 -e php,txt --proxy=http://192.168.229.1:8080

  1. 搜索流量内容

检索流量包_第10张图片

开发脚本

更高的自定义度,能获知匹配上的数据包内容

上面的三种方式,只能以简单的方式,应对常规的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()

检索流量包_第11张图片

Snort

更强的检测能力,更强的检测范围,但是不能看到匹配上的数据包内容

以Snort为例,借助它,你可以进一步的去检索数据包内容

你可能感兴趣的:(入侵检测,流量分析)