检索流量包

有目标就不怕路远。年轻人.无论你现在身在何方.重要的是你将要向何处去。只有明确的目标才能助你成功。没有目标的航船.任何方向的风对他来说都是逆风。因此,再遥远的旅程,只要有目标.就不怕路远。没有目标,哪来的劲头?一车尔尼雷夫斯基

导读:本篇文章讲解 检索流量包,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

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

科来网络分析系统

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

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

Brim

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

工具的使用参见:流量分析工具Brim
image.png

BurpSuite

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

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

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

image.png

  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

image.png

  1. 搜索流量内容

image.png

开发脚本

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

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

image.png

Snort

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/134188.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!