Eu uso muito tcpflow
para capturar dados transmitidos como parte de conexões TCP. Ele permite que você veja os dados transmitidos sem nenhum dos detalhes do protocolo TCP.
Existe uma maneira de realizar a mesma coisa usando tcpdump
?
Quero dizer, eu pude ver os dados transmitidos usando tcpdump
também, mas incluindo todo o conteúdo dos pacotes que eu não estou interessado. Eu só quero os dados simples sem nenhum dos detalhes do protocolo.
É isso que quero dizer:
Por exemplo, enviando um "hello world" assim:
echo "hello world" | nc localhost 8098
Usando tcpflow
, posso realizar essa saída:
sudo tcpflow -C -i any port 8098
tcpflow: listening on any
hello world
Usando tcpdump
, posso obter algo como:
sudo tcpdump -A -i any port 8098
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
15:14:36.699939 IP localhost.52524 > localhost.8098: Flags [S], seq 4067768558, win 43690, options [mss 65495,sackOK,TS val 4205840266 ecr 0,nop,wscale 7], length 0
E..<..@[email protected]..........,...u8..........0.........
............
15:14:36.699959 IP localhost.8098 > localhost.52524: Flags [S.], seq 2708887582, ack 4067768559, win 43690, options [mss 65495,sackOK,TS val 4205840266 ecr 4205840266,nop,wscale 7], length 0
E..<..@.@.<............,.vX..u8......0.........
............
15:14:36.699967 IP localhost.52524 > localhost.8098: Flags [.], ack 1, win 342, options [nop,nop,TS val 4205840266 ecr 4205840266], length 0
E..4..@[email protected]..........,...u8..vX....V.(.....
........
15:14:36.700000 IP localhost.52524 > localhost.8098: Flags [P.], seq 1:13, ack 1, win 342, options [nop,nop,TS val 4205840266 ecr 4205840266], length 12
E..@..@[email protected]..........,...u8..vX....V.4.....
........hello world
Quando tudo em que eu estava interessado era a parte "hello world".