Wireshark实战:护网行动中的网络流量溯源与攻击行为分析 📅 2026/7/2 23:29:48 1. 项目概述为什么护网行动中流量溯源是“定海神针”如果你参与过护网行动或者负责过企业安全应急响应一定对“流量溯源”这四个字又爱又恨。爱的是当告警响起、资产失陷时它是你手里最客观、最原始的证据链恨的是面对海量的网络数据包如何快速定位攻击行为、还原攻击路径、找到攻击源头常常让人无从下手感觉像在大海里捞针。这正是“护网流量溯源不慌”这个标题直击的痛点——它承诺的不仅是一个工具的使用教程更是一套从“看到异常”到“抓住元凶”的完整作战流程。Wireshark这个开源且功能强大的网络协议分析器就是我们的“显微镜”和“时光机”。它能把网络上流动的比特和字节还原成你能看懂、能分析的会话、请求和响应。但仅仅会抓包、会看几个TCP三次握手在真实的攻防对抗中是远远不够的。攻击者的手法日趋隐蔽从初级的端口扫描、暴力破解到中级的Web漏洞利用、内网横向移动再到高级的加密隧道、内存马通信攻击流量就混杂在正常的业务流量中。你的任务就是从这片混沌中识别出异常的模式并沿着这条线索逆向追踪到攻击的起点。这篇指南就是基于我多次参与大型攻防演练和真实应急响应的经验为你梳理的一套Wireshark实战心法。我们不谈空洞的理论只聚焦于护网和日常安全运维中最常见、最棘手的几类攻击场景手把手带你走完从“捕获流量”到“完成溯源”的全过程。无论你是刚开始接触安全分析的工程师还是想提升实战能力的老手都能从这里找到可以直接“抄作业”的步骤和思路。我们的目标很明确让你下次再面对安全告警时能沉着地打开Wireshark心中有谱手里有术。2. 核心思路与战场准备你的Wireshark应该这样配置在投入实战之前花点时间把“武器”调试到最佳状态至关重要。很多人在护网中手忙脚乱一部分原因就是基础工作没做扎实。2.1 关键配置让Wireshark成为你的“火眼金睛”安装Wireshark后默认配置可能并不适合高强度、长时间的安全分析。你需要调整几个关键设置抓包缓冲区与文件滚动护网期间流量可能巨大。进入编辑 - 首选项 - Capture。将“Default capture buffer size”调大如256 MiB避免丢包。更重要的是在“Output”标签页设置“Automatically save file after X MB/packets”并选择“Multiple files”这样能按大小或时间自动分割文件防止单个文件过大导致Wireshark卡死也便于后续分段分析。着色规则定制Wireshark的默认着色规则对安全分析不够友好。你需要创建自己的规则集。进入视图 - 着色规则。我强烈建议添加并高亮以下规则红色背景过滤规则为tcp.flags.syn1 and tcp.flags.ack0用于高亮TCP SYN扫描半连接扫描。黄色背景http.request.method POST and (http.file_data contains “password” or http.file_data contains “cmd”)用于高亮可能包含密码或命令的POST请求。紫色背景dns.qry.type 255ANY查询或dns.qry.name contains “tunnel” or dns.qry.name contains “dns”用于高亮异常的DNS查询这可能是DNS隧道攻击的迹象。绿色背景tcp.analysis.retransmission或tcp.analysis.lost_segment用于快速定位网络质量问题和可能的丢包攻击。 这些颜色会让你在滚动数据包列表时像看热力图一样迅速定位可疑点。协议解析与字段定制有些协议需要额外启用或配置。例如对于SMB协议你可能需要启用SMB2解析。对于加密流量如果你有服务器的私钥可以在编辑 - 首选项 - Protocols - TLS中导入以解密HTTPS流量这在实际授权测试中非常关键。注意修改着色规则和配置文件后记得通过配置文件 - 新建保存为一个新的配置文件如“Huwang_Analysis”。这样在不同场景下可以快速切换避免配置混乱。2.2 核心武器库必须掌握的过滤表达式与统计功能Wireshark的强大一半在于其过滤引擎。死记硬背过滤语法没用关键是理解其背后的攻击行为特征。攻击发现类过滤器tcp.flags.syn1 and tcp.flags.ack0 筛选所有SYN包用于发现扫描行为。如果短时间内来自同一源IP对多个目标端口发送SYN包就是典型的端口扫描。http.request or tls.handshake.type 1 快速查看所有HTTP请求和TLS客户端问候Client Hello用于聚焦Web攻击面。bootp.option.type 53 筛选DHCP请求可用于发现内网未经授权的新设备上线可能是攻击者接入点。icmp.type8 筛选ICMP Echo请求ping。大量、大尺寸的ping包可能是ICMP洪水攻击或ICMP隧道如icmptunnel的痕迹。溯源关联类过滤器ip.srcx.x.x.x或ip.dstx.x.x.x 围绕一个可疑IP查看其所有发出的和接收的流量这是绘制攻击者活动轨迹的基础。tcp.stream eq 编号 这是最重要的功能之一。在数据包列表中点中任何一个TCP包右键选择“追踪流 - TCP流”Wireshark会自动生成这个过滤器并高亮该TCP会话的所有包。这对于完整分析一次SQL注入、文件上传或远程命令执行过程至关重要。http contains “union select”或tcp contains “whoami” 在应用层负载中搜索攻击特征字符串。注意contains操作符对大小写敏感。统计功能——你的全局态势感知地图对话Conversations (统计 - 对话) 这里按IP和端口统计了所有通信对。护网时我首先就看这里。重点关注1) 内部IP与大量外部IP通信可能为C2服务器2) 单一外部IP与内部大量不同IP/端口通信扫描器3) 非标准端口上的大量流量可能为后门或代理。端点Endpoints (统计 - 端点) 查看每个IP地址的收发数据包和字节总数。突然出现的新IP或者收发流量极不均衡的IP如下行流量远大于上行都值得怀疑。协议分级Protocol Hierarchy (统计 - 协议分级) 一眼看清流量组成。如果在一个以Web服务为主的服务器上出现了异常高比例的ICMP、DNS或未知协议流量那警报就该拉响了。流量图IO Graph (统计 - IO 图表) 可视化流量随时间的变化。可用于识别DDoS攻击的波形或定位某个特定时间点发生的攻击事件。把这些过滤器和统计功能结合起来你就能从宏观到微观层层递进地缩小排查范围。3. 实战拆解一识别外部扫描与暴力破解这是攻击的起点也是最常见的噪音来源。快速识别并确认能帮你过滤干扰聚焦真正的威胁。3.1 SYN扫描识别与源IP确认攻击者常用nmap等工具进行TCP SYN扫描。在Wireshark中其特征非常明显。操作流程应用过滤器tcp.flags.syn1 and tcp.flags.ack0。列表中将只显示SYN包。观察模式不要只看一个包。点击“源地址”列进行排序。你会很快发现某个外部IP如203.0.113.5在极短时间几秒内向你的服务器IP发送了大量SYN包且目标端口是连续的或常见的如22, 80, 443, 8080, 3306等。右键该源IP选择“作为过滤器应用 - 选中”。这样视图就聚焦于这个扫描者的所有行为了。进一步分析切换到“统计 - 对话”。查看TCP标签页确认该IP尝试连接了哪些具体端口。这些端口列表就是攻击者的“侦察报告”。溯源关键此时这个源IP203.0.113.5就是你的第一个溯源目标。记录下它。但聪明的攻击者可能会用代理或僵尸网络。因此你需要结合时间点去查询防火墙/IPS日志确认是否有同一时间针对这些端口的拦截记录。威胁情报平台在微步在线、VirusTotal等平台查询该IP的信誉和历史关联的恶意活动。WHOIS信息虽然现在隐私保护普遍但有时仍能获取到IP所属的AS号、运营商和大致地理位置这有助于判断攻击来源性质如数据中心IP可能是VPS住宅IP可能是被控主机。3.2 HTTP/SSH暴力破解的流量特征暴力破解的流量是持续、有节奏的尝试。HTTP表单爆破过滤http.request.method POST然后重点关注登录接口的流量如包含/login,/admin的URI。右键追踪TCP流你会看到攻击者用不同的用户名/密码组合反复提交表单。在流内容中直接搜索password、pwd等字段可以快速提取攻击者尝试的凭证。SSH暴力破解过滤tcp.port 22。SSH协议本身是加密的但连接建立过程是明文的。你会看到海量的TCP连接到22端口但绝大多数在密钥交换阶段或刚完成后就断开了表现为大量短暂的TCP会话成功率极低。在“对话”统计中查看22端口的通信对那个建立了大量失败连接的IP就是攻击源。实操心得对于暴力破解单纯在Wireshark里看可能不够直观。我通常会配合一个简单的命令从pcap文件中提取攻击尝试。例如用tshark(Wireshark的命令行版本)# 提取HTTP POST请求中的表单数据假设密码字段名为‘pwd’ tshark -r attack.pcap -Y http.request.method POST -T fields -e http.request.uri -e http.file_data | grep -i pwd # 统计对22端口连接尝试最多的源IP tshark -r attack.pcap -Y tcp.dstport 22 -T fields -e ip.src | sort | uniq -c | sort -nr | head -10这能帮你快速生成一份攻击者字典或TOP N攻击源IP列表用于后续的封禁和上报。4. 实战拆解二深挖Web攻击与漏洞利用Web是主战场攻击流量往往夹杂在正常业务请求中需要更细致的分析。4.1 还原一次完整的SQL注入攻击假设我们通过IDS告警发现某次可疑请求时间点在2023-10-27 14:05:30左右。时间定位在Wireshark中点击视图 - 时间显示格式 - 日期和时间便于对照。使用时间过滤器如frame.time “Oct 27, 2023 14:05:25” frame.time “Oct 27, 2023 14:05:35”缩小范围。定位攻击流在过滤后的数据包中寻找向Web服务器端口如80/443发送的HTTP请求。可以过滤http.request。快速浏览URI寻找包含异常字符的请求如id1、id1 and 11等。追踪TCP流找到可疑包后右键选择“追踪流 - TCP流”。一个完整的攻击过程会展现在你面前。你会看到攻击者可能先发送id1进行试探。然后发送id1观察错误。接着发送id1 and 11进行布尔盲注测试。可能会看到union select null, version(), null等语句来获取数据库信息。甚至可能有load_file()或into outfile等尝试读取或写入文件的请求。提取攻击载荷与源信息在TCP流窗口你可以看到完整的HTTP请求头。重点记录X-Forwarded-For、X-Real-IP等头部如果存在这些可能比TCP层源IP更接近真实源但也可能被伪造。当然最根本的还是TCP层的源IP和端口。将流内容显示为“原始数据”然后保存下来这就是完整的攻击载荷证据。关联分析记下这个攻击流的源IP。清除当前过滤器用ip.src攻击者IP查看这个IP在攻击前后还做了什么是否还尝试了其他路径如/admin、/phpmyadmin是否在攻击后收到了服务器的响应数据如数据库名、表结构这能帮助你评估失陷程度。4.2 识别文件上传与Webshell通信攻击者上传Webshell后会通过Webshell进行后续操作。发现上传请求过滤http.request.method POST并查找Content-Type包含multipart/form-data的包。这通常是文件上传。在追踪的TCP流中寻找filename”shell.php”或filename”.jsp”等字段以及文件内容中可疑的PHP函数如eval($_POST[‘cmd’])、JSP命令执行代码等。定位Webshell访问上传成功后攻击者会访问这个Webshell。你需要找到对可疑路径的HTTP GET/POST请求。如果不知道具体路径可以尝试过滤http contains “cmd”或http contains “eval”。更常见的是攻击者通过Webshell执行命令其请求体可能包含cmdwhoami或csystem(‘ls’)等内容。还原操作序列找到Webshell的访问流后同样追踪TCP流。你会看到一个交互式会话攻击者发送命令服务器返回结果。这里包含了极其丰富的溯源信息攻击者执行的命令whoami,ipconfig /all,net user,ifconfig,pwd揭示了其意图和已获取的权限。服务器的响应可能包含内网IP、主机名、用户名、目录结构等敏感信息。攻击者可能尝试下载更多工具通过wget或certutil命令这些外连的URL或IP是新的线索。关键技巧攻击者可能使用编码如Base64来绕过简单检测。在Wireshark的TCP流窗口你可以尝试将显示格式从“ASCII”切换到“UTF-8”或“EBCDIC”有时能直接看到解码后的内容。对于Base64需要手动提取字符串进行解码。留意echo ‘Y2F0IC9ldGMvcGFzc3dk’ | base64 -d这类在流量中直接解码的命令。5. 实战拆解三追踪内网横向移动与隧道流量攻击者进入内网后行为往往更隐蔽流量可能伪装成正常协议。5.1 SMB/RDP协议分析与凭据窃取在内网攻击者常用psexec、wmic或smbexec进行横向移动这些大多基于SMB协议。识别SMB异常会话过滤smb2或nbnsNetBIOS名称服务。关注非域控或文件服务器产生的异常大量的SMB流量。在“统计 - 对话”中查看SMBTCP 445端口的通信对。分析登录行为SMB2的登录过程在Wireshark中是可解析的。寻找SMB2 Session Setup Request数据包。在包详情中展开SMB2-Session Setup Request你可以看到User Name字段。攻击者可能使用窃取的管理员账号进行横向移动。记录下这个用户名和源IP攻击跳板机。NTLM Hash的捕获如果网络环境配置不当SMB登录可能使用NTLM认证。在SMB2协议的NT LAN Manager部分可以找到NTLMSSP_CHALLENGE和NTLMSSP_AUTH消息其中包含了可用于离线破解的NTLM响应Hash。虽然Wireshark不能直接破解但你可以将这些Hash值提取出来右键 - 复制 - …作为Hex流保存下来用于后续分析或密码强度审计。RDP暴力破解与会话劫持过滤tcp.port 3389。和SSH类似你会看到大量来自同一内网IP的、短暂的TCP连接尝试。如果攻击成功你会看到一个持续较长的、流量稳定的TCP连接这可能意味着攻击者已成功登录。此时源IP就是内网中已被攻陷的主机目标IP就是被横向移动攻击的服务器。5.2 发现DNS隧道与隐蔽信道高级攻击者会使用DNS、ICMP甚至HTTP协议封装数据建立隐蔽信道。DNS隧道特征过滤dns。关注异常域名超长域名如a1b2c3d4e5f6g7h8i9j0.sub.evil.com、大量TXT类型查询、NULL类型查询、或频繁查询不存在的子域名随机字符串.evil.com。在“统计 - 对话”中查看DNS协议。如果发现内网某台服务器持续、高频地向某个外部域名尤其是新注册的、无实质内容的域名发起查询而该域名的权威NS服务器位于不常见的国家或ASN这就是强烈的DNS隧道信号。溯源应用这个外部域名evil.com就是关键线索。对其进行WHOIS查询、威胁情报查询并尝试将其加入防火墙或DNS黑名单进行阻断。ICMP隧道特征过滤icmp.type8 or icmp.type0。正常的ping包负载很小Windows 32字节Linux 48字节。如果发现尺寸异常大如超过100字节的ICMP请求/应答包且在两台主机间有规律地持续交换就可能是ICMP隧道如icmptunnel。检查负载数据可能包含加密或编码后的信息。6. 从流量到报告完整的溯源证据链整理分析完流量你需要将碎片化的信息拼成完整的证据链并形成报告。时间线梳理这是最重要的部分。在Wireshark中你可以使用文件 - 导出分组解析结果 - 为纯文本导出所有数据包的基本信息。然后围绕攻击者IP手动或借助脚本梳理出关键事件序列T0: 攻击者IP203.0.113.5开始对目标192.168.1.100进行SYN端口扫描。T1: 发现80端口开放开始对/login.php进行密码爆破尝试10次。T2: 爆破失败转而测试/news.php?id1是否存在SQL注入。T3: 注入成功通过union select获取管理员表数据。T4: 利用获取的凭证登录后台通过上传功能传Webshell (shell.php)。T5: 访问Webshell执行whoami,ipconfig等命令。T6: 从内网主机192.168.1.100向另一台内网服务器192.168.1.200发起SMB连接尝试横向移动。证据固定关键数据包导出对于每个关键步骤如注入请求、Webshell上传请求、命令执行请求在数据包列表右键该包选择文件 - 导出特定分组将这些包单独保存为小的pcap文件作为分项证据。会话流导出对于关键的TCP流如完整的SQL注入流、Webshell交互流在追踪流的窗口点击“另存为”保存为文本文件其中完整记录了请求和响应。文件还原如果攻击中上传或下载了文件在包含该文件的HTTP或SMB数据包上右键选择文件 - 导出对象 - HTTP或SMB可以尝试直接还原出传输的文件实体如webshell脚本、被盗的文档。撰写分析报告报告不应是数据罗列而要讲清楚故事。概述简述事件时间、影响的资产、攻击类型如SQL注入导致Webshell上传。攻击链还原用时间线的形式图文并茂地展示攻击步骤。每一张图都可以是Wireshark关键数据包的截图注意打码敏感信息。溯源结论攻击源IP203.0.113.5可能为代理或跳板。攻击者使用的Payload列出关键的注入语句、上传的Webshell文件名和内容片段、执行的命令。攻击者意图与造成的危害获取了数据库信息、上传了后门、尝试了内网横向移动。关联线索攻击过程中尝试连接的C2域名、横向移动使用的凭据等。处置建议立即封禁攻击源IP、删除Webshell、修改相关密码、修补SQL注入漏洞、检查内网192.168.1.200是否已失陷等。7. 常见问题与排查技巧实录在实际操作中你肯定会遇到各种棘手情况。这里分享几个我踩过的坑和解决技巧。问题1流量太大Wireshark卡死或无响应。技巧不要直接抓包到磁盘并实时显示。优先使用dumpcap或tshark命令行工具进行捕获它们资源占用更低。例如dumpcap -i eth0 -w capture.pcap -b filesize:100 -b files:10表示每100MB分割一个文件最多保留10个文件。分析时再用Wireshark打开其中一个较小的文件。或者在Wireshark抓包时直接勾选“使用多个文件”和“环形缓冲区”选项。问题2如何从海量数据中快速找到“针”技巧别一上来就埋头看包。遵循“统计 - 过滤 - 深入”的流程。先看“协议分级”了解流量概况。再看“端点”和“对话”找出流量异常如发送/接收比例失衡、连接数激增的IP。最后针对可疑IP或协议应用过滤器深入查看具体会话。这比盲目滚动效率高百倍。问题3遇到加密流量HTTPS怎么办技巧如果是在可控环境下的安全测试如对自有系统进行渗透测试可以在客户端或服务器端安装SSL/TLS密钥日志文件。在Wireshark的TLS协议设置中指向该日志文件即可解密大部分HTTPS流量。对于外部流量你无法解密但可以关注TLS握手阶段异常的SNIServer Name Indication字段、自签名证书、或与已知恶意IP/域名建立的TLS连接。在“统计 - TLS”中可以看到所有的TLS会话信息。问题4攻击者IP是伪造的或来自云服务/代理如何进一步溯源技巧这是常态单靠Wireshark无法解决。你需要进行关联分析时间关联精确到秒的攻击时间去查询防火墙、WAF、应用日志看是否有同一时间、同一攻击手法的记录这些日志里可能包含更真实的源IP如X-Forwarded-For。Payload关联攻击中使用的独特Payload、Webshell密码、C2域名等可以作为“数字指纹”。在威胁情报平台搜索这些指纹看是否与其他已知攻击活动关联从而归因到某个攻击组织。攻击链关联如果攻击者后续进行了内网横向移动那么内网中受控主机跳板机发起的攻击流量其源IP是真实的内网IP。从这个点反向追查其被控的过程可能找到更早的、来自外网的入口点。问题5如何验证我的分析结论是否正确技巧重建攻击场景。这是最有效的验证方法。在一个隔离的测试环境中根据你从流量中提取的攻击Payload如SQL注入语句、上传的Webshell文件尝试复现攻击。观察测试环境产生的流量是否与你分析的真实流量在结构、特征上一致。这不仅能验证结论还能帮你更深刻地理解攻击原理。最后想说的是流量分析就像侦探破案Wireshark是你的放大镜和指纹采集器。真正的能力不在于熟悉工具的每个按钮而在于对网络协议、攻击手法和系统行为的深刻理解。这份指南给了你一张地图和一套工具但要想在护网的战场上从容不迫还需要你带着这些方法回到真实的流量中去观察、去思考、去积累。每次分析完一个案例不妨问自己几个问题攻击者的下一步可能是什么我有没有遗漏其他可能的攻击路径如何优化监控规则才能更早地发现此类行为这些反思才是你从“会用工具”到“成为高手”的关键一步。