TCPDump Hacker Blog Linux

Se você não possui o TCPDump, use o gerenciador de pacotes correspondente da sua distro para instalá-lo, ou baixe aqui e compile-o.

Instalação num máquina com GNU/Linux Debian:

su
apt-get install tcpdump

Aqui eu fiz um teste utilizando a seguinte estrutura:

Blog Linux

O Notebook que possui o endereço 192.168.1.3 acessará o PC 192.168.1.2 que possui o formulário, o mesmo formulário criado nesse post. A “ponte”(Gateway) para essa comunicação é um Modem/Roteador 192.168.1.1 , mesmo sem internet, ele iria permitir essa comunicação (lógico :P).

No PC vou setar o comando do TCPDump para capturar o pacote e salvar os dados num arquivo que eu chamei de pegandoasenha-tcpdump.txt (já deixei até o arquivo aberto, e só cliquei em recarregar para mostrar os dados do arquivo modificado). Então já rodei o comando e o TCPDump ficou aguardando os pacotes que o Notebook(192.168.1.3) estava enviando para o PC(192.168.1.2).

Se o PC fosse o Gateway, também dava pra pegar os dados que estava sendo enviado, pois estaria passando pelo PC, ou seja, pra você pegar os dados que estão passado pelo seu Roteador, você precisa configurá-lo com o TCPDump, blz?! O proxy também faz isso, mas isso aqui é só um teste pra saber a utulização do TCPDump! :)

No PC o comando utilizado pra isso foi:

 tcpdump -nAs0 -i eth0 'port 80' >> pegandoasenha-tcpdump.txt 

Após eu dar enter nesse comando, o TCPDump capturará todas as requisições que passem pelo meu IP. Então fui lá no Notebook e enviei os dados para o formulário. Utilizei:

Nome de usuário: pegar a senha

Senha: facil ok

Depois fui ver o arquivo e estava lá a senha.

O arquivo possui vários dados (Navegador, IP, hora, data,…) ex.:

17:40:37.142723 IP 192.168.1.3.55480 > 192.168.1.2.80: Flags [S], seq 881644111, win 29200, options [mss 1460,sackOK,TS val 662693 ecr 0,nop,wscale 7], length 0
E..<..@.@..{...........P4..O......r.V..........
.
..........
17:40:37.142778 IP 192.168.1.2.80 > 192.168.1.3.55480: Flags [S.], seq 3895379345, ack 881644112, win 28960, options [mss 1460,sackOK,TS val 1618431 ecr 662693,nop,wscale 7], length 0
E..<..@.@..f.........P......4..P..q ...........
.....
......
17:40:37.167604 IP 192.168.1.3.55480 > 192.168.1.2.80: Flags [.], ack 1, win 229, options [nop,nop,TS val 662694 ecr 1618431], length 0
E..4..@.@..............P4..P...............
.
......
17:40:37.167833 IP 192.168.1.3.55480 > 192.168.1.2.80: Flags [P.], seq 1:499, ack 1, win 229, options [nop,nop,TS val 662694 ecr 1618431], length 498
E..&..@.@..............P4..P...............
.
......POST /formulario.php HTTP/1.1
Host: 192.168.1.2
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0 Iceweasel/31.7.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://192.168.1.2/formulario.php
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 53

nome=pegar+a+senha&senha=facil+ok&enviar=Enviar+dados
17:40:37.167879 IP 192.168.1.2.80 > 192.168.1.3.55480: Flags [.], ack 499, win 235, options [nop,nop,TS val 1618437 ecr 662694], length 0
E..4w.@.@.?..........P......4..B...........
.....
..
17:40:37.170762 IP 192.168.1.2.80 > 192.168.1.3.55480: Flags [P.], seq 1:230, ack 499, win 235, options [nop,nop,TS val 1618438 ecr 662694], length 229
E...w.@.@.>..........P......4..B...........
.....
..HTTP/1.1 200 OK
Date: Sat, 18 Jul 2015 20:40:37 GMT
Server: Apache/2.4.10 (Debian)
Content-Length: 25
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8

Dados salvos com sucesso!
17:40:37.171716 IP 192.168.1.3.55480 > 192.168.1.2.80: Flags [.], ack 230, win 237, options [nop,nop,TS val 662701 ecr 1618438], length 0
E..4..@.@..............P4..B...w.....&.....
.
......
17:40:42.173212 IP 192.168.1.3.55480 > 192.168.1.2.80: Flags [F.], seq 499, ack 230, win 237, options [nop,nop,TS val 663951 ecr 1618438], length 0
E..4..@.@..............P4..B...w.....C.....
.
!.....
17:40:42.173326 IP 192.168.1.2.80 > 192.168.1.3.55480: Flags [F.], seq 230, ack 500, win 235, options [nop,nop,TS val 1619689 ecr 663951], length 0
E..4w.@.@.?..........P.....w4..C.....a.....
.....
!.
17:40:42.174337 IP 192.168.1.3.55480 > 192.168.1.2.80: Flags [.], ack 231, win 237, options [nop,nop,TS val 663951 ecr 1619689], length 0
E..4..@.@..~...........P4..C...x....._.....
.
!.....

A linha correspondente que mostra os dados que possui a senha é:

nome=pegar+a+senha&senha=facil+ok&enviar=Enviar+dados

Você pode aumentar sua produtividade utilizando mais informações, existe várias opções para o TCPDump:

Exemplo de comando tcpdump para mostrar quais as ligações de um determinado endereço tcp-ip à porta 80 do seu servidor:

tcpdump -ni eth0 src “numero ip” and dst port 80

tcpdump -i eth0

Conexões de origem podem ser monitoradas utilizando o parâmetro src host, um exemplo simples seria monitorarmos o tráfego que vem de 192.168.1.9 para nosso computador, com o ip 192.168.1.2. A linha de comando ficaria da seguinte forma:

tcpdump -i eth0 src host 192.168.1.9

Se quisermos monitorar as conexões especificando um host de destino, poderíamos fazê-lo com o parâmetro dst host, o exemplo abaixo mostra todo o tráfego do host 192.168.1.2 com 192.168.1.1, no caso, 192.168.1.1 é nosso gateway.

tcpdump -i eth0 dst host 192.168.1.1

Mais:

http://www.tcpdump.org/

https://pt.wikipedia.org/wiki/Tcpdump

http://www.imartins.com.br/informix/artigos/capturando-senha-usuarios