Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Unter Privilegieneskalation versteht man die Nutzung der aktuellen Kontorechte eines Angreifers, um zusätzliche, meist höhere Zugriffsebenen auf das System zu erlangen. Während eine Privilegienausweitung das Ergebnis von Zero-Day-Exploits, meisterhaften Hackern, die einen gezielten Angriff starten, oder geschickt getarnter Malware sein kann, ist sie am häufigsten auf eine Fehlkonfiguration des Computers oder Kontos zurückzuführen. Bei der Weiterentwicklung des Angriffs nutzen Angreifer eine Reihe einzelner Schwachstellen aus, die zusammen zu einem katastrophalen Datenleck führen können.

Warum sollten Benutzer keine lokalen Administratorrechte haben?

Wenn Sie ein Sicherheitsexperte sind, mag es offensichtlich erscheinen, dass Benutzer keine lokalen Administratorrechte haben sollten, da Folgendes gilt:

  • Macht ihre Konten anfälliger für verschiedene Angriffe
  • Macht dieselben Angriffe viel schwerwiegender

Leider ist dies für viele Organisationen immer noch ein sehr kontroverses Thema und wird teilweise von hitzigen Diskussionen begleitet (siehe z. B. Mein Manager sagt, dass alle Benutzer lokale Administratoren sein müssen). Ohne auf die Details dieser Diskussion einzugehen, gehen wir davon aus, dass der Angreifer lokale Administratorrechte auf dem untersuchten System erlangt hat, entweder durch einen Exploit oder weil die Maschinen nicht ordnungsgemäß gesichert waren.

Schritt 1: Umkehren der DNS-Namensauflösung mit PowerShell

Standardmäßig ist PowerShell auf vielen lokalen Workstations und auf den meisten Windows-Servern installiert. Und obwohl es nicht ohne Übertreibung als unglaublich nützliches Automatisierungs- und Steuerungstool gilt, ist es dennoch in der Lage, sich in ein nahezu unsichtbares Werkzeug zu verwandeln Dateilose Malware (ein Hacking-Programm, das keine Spuren eines Angriffs hinterlässt).

In unserem Fall beginnt der Angreifer mit der Netzwerkerkundung mithilfe eines PowerShell-Skripts, durchläuft nacheinander den IP-Adressraum des Netzwerks und versucht herauszufinden, ob eine bestimmte IP in einen Host aufgelöst wird, und wenn ja, wie der Netzwerkname dieses Hosts lautet.
Es gibt viele Möglichkeiten, diese Aufgabe zu erledigen, aber die Verwendung des Cmdlets Erhalten-ADComputer ist eine zuverlässige Option, da es einen wirklich umfangreichen Datensatz zu jedem Knoten zurückgibt:

 import-module activedirectory Get-ADComputer -property * -filter { ipv4address -eq ‘10.10.10.10’}

Wenn die Geschwindigkeit in großen Netzwerken ein Problem darstellt, kann ein Reverse-DNS-Systemaufruf verwendet werden:

[System.Net.Dns]::GetHostEntry(‘10.10.10.10’).HostName

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Diese Methode zum Aufzählen von Hosts in einem Netzwerk ist sehr beliebt, da die meisten Netzwerke kein Zero-Trust-Sicherheitsmodell verwenden und interne DNS-Abfragen nicht auf verdächtige Aktivitätsspitzen überwachen.

Schritt 2: Wählen Sie ein Ziel aus

Das Endergebnis dieses Schritts besteht darin, eine Liste der Server- und Workstation-Hostnamen zu erhalten, die zur Fortsetzung des Angriffs verwendet werden können.

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Dem Namen nach scheint der „HUB-FILER“-Server ein würdiges Ziel zu sein Im Laufe der Zeit neigen Dateiserver dazu, eine große Anzahl von Netzwerkordnern anzusammeln und zu viele Personen übermäßig darauf zuzugreifen.

Durch das Durchsuchen mit dem Windows Explorer können wir feststellen, dass ein freigegebener Ordner geöffnet ist, unser aktuelles Konto jedoch nicht darauf zugreifen kann (wir haben wahrscheinlich nur Listenrechte).

Schritt 3: Erlernen der ACL

Jetzt können wir auf unserem HUB-FILER-Host und unserer Zielfreigabe das PowerShell-Skript ausführen, um die ACL abzurufen. Wir können dies vom lokalen Computer aus tun, da wir bereits über lokale Administratorrechte verfügen:

(get-acl hub-filershare).access | ft IdentityReference,FileSystemRights,AccessControlType,IsInherited,InheritanceFlags –auto

Ausführungsergebnis:

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Daraus sehen wir, dass die Gruppe „Domänenbenutzer“ nur Zugriff auf die Liste hat, die Gruppe „Helpdesk“ jedoch auch Bearbeitungsrechte hat.

Schritt 4: Kontoidentifizierung

Betrieb Get-ADGroupMemberkönnen wir alle Mitglieder dieser Gruppe abrufen:

Get-ADGroupMember -identity Helpdesk

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

In dieser Liste sehen wir das Computerkonto, das wir bereits identifiziert haben und auf das wir bereits zugegriffen haben:

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Schritt 5: Verwenden Sie PSExec zur Ausführung als Computerkonto

PsExec von Microsoft Sysinternals ermöglicht die Ausführung von Befehlen im Kontext des Systemkontos SYSTEM@HUB-SHAREPOINT, von dem wir wissen, dass es zur Helpdesk-Zielgruppe gehört. Das heißt, wir müssen nur Folgendes tun:

PsExec.exe -s -i cmd.exe

Dann haben Sie vollen Zugriff auf den Zielordner HUB-FILERshareHR, da Sie im Kontext des Computerkontos HUB-SHAREPOINT arbeiten. Und mit diesem Zugriff können Daten auf ein tragbares Speichergerät kopiert oder auf andere Weise abgerufen und über das Netzwerk übertragen werden.

Schritt 6: Diesen Angriff erkennen

Diese besondere Schwachstelle bei der Konfiguration von Kontoberechtigungen (Computerkonten greifen auf Netzwerkfreigaben statt auf Benutzerkonten oder Dienstkonten zu) kann entdeckt werden. Ohne die richtigen Werkzeuge ist dies jedoch sehr schwierig zu bewerkstelligen.

Um diese Kategorie von Angriffen zu erkennen und zu verhindern, können wir verwenden Datenvorteil um Gruppen mit Computerkonten zu identifizieren und ihnen dann den Zugriff zu verweigern. DataAlert geht noch weiter und ermöglicht Ihnen, eine Benachrichtigung speziell für diese Art von Szenario zu erstellen.

Der Screenshot unten zeigt eine benutzerdefinierte Benachrichtigung, die immer dann ausgelöst wird, wenn ein Computerkonto auf Daten auf dem überwachten Server zugreift.

Verwenden von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Nächste Schritte mit PowerShell

Möchten Sie mehr wissen? Benutzen Sie den Freischaltcode „Blog“, um kostenlosen Zugang zum Vollinhalt zu erhalten Videokurs „PowerShell- und Active Directory-Grundlagen“..

Source: habr.com

Kommentar hinzufügen