Zeek

Muitos profissionais da área de segurança defensiva e ofensiva costumam usar o tcpdump e Wireshark para analisar o tráfego de rede e extrair credenciais e arquivos do pcap. Em busca de uma nova ferramenta para análise de pcap encontrei o Zeek.

Esta é a descrição da ferramenta de acordo com a documentação.

Zeek é um analisador de tráfego de rede passivo e de código aberto.
Muitos operadores usam Zeek como um monitor de segurança de rede (NSM) 
para apoiar investigações de atividades suspeitas ou maliciosas. 
Zeek também oferece suporte a uma ampla gama de tarefas de análise de 
tráfego além do domínio da segurança, incluindo medição de desempenho 
e solução de problemas.

O desafio em questão é extrair credenciais FTP e um arquivo PDF de um arquivo chamado ‘invasao.pcap’ gerado por uma equipe de segurança defensiva. Ao invés de usar o Wireshark para analisar os frames, vamos usar o Zeek.

Instalando o Zeek no Kali Linux.

sudo apt install zeek

O Zeek gera arquivos .log e cada arquivo terá o seu conteúdo correspondente. O formato dos logs pode ser escolhido pelo usuário, neste caso será usado o json. Além de extrair os dados é possível extrair os arquivos passando como parâmetro o ‘path’ do seu plugin de extração.

zeek -C -r invasao.pcap LogAscii::use_json=T /usr/share/zeek/policy/frameworks/files/extract-all-files.zeek

Na imagem abaixo vemos os arquivos gerados pelo Zeek e um diretório ‘extract_files’ com todos os arquivos que ele extraiu do pcap.

Diretório com arquivos log

Por padrão o Zeek não mostra as senhas FTP em texto plano, então é necessário alterar o seu arquivo de configuração.

sudo vi /usr/share/zeek/base/protocols/ftp/info.zeek

Alterar a linha abaixo de ‘F’ (false) para ‘T’ (true).

info.zeek

Para visualizar os dados no formato json e de forma colorida pelo terminal é necessário instalar o ‘jq’.

sudo apt install jq

Com o ‘jq’ podemos visualizar o conteúdo do arquivo ftp.log e as credenciais FTP.

jq . ftp.log
ftp.log

Agora podemos acessar a pasta ‘extract_files’ e conferir os arquivos extraídos. O arquivo sensível é um PDF, então podemos listar os arquivos e identificá-lo pelo seu maior tamanho ou pela sua fuid.

ls -lah
Listando arquivos

Identificando o arquivo PDF com o comando ‘file’.

Listando arquivos

Com o arquivo identificado, basta renomeá-lo.

mv extract-1569431588.592514-FTP_DATA-FHlq6m1Wa75SNeFFFf documento.pdf

Abrindo o documento.pdf.

documento.pdf

Neste artigo foi demonstrado como o Zeek pode ser útil para extrair informações confidenciais e arquivos sensíveis de arquivos pcap. Muito recomendado para Blue Team, Red Team, Forensis e CTF Players.

Até a próxima!