Desenvolvimento de exploits do zero em Python. Sem Metasploit. Sem frameworks. Implementação em nível de socket bruto de CVEs reais contra alvos de laboratório autorizados.
O vsftpd (Very Secure FTP Daemon) é um servidor FTP para plataformas do tipo Unix, incluindo Linux, distribuído sob a GNU General Public License.
Em julho de 2011, foi descoberto que a versão 2.3.4 do vsftpd — disponível para download entre 30 de junho e 3 de julho de 2011 — havia sido comprometida. Um atacante desconhecido obteve acesso ao servidor de distribuição do vsftpd e injetou um backdoor diretamente no código-fonte antes que ele fosse enviado aos usuários.
Isso não foi um bug no design do vsftpd. Foi um ataque à cadeia de suprimentos — o software legítimo foi substituído por uma versão modificada maliciosamente.
O código do backdoor injetado monitora o campo de nome de usuário do FTP durante o login.
Se o nome de usuário contiver :) (um rosto sorridente), o backdoor abre
um na máquina alvo — sem
necessidade de autenticação.
Fluxo do ataque:
Atacante → porta 21 (FTP) → envia USER contendo :) → backdoor é acionado → shell root é aberto na porta 6200
Atacante → porta 6200 → shell root interativo completo
Classificação CWE: CWE-78 — Neutralização Incorreta de Elementos Especiais usados em um Comando do SO (Injeção de Comando do SO)
Este exploit foi escrito do zero em Python puro, usando apenas a biblioteca
padrão (socket). Sem Metasploit. Sem frameworks de exploit. Sem
dependências externas.
Passo a passo:
:) para acionar o backdoor# Clone o repositório
git clone https://github.com/rushikesh-a-bhujbal/CVE-2011-2523.git
cd CVE-2011-2523
# Defina o IP do alvo dentro de main.py
target_ip = "YOUR_METASPLOITABLE2_IP"
# Execute
python3 main.py
Exemplo de saída:
[+] Vulnerable version confirmed. Proceeding...
[+] Backdoor triggered. Opening shell on port 6200...
whoami
root
uname -a
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008
cat /etc/shadow
root:
1
1/avpfBJ1$x0z8w5UF9Iv./DR9E9Lid.:14747:0:99999:7:::
exit
| Cenário | Comportamento |
|---|---|
| Porta 21 fechada | Exibe "Port is closed", encerra limpo |
| Tempo de conexão esgotado | Exibe "Connection timed out", encerra limpo |
| Hostname/IP inválido | Exibe "Invalid target", encerra limpo |
| Versão do vsftpd incorreta | Exibe mensagem de incompatibilidade, encerra limpo |
| Porta 6200 inacessível | Exibe mensagem de falha do backdoor, encerra limpo |
Este exploit foi desenvolvido estritamente para fins educacionais e apenas para pesquisa de segurança autorizada.
Construído e testado exclusivamente contra uma máquina virtual Metasploitable2 local, em um ambiente de laboratório totalmente isolado.
Não use isto contra qualquer sistema que você não possua ou para o qual não tenha permissão escrita explícita para testar. O uso não autorizado é ilegal sob o Computer Fraud and Abuse Act (CFAA) e leis equivalentes em todo o mundo.
O autor não aceita qualquer responsabilidade pelo uso indevido deste código.
Rushikesh Bhujbal
Security Research & Exploit Development
GitHub