OwnershipStealer
Dieser C#-Code ist eine Konsolenanwendung, die versucht, den Besitz einer angegebenen Datei zu übernehmen.
Code-Logik
Das Programm prüft zunächst, ob ein Dateiname als Befehlszeilenargument angegeben wurde; falls nicht, fordert es den Benutzer zur Eingabe auf. Anschließend versucht es, den Besitz der Datei zu übernehmen, indem es die folgenden Schritte ausführt:
- Ruft das Token des aktuellen Prozesses ab.
- Ermittelt den LUID (Locally Unique Identifier) für das SeTakeOwnershipPrivilege.
- Aktiviert das SeTakeOwnershipPrivilege im Token.
- Versucht, den Besitz der Datei zu übernehmen, indem ein neues FileSecurity-Objekt für die Datei erstellt, der Besitzer auf den aktuellen Benutzer gesetzt und die neue Zugriffssteuerung auf die Datei angewendet wird.
- Wenn das Programm auf eine UnauthorizedAccessException stößt, wiederholt es den Vorgang, bis der Besitz der Datei erfolgreich übernommen wurde oder eine Ausnahme ausgelöst wird, die das Programm am Fortfahren hindert.
Sobald der Besitz übernommen wurde, endet das Programm und zeigt eine Meldung an, dass es fertig ist.
Verwendung
- Klonen oder laden Sie das Repository herunter.
- Öffnen Sie das Projekt in Visual Studio.
- Erstellen Sie das Projekt.
- Öffnen Sie die Eingabeaufforderung oder das Terminal und navigieren Sie zum Speicherort der ausführbaren Datei.
- Führen Sie den Befehl mit dem Dateipfad als Argument aus:
- OwnershipStealer.exe [file path]
- Wenn kein Dateipfad angegeben wird, fordert das Programm zur Eingabe eines solchen auf.
Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die Datei LICENSE für Details.
Video Proof-of-Concept
https://youtu.be/sOcJp58sblM