executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
re-netcap网络流量捕获:tcpdump/Wireshark/抓包。 触发词:抓包、tcpdump、wireshark、流量分析、pcap
Independent GitHub snapshot · Automated classification · Original documentation governs
tcpdump -i any -c N 一次搞定,不必搭全流程)所有工具先验证再使用。运行样本抓包默认在沙箱内([[re-sandbox]] 网络隔离,[[re-analyze/platform-tips]] 最高原则)——捕获环境与隔离环境要同时就绪。
apt install tcpdump / dnf install tcpdump / pacman -S tcpdumpbrew install tcpdump(或系统自带版本)tcpdump --version;tcpdump -D 列出接口apt install wireshark tshark / dnf install wireshark-cli wireshark / pacman -S wireshark-cli wireshark-qt(Arch 已拆分为 wireshark-cli + wireshark-qt;Debian 安装时选"允许非 root 抓包",或 sudo dpkg-reconfigure wireshark-common 后把用户加入 wireshark 组)brew install --cask wireshark(含 tshark CLI;或 brew install wireshark 仅 CLI)choco install wireshark(或官方安装包);WSL 内用 Linux 版tshark --version;tshark -D 列出接口;dumpcap -Dcapinfos(pcap 元信息:包数/时长/截断)、mergecap(合并)、editcap(切分/去重/改写时间戳),随 Wireshark 一起安装pip install mitmproxy(当前 12.x 要求 Python >=3.12;旧 Python 环境需 pin 对应的旧版本)brew install mitmproxymitmproxy --version;mitmdump --versionapt install iptables libnetfilter-queue1 python3-netfilterqueue / dnf install iptables libnetfilter_queue-devel python3-netfilterqueue / pacman -S iptables libnetfilter_queue python-netfilterqueue;或 pip install NetfilterQueue(需内核 nfnetlink_queue 支持)python3 -c "from netfilterqueue import NetfilterQueue";iptables -L -n | grep -i NFQUEUE 能看到规则按顺序执行,每步记下结果。捕获产物(pcap 路径 + sha256)存档供 [[re-proto-rev]] / [[re-crypto-decrypt]] 使用。
选择抓包点(本机 / 网关 / 中间人):
tcpdump -i eth0 host <目标IP>(或 Wireshark 选接口直接抓)tcpdump -i virbr0tcpdump 过滤语法(先过滤再存盘):
sudo tcpdump -i eth0 -w out.pcap # 全量(先别这么干,见坑 4)
# 常用过滤:
sudo tcpdump -i eth0 host 1.2.3.4 -w out.pcap # 按 IP
sudo tcpdump -i eth0 port 443 -w out.pcap # 按端口
sudo tcpdump -i eth0 host 1.2.3.4 and tcp port 8080 # 组合,先屏显验证再存
sudo tcpdump -i eth0 -c 500 -w out.pcap # 限包数
and/or/not、host/port/proto、括号分组;先不带 -w 屏显验证过滤命中目标再写盘tcpdump -i eth0 '(host 1.2.3.4 or host 5.6.7.8) and not port 53' -w out.pcap-n 禁反向 DNS 解析(避免解析延迟与结果污染);-s 200 限定捕获长度(默认 262144 全包长);长时抓包加 -C 100 -W 10 按 100MB 轮转、保留 10 个文件防爆盘tshark 导出与统计(从已有 pcap 提取关键流):
tshark -r out.pcap -T fields -e ip.src -e ip.dst -e tcp.dstport | sort | uniq -c | sort -rn # 会话统计(目标端口字段名是 tcp.dstport / tcp.port,不存在 tcp.dport 字段)
tshark -r out.pcap -Y 'http.request' -T fields -e http.host -e http.request.uri # 只看 HTTP 请求
tshark -r out.pcap -Y 'tls.handshake.type == 1' -T fields -e tls.handshake.extensions_server_name # SNI
tshark -r out.pcap -q -z conv,tcp -z io,phs # 会话表 + 协议层级统计(-q 静默,只出统计)
tshark -r out.pcap -T json -e ip.src -e dns.qry.name -Y dns | jq . # JSON 输出(脚本后续处理)
tshark -r out.pcap -w filtered.pcap -Y 'ip.addr == 1.2.3.4' # 按显示过滤导出子集(display filter 语法,`host` 是 BPF 捕获语法不适用)
capinfos out.pcap # pcap 元信息:包数/时长/是否截断
tshark -G fields | grep <关键字> 核验为准——写错字段名 tshark 直接报 "Some fields aren't valid",不会静默HTTPS 解密准备(mitmproxy CA):
mitmproxy -p 8080 --mode transparent # 透明模式(配合步骤 5 的 nat REDIRECT 引流)
# 或
mitmproxy --set console_eventlog_verbosity=error --listen-port 8080 --mode regular # 常规代理模式
~/.mitmproxy/mitmproxy-ca-cert.pem;把该 CA 装进目标系统/进程信任库(沙箱内 cp mitmproxy-ca-cert.pem /usr/local/share/ca-certificates/ && update-ca-certificates)HTTP_PROXY/HTTPS_PROXY 环境变量或系统代理;不走代理的进程用透明模式沙箱内隔离抓包([[re-sandbox]] 网络隔离):
--net=none):样本根本无法回连——要抓 C2 就不能纯断网sudo iptables -P FORWARD DROP # 默认拒绝转发(或等价的路由/防火墙策略)
sudo iptables -A FORWARD -d <INetSim_IP> -j ACCEPT # 只放行到分析基础设施
sudo iptables -A FORWARD -s <INetSim_IP> -j ACCEPT
tcpdump -i eth0 -w c2.pcap),同时拿到样本请求与模拟响应——C2 分析标准做法ping 不通不构成任何一条(ICMP 与 TCP/UDP 是不同通路,被分别放行/阻断是常态):
nc -zv <外部IP> 443 应失败nc -zuv <外部IP> 53 应失败(UDP 最常被漏测)sudo sysctl -w net.ipv4.ip_forward=1
# 明文 HTTP 与 TLS 两条都要引——只写 80 是最常见的失误:目标访问 443 时根本不会进入 mitmproxy
sudo iptables -t nat -I PREROUTING -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 8080 # 网关入口
sudo iptables -t nat -I OUTPUT -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 8080 # 本机出站(按需)
# 样本可能使用非标准 TLS 端口(8443 等)或纯明文的其它端口——按实际观测补齐,或直接对全部 TCP 引流
mitmproxy 以透明模式监听 8080 承接;分析完清理 nat 规则并还原 ip_forwardnetfilterqueue 对每个包返回 verdict),无 handler 时流量阻塞:
sudo iptables -I FORWARD -j NFQUEUE --queue-num 1 # 转发链
sudo iptables -I OUTPUT -j NFQUEUE --queue-num 1 # 本机出站(按需)
分析完需同时删除 FORWARD 与 OUTPUT 两条规则ping 不构成结论(ICMP 与 TCP/UDP 是不同通路)and/or 优先级用错);原因——BPF 语法组合错误且没先屏显验证;对策——先不带 -w 屏显跑几秒确认命中目标(IP/端口/方向都对)再写盘-c 限包数 + -s 限捕获长度,先按会话统计缩小范围再导出子集(步骤 3)