Exemplos práticos de Tcpdump? [fechadas]

6

Eu quero coletar exemplos do tcpdump, o maior número possível!

Por exemplo: como filtrar senhas de FTP em eth0; OU como filtrar erros HTTP 404, etc.

    
por LanceBaynes 20.05.2011 / 06:31

5 respostas

4

Ele não faz nenhuma filtragem, mas este exemplo cria um prático sniffer de pacotes contínuo:

tcpdump -n -C 128 -W 100 -z /home/user/compress_logs.pl -i br0 -w /home/user/packetlogs/packetlog.pcap &
  • -n não faz pesquisa reversa em IPs, não converte números de porta em descrições de texto, não converte endereços MAC em nomes, etc.
  • -C 128 rotaciona arquivos de captura a cada 128.000.000 bytes
  • -W 100 limita o número de arquivos de captura que estão sendo rotacionados (consulte -C ) para 100
  • -z /home/user/compress_logs.pl run script compress_logs.pl em cada arquivo de captura rotacionado
  • -i br0 capture na interface br0
  • -w /home/user/packetlogs/packetlog.pcap use o nome do arquivo /home/user/packetlogs/packetlog.pcap
  • & isto é analisado por bash; indica que o comando deve ser executado em segundo plano (de forma assíncrona)

Coloque em /etc/rc.local para executar na inicialização. Ele captura todos os pacotes na interface br0 , que podem ser duas interfaces in-line como uma conexão ou duas interfaces conectadas a uma derivação passiva ou uma interface conectada a uma porta de switch espelhada (usei todas as três na prática)

Escreve ~ 128MB de arquivos e roda automaticamente até 100 deles. Quando capturar 128 MB de dados, ele fechará o arquivo, abrirá um novo e bifará o comando especificado com o nome do arquivo antigo como um argumento - nesse caso, um pequeno script Perl que comprime o arquivo de captura anterior para uma transferência mais rápida do IDS servidor.

Eu uso isso quando preciso monitorar uma conexão por um longo tempo (como um dia ou dois) e preciso voltar e encontrar um evento que ocorreu em um horário específico. Os arquivos pequenos são muito mais fáceis de manipular no Wireshark do que um arquivo pcap enorme.

    
por 03.06.2011 / 21:15
4

Capture somente dados HTTP POST:

tcpdump tcp[2:2] = 80 and \(tcp[20:4] = 1347375956 
or tcp[24:4] = 1347375956 
or tcp[28:4] = 1347375956 
or tcp[32:4] = 1347375956 
or tcp[36:4] = 1347375956 
or tcp[40:4] = 1347375956 
or tcp[44:4] = 1347375956 
or tcp[48:4] = 1347375956 
or tcp[52:4] = 1347375956 
or tcp[56:4] = 1347375956 
or tcp[60:4] = 1347375956\)

Um pouco incômoda, mas certamente útil. tcp[2:2] captura, a partir da posição 2 do cabeçalho TCP, 2 bytes (que são a porta, sendo a porta 80 para o tráfego HTTP).

Em seguida, queremos comparar os primeiros 4 bytes de dados TCP com 'POST'. O cabeçalho TCP tem um mínimo de 20 (decimais) bytes, mas como as opções TCP são de comprimento variável, de 0 a 40 bytes (preenchidas a um limite de 32 bits e começando em), temos que testar cada 4 bytes de 20 a 60 ( decimal). Finalmente, 1347375956 é a representação binária base10 big-endian do texto ASCII 'POST'. Use os valores abaixo para outros tipos de HTTP:

  • GET 1195725856 (inclui o espaço depois de 'GET', que é necessário porque estamos comparando com 4 bytes)
  • POST 1347375956
  • PUT 1347769376 (inclui espaço)
  • DELETE 1145392197 (apenas 'DELE', na verdade)

Para outros tipos, converta os 4 caracteres ASCII em hex (você deve usar exatamente 4 caracteres), então trate os bytes hex como um número e converta-o em decimal. Por exemplo, o POST é 50 4f 53 54 . 504f5354 convertido em decimal é 1347375956 .

    
por 04.11.2017 / 00:41
1

Capture tudo em um arquivo (para analisá-lo mais tarde com o Wireshark ou algo assim):

sudo tcpdump -i en0 -s0 -w ~/capture.pcap
  • -i en0 capture na interface en0
  • -s0 usa o pacote inteiro (não trunca - snarf 0)
  • -w ~/capture.pcap escreve no arquivo de captura de pacotes ~/capture.pcap
por 03.06.2011 / 21:04
1

Folha de dicas para fazer filtro:

link

    
por 03.06.2011 / 21:25
0

Se você deseja monitorar as solicitações de DNS dos clientes em um roteador OpenWRT:

tcpdump -n -i br-lan dst port 53
  • -n não faz pesquisa reversa em IPs, não converte números de porta em descrições de texto, não converte endereços MAC em nomes, etc.
  • -i br-lan capture na interface br-lan
  • dst port 53 filtrar a porta de destino 53, a porta para o serviço DNS
por 03.06.2011 / 21:09

Tags