news 2026/7/4 9:20:16

Wireshark实战:从流量包中揪出黑客攻击的五个关键线索

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Wireshark实战:从流量包中揪出黑客攻击的五个关键线索

1. 项目概述:当流量包成为“犯罪现场”

作为一名在网络安全和运维领域摸爬滚打了十多年的老兵,我处理过无数起安全事件。很多时候,当警报响起,服务器被入侵,或者业务出现异常,第一手也是最宝贵的证据,往往不是日志文件,而是一个个看似冰冷、充满十六进制字符的流量包文件,比如我们今天要对付的这个attack.pcapng。对于新手来说,面对一个几百兆甚至上几个G的pcapng文件,可能会感到无从下手,密密麻麻的数据包列表就像一片信息的海洋。但对于我们这些“网络侦探”来说,这里面藏着的每一条TCP握手、每一个HTTP请求、每一段异常载荷,都是黑客留下的“指纹”和“足迹”。这次,我就带你化身“数字福尔摩斯”,手把手教你如何用Wireshark这把“手术刀”,从attack.pcapng这个“网络犯罪现场”中,精准地揪出黑客活动的五个关键线索。整个过程我会配上完整的操作截图,确保你不仅能看懂,更能跟着做出来。

2. 环境准备与线索分析框架

2.1 工具与思维准备

工欲善其事,必先利其器。我们的核心工具当然是Wireshark,它是开源且功能最强大的网络协议分析器,没有之一。我强烈建议你从官网下载最新稳定版,以确保拥有最全的协议解析库和最新的功能。除了Wireshark本身,我们还需要一个辅助工具:NetworkMinerXplico。这类工具被称为网络取证框架(NFAT),它们能自动从流量包中提取文件、图片、证书等对象,对于快速浏览和提取证据非常有用,可以作为Wireshark深度分析前的“快速扫描仪”。

但比工具更重要的是分析思维。面对一个未知的攻击流量包,切忌一头扎进细节。我习惯采用“由外而内,由宏观到微观”的漏斗式分析流程:

  1. 整体概览:先看对话统计、端点统计,了解流量中的“主角”(哪些IP在大量通信)。
  2. 协议分布:看协议分层统计,判断攻击主要利用了哪种协议(如HTTP、DNS、SMB)。
  3. 时间线分析:利用IO图表,观察流量在时间轴上的爆发点,定位攻击发生的关键时刻。
  4. 深入追踪:基于以上线索,对可疑的TCP流或HTTP会话进行深度解码和检视。
  5. 证据提取:还原攻击者上传的工具、窃取的数据,或执行的命令。

这个流程能帮你避免在数十万个数据包中迷失方向。记住,黑客也是人,他们的攻击行为在流量上会呈现出明显的“模式”,我们的任务就是识别这些异常模式。

2.2 初始加载与快速过滤技巧

拿到attack.pcapng后,别急着逐条看包。首先,用Wireshark打开它,然后立刻做以下几件事:

第一步:查看“统计”菜单下的“对话”。这里列出了所有通信的端点(IP地址)和它们之间的流量大小。你的眼睛应该立刻去寻找那些“不对称”的对话。比如,一个内部IP(如192.168.1.100)向外部某个IP发送了海量数据,但接收的却很少,这可能是数据外泄。或者,一个外部IP向你的服务器IP的某个端口(如22、3306)发起了大量、快速的连接尝试,这显然是暴力破解或扫描。在本次的案例中,我们可能就会发现一个外部IP172.16.1.110与内部某个IP存在大量交互。

第二步:应用初步显示过滤器。Wireshark的显示过滤器是你的“望远镜”。一开始,可以过滤掉一些“噪音”。例如:

  • !arp && !dns:过滤掉ARP和DNS这类底层、高频的协议,让画面更干净。
  • tcp.flags.syn==1 and tcp.flags.ack==0:只看TCP SYN包,这是新连接开始的标志,有助于快速发现端口扫描行为(大量SYN包发往不同端口)。
  • http or tls:如果怀疑是Web攻击或加密通信,可以聚焦HTTP或TLS流量。

