Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Privilegienerweiterung bedeutet, dass ein Angreifer die aktuellen Benutzerrechte nutzt, um zusätzliche, in der Regel höhere Zugriffsrechte im System zu erlangen. Obwohl Privilegienerweiterung durch die Ausnutzung von Zero-Day-Schwachstellen oder durch hochqualifizierte Hacker, die gezielte Angriffe durchführen, verursacht werden kann, geschieht dies häufig aufgrund von Fehlkonfigurationen des Computers oder des Benutzerkontos. Indem sie den Angriff weiterentwickeln, nutzen Angreifer eine Reihe von spezifischen Schwachstellen, was insgesamt zu einem katastrophalen Datenleck führen kann.

Warum sollten Benutzer keine lokalen Administratorrechte haben?

Für Sicherheitsexperten mag es offensichtlich erscheinen, dass Benutzer keine lokalen Administratorrechte haben sollten, da dies:

  • Ihre Konten anfälliger für verschiedene Angriffe macht.
  • Diese Angriffe erheblich schwerwiegender werden kann.

Leider ist dies für viele Organisationen nach wie vor ein sehr umstrittenes Thema und wird häufig von heftigen Diskussionen begleitet (siehe zum Beispiel, mein Vorgesetzter sagt, dass alle Benutzer lokale Administratoren sein sollten). Ohne in die Details dieser Diskussion einzutauchen, gehen wir davon aus, dass ein Angreifer Administratorrechte auf dem untersuchten System erlangt hat: entweder durch einen Exploit oder weil die Maschinen nicht ausreichend geschützt waren.

Schritt 1. DNS-Namen mit PowerShell zurückauflösen

Standardmäßig ist PowerShell auf vielen lokalen Arbeitsstationen und den meisten Windows-Servern installiert. Obwohl es nicht übertrieben ist, als ein unglaublich nützliches Automatisierungs- und Verwaltungstool angesehen zu werden, kann es gleichermaßen zu einer fast unsichtbaren fileless-Malware (ein Programm zum Hacken, das keine Spuren des Angriffs hinterlässt).

In unserem Fall beginnt der Angreifer, Netzwerk-Rekognoszierung mit einem PowerShell-Skript durchzuführen, indem er schrittweise den IP-Adressraum des Netzwerks durchläuft und versucht festzustellen, ob die angegebene IP zu einem Knoten aufgelöst wird und, wenn ja, wie der Netzwerkname dieses Knotens lautet.
Es gibt viele Möglichkeiten, diese Aufgabe zu erledigen, aber die Verwendung des Cmdlets Get-ADComputer ist eine zuverlässige Option, da es tatsächlich eine reichhaltige Datensammlung 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 Probleme verursacht, kann die umgekehrte DNS-Abfrage verwendet werden:

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

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Diese Methode zur Auflistung von Knoten im Netzwerk ist sehr beliebt, da die meisten Netzwerke kein Zero-Trust-Sicherheitsmodell verwenden und interne DNS-Abfragen auf verdächtige Aktivität nicht überwachen.

Schritt 2: Zielwahl

Das Endergebnis dieses Schrittes ist die Erstellung einer Liste von Hostnamen für Server und Arbeitsstationen, die für eine Fortsetzung des Angriffs verwendet werden kann.

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Nach dem Namen scheint der Server 'HUB-FILER' ein lohnendes Ziel zu sein, da im Laufe der Zeit Dateiserver in der Regel eine große Anzahl von Netzwerkordnern und übermäßigen Zugriff durch zu viele Personen ansammeln.

Die Ansicht über den Windows-Explorer ermöglicht es uns, das Vorhandensein eines offenen Freigabeordners zu überprüfen, jedoch hat unser aktuelles Konto keinen Zugriff darauf (vermutlich haben wir nur Rechte für das Auflisten).

Schritt 3: Überprüfung der ACL

Nun können wir auf unserem Host HUB-FILER und dem Ziel-Freigabeordner share ein PowerShell-Skript ausführen, um die Liste der ACL zu erhalten. Dies können wir von einem lokalen Rechner aus tun, da wir bereits lokale Administratorrechte haben:

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

Ausführungsergebnis:

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Aus dieser Ausgabe sehen wir, dass die Gruppe Domänenbenutzer nur Auflistungsrechte hat, während die Gruppe Helpdesk auch Änderungsrechte besitzt.

Schritt 4: Identifikation der Konten

Durch das Ausführen von Get-ADGroupMember, können wir alle Mitglieder dieser Gruppe abrufen:

Get-ADGroupMember -identity Helpdesk

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

In dieser Liste sehen wir das Computer-Konto, das wir bereits identifiziert haben und zu dem wir bereits Zugriff erhalten haben:

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Schritt 5: Verwendung von PSExec zur Arbeit mit dem Computer-Konto

PsExec Mit Microsoft Sysinternals können Sie Befehle im Kontext des Systemkontos SYSTEM@HUB-SHAREPOINT ausführen, das, wie wir wissen, Mitglied der Zielgruppe Helpdesk ist. Das bedeutet, dass es ausreichend ist, Folgendes auszuführen:

PsExec.exe -s -i cmd.exe

Ab hier haben Sie vollständigen Zugriff auf den Zielordner HUB-FILERshareHR, da Sie im Kontext des Computer-Kontos HUB-SHAREPOINT arbeiten. Mit diesem Zugang können Daten auf ein tragbares Speichermedium kopiert oder anderweitig extrahiert und über das Netzwerk übertragen werden.

Schritt 6: Entdeckung dieser Angriffe

Diese spezifische Schwachstelle in der Konfiguration der Benutzerkontenrechte (Computer-Konten, die auf gemeinsame Netzwerkordner zugreifen anstatt auf Benutzer- oder Dienstkonten) kann erkannt werden. Allerdings ist es ohne die richtigen Werkzeuge sehr schwierig.

Um diese Art von Angriffen zu erkennen und zu verhindern, können wir DatAdvantage verwenden, um Gruppen mit Computer-Konten zu identifizieren und den Zugang zu diesen zu sperren. DatAlert geht weiter und ermöglicht die Erstellung einer Benachrichtigung speziell für ein solches Szenario.

Im Screenshot unten sehen Sie die Benutzerbenachrichtigung, die bei jedem Zugriff des Computerbenutzers auf die Daten des überwachten Servers ausgelöst wird.

Verwendung von PowerShell zur Erhöhung der Berechtigungen lokaler Konten

Die nächsten Schritte mit PowerShell

Möchten Sie mehr erfahren? Verwenden Sie den Entsperrcode „blog“ für kostenlosen Zugang zum vollständigen Video-Kurs PowerShell und Grundlagen von Active Directory.

Quelle: habr.com

Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server 🔥 Kaufen Sie zuverlässiges Hosting für Websites mit DDoS-Schutz, VPS VDS-Server | ProHoster