Dieses Skript zielt darauf ab, Sicherheitslücken für die Escalation ( Lokal -Privilegs Escalation ) zu identifizieren, die normalerweise auf Windows -Konfigurationsprobleme oder schlechte Praktiken zurückzuführen sind. Es kann auch nützliche Informationen für einige Ausbeutungs- und Nachauszugsaufgaben sammeln.
Führen Sie es nach dem Herunterladen des Skripts und dem Kopieren auf den Target Windows -Computer mit einem der folgenden Befehle aus.
Notiz
Sie müssen das gesamte Repository nicht klonen. Die Datei PrivescCheck.ps1 ist ein eigenständiges PowerShell -Skript, das den gesamten Code enthält, der von PrivescCheck benötigt wird.
Wichtig
In den folgenden Befehlen im ersten . (DOT) wird zum "DOT -Beschaffung" des Skripts verwendet, damit die Funktionen und CMDlets im aktuellen Bereich verwendet werden können (siehe PowerShell DOT -Beschaffungsfunktion).
Identifizieren Sie schnell wichtige Themen, wie z. B. lokale Eskalationsanfälligkeiten für die Eskalation.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck "Identifizieren Sie wichtige Probleme, sammeln Sie aber auch zusätzliche Informationen und speichern Sie die Ergebnisse, um Dateien zu melden, die leicht zu lesen sind.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML "Führen Sie erweiterte und prüfende Überprüfungen durch und speichern Sie die Ergebnisse in den menschlich lesbaren Berichten, aber auch in maschinenlesbaren Dateien, die später für die automatisierte Berichterstellung analysiert werden können.
powershell -ep bypass -c " . .PrivescCheck.ps1; Invoke-PrivescCheck -Extended -Audit -Report PrivescCheck_$($env:COMPUTERNAME) -Format TXT,HTML,CSV,XML " Alle in Privesccheck implementierten Schecks haben einen Typ . Dieser Wert und die in der Befehlszeile angegebenen Flags bestimmen, ob sie ausgeführt werden oder nicht.
Überprüfungen der Base werden immer ausgeführt, es sei denn, das Skript wird als Administrator ausgeführt. Sie sind hauptsächlich für die Ermittlung von Schwachstellen für die Eskalation von Privilegien oder andere wichtige Themen vorgesehen.
Überprüfte vom Typ Typ Extended können nur ausgeführt werden, wenn in der Befehlszeile die Option -Extended angegeben ist. Sie sind hauptsächlich dazu bestimmt, zusätzliche Informationen bereitzustellen, die für die Exploitentwicklung oder die Nachaussetzung nützlich sein könnten.
Überprüfungen des Typs Audit können nur ausgeführt werden, wenn die -Audit in der Befehlszeile angegeben ist. Sie sind hauptsächlich dazu bestimmt, Informationen bereitzustellen, die im Zusammenhang mit einer Konfigurationsaudit relevant sind.
Überprüfungen vom Typ Experimental können nur ausgeführt werden, wenn die Option -Experimental in der Befehlszeile angegeben ist. Dies sind instabile Schecks, die weitere Arbeiten benötigen. Verwenden Sie sie mit Vorsicht.
Standardmäßig ist die PowerShell -Ausführungsrichtlinie auf Kunden Restricted und auf Servern RemoteSigned , wenn ein neuer Prozess powershell.exe gestartet wird. Diese Richtlinien blockieren die Ausführung von (nicht signierten) Skripten, können jedoch wie folgt innerhalb des aktuellen Bereichs überschrieben werden.
Set-ExecutionPolicy Bypass - Scope Process - Force
. .PrivescCheck.ps1Dieser Trick funktioniert jedoch nicht, wenn die Ausführungsrichtlinie durch einen GPO erzwungen wird. In diesem Fall können Sie nach Beginn einer neuen PowerShell -Sitzung das Skript wie folgt laden.
Get-Content .PrivescCheck.ps1 | Out-String | Invoke-ExpressionEin häufiger Weg, um den eingeschränkten Sprachmodus zu umgehen, besteht darin, PowerShell Version 2 zu starten, da er diesen Schutz nicht implementiert. Ein wesentlicher Teil des Entwicklungsaufwands geht daher in die Aufrechterhaltung dieser Kompatibilität ein.
Notiz
Obwohl PowerShell Version 2 in den letzten Windows -Versionen standardmäßig aktiviert ist, kann er nicht ohne die .NET Framework Version 2.0 ausgeführt werden, für die eine manuelle Installation erforderlich ist.
Wenn Sie dieses Skript in einer Meter -PReter -Sitzung ausführen, erhalten Sie wahrscheinlich einen "Timeout" -Fehler. Metasploit hat einen "Antwort -Zeitlimit" -Wert, der standardmäßig auf 15 Sekunden eingestellt ist. Dieses Skript braucht jedoch viel mehr Zeit, um in den meisten Umgebungen auszuführen.
meterpreter > load powershell
Loading extension powershell...Success.
meterpreter > powershell_import /local/path/to/PrivescCheck.ps1
[+] File successfully imported. No result was returned.
meterpreter > powershell_execute "Invoke-PrivescCheck"
[-] Error running command powershell_execute: Rex::TimeoutError Operation timed out. Dank der Option -t -Option des sessions (Dokumentation) ist es möglich, einen anderen Wert festzulegen. Im folgenden Beispiel wird für die Sitzung mit ID 1 eine Zeitüberschreitung von 2 Minuten festgelegt.
msf6 exploit(multi/handler) > sessions -t 120 -i 1
[*] Starting interaction with 1...
meterpreter > powershell_execute "Invoke-PrivescCheck"