一个关键技巧:Wireshark的着色规则非常有用。默认情况下,绿色是TCP流量,浅蓝是UDP,黑色通常表示有问题的包(如乱序、重传)。你可以根据分析需要自定义颜色,比如将所有到端口22(SSH)的流量标为红色,这样一旦有红色出现,就会格外醒目。

3. 线索一:识别扫描与侦察行为

黑客在发动实质性攻击前,几乎一定会进行信息搜集,也就是扫描。这在流量中会留下非常明显的痕迹。

3.1 端口扫描的流量特征

在Wireshark中,端口扫描通常表现为:在极短的时间内,从一个源IP向目标IP的多个不同端口发送探测包。最常见的扫描类型是TCP SYN扫描。

操作方法

  1. 在显示过滤器栏输入:ip.src == [可疑IP] and tcp.flags.syn == 1 and tcp.flags.ack == 0。这将列出该IP发出的所有SYN包。
  2. 观察“目标端口”列。如果看到目标端口在21(FTP)、22(SSH)、23(Telnet)、80(HTTP)、443(HTTPS)、3306(MySQL)、3389(RDP)等常见服务端口上快速、连续地出现,并且每个SYN包都没有后续的完整TCP握手(即没有看到对应的SYN-ACK和ACK),那么这基本就是扫描行为。
  3. 可以进一步使用“统计” -> “端点”,选择“TCP”标签页,查看该可疑IP与目标IP在不同端口上的数据包计数。扫描行为会使得包计数在多个端口上都是1或2(一个SYN,可能还有一个RST)。

实战截图示例:在attack.pcapng中,我们过滤ip.src == 172.16.1.110并查看TCP SYN包,可能会发现它向目标IP的21, 22, 23, 80, 3306端口都发送了SYN包,且后续没有成功建立连接。这就是典型的端口扫描,说明黑客在寻找可用的入口点。

3.2 服务指纹识别与漏洞探测

比单纯扫描端口更进一步的是服务指纹识别和漏洞探测。黑客会分析目标端口的banner信息或发送特定的探测载荷。

如何发现

  • Banner Grabbing:当连接到22端口(SSH)时,服务端会返回类似“SSH-2.0-OpenSSH_7.4”的banner。在Wireshark中,你可以追踪这条TCP流(右键点击包 -> 追踪流 -> TCP流),直接看到明文交换的信息。如果黑客在扫描后对某个端口建立了连接并获取了banner,那么在这个TCP流里就能看到。
  • 漏洞探测Payload:对于Web服务,黑客可能会发送包含../../(路径遍历)、' OR '1'='1(SQL注入测试) 等字符串的HTTP请求。你可以在过滤出HTTP流量后 (http),在Packet Bytes面板(下方窗口)直接搜索这些特征字符串,或者使用显示过滤器http.request.uri contains “../”

注意:有些扫描工具会使用NULL扫描、FIN扫描等更隐蔽的方式,这些扫描不会完成TCP三次握手,在流量中表现为只有SYN或只有FIN标志位的数据包,需要你对TCP标志位有更深入的理解才能识别。

4. 线索二:追踪暴力破解攻击

端口扫描之后,如果发现了开放的服务,比如SSH(22)或MySQL(3306),黑客下一步很可能就是尝试暴力破解。

4.1 识别暴力破解的流量模式

暴力破解在流量上的核心特征是:针对同一目标IP和端口,源IP在短时间内发起大量、高频的、结构相似但内容(如密码)不同的认证请求

以MySQL暴力破解为例:

  1. 使用过滤器:tcp.port == 3306聚焦MySQL流量。
  2. 你会发现大量从172.16.1.110发往目标服务器3306端口的短小TCP流。右键任意一个包,选择“追踪流” -> “TCP流”。
  3. 在追踪流的窗口,你会看到经典的MySQL登录过程。黑客工具会不断尝试不同的用户名和密码组合。在流内容中,你会看到类似COM_QUIT后紧跟一个新的登录尝试,每次登录的password字段的哈希值都不同(如果协议加密,可能看不到明文密码,但尝试频率极高)。
  4. 关键数量统计:在Wireshark中,你可以使用tcp.analysis.flags && !tcp.analysis.window_update过滤器结合“统计”->“IO图表”,绘制出每秒连接数(或数据包数)的曲线。暴力破解期间,曲线会出现一个明显的尖峰。

