安全与风控
授权网段下用 Wireshark/tshark…
当需要在已获授权的网络段上排查入侵、诊断网络性能、分析恶意软件通信或提取取证证据时,用 Wireshark/tshark 进行抓包、过滤、协议深挖、取证与统计。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 49/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 85/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
授权网段下用 Wireshark/tsh通用
解决思路
- 配置抓包环境:用 `tshark -D` 列出可用网卡;用 `tshark -i eth0 -f "host 10.10.5.23 and (port 80 or port 443 or port 445)" -w /tmp/capture.pcapng` 在指定接口按 BPF 抓包过滤器限定范围;用 `tshark -i eth0 -b filesize:102400 -b files:10 -w /tmp/rolling_capture.pcapng` 启用环形缓冲控制磁盘占用;用 `tshark -i eth0 -i eth1 -w /tmp/multi_interface.pcapng` 同时抓多个接口;GUI 则在 Capture Options 里先设抓包过滤器。
- 用显示过滤器做定向分析:`tshark -r capture.pcapng -Y "http.user_agent contains \"curl\" or http.user_agent contains \"Wget\""` 找可疑 UA;`-Y "dns.qry.name contains \".xyz\" or ... \".top\" or ... \".tk\""` 找可疑 TLD 查询;`-Y "tcp.analysis.retransmission"` 找重传;`-Y "smb2.cmd == 5 or smb2.cmd == 3" -T fields -e ip.src -e ip.dst -e smb2.filename` 查 SMB 横向移动;`-Y "ftp.request.command == \"PASS\" or http.authbasic"` 找明文凭据;`-Y "ip.dst == 203.0.113.50" -T fields -e frame.time_relative -e ip.src -e tcp.dstport` 检测周期性 beacon。
- 做协议级深挖:`tshark -r capture.pcapng -q -z follow,tcp,ascii,0` 重组 TCP 会话;`-Y "http" -T fields -e frame.time -e ip.src -e ip.dst -e http.request.method -e http.request.uri -e http.response.code` 分析 HTTP 请求响应;`-q -z dns,tree` 统计 DNS 查询响应;`-Y "tls.handshake.type == 2" -T fields -e ip.src -e ip.dst -e tls.handshake.ciphersuite` 检查弱加密套件;`-Y "smb2" -T fields -e frame.time -e ip.src -e ip.dst -e smb2.filename -e smb2.cmd` 枚举 SMB 文件访问。
- 提取工件与 IOC:`tshark -r capture.pcapng --export-objects http,/tmp/http_objects/` 导出 HTTP 传输文件;`--export-objects smb,/tmp/smb_objects/` 导出 SMB 文件;`-T fields -e ip.dst | sort -u > unique_dest_ips.txt` 提取唯一目的 IP 供威胁情报比对;`-Y "tls.handshake.type == 11" -T fields -e x509sat.uTF8String -e x509ce.dNSName` 提取 TLS 证书信息;`-Y "http.request" -T fields -e http.host -e http.request.uri | sort -u > urls.txt` 提取访问 URL;`find /tmp/http_objects/ -type f -exec sha256sum {} \; > extracted_file_hashes.txt` 对导出文件做哈希用于 IOC 匹配。
- 做统计与异常检测:`tshark -r capture.pcapng -q -z io,phs` 看协议层级;`-q -z conv,tcp -z conv,udp` 看会话字节数排序;`-q -z endpoints,ip` 找 top talkers;`-q -z io,stat,1,"COUNT(frame) frame"` 生成每秒包数 IO 图数据;`-Y "tcp.flags.syn == 1 and tcp.flags.ack == 0" -T fields -e ip.src -e tcp.dstport | sort | uniq -c | sort -rn | head -20` 检测端口扫描。
- 生成报告并导出证据:`tshark -r capture.pcapng -Y "ip.addr == 10.10.5.23 and tcp.port == 4444" -w evidence_c2_traffic.pcapng` 导出过滤后的证据 PCAP;`-T fields -E header=y -E separator=, -e frame.number -e frame.time -e ip.src -e ip.dst -e ip.proto -e tcp.srcport -e tcp.dstport -e frame.len > traffic_summary.csv` 生成 CSV 摘要;`-T pdml > capture_analysis.xml` 生成 XML 供程序化分析;`sha256sum capture.pcapng > capture_hash.txt` 计算哈希用于证据链。
- DNS 隧道外泄调查示例:用 `tshark -i eth2 -f "host 10.10.3.45 and port 53" -w dns_exfil_investigation.pcapng` 抓取工作站 DNS 流量;用 `-Y "dns.qry.name contains \"suspect-domain.xyz\"" -T fields -e frame.time -e dns.qry.name` 分析查询模式;用 `-Y "dns.qry.type == 16" -T fields -e dns.qry.name -e dns.txt` 检查 TXT 记录中 base64 编码子域;统计查询名长度估算外泄带宽;提取唯一查询名并解码 base64 子域恢复外泄内容;导出证据包并生成 SHA-256 哈希。
- 避免常见坑:不要无过滤抓繁忙网络导致磁盘写满;不要用显示过滤器代替抓包过滤器产生超大文件;注意 DoH/DoT 加密 DNS 会绕过 53 端口抓包;取证时必须记录抓包文件哈希与证据链。
适用边界 · 注意事项
- 未获授权时不得抓包,也不得在无法律授权下拦截私人通信
- 不能替代生产环境中的完整 SIEM 平台做持续监控
- 不熟悉 TCP/IP、HTTP、DNS、TLS、SMB 协议细节时难以有效分析