<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegramm-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
Es gab bereits mehrere Fälle von **Privilege Escalation**, bei denen ein **privilegierter Prozess mit offenen und vererbten Handles** einen **unprivilegierten Prozess ausgeführt hat**, wodurch diesem Zugriff auf all diese Handles gewährt wurde.
Stellen Sie sich zum Beispiel vor, dass ein als SYSTEM ausgeführter Prozess einen neuen Prozess (`OpenProcess()`) mit **vollen Zugriffsrechten** öffnet. Derselbe Prozess erstellt auch einen neuen Prozess (`CreateProcess()`) mit niedrigen Berechtigungen, erbt jedoch alle offenen Handles des Hauptprozesses.\
Dann können Sie, wenn Sie **vollen Zugriff auf den Prozess mit niedrigen Berechtigungen** haben, das **offene Handle zum erstellten privilegierten Prozess** mit `OpenProcess()` abrufen und einen Shellcode einschleusen.
Wie im ersten Beispiel erwähnt, kann ein **unprivilegierter Prozess ein Prozesshandle** eines **privilegierten Prozesses** erben, der über ausreichende Berechtigungen verfügt, um **beliebigen Code darauf auszuführen**.
In [**diesem ausgezeichneten Artikel**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/) können Sie sehen, wie Sie jedes Prozesshandle ausnutzen können, das eine der folgenden Berechtigungen hat:
Ähnlich wie bei den Prozesshandles kann ein **unprivilegierter Prozess ein Threadhandle** eines **privilegierten Prozesses** erben, der über ausreichende Berechtigungen verfügt, um **beliebigen Code darauf auszuführen**.
In [**diesem ausgezeichneten Artikel**](http://dronesec.pw/blog/2019/08/22/exploiting-leaked-process-and-thread-handles/) können Sie auch sehen, wie Sie jedes Threadhandle ausnutzen können, das eine der folgenden Berechtigungen hat:
Wenn ein **unprivilegierter Prozess** ein **Handle** mit **Schreibberechtigungen** über eine **privilegierte Datei oder Registrierung** erbt, kann er die Datei/Registrierung **überschreiben** (und mit viel **Glück****privilegierte Berechtigungen eskalieren**).
**Abschnitts-Handles** sind ähnlich wie Datei-Handles, der gemeinsame Name für diese Art von [Objekten ist **"File Mapping"**](https://docs.microsoft.com/en-us/windows/win32/memory/file-mapping). Sie werden verwendet, um mit **großen Dateien zu arbeiten, ohne die gesamte** Datei im Speicher zu halten. Dadurch ähnelt die Ausnutzung der Ausnutzung eines Datei-Handles.
[**Process Hacker**](https://github.com/processhacker/processhacker) ist ein kostenloses Tool, das Sie herunterladen können. Es bietet mehrere erstaunliche Optionen zur Inspektion von Prozessen, und eine davon ist die **Möglichkeit, die Handles jedes Prozesses zu sehen**.
Beachten Sie, dass zum **Anzeigen aller Handles aller Prozesse die SeDebugPrivilege-Berechtigung erforderlich ist** (daher müssen Sie Process Hacker als Administrator ausführen).
Das [**Handles** ](https://docs.microsoft.com/en-us/sysinternals/downloads/handle)Binary von Sysinternals listet ebenfalls die Handles pro Prozess in der Konsole auf:
[**Dieses Tool**](https://github.com/lab52io/LeakedHandlesFinder) ermöglicht es Ihnen, ausgelaufene Handles zu **überwachen** und sie sogar automatisch auszunutzen, um Berechtigungen zu eskalieren.
Jetzt, da Sie wissen, wie Sie Handles von Prozessen finden können, müssen Sie überprüfen, ob ein **unprivilegierter Prozess Zugriff auf privilegierte Handles hat**. In diesem Fall könnte der Benutzer des Prozesses in der Lage sein, das Handle zu erhalten und es missbrauchen, um Berechtigungen zu eskalieren.
Es wurde zuvor erwähnt, dass Sie die SeDebugPrivilege benötigen, um auf alle Handles zugreifen zu können. Aber ein **Benutzer kann immer noch auf die Handles seiner Prozesse zugreifen**, daher kann es nützlich sein, wenn Sie von diesem Benutzer aus die Tools mit den regulären Benutzerberechtigungen ausführen möchten**.
Zum Beispiel gehört der folgende Code zu einem **Windows-Dienst**, der verwundbar wäre. Der verwundbare Code dieser Dienst-Binärdatei befindet sich innerhalb der **`Exploit`**-Funktion. Diese Funktion beginnt damit, **einen neuen Handle-Prozess mit vollständigem Zugriff zu erstellen**. Anschließend wird ein Prozess mit niedrigen Berechtigungen erstellt (indem das Token mit niedrigen Berechtigungen von _explorer.exe_ kopiert wird) und _C:\users\username\desktop\client.exe_ ausgeführt. Die **Verwundbarkeit besteht darin, dass der Prozess mit niedrigen Berechtigungen mit `bInheritHandles` als `TRUE` erstellt wird**.
Daher ist dieser Prozess mit niedrigen Berechtigungen in der Lage, den Handle des zuerst erstellten Prozesses mit hohen Berechtigungen zu erfassen und einen Shellcode einzufügen und auszuführen (siehe nächster Abschnitt).
In einem realen Szenario haben Sie wahrscheinlich **keine Kontrolle über die ausführbare Datei**, die vom verwundbaren Code (_C:\users\username\desktop\client.exe_ in diesem Fall) ausgeführt wird. Wahrscheinlich werden Sie **einen Prozess kompromittieren und prüfen müssen, ob Sie auf einen verwundbaren Handle eines privilegierten Prozesses zugreifen können**.
In diesem Beispiel finden Sie den Code für einen möglichen Exploit für _C:\users\username\desktop\client.exe_.\
Der interessanteste Teil dieses Codes befindet sich in `GetVulnProcHandle`. Diese Funktion wird **alle Handles abrufen**, dann wird überprüft, ob eines davon zur gleichen PID gehört und ob das Handle zu einem **Prozess gehört**. Wenn all diese Anforderungen erfüllt sind (ein zugängliches offenes Prozess-Handle wird gefunden), wird versucht, einen Shellcode unter Ausnutzung des Handles des Prozesses einzufügen und auszuführen.\
Die Injektion des Shellcodes erfolgt innerhalb der Funktion **`Inject`** und schreibt den Shellcode einfach in den privilegierten Prozess und erstellt einen Thread im selben Prozess, um den Shellcode auszuführen).
In einem realen Szenario haben Sie wahrscheinlich **keine Kontrolle über die ausführbare Datei**, die vom verwundbaren Code (_C:\users\username\desktop\client.exe_ in diesem Fall) ausgeführt wird. Wahrscheinlich werden Sie **einen Prozess kompromittieren und prüfen müssen, ob Sie auf einen verwundbaren Handle eines privilegierten Prozesses zugreifen können**.
In diesem Beispiel wird **anstatt des Missbrauchs des offenen Handles zum Einschleusen** und Ausführen eines Shellcodes das Token des privilegierten offenen Handle-Prozesses verwendet, um ein neues Handle zu erstellen. Dies wird in den Zeilen 138 bis 148 durchgeführt.
Beachten Sie, wie die Funktion `UpdateProcThreadAttribute` mit dem Attribut `PROC_THREAD_ATTRIBUTE_PARENT_PROCESS` und dem Handle zum offenen privilegierten Prozess verwendet wird. Dies bedeutet, dass der **erstellte Prozess-Thread, der \_cmd.exe ausführt**, das gleiche Token-Privileg wie der offene Handle-Prozess haben wird.
Dieses Tool ermöglicht es Ihnen, ausgelaufene Handles zu überwachen, um verwundbare zu finden und sie sogar automatisch auszunutzen. Es enthält auch ein Tool zum Auslaufen eines Handles.
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie Pull Requests an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.