UAC - User Account Control
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden. Zugang heute erhalten:
UAC
Benutzerkontensteuerung (UAC) ist eine Funktion, die eine Zustimmungseingabeaufforderung für erhöhte Aktivitäten ermöglicht. Anwendungen haben unterschiedliche integrity
-Stufen, und ein Programm mit einer hohen Stufe kann Aufgaben ausführen, die das System potenziell gefährden könnten. Wenn UAC aktiviert ist, werden Anwendungen und Aufgaben immer unter dem Sicherheitskontext eines Nicht-Administrator-Kontos ausgeführt, es sei denn, ein Administrator autorisiert diese Anwendungen/Aufgaben ausdrücklich, um Administratorzugriff auf das System zu erhalten. Es ist eine Komfortfunktion, die Administratoren vor unbeabsichtigten Änderungen schützt, jedoch nicht als Sicherheitsgrenze betrachtet wird.
Für weitere Informationen zu Integritätsstufen:
Integrity LevelsWenn UAC aktiv ist, erhält ein Administratorkonto 2 Tokens: einen Standardbenutzer-Schlüssel, um reguläre Aktionen auf regulärem Niveau auszuführen, und einen mit Administratorrechten.
Diese Seite behandelt, wie UAC im Detail funktioniert und umfasst den Anmeldeprozess, die Benutzererfahrung und die UAC-Architektur. Administratoren können Sicherheitsrichtlinien verwenden, um zu konfigurieren, wie UAC spezifisch für ihre Organisation auf lokaler Ebene (unter Verwendung von secpol.msc) funktioniert oder über Gruppenrichtlinienobjekte (GPO) in einer Active Directory-Domänenumgebung konfiguriert und bereitgestellt wird. Die verschiedenen Einstellungen werden hier ausführlich besprochen. Es gibt 10 Gruppenrichtlinieneinstellungen, die für UAC festgelegt werden können. Die folgende Tabelle bietet zusätzliche Details:
Gruppenrichtlinieneinstellung | Registrierungsschlüssel | Standardeinstellung |
---|---|---|
FilterAdministratorToken | Deaktiviert | |
EnableUIADesktopToggle | Deaktiviert | |
ConsentPromptBehaviorAdmin | Aufforderung zur Zustimmung für Nicht-Windows-Binärdateien | |
ConsentPromptBehaviorUser | Aufforderung zur Eingabe von Anmeldeinformationen auf dem sicheren Desktop | |
EnableInstallerDetection | Aktiviert (Standard für Home) Deaktiviert (Standard für Enterprise) | |
ValidateAdminCodeSignatures | Deaktiviert | |
EnableSecureUIAPaths | Aktiviert | |
EnableLUA | Aktiviert | |
PromptOnSecureDesktop | Aktiviert | |
EnableVirtualization | Aktiviert |
UAC Bypass-Theorie
Einige Programme werden automatisch erhöht, wenn der Benutzer zur Administratorgruppe gehört. Diese Binärdateien haben in ihren Manifests die autoElevate-Option mit dem Wert True. Die Binärdatei muss auch von Microsoft signiert sein.
Um die UAC (von mittlerer Integritätsstufe zu hoher zu erhöhen) zu umgehen, verwenden einige Angreifer diese Art von Binärdateien, um beliebigen Code auszuführen, da er von einem Prozess mit hoher Integritätsstufe ausgeführt wird.
Sie können das Manifest einer Binärdatei mit dem Tool sigcheck.exe von Sysinternals überprüfen. Und Sie können die Integritätsstufe der Prozesse mit Process Explorer oder Process Monitor (von Sysinternals) sehen.
UAC überprüfen
Um zu bestätigen, ob UAC aktiviert ist, führen Sie Folgendes aus:
Wenn es 1
ist, dann ist UAC aktiviert, wenn es 0
ist oder nicht existiert, dann ist UAC inaktiv.
Überprüfen Sie dann, welches Niveau konfiguriert ist:
Wenn
0
dann wird UAC nicht auffordern (wie deaktiviert)Wenn
1
wird der Administrator nach Benutzername und Passwort gefragt, um die Binärdatei mit hohen Rechten auszuführen (auf Secure Desktop)Wenn
2
(Immer benachrichtigen) wird UAC immer um Bestätigung des Administrators bitten, wenn er versucht, etwas mit hohen Rechten auszuführen (auf Secure Desktop)Wenn
3
wie1
, aber nicht unbedingt auf Secure DesktopWenn
4
wie2
, aber nicht unbedingt auf Secure Desktopwenn
5
(Standard) wird der Administrator um Bestätigung gebeten, um nicht Windows-Binärdateien mit hohen Rechten auszuführen
Dann müssen Sie den Wert von LocalAccountTokenFilterPolicy
überprüfen
Wenn der Wert 0
ist, dann kann nur der RID 500 Benutzer (eingebauter Administrator) Admin-Aufgaben ohne UAC ausführen, und wenn es 1
ist, können alle Konten in der Gruppe "Administratoren" dies tun.
Und schließlich überprüfen Sie den Wert des Schlüssels FilterAdministratorToken
Wenn 0
(Standard), kann das eingebaute Administratorkonto Remote-Administrationsaufgaben durchführen und wenn 1
kann das eingebaute Administratorkonto nicht Remote-Administrationsaufgaben durchführen, es sei denn, LocalAccountTokenFilterPolicy
ist auf 1
gesetzt.
Zusammenfassung
Wenn
EnableLUA=0
oder nicht vorhanden, kein UAC für niemandenWenn
EnableLua=1
undLocalAccountTokenFilterPolicy=1
, kein UAC für niemandenWenn
EnableLua=1
undLocalAccountTokenFilterPolicy=0
undFilterAdministratorToken=0
, kein UAC für RID 500 (eingebauter Administrator)Wenn
EnableLua=1
undLocalAccountTokenFilterPolicy=0
undFilterAdministratorToken=1
, UAC für alle
All diese Informationen können mit dem metasploit Modul: post/windows/gather/win_privs
gesammelt werden
Sie können auch die Gruppen Ihres Benutzers überprüfen und das Integritätsniveau abrufen:
UAC-Umgehung
Beachten Sie, dass die UAC-Umgehung einfach ist, wenn Sie grafischen Zugriff auf das Opfer haben, da Sie einfach auf "Ja" klicken können, wenn die UAC-Eingabeaufforderung erscheint.
Die UAC-Umgehung ist in der folgenden Situation erforderlich: die UAC ist aktiviert, Ihr Prozess läuft in einem Medium-Integritätskontext, und Ihr Benutzer gehört zur Administratorgruppe.
Es ist wichtig zu erwähnen, dass es viel schwieriger ist, die UAC zu umgehen, wenn sie auf dem höchsten Sicherheitsniveau (Immer) ist, als wenn sie auf einem der anderen Niveaus (Standard) ist.
UAC deaktiviert
Wenn die UAC bereits deaktiviert ist (ConsentPromptBehaviorAdmin
ist 0
), können Sie eine Reverse-Shell mit Administratorrechten (hoher Integritätslevel) ausführen, indem Sie etwas wie Folgendes verwenden:
UAC-Umgehung mit Token-Duplikation
Sehr grundlegende UAC "Umgehung" (voller Zugriff auf das Dateisystem)
Wenn Sie eine Shell mit einem Benutzer haben, der in der Gruppe der Administratoren ist, können Sie das C$-Freigabe über SMB (Dateisystem) lokal auf einem neuen Laufwerk einbinden und Sie haben Zugriff auf alles im Dateisystem (sogar auf den Administrator-Hauptordner).
Es scheint, dass dieser Trick nicht mehr funktioniert
UAC-Umgehung mit Cobalt Strike
Die Cobalt Strike-Techniken funktionieren nur, wenn UAC nicht auf dem maximalen Sicherheitsniveau eingestellt ist.
Empire und Metasploit haben auch mehrere Module, um die UAC zu umgehen.
KRBUACBypass
Dokumentation und Tool in https://github.com/wh0amitz/KRBUACBypass
UAC-Umgehungs-Exploits
UACME , das eine Kompilation mehrerer UAC-Umgehungs-Exploits ist. Beachten Sie, dass Sie UACME mit Visual Studio oder MSBuild kompilieren müssen. Die Kompilierung erstellt mehrere ausführbare Dateien (wie Source\Akagi\outout\x64\Debug\Akagi.exe
), Sie müssen wissen, welche Sie benötigen.
Sie sollten vorsichtig sein, da einige Umgehungen andere Programme auffordern, die den Benutzer warnen, dass etwas passiert.
UACME hat die Build-Version, ab der jede Technik zu funktionieren begann. Sie können nach einer Technik suchen, die Ihre Versionen betrifft:
Auch mit dieser Seite erhalten Sie die Windows-Version 1607
aus den Build-Versionen.
Weitere UAC-Umgehungen
Alle hier verwendeten Techniken zur Umgehung von AUC erfordern eine vollständige interaktive Shell mit dem Opfer (eine gängige nc.exe-Shell reicht nicht aus).
Sie können eine meterpreter-Sitzung verwenden. Migrieren Sie zu einem Prozess, der den Session-Wert gleich 1 hat:
(explorer.exe sollte funktionieren)
UAC-Umgehung mit GUI
Wenn Sie Zugriff auf eine GUI haben, können Sie einfach die UAC-Aufforderung akzeptieren, wenn Sie sie erhalten, Sie benötigen wirklich keine Umgehung. Der Zugriff auf eine GUI ermöglicht es Ihnen, die UAC zu umgehen.
Darüber hinaus, wenn Sie eine GUI-Sitzung erhalten, die jemand verwendet hat (möglicherweise über RDP), gibt es einige Tools, die als Administrator ausgeführt werden, von denen aus Sie beispielsweise cmd direkt als Admin ausführen können, ohne erneut von UAC aufgefordert zu werden, wie https://github.com/oski02/UAC-GUI-Bypass-appverif. Dies könnte etwas stealthy sein.
Lauter Brute-Force UAC-Umgehung
Wenn es Ihnen nichts ausmacht, laut zu sein, könnten Sie immer etwas wie https://github.com/Chainski/ForceAdmin ausführen, das nach einer Erhöhung der Berechtigungen fragt, bis der Benutzer es akzeptiert.
Ihre eigene Umgehung - Grundlegende UAC-Umgehungsmethodik
Wenn Sie sich UACME ansehen, werden Sie feststellen, dass die meisten UAC-Umgehungen eine Dll Hijacking-Schwachstelle ausnutzen (hauptsächlich das Schreiben der bösartigen dll in C:\Windows\System32). Lesen Sie dies, um zu lernen, wie man eine Dll Hijacking-Schwachstelle findet.
Finden Sie eine Binärdatei, die autoelevate (prüfen Sie, dass sie beim Ausführen auf einem hohen Integritätslevel läuft).
Verwenden Sie procmon, um "NAME NOT FOUND"-Ereignisse zu finden, die anfällig für DLL Hijacking sein können.
Sie müssen wahrscheinlich die DLL in einige geschützte Pfade (wie C:\Windows\System32) schreiben, in denen Sie keine Schreibberechtigungen haben. Sie können dies umgehen, indem Sie:
wusa.exe: Windows 7, 8 und 8.1. Es ermöglicht das Extrahieren des Inhalts einer CAB-Datei in geschützte Pfade (da dieses Tool von einem hohen Integritätslevel ausgeführt wird).
IFileOperation: Windows 10.
Bereiten Sie ein Skript vor, um Ihre DLL in den geschützten Pfad zu kopieren und die anfällige und autoelevierte Binärdatei auszuführen.
Eine weitere UAC-Umgehungstechnik
Besteht darin zu beobachten, ob eine autoElevated Binärdatei versucht, aus der Registry den Namen/Pfad einer Binärdatei oder Befehls zu lesen, die ausgeführt werden soll (dies ist interessanter, wenn die Binärdatei diese Informationen innerhalb des HKCU sucht).
Verwenden Sie Trickest, um einfach Workflows zu erstellen und zu automatisieren, die von den fortschrittlichsten Community-Tools der Welt unterstützt werden. Zugang heute erhalten:
Last updated