智能体分析wireshark流量包

admin 2025年5月5日19:40:03评论4 views字数 2404阅读8分0秒阅读模式
前面写了篇《利用Claude3.7分析wireshark流量包》,但一直还在研究这个课题,包括引申研究了《开发WireShark插件过程中的困惑》。前者是通过MCP改造,后者直接Lua挂钩到wireshark协议解析器上。
哎,这个困惑真是困惑了,到现在也没解决掉,截图看下,
智能体分析wireshark流量包
困惑处见上图,分组情况(右)时显示出来,但主界面(左)下没有显示出来,为什么呢?看到这个问题的朋友们,请指点一下。
言归正传,我们今天利用智能体来分析下流量包。
1、将流量包全量导出成txt文件;
2、提示词:请分析 c:/users/administrator/desktop/81test-all.txt文件,请根据内容回答以下问题:从哪个网站下载了什么文件?
3、📌 分析步骤                                       

1) 读取文件内容

  • 检查是否为 Wireshark/Tcpdump 格式的流量日志

  • 提取 HTTP/HTTPS 请求(GET/POST)

  • 识别文件下载行为(如 Content-Disposition: attachment 或常见文件扩展名)          

2) 检测下载行为       

  • 检查是否有 GET /file.exe、GET /download.zip 等请求             

  • 检查是否有大流量传输(可能对应文件下载)  

  • 检查 DNS 查询记录(解析下载域名)                                                                           

3) 输出结果       

  • 如果发现下载记录,返回 时间、来源网站、文件名

  • 如果没有,说明原因(如加密流量、抓包不完整等)

4、分析源码

import re

from pathlib import Path

def analyze_downloads(file_path):

    try:

        with open(file_path, 'r', encoding='utf-8', errors='ignore') as f:

            content = f.read(100000)  # 读取前100KB(避免大文件卡顿)

        # 检查是否包含HTTP流量

        if "HTTP/1." not in content and "Host: " not in content:

            print("⚠️ 未检测到HTTP流量,可能是加密流量(HTTPS)或其他协议")

            return {"status": "no_http", "message": "No HTTP traffic detected"}

            # 提取可能的下载请求(GET + 文件扩展名)

        file_extensions = ['.exe', '.zip', '.rar', '.msi', '.pdf', '.doc', '.xls']

        download_pattern = r'(GET|POST)s+(.*?(' + '|'.join(re.escape(ext) for ext in file_extensions) + r'))[?s

        downloads = re.findall(download_pattern, content, re.IGNORECASE)

        if not downloads:

            print("🔍 未找到文件下载请求,但检测到HTTP流量")

            print("可能原因:")

            print("- 流量被加密(HTTPS)")

            print("- 抓包不完整")

            print("- 下载使用了非标准端口或协议(如FTP)")

            return {"status": "no_downloads", "message": "No file downloads detected"}

            # 提取下载记录

        results = []

        for method, url, _ in downloads:

            domain = re.search(r'Host:s*([^rn]+)', content)

            domain = domain.group(1).strip() if domain else "Unknown"

            filename = url.split('/')[-1].split('?')[0]

            results.append({

                "method": method,

                "domain": domain,

                "filename": filename,

                "url": url

            })

            # 输出结果

        print("✅ 检测到文件下载记录:")

        for i, dl in enumerate(results, 1):

            print(f"{i}. 从【{dl['domain']}】下载了【{dl['filename']}】")

            print(f"   🔗 {dl['method']} {dl['url']}n")

        return {

            "status": "success",

            "downloads": results

        }

    except Exception as e:

        print(f"❌ 分析失败: {str(e)}")

        return {"status": "error", "message": str(e)}

        # 分析文件

file_path = Path("c:/users/administrator/desktop/81test-all.txt")

if not file_path.exists():

    print(f"❌ 文件不存在: {file_path}")

else:

    __result__ = analyze_downloads(file_path)

5、结果
智能体分析wireshark流量包
6、继续对域名分析,
智能体分析wireshark流量包
7、开源情报分析,
智能体分析wireshark流量包
8、处置建议
智能体分析wireshark流量包

原文始发于微信公众号(MicroPest):智能体分析wireshark流量包

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月5日19:40:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   智能体分析wireshark流量包https://cn-sec.com/archives/4030041.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息