analyzing-network-traffic-for-incidents
分析网络流量捕获和流量数据,以识别安全事件期间的攻击者活动,包括命令与控制(C2)通信、横向移动(lateral movement)、数据外泄(exfiltration)和漏洞利用尝试。使用 Wireshark、Zeek 和 NetFlow 分析技术。适用于网络流量分析、数据包捕获调查、PCAP 分析、网络取证、C2 流量检测或数据外泄检测等场景。
Best use case
analyzing-network-traffic-for-incidents is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
分析网络流量捕获和流量数据,以识别安全事件期间的攻击者活动,包括命令与控制(C2)通信、横向移动(lateral movement)、数据外泄(exfiltration)和漏洞利用尝试。使用 Wireshark、Zeek 和 NetFlow 分析技术。适用于网络流量分析、数据包捕获调查、PCAP 分析、网络取证、C2 流量检测或数据外泄检测等场景。
Teams using analyzing-network-traffic-for-incidents should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/analyzing-network-traffic-for-incidents/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How analyzing-network-traffic-for-incidents Compares
| Feature / Agent | analyzing-network-traffic-for-incidents | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
分析网络流量捕获和流量数据,以识别安全事件期间的攻击者活动,包括命令与控制(C2)通信、横向移动(lateral movement)、数据外泄(exfiltration)和漏洞利用尝试。使用 Wireshark、Zeek 和 NetFlow 分析技术。适用于网络流量分析、数据包捕获调查、PCAP 分析、网络取证、C2 流量检测或数据外泄检测等场景。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 针对安全事件的网络流量分析
## 适用场景
- SIEM 告警显示异常网络流量模式,需要深入调查
- 怀疑存在 C2 信标(beaconing),需通过数据包级别分析加以确认
- 需要从网络证据中量化数据外泄的规模或目标地址
- 需要通过网络连接追踪系统间的横向移动
- IDS/IPS 告警需要数据包级别验证以确认或排除
**不适用于**基于主机的取证分析(进程执行、文件系统制品);此类场景请使用终端取证工具。
## 前置条件
- 全量数据包捕获(PCAP)基础设施或按需捕获能力(网络分路器、SPAN 端口)
- 分析工作站上已安装 Wireshark,并掌握相应显示过滤器知识
- 已部署 Zeek(原 Bro)用于生成网络元数据(conn.log、dns.log、http.log、ssl.log)
- 从网络设备收集 NetFlow/IPFIX,用于流量分析
- 网络架构图,展示 VLAN 布局、防火墙位置和监控点
- 威胁情报(threat intelligence)源,用于关联观察到的网络失陷指标(IOC)
## 工作流程
### 步骤 1:捕获或获取网络流量
获取调查所需的相关流量数据:
**实时捕获(事件仍在进行时):**
```bash
# 在特定接口上按主机过滤进行捕获
tcpdump -i eth0 -w capture.pcap host 10.1.5.42
# 捕获发往特定外部 IP 的 C2 流量
tcpdump -i eth0 -w c2_traffic.pcap host 185.220.101.42
# 带滚动轮转的捕获(每个文件 1GB,保留 10 个)
tcpdump -i eth0 -w capture_%Y%m%d%H%M.pcap -C 1000 -W 10
```
**从现有基础设施获取:**
- 从全量数据包捕获设备导出 PCAP(Arkime/Moloch、ExtraHop、Corelight)
- 从 Zeek 集群拉取调查时间段内的 Zeek 日志
- 从网络设备导出 NetFlow 数据,用于高层流量分析
### 步骤 2:识别 C2 通信
检测命令与控制流量模式:
**信标检测(Zeek conn.log):**
```bash
# 提取具有规律间隔的对外连接
cat conn.log | zeek-cut ts id.orig_h id.resp_h id.resp_p duration orig_bytes resp_bytes \
| awk '$4 ~ /^185\.220/' | sort -t. -k1,1n -k2,2n
```
**Wireshark 信标分析:**
```
# 过滤发往可疑 C2 IP 的流量
ip.addr == 185.220.101.42
# 过滤非标准端口上的 HTTPS 流量
tcp.port != 443 && ssl
# 过滤可疑域名的 DNS 查询
dns.qry.name contains "evil" or dns.qry.name matches "^[a-z0-9]{32}\."
# 过滤 HTTP POST(常见 C2 上线方式)
http.request.method == "POST" && ip.dst == 185.220.101.42
```
信标特征识别要点:
- 连接之间存在规律性时间间隔(例如每 60 秒,抖动(jitter)10-15%)
- 请求和响应中数据包大小保持一致
- HTTPS 连接发往与合法 CDN 或服务无关的外部 IP
- DNS 查询子域熵值高(DNS 隧道(DNS tunneling)指标)
### 步骤 3:分析横向移动流量
追踪攻击者在内部系统间的移动路径:
```
横向移动检测关键协议:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SMB (TCP 445): PsExec、文件共享访问、勒索软件传播
RDP (TCP 3389): 远程桌面会话
WinRM (TCP 5985): PowerShell 远程访问
WMI (TCP 135): 远程命令执行
SSH (TCP 22): Linux 横向移动
DCE/RPC (TCP 135): 基于 DCOM 的横向移动
```
**横向移动的 Wireshark 过滤器:**
```
# SMB 横向移动
smb2 && ip.src == 10.1.5.42 && ip.dst != 10.1.5.42
# 来自失陷主机的 RDP 连接
tcp.dstport == 3389 && ip.src == 10.1.5.42
# Kerberos 票据请求(潜在的票据传递(Pass-the-Ticket))
kerberos.msg_type == 12 && ip.src == 10.1.5.42
# NTLM 认证(潜在的哈希传递(Pass-the-Hash))
ntlmssp.auth.username && ip.src == 10.1.5.42
```
### 步骤 4:检测数据外泄
识别从网络中未经授权的数据传输:
```
# 在 Zeek conn.log 中识别大量出站传输
cat conn.log | zeek-cut ts id.orig_h id.resp_h id.resp_p orig_bytes \
| awk '$5 > 100000000' | sort -t$'\t' -k5 -rn
# DNS 隧道检测(高量 TXT 查询)
cat dns.log | zeek-cut query qtype | grep TXT | cut -f1 \
| rev | cut -d. -f1,2 | rev | sort | uniq -c | sort -rn | head
# 异常协议使用(ICMP 隧道、DNS over HTTPS)
cat conn.log | zeek-cut proto id.resp_p orig_bytes | awk '$1 == "icmp" && $3 > 1000'
```
**Wireshark 数据外泄过滤器:**
```
# 大型 HTTP POST 上传
http.request.method == "POST" && tcp.len > 10000
# FTP 数据传输
ftp-data && ip.src == 10.0.0.0/8
# 含大型 TXT 响应的 DNS(隧道)
dns.resp.type == 16 && dns.resp.len > 200
```
### 步骤 5:提取并关联 IOC
从流量分析中提取基于网络的失陷指标:
- 失陷主机联系的外部 IP 地址
- 事件期间通过 DNS 解析的域名
- 通过 HTTP/HTTPS 访问的 URL(如已部署 SSL 检测)
- TLS 证书详情(主题、颁发者、序列号、JA3/JA3S 哈希)
- HTTP 请求中的 User-Agent 字符串
- PCAP 中捕获的文件传输(使用 Wireshark 导出对象功能提取)
### 步骤 6:记录网络取证发现
将分析结果汇编为带证据引用的结构化报告:
- 对每个发现引用具体的 PCAP 文件、帧编号和时间戳
- 以截图或导出 PDF 形式保存关键证据的数据包捕获
- 将网络活动映射到事件时间线
- 将网络发现与终端取证的基于主机的证据进行关联
## 核心概念
| 术语 | 定义 |
|------|------|
| **PCAP(数据包捕获)** | 存储从网络接口捕获的原始网络数据包的文件格式,用于离线分析 |
| **信标(Beaconing)** | 失陷主机向 C2 服务器发出的规律性、周期性网络连接,可通过一致的时间间隔识别 |
| **JA3/JA3S** | 基于 ClientHello 和 ServerHello 参数的 TLS 客户端和服务器指纹方法;每个应用程序具有唯一指纹 |
| **NetFlow/IPFIX** | 由路由器和交换机收集的网络流量元数据(源、目标、端口、字节数、持续时间),无需全量数据包捕获 |
| **DNS 隧道(DNS Tunneling)** | 将数据编码在 DNS 查询和响应中,通过 DNS 协议进行数据外泄或维持 C2 的技术 |
| **网络分路器(Network Tap)** | 创建网络流量精确副本用于监控的硬件设备,不影响网络性能 |
| **Zeek 日志** | Zeek 网络分析框架生成的结构化元数据日志,涵盖连接、DNS、HTTP、SSL 等 |
## 工具与系统
- **Wireshark**:开源数据包分析器,用于对网络协议进行数据包级别的深度检测
- **Zeek(原 Bro)**:网络分析框架,从实时或捕获的流量中生成结构化元数据日志
- **Arkime(原 Moloch)**:开源全量数据包捕获和搜索平台,用于大规模网络取证
- **NetworkMiner**:网络取证分析工具,用于从 PCAP 文件中提取文件、图像和凭据
- **RITA(Real Intelligence Threat Analytics)**:开源信标检测和 DNS 隧道分析工具,适用于 Zeek 日志
## 常见场景
### 场景:确认 C2 信标并量化数据外泄
**场景背景**:EDR 在某工作站检测到可疑进程,但无法确定数据外泄量。网络团队提供了覆盖事件时间段的全量数据包捕获设备中的 PCAP。
**方法**:
1. 将 PCAP 过滤为从失陷主机 IP 到外部目标的流量
2. 通过分析连接时间模式(信标检测)识别 C2 通道
3. 从 C2 连接中提取 TLS 证书和 JA3 哈希,用于生成 IOC
4. 计算整个事件期间向 C2 基础设施传输的总字节数
5. 检查其他外泄通道(DNS 隧道、云存储上传)
6. 使用 Wireshark 导出对象功能提取任何未加密的传输文件
**常见陷阱**:
- 当 C2 在没有 SSL 检测的情况下通过 HTTPS 运行时,仅分析 HTTP 流量
- 忽略 DNS 隧道,因为每个查询的数据量很小(但随时间累积后总量可观)
- 未将网络时间戳与终端时间戳关联(时区不匹配问题)
- 忽视被滥用于数据外泄的合法云服务(OneDrive、Google Drive、Dropbox)
## 输出格式
```
网络流量分析报告
=================================
事件编号: INC-2025-1547
分析师: [姓名]
捕获来源: Arkime 全量数据包捕获
分析时段: 2025-11-15 14:00 UTC - 2025-11-15 18:00 UTC
PCAP 总大小: 4.7 GB
C2 通信
Source: 10.1.5.42 (WKSTN-042)
Destination: 185.220.101.42:443 (HTTPS)
Beacon Interval: 60 秒 ± 12% 抖动
Sessions: 4 小时内 237 次连接
JA3 Hash: a0e9f5d64349fb13191bc781f81f42e1
TLS Certificate: CN=update.evil[.]com(自签名)
Total Data Sent: 147 MB(出站)
Total Data Recv: 2.3 MB(入站 - 命令)
横向移动
10.1.5.42 → 10.1.10.15 (SMB, TCP 445) - 14:35 UTC
10.1.5.42 → 10.1.10.20 (RDP, TCP 3389) - 14:42 UTC
10.1.5.42 → 10.1.1.5 (LDAP, TCP 389) - 15:10 UTC
数据外泄摘要
Protocol: HTTPS 至 C2 服务器
Volume: 147 MB 出站
Duration: 14:23 UTC - 18:00 UTC
Files Extracted: [如可从未加密通道恢复则列出]
DNS 分析
Suspicious Queries: 0 个 DNS 隧道指标
DGA Detection: 0 个算法生成域名
证据引用
PCAP File: INC-2025-1547_capture.pcap (SHA-256: ...)
Zeek Logs: /logs/zeek/2025-11-15/ (conn.log, ssl.log, dns.log)
```Related Skills
scanning-network-with-nmap-advanced
使用 Nmap 的脚本引擎、时序控制、规避技术和输出解析,对授权目标网络执行高级网络侦察, 发现主机、枚举服务、检测漏洞并识别操作系统。
performing-wireless-network-penetration-test
执行无线网络渗透测试,通过捕获握手包、破解 WPA2/WPA3 密钥、检测流氓接入点以及使用 Aircrack-ng 和相关工具测试无线网络分段,评估 WiFi 安全性。
performing-ot-network-security-assessment
本技能涵盖对运营技术(OT)网络(包括SCADA系统、DCS架构和工业控制系统通信路径)进行全面安全评估。内容涉及Purdue参考模型各层、识别IT/OT融合风险、评估区域间防火墙规则,以及映射工业协议流量(Modbus、DNP3、OPC UA、EtherNet/IP),以检测关键基础设施中的错误配置、未授权连接和攻击面。
performing-network-traffic-analysis-with-zeek
部署 Zeek 网络安全监控器,捕获、解析和分析网络流量元数据,用于威胁检测、异常识别和取证调查。
performing-network-traffic-analysis-with-tshark
使用 tshark 和 pyshark 自动化网络流量分析,进行协议统计、可疑流量检测、DNS 异常识别以及从 PCAP 文件中提取威胁指标(IOC)
performing-network-packet-capture-analysis
使用 Wireshark、tshark 和 tcpdump 对网络数据包捕获(PCAP/PCAPNG)进行取证分析,重建网络通信、提取传输文件、识别恶意流量,并建立数据渗出或命令与控制活动的证据。
performing-network-forensics-with-wireshark
使用 Wireshark 和 tshark 捕获并分析网络流量,重建网络事件、提取制品并识别恶意通信。
performing-external-network-penetration-test
依照 PTES 方法论,通过侦察、扫描、漏洞利用和报告等阶段,对面向互联网的基础设施执行全面的外部网络渗透测试,识别可利用漏洞。
intercepting-mobile-traffic-with-burpsuite
使用 Burp Suite 代理拦截和分析移动应用的 HTTP/HTTPS 流量,以识别不安全的 API 通信、 认证缺陷、数据泄露和服务器端漏洞。适用于移动应用渗透测试、API 安全评估或 评估客户端-服务器通信模式。适合移动流量拦截、Burp Suite 移动代理、API 安全测试 或移动 HTTPS 分析相关请求。
implementing-zero-trust-network-access
通过配置身份感知代理、微分段、基于条件访问策略的持续验证,以及在 AWS、Azure 和 GCP 环境中以 BeyondCorp 风格的架构替代传统 VPN 访问,在云环境中实施零信任网络访问(ZTNA)。
implementing-zero-trust-network-access-with-zscaler
使用 Zscaler 实施零信任网络访问(Zero Trust Network Access,ZTNA),通过 Zscaler Private Access(ZPA)配置应用分段、访问策略和连接器,替代传统 VPN 架构
implementing-ticketing-system-for-incidents
实施集成事件工单系统,将 SIEM 告警对接 ServiceNow、Jira 或 TheHive, 用于结构化事件跟踪、SLA 管理、升级工作流和合规文档记录。 适用于 SOC 团队需要通过自动化工单创建、分配路由和解决跟踪来规范事件生命周期管理时。