$npx -y skills add killvxk/cybersecurity-skills-zh --skill analyzing-network-packets-with-scapy使用 Scapy 构造、发送、嗅探和解析网络数据包,用于协议分析(protocol analysis)、网络侦察(network reconnaissance)以及在授权安全测试中进行流量异常检测
| 1 | # 使用 Scapy 分析网络数据包 |
| 2 | |
| 3 | ## 概述 |
| 4 | |
| 5 | Scapy 是一个 Python 数据包操作库,可在精细的协议层级构造、发送、嗅探和解析网络数据包。本技能涵盖将 Scapy 用于安全相关任务,包括 TCP/UDP/ICMP 数据包构造、pcap 文件分析、协议字段提取、SYN 扫描实现、DNS 查询分析,以及检测异常流量模式(如异常分片数据包或格式错误的头部)。 |
| 6 | |
| 7 | ## 前置条件 |
| 8 | |
| 9 | - Python 3.8+ 并安装 `scapy` 库(`pip install scapy`) |
| 10 | - 原始套接字操作(嗅探、发送)需要 root/管理员权限 |
| 11 | - Windows 系统需要 Npcap,Linux 系统需要 libpcap 进行数据包捕获 |
| 12 | - 获得在目标网络上执行数据包操作的授权 |
| 13 | |
| 14 | ## 步骤 |
| 15 | |
| 16 | 1. 使用 `rdpcap()` 读取和解析 pcap/pcapng 文件进行离线分析 |
| 17 | 2. 提取协议层(IP、TCP、UDP、DNS、HTTP)及字段值 |
| 18 | 3. 计算流量统计:最活跃主机、协议分布、端口频率 |
| 19 | 4. 通过分析 TCP 标志比例检测 SYN 洪水(SYN flood)模式 |
| 20 | 5. 通过查询长度和熵分析识别 DNS 外泄指标 |
| 21 | 6. 为授权网络测试构造自定义探测数据包 |
| 22 | 7. 将发现导出为结构化 JSON 报告 |
| 23 | |
| 24 | ## 预期输出 |
| 25 | |
| 26 | JSON 报告,包含数据包统计、协议分布、最活跃源/目标 IP、检测到的异常(SYN 洪水、DNS 隧道(DNS tunneling)指标、分片攻击),以及按流的摘要。 |