hacktricks/generic-methodologies-and-resources/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md

7.8 KiB

Truques do Wireshark

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Suporte ao HackTricks
{% endhint %}

Melhore suas habilidades no Wireshark

Tutoriais

Os seguintes tutoriais são incríveis para aprender alguns truques básicos legais:

Informações Analisadas

Informações do Especialista

Clicando em Analisar --> Informações do Especialista você terá uma visão geral do que está acontecendo nos pacotes analisados:

Endereços Resolvidos

Em Estatísticas --> Endereços Resolvidos você pode encontrar várias informações que foram "resolvidas" pelo wireshark, como porta/transporte para protocolo, MAC para o fabricante, etc. É interessante saber o que está implicado na comunicação.

Hierarquia de Protocolos

Em Estatísticas --> Hierarquia de Protocolos você pode encontrar os protocolos envolvidos na comunicação e dados sobre eles.

Conversas

Em Estatísticas --> Conversas você pode encontrar um resumo das conversas na comunicação e dados sobre elas.

Pontos Finais

Em Estatísticas --> Pontos Finais você pode encontrar um resumo dos pontos finais na comunicação e dados sobre cada um deles.

Informações DNS

Em Estatísticas --> DNS você pode encontrar estatísticas sobre a solicitação DNS capturada.

Gráfico I/O

Em Estatísticas --> Gráfico I/O você pode encontrar um gráfico da comunicação.

Filtros

Aqui você pode encontrar filtros do wireshark dependendo do protocolo: https://www.wireshark.org/docs/dfref/
Outros filtros interessantes:

  • (http.request or ssl.handshake.type == 1) and !(udp.port eq 1900)
  • Tráfego HTTP e HTTPS inicial
  • (http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)
  • Tráfego HTTP e HTTPS inicial + TCP SYN
  • (http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)
  • Tráfego HTTP e HTTPS inicial + TCP SYN + solicitações DNS

Pesquisa

Se você quiser pesquisar por conteúdo dentro dos pacotes das sessões, pressione CTRL+f. Você pode adicionar novas camadas à barra de informações principal (No., Hora, Fonte, etc.) pressionando o botão direito e depois editando a coluna.

Laboratórios pcap gratuitos

Pratique com os desafios gratuitos de: https://www.malware-traffic-analysis.net/

Identificando Domínios

Você pode adicionar uma coluna que mostra o cabeçalho Host HTTP:

E uma coluna que adiciona o nome do Servidor de uma conexão HTTPS iniciada (ssl.handshake.type == 1):

Identificando nomes de host locais

Do DHCP

No Wireshark atual, em vez de bootp, você precisa procurar por DHCP

Do NBNS

Decriptando TLS

Decriptando tráfego https com a chave privada do servidor

edit>preferência>protocolo>ssl>

Pressione Editar e adicione todos os dados do servidor e a chave privada (IP, Porta, Protocolo, Arquivo de chave e senha)

Decriptando tráfego https com chaves de sessão simétricas

Tanto o Firefox quanto o Chrome têm a capacidade de registrar chaves de sessão TLS, que podem ser usadas com o Wireshark para decriptar tráfego TLS. Isso permite uma análise aprofundada das comunicações seguras. Mais detalhes sobre como realizar essa decriptação podem ser encontrados em um guia na Red Flag Security.

Para detectar isso, procure dentro do ambiente pela variável SSLKEYLOGFILE

Um arquivo de chaves compartilhadas terá a seguinte aparência:

Para importar isso no wireshark, vá para _editar > preferência > protocolo > ssl > e importe-o no nome do arquivo de log (Pre)-Master-Secret:

Comunicação ADB

Extraia um APK de uma comunicação ADB onde o APK foi enviado:

from scapy.all import *

pcap = rdpcap("final2.pcapng")

def rm_data(data):
splitted = data.split(b"DATA")
if len(splitted) == 1:
return data
else:
return splitted[0]+splitted[1][4:]

all_bytes = b""
for pkt in pcap:
if Raw in pkt:
a = pkt[Raw]
if b"WRTE" == bytes(a)[:4]:
all_bytes += rm_data(bytes(a)[24:])
else:
all_bytes += rm_data(bytes(a))
print(all_bytes)

f = open('all_bytes.data', 'w+b')
f.write(all_bytes)
f.close()

{% hint style="success" %} Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}