从PCAP中提取信息

时间:2019-07-18 11:00:00

标签: linux bash command-line grep pcap

日志的格式如下。每个**周围都有括号。

03/16-08:30:05.350000 ** [1:491:8] INFO FTP Bad login ** [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 192.168.21.101:21 -> 192.168.202.102:4061

我想做的是:

  • 提取所有目标IP
  • 提取源IP /目标IP /端口对
  • 查看与源IP相关的所有事件,并从已识别的源IP获取所有目的地的计数

我刚刚提取了所有IP和端口:

grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\:[0-9]\{3,10\}' alert.pcap | sort | uniq

1 个答案:

答案 0 :(得分:0)

您在顶部显示的列表似乎来自snort或suricata警报文件。而且在pcap文件上使用grep不太可能为您提供所需的内容。

提取所需内容的正确工具可能是tshark(wireshark的命令行版本)。

提取目标IP:

tshark -r file.pcap -T fields -e ip.dst

提取TCP源,目标IP和端口:

tshark -r file.pcap -T fields -e ip.src -e tcp.srcport -e ip.dst -e tcp.dstport -Y tcp

与UDP相同:

tshark -r file.pcap -T fields -e ip.src -e udp.srcport -e ip.dst -e udp.dstport -Y udp

将以上任意一项输入sort -u以获得唯一的地址/元组。

另一种选择是以适合加载到电子表格中的格式生成包含所有内容的列表,并使用电子表格功能根据需要进行切片和切块。这样的命令行之一将产生逗号分隔值格式:

tshark -r file.pcap -E separator=, -T fields -e ip.proto -e ip.src -e tcp.srcport -e udp.srcport -e ip.dst -e tcp.dstport -e udp.dstport -Y "udp or tcp"

此处的ip.proto列对于TCP来说是6,对于UDP是17。每个IP子协议仅填充相应的src / dst端口列。