4.2 提取攻击者使用的字典信息

有时,攻击者使用的用户名/密码字典会直接体现在流量中,尤其是使用简单协议或工具配置不当时。

操作方法

  1. 对于HTTP Basic认证的暴力破解,用户名和密码是以Base64编码形式放在Authorization头部的。你可以写一个简单的显示过滤器来提取:http.authorization。然后逐个查看数据包,在Packet Details面板中展开Hypertext Transfer Protocol->Authorization->Credentials,可以看到类似Basic dXNlcjE6cGFzc3dvcmQx的字符串,将其复制出来在线或用Wireshark工具解码即可得到明文user1:password1
  2. 对于其他协议,可能需要更复杂的分析。一个技巧是:将疑似包含暴力破解尝试的TCP流内容全部导出(在追踪流窗口点击“另存为”),保存为一个文本文件。然后用grep或文本编辑器的搜索功能,寻找userpassloginpassword等关键词,可能就能拼凑出攻击者使用的字典列表。

我的心得:面对暴力破解,在Wireshark里数包不是目的。真正的价值在于:确定攻击持续时间、估算尝试次数、提取攻击源IP和可能的字典,为后续的封禁、取证和风险评估提供量化依据。例如,如果你发现攻击者在5分钟内尝试了上万次密码,那么被破解的账户其密码很可能不在常用弱口令字典里,暂时是安全的;但如果只尝试了几百次就成功了,那说明密码强度极差,必须立即强制修改。

5. 线索三:解密与还原攻击载荷

扫描和破解可能只是前奏,真正的破坏来自于攻击载荷的投递和执行。这部分是分析中最精彩也最考验功力的环节。

5.1 HTTP/HTTPS流量的文件提取

Web是常见的攻击向量。攻击者可能通过文件上传漏洞投递Webshell,或者网站被植入恶意JS进行水坑攻击。

从HTTP流量中提取文件

  1. 使用过滤器http筛选出所有HTTP流量。
  2. 寻找POST请求,特别是上传文件的请求。在Packet Details面板中,查看Hypertext Transfer Protocol下的Full request URIContent-Type。如果Content-Type包含multipart/form-data,很可能就是文件上传。
  3. 要提取这个文件,最方便的方法是使用文件 -> 导出对象 -> HTTP。Wireshark会自动列出所有HTTP传输的文件。你可以在这里看到文件名、内容类型、大小等信息。找到可疑的文件(如shell.phppayload.exe),将其保存到本地。
  4. 重要步骤:保存后,切勿在联网的实体机上直接双击打开!应该将其上传到VirusTotal或类似的多引擎扫描平台进行检测,或者放在沙箱环境中进行分析。

从HTTPS流量中提取文件(如果可能): HTTPS是加密的,默认情况下Wireshark看不到内容。但如果你拥有服务器的私钥,就可以解密流量。在Wireshark中,进入编辑 -> 首选项 -> Protocols -> TLS,在(Pre)-Master-Secret log filename中指定一个文件,并在服务器上配置环境变量SSLKEYLOGFILE指向同一文件,这样就能解密并像分析HTTP一样分析HTTPS流量了。在实战取证中,这通常需要协调服务器管理员才能实现。

5.2 还原攻击者执行的命令(以SMB/RDP为例)

如果攻击者通过漏洞获得了系统权限,并建立了SMB(文件共享)或RDP(远程桌面)连接,那么他后续的操作可能就在这些协议通道里。

SMB协议命令追踪

  1. 过滤smb2nbss
  2. 寻找Tree Connect请求,这表明攻击者连接到了一个共享文件夹。
  3. 随后,你会看到Create Request(创建/打开文件)和Write Request(写入文件)。通过追踪这些SMB流,你可以还原出攻击者在共享目录里上传了哪些文件(可能是后门、挖矿程序)。
  4. 更关键的是,如果攻击者使用了PsExec或类似工具通过SMB执行命令,你会在流量中看到它访问了ADMIN$C$等管理共享,并写入服务二进制文件。通过分析这些写入操作,可以还原出被执行的命令。

RDP协议活动分析: RDP流量本身是加密的,但Wireshark可以解析其通道建立过程。你可以通过以下迹象判断RDP被滥用:

  • 大量的TCP TPKT协议数据包,目标端口为3389。
  • 在“统计”->“对话”中,看到某个外部IP与内部IP在3389端口有持续、大量的双向流量,这很可能就是活跃的RDP会话。
  • 虽然无法解密具体操作,但结合事件时间线,如果发现在非工作时间出现此类连接,就是极强的异常信号。

6. 线索四:分析数据外泄痕迹

攻击的最终目的往往是窃取数据。数据外泄在流量上通常表现为:内部服务器主动向外部IP发起大量、持续的出站连接,并传输大体积数据

6.1 发现异常出站连接

  1. 回到“对话”视图:按字节数排序,重点关注“发送字节数”远大于“接收字节数”的对话。这通常意味着数据正在被“拉”出去。
  2. 使用IO图表:绘制整个抓包时间段内,从内部IP到某个可疑外部IP的流量图。如果数据外泄发生,你会看到一个持续、平稳或脉冲式的出站流量高峰,这与用户访问Web产生的突发性流量模式截然不同。
  3. 协议分析:数据外泄可能通过多种协议:
    • HTTP/HTTPS POST:攻击者将数据打包,通过Web请求发送到受控的服务器。过滤http.request.method == “POST”并查看那些请求体(Entity Body)特别大的包。
    • DNS隧道:这是一种非常隐蔽的数据外泄方式。攻击者将数据编码到DNS查询的子域名中。特征表现为:内部IP向某个不常见的DNS服务器(非公司配置的)发起大量、高频的DNS查询,查询的域名非常长且随机(如a1b2c3d4e5f6.attacker.com)。你可以过滤dns并观察查询名的长度和规律。
    • FTP / SFTP / SCP:直接使用文件传输协议。过滤对应端口(21, 22)的流量,并追踪TCP流查看是否有文件传输的会话。

6.2 定位被窃取的数据内容

一旦锁定可疑的数据流,下一步就是尝试还原数据内容。

  1. 对于HTTP POST数据:在追踪TCP流时,你可以看到完整的请求和响应。请求体中可能包含经过Base64编码或压缩的数据库转储文件内容。你可以将请求体部分(通常是application/x-www-form-urlencodedmultipart/form-data格式之后的部分)复制出来,尝试进行Base64解码,或者保存为二进制文件后用相应的工具(如7z,tar)尝试解压。
  2. 文件还原:Wireshark的“文件 -> 导出对象”功能同样适用于FTP等协议。你可以尝试导出对象列表,看看有没有.sql,.zip,.rar,.xlsx等常见的数据文件格式。
  3. 字符串搜索:如果你知道可能被窃取的数据类型(如客户邮箱、身份证号),可以在Wireshark中直接搜索字符串。点击编辑 -> 查找分组,选择“字符串”并在分组详情或分组字节流中搜索。例如,搜索@example.com可能会直接定位到包含邮箱列表的数据包。

警告:数据外泄分析往往涉及海量数据包。务必善用显示过滤器和追踪流功能,聚焦于可疑的会话,避免陷入数据海洋。同时,还原出的敏感数据必须按照公司安全规定妥善处理。

7. 线索五:构建攻击时间线与行为链

单点线索的价值有限,我们需要将上述所有发现串联起来,还原出完整的攻击故事链。这是报告撰写和后续溯源的关键。

7.1 使用时间显示格式与过滤联动

Wireshark默认的时间显示是相对于抓包开始的时间。为了更直观,我建议你调整为绝对时间:视图 -> 时间显示格式 -> 日期和时间。这样每个数据包都会显示具体的发生时刻。

构建时间线的技巧

  1. 创建时间线注释:在分析过程中,每发现一个关键事件(如“扫描开始”、“第一次暴力破解尝试”、“Webshell上传成功”、“第一个数据外泄包”),就在对应的数据包上右键点击,选择“分组注释”,写下简要说明。
  2. 使用过滤按钮:Wireshark的显示过滤器输入框旁边有一个“+”按钮,点击可以将当前过滤器保存为一个按钮。你可以为“扫描流量”、“MySQL登录尝试”、“HTTP文件上传”等分别创建过滤按钮。分析时,通过点击不同按钮,可以快速在不同攻击阶段视图间切换,并结合时间戳观察其先后顺序。

