hacktricks/forensics/basic-forensic-methodology/pcap-inspection/wireshark-tricks.md
2023-06-03 13:10:46 +00:00

8.8 KiB

Astuces Wireshark

Astuces Wireshark

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Améliorez vos compétences Wireshark

Tutoriels

Les tutoriels suivants sont excellents pour apprendre quelques astuces de base intéressantes :

Informations analysées

Informations d'expert

En cliquant sur Analyze --> Expert Information, vous aurez un aperçu de ce qui se passe dans les paquets analysés :

Adresses résolues

Sous Statistics --> Resolved Addresses, vous pouvez trouver plusieurs informations qui ont été "résolues" par Wireshark, comme le port/transport vers le protocole, le MAC vers le fabricant, etc. Il est intéressant de savoir ce qui est impliqué dans la communication.

Hiérarchie des protocoles

Sous Statistics --> Protocol Hierarchy, vous pouvez trouver les protocoles impliqués dans la communication et des données à leur sujet.

Conversations

Sous Statistics --> Conversations, vous pouvez trouver un résumé des conversations dans la communication et des données à leur sujet.

Points d'extrémité

Sous Statistics --> Endpoints, vous pouvez trouver un résumé des points d'extrémité dans la communication et des données à leur sujet.

Infos DNS

Sous Statistics --> DNS, vous pouvez trouver des statistiques sur la demande DNS capturée.

Graphique I/O

Sous Statistics --> I/O Graph, vous pouvez trouver un graphique de la communication.

Filtres

Ici, vous pouvez trouver des filtres Wireshark en fonction du protocole : https://www.wireshark.org/docs/dfref/
Autres filtres intéressants :

  • (http.request or ssl.handshake.type == 1) and !(udp.port eq 1900)
    • Trafic HTTP et HTTPS initial
  • (http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002) and !(udp.port eq 1900)
    • Trafic HTTP et HTTPS initial + SYN TCP
  • (http.request or ssl.handshake.type == 1 or tcp.flags eq 0x0002 or dns) and !(udp.port eq 1900)
    • Trafic HTTP et HTTPS initial + SYN TCP + demandes DNS

Recherche

Si vous voulez rechercher du contenu à l'intérieur des paquets des sessions, appuyez sur CTRL+f. Vous pouvez ajouter de nouvelles couches à la barre d'informations principales (No., Time, Source, etc.) en appuyant sur le bouton droit, puis sur modifier la colonne.

Pratique : https://www.malware-traffic-analysis.net/

Identification des domaines

Vous pouvez ajouter une colonne qui affiche l'en-tête Host HTTP :

Et une colonne qui ajoute le nom du serveur à partir d'une connexion HTTPS initiale (ssl.handshake.type == 1) :

Identification des noms d'hôtes locaux

À partir de DHCP

Dans Wireshark actuel, au lieu de bootp, vous devez rechercher DHCP

À partir de NBNS

Déchiffrement de TLS

Déchiffrer le trafic https avec la clé privée du serveur

edit>préférence>protocole>ssl>

Cliquez sur Edit et ajoutez toutes les données du serveur et de la clé privée (IP, Port, Protocol, Key file and password)

Déchiffrer le trafic https avec des clés de session symétriques

Il s'avère que Firefox et Chrome prennent en charge tous deux l'enregistrement de la clé de session symétrique utilisée pour chiffrer le trafic TLS dans un fichier. Vous pouvez ensuite pointer Wireshark vers ledit fichier et presto ! trafic TLS déchiffré. Plus d'informations sur : https://redflagsecurity.net/2019/03/10/decrypting-tls-wireshark/
Pour détecter cela, recherchez à l'intérieur de l'environnement les variables SSLKEYLOGFILE

Un fichier de clés partagées ressemblera à ceci :

Pour importer cela dans Wireshark, allez à _edit > préférence > protocole > ssl > et importez-le dans (Pre)-Master-Secret log filename :

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()
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