Pcap Inspection

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.

Uma nota sobre PCAP vs PCAPNG: existem duas versões do formato de arquivo PCAP; PCAPNG é mais recente e não é suportado por todas as ferramentas. Você pode precisar converter um arquivo de PCAPNG para PCAP usando o Wireshark ou outra ferramenta compatível, para trabalhar com ele em algumas outras ferramentas.

Ferramentas online para pcaps

Extrair Informações

As seguintes ferramentas são úteis para extrair estatísticas, arquivos, etc.

Wireshark

Se você for analisar um PCAP, basicamente deve saber como usar o Wireshark

Você pode encontrar alguns truques do Wireshark em:

pageWireshark tricks

Xplico Framework

Xplico (apenas linux) pode analisar um pcap e extrair informações dele. Por exemplo, a partir de um arquivo pcap, o Xplico extrai cada e-mail (protocolos POP, IMAP e SMTP), todos os conteúdos HTTP, cada chamada VoIP (SIP), FTP, TFTP, e assim por diante.

Instalar

sudo bash -c 'echo "deb http://repo.xplico.org/ $(lsb_release -s -c) main" /etc/apt/sources.list'
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 791C25CE
sudo apt-get update
sudo apt-get install xplico

Executar

/etc/init.d/apache2 restart
/etc/init.d/xplico start

Acesse 127.0.0.1:9876 com credenciais xplico:xplico

Em seguida, crie um novo caso, crie uma nova sessão dentro do caso e faça upload do arquivo pcap.

NetworkMiner

Assim como o Xplico, é uma ferramenta para analisar e extrair objetos de pcaps. Possui uma edição gratuita que você pode baixar aqui. Funciona com Windows. Esta ferramenta também é útil para obter outras informações analisadas dos pacotes para poder saber o que estava acontecendo de forma mais rápida.

NetWitness Investigator

Você pode baixar o NetWitness Investigator aqui (Funciona no Windows). Esta é outra ferramenta útil que analisa os pacotes e organiza as informações de forma útil para saber o que está acontecendo internamente.

  • Extrair e codificar nomes de usuário e senhas (HTTP, FTP, Telnet, IMAP, SMTP...)

  • Extrair hashes de autenticação e quebrá-los usando o Hashcat (Kerberos, NTLM, CRAM-MD5, HTTP-Digest...)

  • Construir um diagrama visual de rede (Nós de rede e usuários)

  • Extrair consultas DNS

  • Reconstruir todas as sessões TCP & UDP

  • Esculpir arquivos

Capinfos

capinfos capture.pcap

Ngrep

Se você está procurando por algo dentro do pcap, você pode usar o ngrep. Aqui está um exemplo usando os filtros principais:

ngrep -I packets.pcap "^GET" "port 80 and tcp and host 192.168 and dst host 192.168 and src host 192.168"

Esculpir

O uso de técnicas comuns de escultura pode ser útil para extrair arquivos e informações do pcap:

pageFile/Data Carving & Recovery Tools

Capturando credenciais

Você pode usar ferramentas como https://github.com/lgandx/PCredz para analisar credenciais de um pcap ou de uma interface ao vivo.

RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.

Verificar Exploits/Malware

Suricata

Instalação e configuração

apt-get install suricata
apt-get install oinkmaster
echo "url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz" >> /etc/oinkmaster.conf
oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules

Verificar pcap

suricata -r packets.pcap -c /etc/suricata/suricata.yaml -k none -v -l log

YaraPcap

YaraPCAP é uma ferramenta que

  • Lê um arquivo PCAP e extrai fluxos Http.

  • Descomprime qualquer fluxo comprimido com gzip.

  • Escaneia cada arquivo com yara.

  • Escreve um report.txt.

  • Opcionalmente salva arquivos correspondentes em um diretório.

Análise de Malware

Verifique se consegue encontrar alguma impressão digital de um malware conhecido:

pageMalware Analysis

Zeek

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

Basicamente, os logs criados pelo zeek não são pcaps. Portanto, você precisará usar outras ferramentas para analisar os logs onde as informações sobre os pcaps estão.

#Get info about longest connections (add "grep udp" to see only udp traffic)
#The longest connection might be of malware (constant reverse shell?)
cat conn.log | zeek-cut id.orig_h id.orig_p id.resp_h id.resp_p proto service duration | sort -nrk 7 | head -n 10

