关于 analyzing-network-traffic-for-incidents
面向安全事件调查的网络流量分析技能,提供使用数据包捕获和网络元数据的流程。内容涵盖 C2 检测、横向移动、数据外传及证据报告。
主要功能
- 01分析 PCAP 和网络元数据
- 02检测 C2 信标通信
- 03追踪横向移动
- 04分析数据外传
- 05提取 IOC 并编写报告
适用场景
- 01确认疑似 C2 活动
- 02量化网络传出的数据
- 03追踪内部系统间的移动
- 04用数据包证据验证 IDS/IPS 告警
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill analyzing-network-traffic-for-incidents安装后在 Claude Code 中输入/analyzing-network-traffic-for-incidents确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/api-reference.mdscripts/agent.py详细介绍
分析网络流量以调查事件
适用场景
- SIEM 针对异常网络流量模式发出警报,需要深入调查
- 怀疑存在 C2 信标通信,需要通过数据包级分析确认
- 需要根据网络证据量化数据外泄的流量或目标
- 需要通过网络连接追踪系统之间的横向移动
- IDS/IPS 警报需要通过数据包级验证来确认或排除
请勿用于基于主机的取证分析(进程执行、文件系统痕迹);请改用端点取证工具。
前提条件
- 完整数据包捕获(PCAP)基础设施或按需捕获能力(网络分路器、SPAN 端口)
- 分析工作站已安装 Wireshark,并掌握相应的显示过滤器知识
- 已部署 Zeek(原名 Bro),用于生成网络元数据(conn.log、dns.log、http.log、ssl.log)
- 从网络设备收集 NetFlow/IPFIX 数据,以分析流量
- 网络架构图,显示 VLAN 布局、防火墙位置和监控点
- 用于关联已观测网络指标的威胁情报源
工作流
步骤 1:捕获或获取网络流量
获取与调查相关的流量数据:
实时捕获(如果事件正在发生):
# Capture on specific interface filtering by host
tcpdump -i eth0 -w capture.pcap host 10.1.5.42
# Capture C2 traffic to specific external IP
tcpdump -i eth0 -w c2_traffic.pcap host 185.220.101.42
# Capture with rotation (1GB files, keep 10)
tcpdump -i eth0 -w capture_%Y%m%d%H%M.pcap -C 1000 -W 10
从现有基础设施获取:
- 从完整数据包捕获设备(Arkime/Moloch、ExtraHop、Corelight)导出 PCAP
- 从 Zeek 集群提取调查时间段内的 Zeek 日志
- 从网络设备导出 NetFlow 数据,以进行高层级流量分析
步骤 2:识别 C2 通信
检测命令与控制流量模式:
信标通信检测(Zeek conn.log):
# Extract connections to external IPs with regular intervals
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 信标分析:
# Filter for traffic to suspected C2 IP
ip.addr == 185.220.101.42
# Filter HTTPS traffic to non-standard ports
tcp.port != 443 && ssl
# Filter DNS queries for suspicious domains
dns.qry.name contains "evil" or dns.qry.name matches "^[a-z0-9]{32}\."
# Filter HTTP POST (common C2 check-in method)
http.request.method == "POST" && ip.dst == 185.220.101.42
需要识别的信标通信特征:
- 连接之间的时间间隔规律(例如,每 60 秒一次,抖动为 10-15%)
- 请求和响应中的数据包大小一致
- 通过 HTTPS 连接到未关联合法 CDN 或服务的外部 IP
- 查询具有高熵子域名的 DNS(DNS 隧道指标)
步骤 3:分析横向移动流量
追踪攻击者在内部系统之间的移动:
Key protocols for lateral movement detection:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SMB (TCP 445): PsExec, file share access, ransomware propagation
RDP (TCP 3389): Remote desktop sessions
WinRM (TCP 5985): PowerShell remoting
WMI (TCP 135): Remote command execution
SSH (TCP 22): Linux lateral movement
DCE/RPC (TCP 135): DCOM-based lateral movement
用于检测横向移动的 Wireshark 过滤器:
# SMB lateral movement
smb2 && ip.src == 10.1.5.42 && ip.dst != 10.1.5.42
# RDP connections from compromised host
tcp.dstport == 3389 && ip.src == 10.1.5.42
# Kerberos ticket requests (potential pass-the-ticket)
kerberos.msg_type == 12 && ip.src == 10.1.5.42
# NTLM authentication (potential pass-the-hash)
ntlmssp.auth.username && ip.src == 10.1.5.42
步骤 4:检测数据外泄
识别未经授权、流出网络的数据传输:
# Identify large outbound transfers in 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 tunneling detection (high volume of TXT queries)
cat dns.log | zeek-cut query qtype | grep TXT | cut -f1 \
| rev | cut -d. -f1,2 | rev | sort | uniq -c | sort -rn | head
# Unusual protocol usage (ICMP tunneling, DNS over HTTPS)
cat conn.log | zeek-cut proto id.resp_p orig_bytes | awk '$1 == "icmp" && $3 > 1000'
用于检测数据外泄的 Wireshark 过滤器:
# Large HTTP POST uploads
http.request.method == "POST" && tcp.len > 10000
# FTP data transfers
ftp-data && ip.src == 10.0.0.0/8
# DNS with large TXT responses (tunneling)
dns.resp.type == 16 && dns.resp.len > 200
步骤 5:提取并关联 IOC
从流量分析中提取基于网络的指标:
- 受感染主机连接过的外部 IP 地址
- 事件时间段内通过 DNS 解析的域名
- 通过 HTTP/HTTPS 访问的 URL(如果启用了 SSL 检查)
- TLS 证书详情(主题、颁发者、序列号、JA3/JA3S 哈希)
- HTTP 请求中的 User-Agent 字符串
- PCAP 中捕获的文件传输(使用 Wireshark Export Objects 提取)
步骤 6:记录网络取证发现
整理分析结果,形成包含证据引用的结构化报告:
- 为每项发现注明具体的 PCAP 文件、帧编号和时间戳
- 将关键证据的数据包捕获内容作为屏幕截图或导出的 PDF 附上
- 将网络活动映射到事件时间线
- 将网络发现与端点取证中的基于主机的证据相关联
关键概念
| 术语 | 定义 |
|---|---|
| PCAP(数据包捕获) | 一种文件格式,用于存储从网络接口捕获的原始网络数据包,以供离线分析 |
| 信标通信 | 受感染主机定期与 C2 服务建立的网络连接,可通过一致的时间间隔识别 |
| JA3/JA3S | 基于 ClientHello 和 ServerHello 参数对 TLS 客户端和服务器进行指纹识别的方法;每种应用程序的指纹都独一无二 |
| NetFlow/IPFIX | 路由器和交换机收集的网络流量元数据(源地址、目标地址、端口、字节数、持续时间),无需完整捕获数据包 |
| DNS 隧道 | 将数据编码到 DNS 查询和响应中的技术,用于通过 DNS 协议外传数据或维持 C2 通信 |
| 网络分流器 | 一种硬件设备,可精确复制网络流量以供监控,且不会影响网络性能 |
| Zeek 日志 | 由 Zeek 网络分析框架生成的结构化元数据日志,涵盖连接、DNS、HTTP、SSL 等信息 |
工具与系统
- Wireshark:开源数据包分析器,可在数据包级别深入检查网络协议
- Zeek(前身为 Bro):网络分析框架,可从实时流量或捕获的流量生成结构化元数据日志
- Arkime(前身为 Moloch):开源全量数据包捕获与搜索平台,适用于大规模网络取证
- NetworkMiner:网络取证分析工具,可从 PCAP 文件中提取文件、图像和凭据
- RITA(Real Intelligence Threat Analytics):开源信标检测和 DNS 隧道分析工具,可分析 Zeek 日志
常见场景
场景:确认 C2 信标通信并量化数据外传量
背景:EDR 在工作站上检测到可疑进程,但无法确定外传数据的数量。网络团队提供了覆盖事件时间段的全量数据包捕获设备生成的 PCAP。
处理方法:
- 筛选 PCAP,保留从受感染主机 IP 发往外部目标的流量
- 通过分析连接时间模式识别 C2 通道(信标检测)
- 从 C2 连接中提取 TLS 证书和 JA3 哈希,用于生成 IOC
- 计算事件期间传输到 C2 基础设施的总字节数
- 检查是否存在其他数据外传通道(DNS 隧道、云存储上传)
- 使用 Wireshark 的“导出对象”功能提取传输的未加密文件
注意事项:
- 只分析 HTTP 流量,而 C2 实际通过 HTTPS 运行且未进行 SSL 检查
- 因为每次查询的数据量很小而漏掉 DNS 隧道(但长期累计数据量可能很大)
- 未将网络时间戳与终端时间戳关联起来(时区不匹配)
- 忽视被滥用于数据外传的合法云服务(OneDrive、Google Drive、Dropbox)
输出格式
NETWORK TRAFFIC ANALYSIS REPORT
=================================
Incident: INC-2025-1547
Analyst: [Name]
Capture Source: Arkime full packet capture
Analysis Period: 2025-11-15 14:00 UTC - 2025-11-15 18:00 UTC
Total PCAP Size: 4.7 GB
C2 COMMUNICATIONS
Source: 10.1.5.42 (WKSTN-042)
Destination: 185.220.101.42:443 (HTTPS)
Beacon Interval: 60 seconds ± 12% jitter
Sessions: 237 connections over 4 hours
JA3 Hash: a0e9f5d64349fb13191bc781f81f42e1
TLS Certificate: CN=update.evil[.]com (self-signed)
Total Data Sent: 147 MB (outbound)
Total Data Recv: 2.3 MB (inbound - commands)
LATERAL MOVEMENT
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
EXFILTRATION SUMMARY
Protocol: HTTPS to C2 server
Volume: 147 MB outbound
Duration: 14:23 UTC - 18:00 UTC
Files Extracted: [list if recoverable from unencrypted channels]
DNS ANALYSIS
Suspicious Queries: 0 DNS tunneling indicators
DGA Detection: 0 algorithmically generated domains
EVIDENCE REFERENCES
PCAP File: INC-2025-1547_capture.pcap (SHA-256: ...)
Zeek Logs: /logs/zeek/2025-11-15/ (conn.log, ssl.log, dns.log)
评论
支持 Markdown