Laboratório autorizado usando Kali–Metasploitable2 com Python e Nmap NSE para validar o CVE-2011-2523 no vsFTPd 2.3.4.
⚠️ Apenas Laboratório Autorizado — conduzido em uma rede isolada Host-Only do VirtualBox usando Kali Linux e Metasploitable2. Nenhum sistema não autorizado foi escaneado ou acessado em momento algum.
CVE-2011-2523 é um dos comprometimentos de cadeia de suprimentos mais conhecidos da história do código aberto. Em 2011, o código-fonte oficial do vsFTPd 2.3.4 foi alvo de backdoor no servidor de download do projeto — um atacante modificou o binário de modo que inserir um nome de usuário contendo :) acionava um shell de backdoor na porta TCP 6200, concedendo acesso root a qualquer atacante remoto.
Este laboratório valida o CVE-2011-2523 usando uma metodologia estruturada de avaliação de vulnerabilidades:
ftp-vsftpd-backdoorEste é trabalho real de avaliação de vulnerabilidades — a mesma metodologia usada por testadores de penetração e analistas de SOC na condução de avaliações de segurança autorizadas.
| Componente | Detalhes |
|---|---|
| Máquina Atacante | Kali Linux |
| Máquina Alvo | Metasploitable2 (intencionalmente vulnerável) |
| Hipervisor | Oracle VirtualBox |
| Rede | Adaptador Host-Only — isolado, sem acesso à internet |
| Ferramentas | Python 3, Nmap, NSE, biblioteca python-nmap |
| IP do Alvo | 192.168.56.103 |
| Campo | Detalhes |
|---|---|
| ID do CVE | CVE-2011-2523 |
| Software Afetado | vsFTPd 2.3.4 |
| Pontuação CVSS | 10.0 — Crítica |
| Tipo de Vulnerabilidade | Backdoor / Comprometimento da Cadeia de Suprimentos |
| Vetor de Ataque | Rede — sem necessidade de autenticação |
| Impacto | Acesso remoto a shell root (uid=0) |
| Descoberto | Julho de 2011 |
| MITRE ATT&CK | T1195.002 (Compromise Software Supply Chain) |
Como o backdoor funciona:
Quando um cliente se conecta ao vsFTPd 2.3.4 e envia um nome de usuário contendo os caracteres :) (carinha sorridente), o código do backdoor é acionado — abrindo um shell de escuta na porta TCP 6200. Conectar-se à porta 6200 concede um shell root interativo sem necessidade de autenticação adicional.
Step 1: Confirm target IP on Host-Only network
└── ifconfig / ip addr on Metasploitable2
Step 2: Verify connectivity
└── ping 192.168.56.103 from Kali
Step 3: Service & version detection
└── nmap -sV -p 21 192.168.56.103
└── Confirm: vsftpd 2.3.4
Step 4: Python-automated NSE scan
└── python3 pythonnmap.py --host 192.168.56.103 --ports 21
└── NSE scripts executed:
ftp-anon
ftp-bounce
ftp-libopie
ftp-proftpd-backdoor
ftp-vsftpd-backdoor ← CVE-2011-2523 validation
Step 5: Document findings & remediation
sudo nmap -sV -p 21 192.168.56.103
Saída:
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
sudo python3 pythonnmap.py --host 192.168.56.103 --ports 21
sudo nmap --script ftp-vsftpd-backdoor -p 21 192.168.56.103
| Serviço | Porta | Constatação | Evidência |
|---|---|---|---|
| FTP | TCP 21 | vsFTPd 2.3.4 identificado — versão com backdoor conhecida | Varredura de serviço/versão do Nmap |
| FTP | TCP 21 | Login FTP anónimo permitido | Saída do NSE ftp-anon |
| FTP | TCP 21 | Alvo confirmado como vulnerável a CVE-2011-2523 | Saída do NSE ftp-vsftpd-backdoor |
| CVE-2011-2523 | TCP 6200 | Shell de backdoor devolveu uid=0(root) gid=0(root) | Saída de validação do NSE |



Num ambiente de produção real, a remediação incluiria:
| Ação | Prioridade |
|---|---|
| Remover imediatamente o vsFTPd 2.3.4 e substituí-lo por uma versão corrigida | 🔴 Crítica |
| Verificar a integridade do software usando checksums SHA-256 contra os hashes oficiais do fornecedor antes da instalação | 🔴 Crítica |
| Desativar o acesso FTP anónimo, a menos que seja explicitamente necessário | 🟠 Alta |
| Restringir a exposição do serviço FTP usando regras de firewall e segmentação de rede | 🟠 Alta |
Monitorizar os registos de autenticação FTP para nomes de utilizador suspeitos que contenham :) | 🟡 Média |
| Considerar a substituição total do FTP por SFTP (SSH File Transfer Protocol) | 🟡 Média |
| Controlo | Framework | Relevância |
|---|---|---|
| T1195.002 | MITRE ATT&CK | Comprometimento da Cadeia de Fornecimento de Software — backdoor injetado no código-fonte do vsFTPd |
| T1133 | MITRE ATT&CK | Serviços Remotos Externos — a backdoor abre uma shell root remota |
| T1190 | MITRE ATT&CK | Exploração de Aplicação Exposta Publicamente — serviço FTP explorado remotamente |
| SI-2 | NIST SP 800-53 | Remediação de Falhas — corrigir e remover software vulnerável |
| SI-7 | NIST SP 800-53 | Integridade de Software — verificar checksums do software antes da implementação |
| RA-5 | NIST SP 800-53 | Monitorização e Varredura de Vulnerabilidades |
| A.12.6 | ISO 27001 | Gestão de Vulnerabilidades Técnicas |
O script pythonnmap.py automatiza a varredura Nmap NSE usando a biblioteca python-nmap:
# Key functionality
import nmap
scanner = nmap.PortScanner()
scanner.scan(
hosts=target_host,
ports=target_ports,
arguments='-sV --script ftp-anon,ftp-bounce,ftp-libopie,ftp-proftpd-backdoor,ftp-vsftpd-backdoor'
)
Benefícios da automação em Python: