Wireshark实战:从HTTP流量中透视攻击者的每一步
当你面对海量的网络流量数据,如何快速定位那些隐藏在正常请求中的恶意行为?对于Web安全工程师和运维人员来说,这不仅是日常工作,更是一场与攻击者之间无声的较量。Wireshark作为网络分析的瑞士军刀,其强大之处在于能将抽象的流量转化为可视化的攻击故事。本文不会重复那些基础的过滤语法,而是带你深入实战,通过剖析HTTP协议层的关键细节,构建一套从流量中快速识别SQL注入、WebShell通信、横向移动等攻击痕迹的系统性方法。我们将聚焦于攻击者在真实场景中留下的“数字指纹”,让你在下次应急响应时,能像侦探一样,从数据包中还原攻击全貌。
1. 构建高效分析环境与核心过滤策略
工欲善其事,必先利其器。面对一个动辄数GB的pcap文件,漫无目的地滚动浏览无异于大海捞针。高效的分析始于精准的过滤和清晰的工作区布局。
首先,我习惯在开始分析前,对Wireshark的界面进行定制。将“Packet List”(数据包列表)、“Packet Details”(数据包详情)和“Packet Bytes”(数据包字节流)三个面板的布局调整到舒适的比例,并确保“Protocol”(协议)列显示在列表视图中。一个常被忽略但极其有用的技巧是创建并保存显示过滤器按钮。例如,我可以将常用的过滤器保存为快捷按钮:
http.request– 快速查看所有HTTP请求。http contains “POST”– 聚焦于可能携带数据的POST请求。tcp.stream eq– 在选中某个TCP包后,一键追踪整个会话流。ip.addr == [可疑IP]– 隔离特定主机的所有流量。
提示:在分析疑似攻击流量时,我通常会先应用
!arp && !dns过滤器,暂时屏蔽大量的ARP和DNS广播/查询包,让核心的HTTP/TCP流量更突出。
对于HTTP协议分析,基础的过滤远远不够。攻击者常常利用HTTP的特性进行伪装。因此,我们需要一套组合过滤策略来缩小范围。以下是我常用的几组“组合拳”:
- 寻找异常请求路径与参数:使用
http.request.uri contains “?”过滤出所有带参数的请求,然后重点关注参数名异常(如包含union、select、exec等SQL关键词片段)或参数值过长、编码复杂的请求。 - 定位文件上传与WebShell活动:过滤
http.request.method == “POST” && http.content_type contains “multipart/form-data”可以找到文件上传请求。同时,结合http.request.uri contains “.php” || http.request.uri contains “.jsp” || http.request.uri contains “.asp”来筛选对动态脚本的访问,特别是那些名称随机、路径异常的访问。 - 识别扫描与爆破行为:短时间内来自同一源IP的大量
404 Not Found或403 Forbidden响应,通常是目录扫描或暴力破解的迹象。可以使用如下的统计功能辅助判断:# 在Wireshark的“统计” -> “对话”中,查看TCP或HTTP对话,按数据包数量或字节数排序,排名靠前的对话值得深入检查。
| 过滤场景 | 显示过滤器示例 | 主要目的 |
|---|---|---|

&spm=1001.2101.3001.5002&articleId=152313596&d=1&t=3&u=bddca52dcfc241d6b4685c4c59c9796e)
3万+

被折叠的 条评论
为什么被折叠?



