Skip to content
KitploitKITPLOIT
ToolsBlog
Log in
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
LocalPotato_CVE-2023-21746 — Proof-of-Concept-Exploit für Windows lokale Berechtigungserweiterung (CVE-2023-21746), der die NTLM-lokale Authentifizierung ausnutzt, um über SMB-Freigabezugriff und DLL-Hijacking SYSTEM-Privilegien zu erlangen. | Kitploit
Tools/GitHubGitHub/muhammad-ali007/localpotato_cve-2023-21746
Privilege EscalationSchwachstellenanalyseExploitationLaterale BewegungPost-ExploitationPenetrationstestsPayload-EntwicklungBinary-Exploitation

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
muhammad-ali007/localpotato_cve-2023-21746

LocalPotato_CVE-2023-21746

Proof-of-Concept-Exploit für Windows lokale Berechtigungserweiterung (CVE-2023-21746), der die NTLM-lokale Authentifizierung ausnutzt, um über SMB-Freigabezugriff und DLL-Hijacking SYSTEM-Privilegien zu erlangen.

Repository anzeigen
328vor 3 JahrenNoch nicht geprüft

Eine lokale Privilegienausweitung (LPE) Schwachstelle in Windows wurde Microsoft am 9. September 2022 von Andrea Pierini (@decoder_it) und Antonio Cocomazzi (@splinter_code) gemeldet. Die Schwachstelle würde einem Angreifer mit einem Konto mit niedrigen Berechtigungen auf einem Host ermöglichen, beliebige Dateien mit SYSTEM-Berechtigungen zu lesen/schreiben.

Obwohl die Schwachstelle an sich keinen direkten Befehlssystem als SYSTEM ermöglichen würde, können wir sie mit mehreren Vektoren kombinieren, um dieses Ergebnis zu erzielen. Praktischerweise wurde am 13. Februar ein weiterer Privilegienausweitungs-PoC von BlackArrowSec veröffentlicht, der den StorSvc-Dienst missbraucht und es einem Angreifer ermöglicht, Code als SYSTEM auszuführen, solange er eine DLL-Datei in ein beliebiges Verzeichnis im PATH schreiben kann.

Der LocalPotato-PoC nutzt einen Fehler in einem Sonderfall der NTLM-Authentifizierung namens NTLM-Lokale Authentifizierung aus, um einen privilegierten Prozess dazu zu bringen, eine Sitzung zu authentifizieren, die der Angreifer gegen den lokalen SMB-Server startet. Infolgedessen erhält der Angreifer eine Verbindung, die ihm Zugriff auf alle Freigaben mit den Berechtigungen des getäuschten Prozesses gewährt, einschließlich spezieller Freigaben wie C$ oder ADMIN$.

Der vom Exploit befolgte Prozess ist wie folgt:

  • Der Angreifer löst einen privilegierten Prozess aus, der eine Verbindung zu einem betrügerischen Server unter seiner Kontrolle herstellt. Dies funktioniert ähnlich wie frühere Potato-Exploits, bei denen ein nicht privilegierter Benutzer das Betriebssystem zwingen kann, Verbindungen zu erstellen, die einen privilegierten Benutzer (normalerweise SYSTEM) verwenden.
  • Der betrügerische Server instanziiert einen Sicherheitskontext A für die privilegierte Verbindung, sendet ihn aber nicht sofort zurück. Stattdessen startet der Angreifer einen betrügerischen Client, der gleichzeitig eine Verbindung zum lokalen SMB-Server (Windows-Dateifreigabe) mit seinen aktuellen, nicht privilegierten Anmeldeinformationen initiiert. Der Client sendet die Type1-Nachricht, um die Verbindung zu initiieren, und der Server antwortet durch Senden einer Type2-Nachricht mit der ID für einen neuen Sicherheitskontext B.
  • Der Angreifer tauscht die Kontext-IDs beider Verbindungen aus, sodass der privilegierte Prozess den Kontext der SMB-Serververbindung anstelle seines eigenen erhält. Infolgedessen verknüpft der privilegierte Client seinen Benutzer (SYSTEM) mit Sicherheitskontext B der vom Angreifer erstellten SMB-Verbindung. Dadurch kann der Client des Angreifers nun mit SYSTEM-Berechtigungen auf jede Netzwerkfreigabe zugreifen!

Durch eine privilegierte Verbindung zu SMB-Freigaben kann der Angreifer Dateien an jedem Speicherort auf dem Zielcomputer lesen oder schreiben. Obwohl dies nicht erlaubt, Befehle direkt gegen den angreifbaren Rechner auszuführen, werden wir dies mit einem anderen Angriffsvektor kombinieren, um dieses Ziel zu erreichen.

