grep string de um arquivo pcap

4

Estou tentando descobrir a sintaxe de comando correta. Eu tenho um arquivo pcap, e eu quero usar grep e grep apenas para tirar todos os endereços IP uniq sem o arquivo

Supondo que o arquivo seja chamado de capture.pcap e esteja na minha pasta pessoal, o que devo escrever?

Eu assumo que o regex pode ser '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' e que sort e uniq devem ser incluídos também, mas parece que o pcap não responde bem com o grep, por exemplo, usando a sintaxe normal do grep, a palavra não funciona, se eu executar: grep 239 ./capture.pcap I obtenha o replay Binary file ./capture/pcap matches

    
por Giladiald 15.12.2013 / 21:02

2 respostas

2

Tente adicionar as opções -a ou --binary-file=text

grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap
ou
grep --binary-file=text -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap


Isso parece funcionar para um arquivo pcap aleatório que baixei do wiki.wireshark.org, ou seja,

$ grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Binary file NTLM-wenchao.pcap matches

mas

$ grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Host: 192.168.0.55
Host: 192.168.0.55
Host: 192.168.0.55
Location: http://192.168.0.55/default.aspx
MicrosoftSharePointTeamServices: 12.0.0.6421
<body><h1>Object Moved</h1>This document may be found <a HREF="http://192.168.0."_?"_Ea@yÀ¨[À¨ÃPþµû%RÑ_Pü>ÕGET /default.aspx HTTP/1.1
Host: 192.168.0.55

etc.

Esteja ciente do aviso (da página de manual man grep ) que

If TYPE is text, grep processes a binary file as if  it
were  text;  this is equivalent to the -a option.  Warning: grep
--binary-files=text might output binary garbage, which can  have
nasty  side  effects  if  the  output  is  a terminal and if the
terminal driver interprets some of it as commands.


Observe que, embora seja possível usar o \d regex (para d igit), ele só é suportado pelo grep no modo PCRE (ou seja, com a opção -P ).

    
por steeldriver 16.12.2013 / 02:18
0

grep funciona no texto, o arquivo .pcap é um arquivo binário, o que significa usando apenas o grep você não pode fazer o que quiser. O formato de arquivo .pcap Com usando somente o grep você só pode encontrar esses IP-s no arquivo .pcap, que estão na seção de dados do pacote. (por exemplo, o arquivo de captura contém os pacotes de um download de página da Web, onde a página da Web é sobre IP-s) Então, para ser curto, usando apenas grep você não pode fazer isso.

Mas por que você tem que usar apenas o grep? Isso é algum tipo de lição de casa? (Eu respondi a uma pergunta muito semelhante há 3 dias.

    
por falconer 15.12.2013 / 22:36

Tags