Erklärung des PowerUp-Angriffsmoduls

PowerUp ist ein Skript unter dem Privesc-Modul. Die Funktion ist sehr leistungsfähig. Es enthält viele praktische Skripts zum Auffinden der Windows-Dienstschwachstellen des Zielhosts
, um die Berechtigungen zu eskalieren. Normalerweise können die Berechtigungen durch Kernel-Schwachstellen unter Windows erhöht werden. Es tritt jedoch häufig ein Fehler auf. Auf dem Server, auf dem die Berechtigung durch die Kernel-Sicherheitsanfälligkeit eskaliert wird, muss zu diesem Zeitpunkt der anfällige Windows-Dienst zum Eskalieren der Berechtigung oder der allgemeine Systemdienst zum Abschließen der Berechtigungseskalation verwendet werden Dieses Framework kann im Kernel ausgeführt werden. Wenn es fehlschlägt, helfen Sie uns, die Sicherheitsanfälligkeit des Servers zu ermitteln, und erreichen Sie dann den Zweck der Eskalation durch die Sicherheitsanfälligkeit.

Module unter PowerUp:

1.Invoke-AllChecks

Das Modul führt automatisch alle Skripte unter Powerup aus, um den Zielhost zu überprüfen, und gibt einen Befehl zum Ausführen des Moduls aus.
Befehl: Invoke-AllChecks
Fügen Sie hier eine Bildbeschreibung ein
erkennt erfolgreich Systemschwachstellen

2.Find-PathDLLHijack

Mit diesem Modul wird überprüft, welche Verzeichnisse im aktuellen% PATH% vom Benutzer geschrieben werden können.
Befehl: Find-Pathdllhijack
Fügen Sie hier eine Bildbeschreibung ein
überprüft erfolgreich die beschreibbaren Verzeichnisse des Systems

3.Get-ApplicationHost

Das Modul kann die Datei applicationHost.config auf dem System verwenden, um den verschlüsselten Anwendungspool und das Kennwort für das virtuelle Verzeichnis wiederherzustellen.
Befehl: get-ApplicationHost
oder get-ApplicationHost | Format-Table -Autosize #List display
Fügen Sie hier eine Bildbeschreibung ein

4.Get-RegistryAlwaysInstallElevated

Mit diesem Modul wird überprüft, ob der Registrierungsschlüssel AlwaysInstallElevated festgelegt ist. Wenn er festgelegt wurde, bedeutet dies, dass die MSI-Datei von der Berechtigung SYSTEM zugelassen wird.
Befehl: Get-RegistryAlwaysInstallElevated
Fügen Sie hier eine Bildbeschreibung ein

5.Get-RegistryAutoLogon

Dieses Modul wird verwendet, um festzustellen, ob das AutoAdminLogon-Element der Winlogin-Registrierung festgelegt ist, und kann den Standardbenutzernamen und das Standardkennwort abfragen.
Befehl: Get-RegistryAutoLogon

6.Get-ServiceDetail

Dieses Modul wird verwendet, um die Informationen eines bestimmten Dienstbefehls zurückzugeben
: Get-ServiceDetail -ServiceName Dhcp ruft
Fügen Sie hier eine Bildbeschreibung ein
erfolgreich die detaillierten Informationen des DHCP-Dienstes ab

7.Get-ServiceFilePermission

Mit diesem Modul wird überprüft, in welche Dienstverzeichnisse der aktuelle Benutzer zugehörige ausführbare Dateien schreiben kann. Durch diese Dateien kann eine
Eskalation von Berechtigungen erreicht werden. Befehl: Get-ServiceFilePermission Ich
Fügen Sie hier eine Bildbeschreibung ein
weiß nicht warum ...

8.Test-ServiceDaclPermisssion

Dieses Modul wird verwendet, um alle verfügbaren Dienste zu überprüfen und zu versuchen, diese geöffneten Dienste zu ändern. Wenn es geändert werden kann, geben Sie das Dienstobjekt
Command: Test-ServiceDaclPermission zurück
Fügen Sie hier eine Bildbeschreibung ein

9.Get-ServiceUnquoted

Dieses Modul wird verwendet, um den Dienstpfad zu überprüfen und den Dienstpfad zurückzugeben, der Leerzeichen enthält, jedoch keine Anführungszeichen enthält.
Hier liegt eine logische Sicherheitsanfälligkeit in Windows vor. Wenn die Datei Leerzeichen enthält, wird die Windows-API als zwei Pfade interpretiert und die zwei Dateien, die gleichzeitig ausgeführt werden, können manchmal zu einer Erhöhung der Berechtigungen führen. Beispielsweise wird C: \ program files \ hello.exe als C: \ program.exe und C: \ program files \ hello.exe interpretiert
Befehle: Get-ServiceUnquoted
Fügen Sie hier eine Bildbeschreibung ein
weiß nicht warum ...

10.Get-UnattendedInstallFile

Mit diesem Modul werden die folgenden Pfade überprüft, um abzufragen, ob diese Dateien vorhanden sind. Da diese Dateien möglicherweise Anmeldeinformationen für die Bereitstellung enthalten, umfassen diese Dateien:
Sysprep.xml Befehl
Sysprep.inf
Unattended.xml
Unattend.xml
: Get-UnattendedInstallFile
Fügen Sie hier eine Bildbeschreibung ein

11.Get-ModizableRegistryAutoRun

Dieses Modul wird verwendet, um den Anwendungsprogrammpfad und den Registrierungsschlüsselwert zu überprüfen, die nach dem Booten automatisch gestartet werden, und um dann den Programmpfad zurückzugeben, der vom aktuellen Benutzer geändert werden kann. Die überprüften Registrierungsschlüsselwerte lauten wie folgt:
HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \
HKLM ausführen: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnce
HKLM: \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \
HKLM ausführen: \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ RunOnce
HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunService
HKLM: \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ RunOnceService
HKLM: \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVersion \ RunService
HKLM: \ SOFTWARE \ Wow6432Node \ Microsoft \ Windows \ CurrentVer
Befehl: Get-ModutableRegistryAutoRun
Fügen Sie hier eine Bildbeschreibung ein
hat den Anwendungspfad und den Registrierungsschlüssel erfolgreich überprüft

12.Get-ModutableScheduledTaskFile

Dieses Modul wird verwendet, um den Namen und den Pfad des geplanten Aufgabenprogramms zurückzugeben, das der aktuelle Benutzer ändern kann.
Befehl: Get-ModutableScheduledTaskFile
Fügen Sie hier eine Bildbeschreibung ein
überprüft das geplante Aufgabenprogramm erfolgreich

13.Get-Webconfig

Dieses Modul wird verwendet, um den Klartext der Datenbankverbindungszeichenfolge in der Datei web.config auf dem aktuellen Server zurückzugeben.
Befehl: get-webconfig
Fügen Sie hier eine Bildbeschreibung ein
überprüft die Datenbank in web.config erfolgreich

14.Invoke-ServiceAbuse

Dieses Modul fügt der angegebenen Gruppe Benutzer hinzu, indem der Dienst geändert wird, und kann benutzerdefinierte Befehle zum Hinzufügen von Benutzern auslösen, indem der Parameter -cmd festgelegt wird.
Befehl: Invoke-ServiceAbuse -ServiceName VulnSVC # Fügen Sie das Standardkonto
Invoke-ServiceAbuse -ServiceName VulnSVC -UserName "TESTLAB hinzu \ john "
# Geben Sie das hinzugefügte Domänenkonto an. Invoke-ServiceAbuse -ServiceName VulnSVC -UserName backdoor -Password-Kennwort -LocalGroup" Administrators "# Geben Sie den hinzugefügten Benutzer, das Benutzerkennwort und die hinzugefügte Benutzergruppe
Invoke-ServiceAbuse -ServiceName VulnSVC -Command" net an. "# 自 Ausführungsbefehl definieren

15.Restore-ServiceBinary

Dieses Modul wird verwendet, um die ausführbare Datei des Dienstes im ursprünglichen Verzeichnis wiederherzustellen.
Befehl: Restore-ServiceBinary -ServiceName VulnSVC

16.Test-ServiceDaclPermission

Dieses Modul wird verwendet, um zu überprüfen, ob ein Benutzer über eine freie Zugriffssteuerungsberechtigung im Dienst verfügt. Das Ergebnis gibt den
Befehl true oder false zurück : Restore-ServiceDaclPermission -ServiceName VulnSVC

17.Write-HijackDll

Dieses Modul wird verwendet, um einen benutzerdefinierten Befehl und eine selbstlöschbare .bat-Datei an $ env: Temp \ debug.bat auszugeben und eine DLL auszugeben, mit der die bat-Datei gestartet werden kann

18.Write-UserAddMSI

Dieses Modul wird zum Generieren einer Installationsdatei verwendet. Nach dem Ausführen dieser Installationsdatei wird ein Dialogfeld zum Hinzufügen von Benutzern
angezeigt . Befehl: Write-UserAddMSI
Fügen Sie hier eine Bildbeschreibung ein
Fügen Sie hier eine Bildbeschreibung ein

19.Write-ServiceBinary

Dieses Modul wird zum Vorkompilieren der ausführbaren Datei des C #
-Dienstes verwendet . Standardmäßig wird ein Administratorkonto erstellt. Sie können Ihre eigenen Befehle über den folgenden Befehl anpassen : Write-ServiceBinary -ServiceName VulnSVC # Hinzufügen des Standardkontos
Write-ServiceBinary - ServiceName VulnSVC -Benutzername "TESTLAB \ john"
# Geben Sie das hinzugefügte Domänenkonto an. Write-ServiceBinary -ServiceName VulnSVC -Benutzername backdoor -Password-Kennwort -LocalGroup "Administratoren" # Geben Sie den hinzugefügten Benutzer, das Benutzerkennwort und die hinzugefügte Benutzergruppe
Write-ServiceBinary -ServiceName an VulnSVC -Befehl "net ..." # Benutzerdefinierter Ausführungsbefehl

20.Install-ServiceBinary

Dieses Modul schreibt einen C # -Dienst über Install-ServiceBinary, um Benutzer hinzuzufügen.
Befehl: Install-ServiceBinary -ServiceName DHCP
# Standardkonto hinzufügen Install-ServiceBinary -ServiceName VulnSVC -Benutzername "TESTLAB \ john" # Geben Sie das hinzugefügte Domänenkonto
Install-ServiceBinary-ServiceName an VulnSVC -UserName backdoor -Password password -LocalGroup "Administrators" # Geben Sie den hinzugefügten Benutzer, das Benutzerkennwort und die hinzugefügte Benutzergruppe an.
Install-ServiceBinary -ServiceName VulnSVC -Command "net ..." # Passen Sie die Ausführung der Befehle
Fügen Sie hier eine Bildbeschreibung ein
Write-ServiceBinary und Install-ServiceBinary an Der Unterschied besteht darin, dass erstere ausführbare Dateien generiert und letztere Dienste direkt installiert

Ich denke du magst

Origin blog.csdn.net/bring_coco/article/details/113110165
Empfohlen
Rangfolge