目录
一、资源准备
1、流量包获取
bash
$ wget https://www.malware-traffic-analysis.net/2026/02/28/2026-02-28-traffic-analysis-exercise.pcap.zip
解压密码:
用 infected_ 开头,加上转换后的日期。
例子:infected_2026228
2、信息来源
本次告警源为外网恶意 IP 45.131.214.85,通过TCP 443(HTTPS/TLS) 发起外联,流量时间为 2026 年 2 月 28 日 19:55 UTC。安全分析核心思路:以恶意外网 IP 为锚点,反向追溯内网通信主机,提取终端身份、账户信息完成溯源。
在本次演习中,请回答以下问题以撰写您的事故报告:
- 被感染的Windows客户端的IP地址是什么?
- 被感染的Windows客户端的MAC地址是什么?
- 被感染的Windows客户端的主机名是什么?
- 感染的Windows客户端的用户账户名是什么?
- 用户账户中的用户全名是什么?
2、环境信息
| 名称 | 值 |
|---|---|
| 操作系统 | kali 2023.2 / Windows 10 专业版 22H2 |
| WireShark | 4.0.3 |
二、流量分析
1、被感染的Windows客户端的IP地址是什么?
分析原理:
告警显示恶意行为由内网主机主动外联 45.131.214.85(TCP 443),因此过滤与该 IP 通信、排除无关广播流量,即可定位感染主机。
图形界面过滤条件:
bash
(http.request or tls.handshake.type eq 1) and !(ssdp) and ip.addr eq 45.131.214.85

规则原理:
- http.request / tls.handshake.type eq 1:匹配 HTTP 请求、TLS 握手(443 端口 HTTPS 流量);
- !(ssdp):排除局域网设备发现广播流量,减少干扰;
- ip.addr eq 45.131.214.85:限定仅和恶意 IP 通信的数据包。
TShark命令:
bash
$ tshark -r 2026-02-28-traffic-analysis-exercise.pcap -Y "ip.dst == 45.131.214.85" -T fields -e ip.src | sort -u
命令参数:
- -r:读取 PCAP 流量文件;
- -Y:过滤目的地址为恶意 IP 的流量,筛选主动外联的内网源 IP;
- -T fields -e ip.src:仅输出源 IP 字段;
- sort -u:去重,得到唯一感染主机 IP。

结果:
bash
10.2.28.88
2、被感染的Windows客户端的MAC地址是什么?
分析原理 :
Windows 局域网中,NBNS(NetBIOS Name Service)协议用于主机名与 IP/MAC 地址解析,内网终端会广播 NBNS 报文,可从中提取二层 MAC 地址。
图形界面过滤条件:
bash
nbns

规则原理:
直接筛选所有 NetBIOS 名称解析报文,该协议承载 Windows 终端二层、三层地址信息。
TShark命令:
bash
$ tshark -r 2026-02-28-traffic-analysis-exercise.pcap -Y "nbns && ip.src == 10.2.28.88" -T fields -e eth.src | head -1

命令参数:
- 叠加ip.src == 10.2.28.88精准锁定目标主机的 NBNS 流量;
- -e eth.src:提取数据链路层源 MAC 地址;
- head -1:取第一条有效 MAC 记录。
结果:
bash
00:19:d1:b2:4d:ad
3、被感染的Windows客户端的主机名是什么?
分析原理 :
NBNS 协议报文内原生携带 Windows 终端主机名,结合已知感染 IP 过滤,可直接解析主机名称。
图形界面过滤条件:
bash
nbns && ip.src == 10.2.28.88

规则原理:
筛选目标主机发出的 NBNS 解析包,该类报文必包含终端主机名字段。
TShark命令:
bash
$ tshark -r 2026-02-28-traffic-analysis-exercise.pcap -Y "nbns && ip.src == 10.2.28.88" -T fields -e nbns.name | head -1

结果:
bash
DESKTOP-TEYQ2NR
4、感染的Windows客户端的用户账户名是什么?
分析原理 :
Windows 域 / 本地登录会使用Kerberos 认证协议,该协议报文中kerberos.CNameString字段存储登录用户名,以此提取终端登录账户。
图形界面过滤条件:
bash
kerberos.CNameString && ip.addr == 10.2.28.88

规则原理 :
筛选目标主机的 Kerberos 认证流量,定位用户名字段。
TShark命令:
bash
$ tshark -r 2026-02-28-traffic-analysis-exercise.pcap -Y "kerberos.CNameString && ip.addr == 10.2.28.88" -T fields -e kerberos.CNameString | head -1

命令参数:
提取 Kerberos 客户端名称字段,即为 Windows 登录账户名。
结果:
bash
cname
name-type: kRB5-NT-PRINCIPAL (1)
cname-string: 1 item
CNameString: brolf
5、用户账户中的用户全名是什么?
分析原理 :
Windows 账户详细信息(全名、描述等)通过SAMR(安全账户管理器远程协议) 传输,该协议专门用于查询本地 / 域用户完整信息,可从中读取用户全名。
图形界面过滤条件:
bash
samr

规则原理:
筛选 SAMR 账户管理协议流量,这类报文包含用户完整资料。
TShark命令:
bash
$ tshark -r 2026-02-28-traffic-analysis-exercise.pcap -Y "frame.number == 339" -V | grep -i "full name"

命令参数:
- frame.number == 339:定位包含用户信息的指定数据包;
- -V:输出报文完整详细内容;
- grep -i "full name":模糊匹配筛选用户全名字段。
结果:
bash
SAMR (pidl), QueryUserInfo
Operation: QueryUserInfo (36)
[Request in frame: 338]
Pointer to Info (samr_UserInfo)
Pointer to Info (samr_UserInfo)
Referent ID: 0x0000000000020000
samr_UserInfo
Info
Info21
Account Name:
Name Len: 10
Name Size: 10
Account Name
Referent ID: 0x0000000000020000
Max Count: 5
Offset: 0
Actual Count: 5
Account Name: brolf
Full Name:
Name Len: 20
Name Size: 20
Full Name
Referent ID: 0x0000000000020000
NDR-Padding: 000000000000
Max Count: 10
Offset: 0
Actual Count: 10
Full Name: Becka Rolf