7.2 绘制攻击链与撰写报告要点

根据所有线索,你可以绘制出类似下面的攻击链:

  1. T0 - T1(侦察):攻击者IP172.16.1.110对目标网段进行端口扫描,发现开放了22(SSH)、80(HTTP)、3306(MySQL)端口。
  2. T2 - T3(初始访问):攻击者对MySQL服务(3306)发起暴力破解,在尝试了数百次后,成功以弱口令root:root123登录。
  3. T4(执行):通过MySQL的INTO OUTFILE功能或漏洞,在Web目录写入一句话Webshell (/var/www/html/shell.php)。
  4. T5 - T6(横向移动/数据窃取):通过Webshell,攻击者上传了渗透工具包,进一步探测内网,并最终将数据库备份文件通过HTTP POST方式外泄至http://malicious-server.com/upload

撰写分析报告时,每个环节都需要附上证据

  • 扫描证据:提供显示过滤器ip.src==172.16.1.110 and tcp.flags.syn==1的截图,高亮目标端口列表。
  • 暴力破解证据:提供MySQL登录失败和成功那次TCP流的追踪截图,特别是包含登录尝试和OK响应的部分。
  • Webshell上传证据:提供导出HTTP对象中shell.php的截图,以及该文件在VirusTotal的检测报告截图。
  • 数据外泄证据:提供IO图表中出站流量峰的截图,以及包含大量数据的HTTP POST请求的追踪流截图。

这份由Wireshark流量分析构建出的、带有精确时间戳和完整证据链的报告,才是说服安全团队、管理层乃至执法机构采取行动的最有力武器。它不仅仅是指出了问题,更是清晰地重现了攻击的全过程。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/4 9:20:00

大模型训练参数调优实战:学习率与批量大小优化

1. 大模型关键参数调优实战指南 在人工智能领域,大模型训练就像是在驾驶一艘巨型油轮——微小的参数调整都可能让航行方向发生巨大改变。作为从业者,我经历过无数次参数调优的"痛苦"与"狂喜",今天就把这些实战经验系统整…

作者头像 李华
网站建设 2026/7/4 9:18:48

ComfyUI-WanVideoWrapper:如何在有限硬件下实现专业级AI视频生成

ComfyUI-WanVideoWrapper:如何在有限硬件下实现专业级AI视频生成 【免费下载链接】ComfyUI-WanVideoWrapper 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-WanVideoWrapper 在AI视频生成领域,显存限制常常成为创作瓶颈。ComfyUI-W…

作者头像 李华
网站建设 2026/7/4 9:17:03

终极SVG编辑器指南:零代码创建专业矢量图形

终极SVG编辑器指南:零代码创建专业矢量图形 【免费下载链接】svgedit Powerful SVG-Editor for your browser 项目地址: https://gitcode.com/gh_mirrors/svg/svgedit SVG-edit是一款功能强大的浏览器端SVG编辑器,让你无需任何编程基础就能创建和…

作者头像 李华
网站建设 2026/7/4 9:16:02

F_Record完整指南:3步实现绘画过程自动录制的高效方案

F_Record完整指南:3步实现绘画过程自动录制的高效方案 【免费下载链接】F_Record 一款用来录制绘画过程的轻量级PS插件 项目地址: https://gitcode.com/gh_mirrors/fr/F_Record F_Record是一款专为数字艺术家和Photoshop用户设计的智能绘画过程录制插件&…

作者头像 李华
网站建设 2026/7/4 9:15:18

Ubuntu24安装FSearch的方法手动添加PPA源的方法

FSearch 是一个快速的文件搜索实用程序,灵感来自 Everything Search Engine。它是用 C 编写的,并基于 GTK3。 一、FSearch的官方安装方法: Snap is no longer officially supported cboxdoerfer/fsearch Wiki GitHub 由上方↑的官方github…

作者头像 李华