Vous êtes connecté à une machine en SSH. Pas de bureau graphique, pas de Wireshark, et quelque chose sur le réseau discute avec une adresse que personne ne sait expliquer. Apprendre à utiliser tcpdump, c'est apprendre à répondre à cette question avec le seul outil déjà installé, dans un terminal de 80 colonnes.
Tcpdump affiche des paquets. C'est tout le produit. Il le fait depuis 1988, il est présent sur presque tous les systèmes Linux et BSD sur lesquels vous vous connecterez, et il reste le moyen le plus rapide de savoir ce qu'une machine envoie réellement. C'est une compétence de base pour le penetration testing, pour la réponse à incident et pour la partie forensic de n'importe quel CTF. Ouvrez le lab Packet Pursuit dans un autre onglet pendant votre lecture : c'est un fichier de capture avec un flag réparti sur trois protocoles, et tout ce qui suit s'y applique directement.
TL;DR : tcpdump est un outil de capture de paquets en ligne de commande bâti sur libpcap. La commande que vous taperez le plus est sudo tcpdump -i eth0 -n 'tcp port 80' : choisissez une interface avec -i, coupez la résolution de noms avec -n, et mettez un filtre BPF entre guillemets simples à la fin. Ajoutez -w capture.pcap pour l'enregistrer et ouvrir ensuite le même fichier dans Wireshark. Apprendre tcpdump, c'est en réalité apprendre deux choses : lire une ligne de sortie, et écrire un filtre qui supprime tout ce qui ne vous intéresse pas.
Qu'est-ce que tcpdump ?
Tcpdump est un outil en ligne de commande qui capture les paquets d'une interface réseau et affiche un résumé d'une ligne pour chacun. Il sait aussi écrire les paquets bruts dans un fichier .pcap, le format que lit Wireshark, si bien qu'une capture prise sur un serveur sans interface graphique s'ouvre parfaitement sur votre portable.
Van Jacobson, Sally Floyd, Vern Paxson et Steven McCanne l'ont écrit en 1988 au Network Research Group du Lawrence Berkeley Laboratory. Il est sous licence BSD et repose sur libpcap, la bibliothèque de capture qui fait aussi tourner Wireshark, Nmap, Snort et Suricata. Quand on parle du "format pcap", il s'agit du fichier écrit par libpcap.
La version stable actuelle est la 4.99.6, publiée le 30 décembre 2025, et le paquet Kali la suit. Ubuntu 24.04 LTS en est encore à la 4.99.4, et pour tout ce que couvre cet article les deux se comportent de façon identique.
Une chose à clarifier tout de suite, parce qu'elle évite beaucoup de confusion ensuite.
Tcpdump ne décode pas les protocoles applicatifs comme le fait Wireshark. Il comprend très bien les en-têtes : Ethernet, IP, TCP, UDP, ICMP, DNS, ARP. Au-dessus, il vous rend surtout des octets. Pas de "Follow HTTP Stream", pas d'arbre de protocoles, pas de déroulé au clic. Ce que vous gagnez à la place, c'est la vitesse, un langage de filtrage qui s'exécute dans le noyau, et un binaire déjà présent sur la cible.
Installer tcpdump et le problème de permissions dont personne ne parle
Sur Kali, il est déjà là. Sur Debian ou Ubuntu, une seule commande :
sudo apt update
sudo apt install tcpdump
Vérifiez ce que vous avez obtenu :
tcpdump --version
tcpdump version 4.99.4
libpcap version 1.10.4 (with TPACKET_V3)
OpenSSL 3.0.13 30 Jan 2024
Capturer des paquets demande les droits root, ou les capacités de socket brut qui les accompagnent en général. Toutes les commandes de capture ci-dessous commencent donc par sudo. Si vous préférez éviter, accordez au binaire les deux capacités dont il a réellement besoin et lancez-le sous votre propre compte :
sudo setcap cap_net_raw,cap_net_admin+eip $(which tcpdump)
Vient maintenant ce qui piège presque tout le monde sur Debian et Ubuntu. Ces distributions compilent tcpdump de façon à abandonner ses privilèges après l'ouverture de l'interface, en basculant vers un compte non privilégié nommé tcpdump. La page de manuel officielle le documente sous -Z : l'identifiant utilisateur change "after opening the capture device or input savefile, but before opening any savefiles for output". Cet ordre a une conséquence. Les fichiers de sortie sont ouverts sous le compte non privilégié, donc sudo tcpdump -w /root/capture.pcap échoue avec une erreur de permission alors même que vous êtes root, et quand cela fonctionne le fichier ne vous appartient pas :
-rw-r--r-- 1 tcpdump tcpdump 3115 Sep 14 07:18 cap.pcap
En pratique : écrivez vos captures à un endroit accessible à l'utilisateur tcpdump, par exemple /tmp, puis sudo chown $USER capture.pcap si vous voulez le déplacer. Deux minutes de confusion la première fois, plus jamais ensuite.
Avant de capturer quoi que ce soit, regardez sur quoi vous pouvez capturer :
tcpdump -D
1.eth0 [Up, Running, Connected]
2.any (Pseudo-device that captures on all interfaces) [Up, Running]
3.lo [Up, Running, Loopback]
eth0 est le vrai réseau, lo est la boucle locale, là où vous observez un service parler à une base de données sur la même machine, et any capture sur tout à la fois. Commencez par any quand vous ne savez pas encore où passe le trafic.
Comment utiliser tcpdump pour votre première capture
Toutes les commandes tcpdump ont la même forme : des options, puis un filtre entre guillemets simples.
sudo tcpdump -i lo -n 'tcp port 8000'
Cela affiche une bannière puis reste en place jusqu'à ce que vous fassiez Ctrl+C :
tcpdump: listening on lo, link-type EN10MB (Ethernet), snapshot length 262144 bytes
^C
25 packets captured
50 packets received by filter
0 packets dropped by kernel
Trois compteurs à la fin, et c'est le troisième qu'il faut surveiller. "Dropped by kernel" signifie que les paquets sont arrivés plus vite que tcpdump ne pouvait les écrire et que le noyau les a jetés. Zéro, c'est ce que vous voulez. Toute autre valeur signifie que votre capture est trouée, et le remède est un filtre plus serré ou -w vers un fichier plutôt qu'un affichage dans le terminal.
Quatre options portent l'essentiel du travail :
-i eth0choisit l'interface. Utilisez-i anyen cas de doute.-nempêche tcpdump de résoudre les adresses IP en noms d'hôtes. À utiliser systématiquement. Sans cette option, chaque nouvelle adresse déclenche une requête DNS, ce qui ralentit l'affichage à l'extrême, remplit votre propre capture des requêtes que tcpdump vient de faire, et signale votre intérêt à qui gère le serveur DNS. Ajoutez-en une deuxième,-nn, pour laisser aussi les numéros de port en chiffres : vous voyez:8000plutôt qu'une supposition sur le nom du service.-c 100sort après 100 paquets. Pratique pour un coup d'œil rapide sans garder Ctrl+C en otage.-w capture.pcapécrit les paquets bruts dans un fichier au lieu de les afficher.
Il n'y a volontairement pas de -s0 dans cette liste. Les vieux tutoriels l'ajoutent pour capturer des paquets entiers plutôt que tronqués. La longueur de capture par défaut est désormais de 262144 octets, soit le paquet entier sur tout réseau normal, et la bannière ci-dessus le dit. Une commande qui traîne encore un -s0 est la copie d'une commande écrite avant 2021.
Comment lire une ligne de tcpdump
C'est la compétence sur laquelle tout le reste repose. Voici une vraie ligne issue de la capture précédente :
07:18:27.260675 IP 127.0.0.1.56730 > 127.0.0.1.8000: Flags [S], seq 1533482769, win 65495, options [mss 65495,sackOK,TS val 12321087 ecr 0,nop,wscale 10], length 0
De gauche à droite :
07:18:27.260675est l'horodatage, à la microseconde. Le tempo est souvent la découverte elle-même : une requête toutes les 60,0 secondes est une balise, pas un utilisateur.IPest le protocole de la couche externe. Vous verrez aussiIP6etARP.127.0.0.1.56730 > 127.0.0.1.8000donne la source puis la destination, et le dernier nombre après le point final est le port. Tcpdump n'utilise pas de deux-points pour les ports, ce qui surprend tout le monde une fois.Flags [S]est le champ des drapeaux TCP, et c'est l'information la plus utile de la ligne.length 0est la taille des données utiles, pas celle du paquet. Un paquet de poignée de main ne transporte aucune donnée.
La notation des drapeaux est compacte et vaut la peine d'être mémorisée :
[S]SYN, quelqu'un ouvre une connexion[S.]SYN-ACK, et le point veut toujours dire ACK. Quelque chose écoute.[.]un simple ACK, en général un accusé de réception sans rien d'autre à dire[P.]PSH-ACK, celui qui transporte les vraies données[F.]FIN-ACK, une fermeture polie[R]ou[R.]RST, un refus. Rien n'écoute sur ce port, ou un pare-feu a rejeté la connexion.
Lisez maintenant trois lignes consécutives de la même capture et la poignée de main TCP apparaît d'elle-même :
07:18:27.260675 IP 127.0.0.1.56730 > 127.0.0.1.8000: Flags [S], seq 1533482769, win 65495, length 0
07:18:27.261001 IP 127.0.0.1.8000 > 127.0.0.1.56730: Flags [S.], seq 62299410, ack 1533482770, win 65483, length 0
07:18:27.261018 IP 127.0.0.1.56730 > 127.0.0.1.8000: Flags [.], ack 1, win 64, length 0
SYN, SYN-ACK, ACK. Dès que vous repérez ce motif d'un coup d'œil, vous lisez un scan de ports, une connexion échouée et un service fonctionnel directement dans le terminal, sans y réfléchir. Un scan ressemble à des centaines de paquets [S] avec des [R.] qui reviennent de chaque port fermé, ce qui est très exactement l'allure d'un scan Nmap vu du côté qui le reçoit.
Remarquez aussi les numéros de séquence. Le premier paquet montre la vraie valeur, seq 1533482769, et chaque ligne suivante compte à partir de 1, parce que tcpdump bascule en numérotation relative une fois la poignée de main terminée. Passez -S si vous avez besoin des valeurs absolues.
Les filtres tcpdump : la compétence qui compte
Une capture sans filtre sur une vraie interface devient illisible en deux secondes. Ici, les filtres ne sont pas une optimisation, ils sont l'outil.
Tcpdump utilise BPF, le langage Berkeley Packet Filter, documenté dans la page de manuel pcap-filter. Le filtre est compilé et s'exécute dans le noyau, donc les paquets que vous n'avez pas demandés sont écartés avant même d'être copiés vers tcpdump. C'est pour cela qu'un bon filtre règle aussi le problème des paquets perdus.
Une expression BPF se construit à partir de trois types de mots :
- Type :
host,net,port,portrange - Direction :
src,dst, ou aucun des deux, ce qui signifie les deux sens - Protocole :
tcp,udp,icmp,arp,ip,ip6
Combinez-les avec and, or et not, et entourez toujours l'ensemble de guillemets simples pour que votre shell laisse les parenthèses tranquilles.
sudo tcpdump -i any -n 'host 192.0.2.10'
sudo tcpdump -i any -n 'dst port 443'
sudo tcpdump -i any -n 'net 10.0.0.0/8'
sudo tcpdump -i any -n 'icmp'
sudo tcpdump -i any -n 'src 192.0.2.10 and not port 22'
La dernière est celle que vous taperez le plus souvent dans la vraie vie. Quand vous travaillez en SSH, une capture sans filtre vous montre votre propre session SSH, qui génère alors d'autres paquets, qui affichent d'autres lignes. Exclure le port 22 fait la différence entre une capture lisible et un terminal emballé.
Des filtres qui répondent à une question
Quelques combinaisons méritent d'être gardées, parce que chacune correspond à quelque chose que vous voulez réellement savoir :
'tcp[tcpflags] & tcp-syn != 0 and tcp[tcpflags] & tcp-ack == 0'ne montre que les tentatives de connexion, sans réponse ni données. C'est ainsi que vous voyez un scan de ports en cours, ou que vous confirmez qu'une machine essaie bien d'atteindre un service qui ne répond jamais.'udp port 53'c'est le DNS, et le DNS est l'endroit où se cachent étonnamment beaucoup d'ennuis.'port 80 or port 8080 or port 8000'attrape le HTTP en clair sur les ports réellement utilisés.'arp'montre le réseau local demandant qui possède quelle adresse, ce qui rend l'usurpation ARP visible.
Le filtre SYN appliqué à la capture d'exemple renvoie exactement les deux tentatives de connexion qui ont eu lieu, sur 25 paquets :
07:18:27.260675 IP 127.0.0.1.56730 > 127.0.0.1.8000: Flags [S], seq 1533482769, win 65495, length 0
07:18:27.274514 IP 127.0.0.1.56744 > 127.0.0.1.8000: Flags [S], seq 1574267851, win 65495, length 0
La confusion à dissiper : les filtres de capture BPF et les filtres d'affichage de Wireshark sont deux langages différents qui se ressemblent et ne sont pas interchangeables. host 192.0.2.10, c'est du BPF. ip.addr == 192.0.2.10, c'est un filtre d'affichage Wireshark. Taper la version Wireshark dans tcpdump donne une erreur de syntaxe, et taper la version tcpdump dans la barre verte de Wireshark ne donne rien. Wireshark accepte aussi le BPF, mais uniquement dans sa boîte de dialogue d'options de capture, pas dans la barre de filtre du haut.
Écrire les captures dans un fichier et les ouvrir dans Wireshark
L'affichage dans le terminal sert à observer. Tout ce que vous comptez analyser doit aller dans un fichier.
sudo tcpdump -i eth0 -n -w /tmp/capture.pcap 'port 80 or port 443'
Rien ne s'affiche pendant l'exécution, ce qui donne toujours l'impression d'une panne la première fois. Ajoutez -v et tcpdump affiche à la place un compteur de paquets. La capture de 25 paquets utilisée tout au long de cet article pèse 3 115 octets : les fichiers pcap restent petits jusqu'à ce qu'ils ne le soient plus. Un lien chargé produit des gigaoctets à l'heure, et le remède est la rotation.
sudo tcpdump -i eth0 -n -w /tmp/cap.pcap -C 100 -W 10
-C 100 démarre un nouveau fichier tous les 100 Mo, et -W 10 en conserve dix avant d'écraser le plus ancien. C'est un tampon circulaire plafonné à 1 Go que vous pouvez laisser tourner plusieurs jours. Utilisez plutôt -G 3600 quand vous voulez un nouveau fichier toutes les heures au lieu de tous les tant de mégaoctets.
Relisez un fichier enregistré avec -r, et notez que cela ne demande aucun droit root :
tcpdump -r /tmp/capture.pcap -n
Les filtres fonctionnent à la lecture comme à la capture, et c'est l'habitude qui rend les grosses captures gérables. Capturez largement une fois, puis filtrez le fichier autant de fois que nécessaire :
tcpdump -r capture.pcap -n 'host 192.0.2.10 and port 443'
Voici maintenant la commande qui transforme tcpdump et Wireshark en un seul outil. Si le trafic qui vous intéresse est sur un serveur distant sans interface graphique, évitez le cycle capturer, copier, ouvrir. Faites-le passer dans un tube :
ssh [email protected] 'sudo tcpdump -i eth0 -U -w - not port 22' | wireshark -k -i -
-w - écrit la capture sur la sortie standard, -U vide le tampon à chaque paquet au lieu de temporiser, et wireshark -k -i - démarre immédiatement la capture depuis l'entrée standard. Vous obtenez tout le décodage protocolaire de Wireshark, en direct, sur des paquets venant d'une machine qui n'a jamais entendu parler d'un gestionnaire de fenêtres. Le not port 22 n'est pas facultatif : sans lui, votre propre trafic SSH se réinjecte dans la capture.
Tcpdump en CTF : extraire un flag du trafic
Les épreuves de forensic vous donnent un pcap et une question. Tcpdump vous amène à la réponse plus vite qu'une interface graphique, à condition de connaître deux options de plus.
-A affiche les données utiles de chaque paquet en ASCII. Sur les protocoles en clair, cela revient presque à lire la conversation :
tcpdump -r capture.pcap -nA 'tcp port 8000'
07:18:27.261121 IP 127.0.0.1.56730 > 127.0.0.1.8000: Flags [P.], seq 1:88, ack 1, win 64, length 87
E....+@.@..?...........@[g.........@.......
[email protected] /index.html HTTP/1.1
Host: 127.0.0.1:8000
User-Agent: curl/8.5.0
Accept: */*
La ligne de bruit avant la requête, c'est l'en-tête IP et TCP rendu en ASCII, dénué de sens par nature. Tout ce qui suit est la requête HTTP telle qu'elle est passée sur le câble.
Continuez dans la même capture et un POST apparaît :
POST /login HTTP/1.1
Host: 127.0.0.1:8000
User-Agent: curl/8.5.0
Content-Length: 26
Content-Type: application/x-www-form-urlencoded
user=dana&password=hunter2
La voilà, en clair, parce que le formulaire a été envoyé en HTTP et non en HTTPS. C'est la découverte la plus courante dans les épreuves de forensic pour débutants, et cela reste une vraie découverte sur de vrais réseaux internes en 2026, en général sur une interface d'administration que personne n'a touchée depuis des années.
-X est l'autre option. Elle affiche l'hexadécimal à côté de l'ASCII, ce qu'il vous faut quand les données ne sont pas du texte :
tcpdump -r capture.pcap -nX -c 1
0x0000: 4500 003c a829 4000 4006 9490 7f00 0001 E..<.)@.@.......
0x0010: 7f00 0001 dd9a 1f40 5b67 1711 0000 0000 .......@[g......
0x0020: a002 ffd7 fe30 0000 0204 ffd7 0402 080a .....0..........
C'est là que se cachent les en-têtes de fichiers. 4500 à l'offset zéro marque le début d'un en-tête IPv4. Plus loin dans des données utiles, 504b 0304 est un fichier ZIP et 8950 4e47 un PNG. Repérer une signature de ce genre, c'est savoir qu'il y a un fichier à extraire de la capture.
La méthode dans une épreuve tient en trois étapes. Prenez la forme générale du trafic avec tcpdump -r capture.pcap -nq, qui affiche une ligne courte par paquet. Réduisez au protocole dont parle l'épreuve. Puis videz les données utiles avec -A et passez le tout dans grep :
tcpdump -r capture.pcap -nA | grep -i -E 'flag|password|user='
Le DNS mérite un examen à part, parce qu'il fait sortir des données de réseaux qui bloquent tout le reste. Une requête normale n'a rien de remarquable :
tcpdump -i any -n 'udp port 53'
07:20:43.478932 eth0 Out IP 192.0.2.2.43351 > 8.8.8.8.53: 24085+ AAAA? hackerdna.com. (31)
07:20:43.494090 eth0 In IP 8.8.8.8.53 > 192.0.2.2.43351: 24085 3/0/0 AAAA 2606:4700:20::ac43:4840 (115)
Tcpdump décode correctement le DNS, donc le type de requête et le nom apparaissent sans option supplémentaire. Ce qui compte dans une investigation, c'est la forme des noms plutôt qu'une requête isolée : de longs sous-domaines à l'allure aléatoire, des centaines de noms uniques sous un même domaine parent, des requêtes qui ne se répètent jamais. Des données encodées dans des noms d'hôtes ressemblent exactement à cela, et une fois que vous l'avez vu vous ne le confondrez plus avec du trafic normal. Le lab DNS Tunneling Detective vous donne une capture où cela tourne.
Une limite honnête. Face à HTTPS, -A affiche des octets chiffrés et rien d'autre. Les métadonnées vous en disent malgré tout beaucoup : quelles adresses ont échangé, quand, à quelle fréquence, quel volume a circulé, et le nom du serveur issu de la poignée de main TLS quand elle n'est pas elle-même chiffrée. Souvent cela suffit à répondre à la question. Cela ne suffit jamais à lire le contenu.
Tcpdump ou Wireshark : lequel et quand
On présente cela comme une rivalité et ce n'en est pas une. Ils partagent libpcap et lisent le même format de fichier. La bonne réponse, la plupart du temps, est d'utiliser les deux.
| Capacité | Tcpdump | Wireshark |
|---|---|---|
| Fonctionne en SSH sur un serveur sans interface graphique | Oui | Non |
| Déjà installé sur la cible | En général | Rarement |
| Décodage des protocoles applicatifs | En-têtes seulement | Des centaines de protocoles |
| Reconstitution d'une conversation TCP entière | Non | Follow TCP Stream |
| Extraction de fichiers depuis une capture | Non | Export Objects |
| Longues captures sans surveillance | Tampon circulaire avec -C et -W | Possible, plus lourd |
| Scriptable dans un enchaînement de commandes | Oui | Via tshark |
La répartition des rôles s'impose d'elle-même. Capturez avec tcpdump, parce qu'il est sur la machine, qu'il est léger et qu'il tournera encore demain. Analysez dans Wireshark, parce que reconstituer des flux et extraire des fichiers à la main est un travail que personne ne devrait faire. Notre guide de Wireshark couvre en détail la moitié analyse.
L'exception, et elle est réelle : quand vous savez ce que vous cherchez, tcpdump plus grep bat à chaque fois le chargement d'un pcap de 2 Go dans une interface graphique. "Est-ce que cette machine a parlé à cette adresse" est une question d'une ligne. N'ouvrez pas Wireshark pour y répondre.
Considérations légales et éthiques
Rappel essentiel : obtenez toujours une autorisation écrite explicite avant de capturer du trafic sur un réseau. Une capture de paquets est une interception. Aux États-Unis elle relève du Wiretap Act, au Royaume-Uni de l'Investigatory Powers Act, et dans l'Union européenne des transpositions nationales de la directive ePrivacy. Contrairement à un scan de ports, une capture sur un réseau qui ne vous appartient pas peut constituer une infraction pénale même si vous ne modifiez rien et ne touchez à rien.
- Ne capturez que sur des réseaux qui vous appartiennent ou qui sont nommés dans un document de périmètre signé
- Le Wi-Fi d'un café ou d'un hôtel est le réseau de quelqu'un d'autre, transportant le trafic privé de quelqu'un d'autre. Ce n'est pas un environnement d'entraînement.
- Un fichier de capture contient des identifiants, des cookies de session, des données personnelles et des messages privés. Traitez-le comme l'objet sensible qu'il est : chiffrez-le au repos, ne le gardez que le temps nécessaire à la mission, puis supprimez-le.
- Filtrez dès la capture pour vous limiter à ce que couvre réellement le périmètre. Tout collecter en promettant d'en ignorer la majeure partie n'est pas une défense.
- Sur un réseau partagé ou d'entreprise, prévenez ceux qui l'administrent avant de commencer. Une interface en mode promiscuité se voit dans la supervision et ressemble en tout point à une attaque.
Les captures de laboratoire et les épreuves de CTF existent précisément pour que vous puissiez vous entraîner sans rien de tout cela au-dessus de la tête. C'est là qu'il faut construire les réflexes.
Questions fréquentes
À quoi sert tcpdump ?
À capturer et inspecter le trafic réseau en ligne de commande. Les administrateurs s'en servent pour prouver quel côté d'une connexion échoue, les équipes de réponse à incident pour voir avec quoi discute une machine compromise, les pentesteurs pour trouver des identifiants en clair et comprendre la topologie d'un réseau, et les joueurs de CTF pour lire les fichiers pcap que leur donnent les épreuves de forensic.
Quelle est la différence entre tcpdump et Wireshark ?
Tcpdump est un outil de capture en ligne de commande qui affiche une ligne par paquet. Wireshark est un analyseur graphique qui décode des centaines de protocoles applicatifs, reconstitue les flux TCP et extrait des fichiers d'une capture. Les deux utilisent libpcap et lisent les mêmes fichiers pcap. La méthode habituelle consiste à capturer avec tcpdump sur un serveur distant, puis à analyser le fichier obtenu dans Wireshark.
Comment enregistrer une capture tcpdump dans un fichier ?
Avec -w : sudo tcpdump -i eth0 -n -w capture.pcap. Rien ne s'affiche dans le terminal pendant l'exécution, c'est normal. Relisez le fichier avec tcpdump -r capture.pcap -n, ou ouvrez-le dans Wireshark. Sur Debian et Ubuntu, écrivez dans un répertoire accessible à l'utilisateur non privilégié tcpdump, par exemple /tmp, sinon l'ouverture du fichier échoue malgré sudo.
Est-ce que tcpdump voit le trafic UDP ?
Oui. Tcpdump capture tous les protocoles que voit l'interface, y compris UDP, ICMP et ARP. Le nom est un accident historique de 1988. Filtrez avec udp, ou affinez : sudo tcpdump -i any -n 'udp port 53' montre le DNS, et tcpdump décode les requêtes et les réponses pour vous.
Tcpdump nécessite-t-il les droits root ?
Pour capturer, oui, car il lui faut un accès aux sockets bruts. Pour relire un fichier enregistré avec -r, non. Pour capturer sans sudo, accordez au binaire les capacités dont il a besoin avec sudo setcap cap_net_raw,cap_net_admin+eip $(which tcpdump).
Tcpdump peut-il lire le trafic HTTPS ?
Non. TLS chiffre les données utiles, donc -A n'affiche que des octets aléatoires. Vous obtenez malgré tout les métadonnées : adresses source et destination, ports, tempo, volume, et souvent le nom d'hôte demandé dans la poignée de main TLS. Cela répond à "qui a parlé à quoi et quand", jamais à "qu'ont-ils dit".
Vos prochaines étapes
Savoir utiliser tcpdump se résume à une courte liste. -i et -n sur chaque commande, un filtre BPF entre guillemets simples pour ne pas lire du bruit, -w quand la capture compte, -r pour y revenir, et -A quand il faut voir ce qui a réellement été envoyé. Les options s'apprennent en un après-midi. Lire la sortie couramment demande quelques captures, et il n'existe aucun raccourci qui dispense de les faire.
Alors allez en faire une. Passez par le lab Packet Pursuit pour trouver un flag délibérément réparti sur trois protocoles, puis suivez le chapitre sur l'interception de trafic de notre cours de penetration testing réseau, qui montre comment du trafic capturé devient une véritable découverte. Les deux tournent dans le navigateur avec l'offre gratuite de HackerDNA, sans machine virtuelle à construire et sans carte bancaire. Ensuite, lancez tcpdump sur votre propre machine pendant cinq minutes et regardez à qui parle votre portable quand vous le croyez au repos. Celle-là est gratuite aussi, et elle réserve en général une surprise.
Fait partie de la série Penetration Testing
Articles liés :