Beachten Sie, dass die Schwachstelle im NTLM-Protokoll und nicht im SMB-Server liegt, sodass dieser Angriffsvektor theoretisch gegen jeden Dienst verwendet werden könnte, der Authentifizierung über NTLM nutzt. In der Praxis müssen jedoch einige Einschränkungen bei der Auswahl des anzugreifenden Protokolls berücksichtigt werden. Der PoC verwendet den SMB-Server, um einige zusätzliche Schutzmaßnahmen zu umgehen, die für andere Protokolle gegen ähnliche Angriffsvektoren bestehen, und implementiert sogar einen schnellen Bypass, um den Exploit gegen den SMB-Server zum Laufen zu bringen. Originalbeitrag des Exploit-Autors – (https://decoder.cloud/2023/02/13/localpotato-when-swapping-the-context-leads-you-to-system/)

Bisher haben wir LocalPotato verwendet, um beliebige Dateien auf den Zielcomputer zu schreiben. Um eine privilegierte Shell zu erhalten, müssen wir noch herausfinden, wie wir das beliebige Schreiben nutzen können, um einen Befehl auszuführen.

Kürzlich wurde ein weiterer Privilegienausweitungsvektor gefunden, bei dem ein Angreifer eine fehlende DLL kapern kann, um beliebige Befehle mit SYSTEM-Berechtigungen auszuführen. Das einzige Problem bei diesem Vektor war, dass ein Angreifer eine DLL in den PATH des Systems schreiben müsste, um ihn auszulösen. Standardmäßig enthält der Windows PATH nur Verzeichnisse, in die nur privilegierte Konten schreiben können. Obwohl es möglich sein könnte, Maschinen zu finden, auf denen die Installation bestimmter Anwendungen die PATH-Variable geändert und die Maschine angreifbar gemacht hat, gilt der Angriffsvektor nur für bestimmte Szenarien. Die Kombination dieses Angriffs mit LocalPotato ermöglicht es uns, diese Einschränkung zu überwinden und einen voll funktionsfähigen Privilegienausweitungs-Exploit zu haben.

StorSvc und DLL-Hijacking Wie von BlackArrowSec entdeckt (https://github.com/blackarrowsec/redteam-research/tree/26e6fc0c0d30d364758fa11c2922064a9a7fd309/LPE via StorSvc), kann ein Angreifer einen RPC-Aufruf an die Methode "SvcRebootToFlashingMode" des Dienstes "StorSvc" senden, der wiederum den Versuch auslöst, eine fehlende DLL namens "SprintCSP.dll" zu laden. Falls Sie mit RPC nicht vertraut sind: Stellen Sie es sich wie eine API vor, die Funktionen bereitstellt, sodass sie remote verwendet werden können. In diesem Fall stellt der StorSvc-Dienst die Methode SvcRebootToFlashingMode zur Verfügung, die jeder mit Zugriff auf die Maschine aufrufen kann. Da StorSvc mit SYSTEM-Berechtigungen läuft, führt die Erstellung von SprintCSP.dll irgendwo im PATH dazu, dass sie geladen wird, sobald ein Aufruf von SvcRebootToFlashingMode erfolgt.

Kompilieren des Exploits Exploit-Link – (https://github.com/decoder-it/LocalPotato) Um diesen Exploit zu nutzen, müssen Sie zuerst beide bereitgestellten Dateien kompilieren:

  • SprintCSP.dll: Dies ist die fehlende DLL, die wir kapern werden. Wir müssen den Befehl ändern, um eine Reverse-Shell auszuführen.
  • RpcClient.exe: Dieses Programm löst den RPC-Aufruf an SvcRebootToFlashingMode aus. Je nach der von Ihnen angegebenen Windows-Version müssen Sie möglicherweise den Code des Exploits ein wenig bearbeiten, da verschiedene Windows-Versionen unterschiedliche Schnittstellenkennungen verwenden, um SvcRebootToFlashingMode bereitzustellen. Die Projekte für beide Dateien befinden sich im Verzeichnis "LPE via StorSvc".

Beginnen wir mit "RpcClient.exe". Wie bereits erwähnt, müssen wir den Exploit je nach Windows-Version des Zielcomputers ändern. Dazu müssen wir die ersten Zeilen von "LPE via StorSvc\RpcClient\RpcClient\storsvc_c.c" ändern, sodass das richtige Betriebssystem ausgewählt wird. Dadurch wird der Exploit so eingestellt, dass er die richtige RPC-Schnittstellenkennung verwendet. Nachdem der Code korrigiert wurde, öffnen wir eine Entwickler-Eingabeaufforderung und erstellen das Projekt mit dem folgenden Befehl: Befehle: C:\LPE via StorSvc\RpcClient> msbuild RpcClient.sln C:\LPE via StorSvc\RpcClient> move x64\Debug\RpcClient.exe C:\Users\user\Desktop\ (Die kompilierte ausführbare Datei befindet sich auf Ihrem Desktop.)

Um nun "SprintCSP.dll" zu kompilieren, müssen wir nur die Funktion "DoStuff()" in "C:\LPE via StorSvc\SprintCSP\SprintCSP\main.c" ändern, sodass sie einen Befehl ausführt, der uns privilegierten Zugriff auf die Maschine verschafft. Der Einfachheit halber lassen wir die DLL unseren aktuellen Benutzer zur Gruppe "Administratoren" hinzufügen. Wir können auch eine Reverse-Shell von diesem Ziel zu unserer Maschine erhalten. Wir kompilieren die DLL nun mit dem folgenden Befehl und verschieben das Ergebnis zurück auf unseren Desktop: Befehle: C:\LPE via StorSvc\SprintCSP> msbuild SprintCSP.sln C:\LPE via StorSvc\SprintCSP> move x64\Debug\SprintCSP.dll C:\Users\user\Desktop\

Wir sind nun bereit, den Exploit zu starten. Stellen Sie sicher, dass Sie die Dateien "LocalPotato.exe", "RpcClient.exe" und "SprintCSP.dll" haben.

Tool herunterladen