10.55.100.100   49778   65.52.108.225   443     tcp     -       86222.365445
10.55.100.107   56099   111.221.29.113  443     tcp     -       86220.126151
10.55.100.110   60168   40.77.229.82    443     tcp     -       86160.119664


#Improve the metrics by summing up the total duration time for connections that have the same destination IP and Port.
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto duration | awk 'BEGIN{ FS="\t" } { arr[$1 FS $2 FS $3 FS $4] += $5 } END{ for (key in arr) printf "%s%s%s\n", key, FS, arr[key] }' | sort -nrk 5 | head -n 10

10.55.100.100   65.52.108.225   443     tcp     86222.4
10.55.100.107   111.221.29.113  443     tcp     86220.1
10.55.100.110   40.77.229.82    443     tcp     86160.1

#Get the number of connections summed up per each line
cat conn.log | zeek-cut id.orig_h id.resp_h duration | awk 'BEGIN{ FS="\t" } { arr[$1 FS $2] += $3; count[$1 FS $2] += 1 } END{ for (key in arr) printf "%s%s%s%s%s\n", key, FS, count[key], FS, arr[key] }' | sort -nrk 4 | head -n 10

10.55.100.100   65.52.108.225   1       86222.4
10.55.100.107   111.221.29.113  1       86220.1
10.55.100.110   40.77.229.82    134       86160.1

#Check if any IP is connecting to 1.1.1.1
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto service | grep '1.1.1.1' | sort | uniq -c

#Get number of connections per source IP, dest IP and dest Port
cat conn.log | zeek-cut id.orig_h id.resp_h id.resp_p proto | awk 'BEGIN{ FS="\t" } { arr[$1 FS $2 FS $3 FS $4] += 1 } END{ for (key in arr) printf "%s%s%s\n", key, FS, arr[key] }' | sort -nrk 5 | head -n 10


# RITA
#Something similar can be done with the tool rita
rita show-long-connections -H --limit 10 zeek_logs

+---------------+----------------+--------------------------+----------------+
|   SOURCE IP   | DESTINATION IP | DSTPORT:PROTOCOL:SERVICE |    DURATION    |
+---------------+----------------+--------------------------+----------------+
| 10.55.100.100 | 65.52.108.225  | 443:tcp:-                | 23h57m2.3655s  |
| 10.55.100.107 | 111.221.29.113 | 443:tcp:-                | 23h57m0.1262s  |
| 10.55.100.110 | 40.77.229.82   | 443:tcp:-                | 23h56m0.1197s  |

#Get connections info from rita
rita show-beacons zeek_logs | head -n 10
Score,Source IP,Destination IP,Connections,Avg Bytes,Intvl Range,Size Range,Top Intvl,Top Size,Top Intvl Count,Top Size Count,Intvl Skew,Size Skew,Intvl Dispersion,Size Dispersion
1,192.168.88.2,165.227.88.15,108858,197,860,182,1,89,53341,108319,0,0,0,0
1,10.55.100.111,165.227.216.194,20054,92,29,52,1,52,7774,20053,0,0,0,0
0.838,10.55.200.10,205.251.194.64,210,69,29398,4,300,70,109,205,0,0,0,0

Informações de DNS

#Get info about each DNS request performed
cat dns.log | zeek-cut -c id.orig_h query qtype_name answers

#Get the number of times each domain was requested and get the top 10
cat dns.log | zeek-cut query | sort | uniq | rev | cut -d '.' -f 1-2 | rev | sort | uniq -c | sort -nr | head -n 10

#Get all the IPs
cat dns.log | zeek-cut id.orig_h query | grep 'example\.com' | cut -f 1 | sort | uniq -c

#Sort the most common DNS record request (should be A)
cat dns.log | zeek-cut qtype_name | sort | uniq -c | sort -nr

#See top DNS domain requested with rita
rita show-exploded-dns -H --limit 10 zeek_logs

Outros truques de análise de pcap

pageDNSCat pcap analysispageWifi Pcap AnalysispageUSB Keystrokes

RootedCON é o evento de cibersegurança mais relevante na Espanha e um dos mais importantes na Europa. Com a missão de promover conhecimento técnico, este congresso é um ponto de encontro fervilhante para profissionais de tecnologia e cibersegurança em todas as disciplinas.

Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Last updated