Skip to content
03/03/2009 / Thiago

Contar Endereços IP em Logs do Tcpdump

Problema simples: contar os endereços distintos que existem em um dump criado pelo tcpdump. Melhor solução, pelo menos ao meu ver, era correr para o Shell Script. Tenho que admitir que é uma das linguagens mais simples e flexíveis que conheço. Não sou nenhum bom entendedor, mas sei fazer alguma coisa quando possível. Vamos fazer o desafio proposto então.

O arquivo padrão do tcpdump é um formato binário um pouco difícil de trabalhar. Como o tempo para mim não é um problema, resolvi apelar para uma ferramenta bem interessante: o tcpreplay. O que ele faz? Simplesmente mostra em um formato humano o conteúdo existente no dump. Ele demora a trabalhar um pouco quando o arquivo é realmente grande. Vamos ao comando.

$ tcpreplay -v -i eth0 original.dump > convertido.txt

A sintaxe do comando é igual a do tcpdump. Precisamos especificar a interface de rede a qual será verificada no arquivo de dump. O arquivo que iremos trabalhar é o “convertido.txt”.

O comando para contar tudo? Veja abaixo.

$ grep “[0-9]\{1,3\}\.\{1\}[0-9]\{1,3\}\.\{1\}[0-9]\{1,3\}\.\{1\}[0-9]\{1,3\} ” convertido.txt | cut -f 3 -d’ ‘ | cut -f1,2,3,4 -d’.’ | sort | uniq | wc -l

O resultado será apenas o número de endereços distintos existentes na coluna de origem. Percebam que este pequeno script apenas conta uma coluna. Caso queira contar em ambas as colunas eu recomendo uma abordagem um pouco diferente, trabalhando com arquivos intermediários e depois comparando-os. Se souberer de alguma solução, fique a vontade para exibi-la aqui, se achar necessário.🙂

Abraço a todos!

3 Comentários

Deixe um comentário
  1. andreyevbr / mar 4 2009 0:47

    Antes de tudo, parabéns pelo blog!

    Eu testei assim:

    $ grep -Eo “([0-9]{1,3}\.){3}[0-9]{1,3}” convertido.txt | sort -u | wc -l

    E parece que também funcionou…😀

    BTW, isso não aceita estritamente endereços IP, uma vez que aceitaria 999.999.999.999… Acho que isso “(([0-1][0-9]{2}|2([0-4][0-9]|5[0-6]))\.){3}([0-1][0-9]{2}|2([0-4][0-9]|5[0-6]))” seria preciso, embora talvez seja preciosismo demais… não?

  2. Leoanrdo Borges / ago 2 2009 3:56

    Oi thiGu..tudo bem?
    bom cara li seu post sobre mac times e achei interessante, pois estou desenvolvendo um projeto em que preciso coletar as informações que os MAC TIMES criam. você consegue me auxiliar me informando em quais logs é granvado estas informações.??

    meu sistema deve fazer um mapeamento de usuario… buscando todas as informações possivel … como: nome de usuário, arquivos removidos e criados ou apenas modificados, permissão de usuario, enfim monitorar o que o usuario esta fazendo.

    Agradeço muito se puder me adjudar..
    E mais uma vez parabenizo, pois o fórum esta bacana..

    att, Loenardo Borges

  3. Joao / jun 12 2010 19:08

    http://rapidshare.com/files/398289904/WordListGenerator.exe

    melhor gerador de wordlists quem tem por ai

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: