Se você estiver interessado apenas no registro de data e hora dos pacotes, poderá fazer um snapshot de um único pacote em hexadecimal e replicá-lo, alterando apenas o timestamp, usando text2pcap
, que geralmente está no mesmo pacote que wireshark.
Por exemplo, usei tcpdump -XX
para capturar alguns pacotes artibrary e escolhi um tcp curto do dump ascii:
16:51:27.374569 IP 192.168.0.21.nut > 192.168.0.20.53910: Flags [R.] ...
0x0000: b827 0099 9999 80ee 7399 9999 0800 4500 ................
0x0010: 0028 06e4 4000 4006 b272 c0a8 0015 c0a8 .(..@[email protected]......
0x0020: 0014 0da5 d296 0000 0000 ee15 7872 5014 ............xrP.
0x0030: 0000 e792 0000 ......
Você pode filtrar isso com um pouco de awk para obter o despejo no formato desejado por text2pcap
, a saber:
awk '$1~/0x/ { $0 = substr($0,1,50); for(i=2;i<=9;i++)s = s $i }
END { gsub(/../,"& ",s); print "0000 " s }'
Defina a variável mypacket
para o resultado:
mypacket='0000 b8 27 00 99 99 99 80 ee 73 99 99 99 08 00 45 00 00 28 06 e4 40 00 40 06 b2 72 c0 a8 00 15 c0 a8 00 14 0d a5 d2 96 00 00 00 00 ee 15 78 72 50 14 00 00 e7 92 00 00'
Em seguida, use outro awk para tomar o tempo da coluna 1 de cada linha do arquivo de dados e prefixar o mesmo pacote, dizendo ao programa de conversão para extrair este registro de data e hora no formato fornecido e convertê-lo em formato pcap. para wireshark.
awk <dump -v mypacket="$mypacket" '
/79\.xxx\.xxx\.216/ { print $1 " " mypacket }' |
text2pcap -t '%H:%M:%S.' - out.pcap
Observe o final "." na opção -t
. É necessário preservar as frações de segundos no timestamp.