Ich verwende CreateRemoteThread in Windows und möchte wissen, ob das Gleiche unter Linux möglich ist. Ist es möglich, dies in Linux zu tun?
Die traditionelle Vorgehensweise unter Linux besteht darin, eine dynamische Bibliothek (.so) mit Ihrem Code zu erstellen und anschließend das Laden Ihrer Bibliothek in die laufende Anwendung zu erzwingen. Es gibt keinen One-Stop-Shop, wie es mit CreateRemoteThread
unter Windows gibt.
Hier sind die grundlegenden Schritte:
ptrace
, um die in Schritt 2 geschriebene binäre Nutzlast auszuführen, die die Ziel-App auslöst Rufen Sie _dl_open()
für die in Schritt 1 erstellte .so auf, die den tatsächlichen Code enthält, den Sie ausführen möchten. (Beispiel in demselben Link , Teil 2.) Wenn Ihr Code in einem separaten Thread von der Hauptpumpe ausgeführt werden soll, sollten Sie pthread_create
im Code in Schritt 1 verwenden.
Ich hoffe, das beantwortet Ihre Frage. Ja, es ist komplizierter als unter Windows. aber es sollte genauso gut funktionieren. Außerdem können Sie nahezu den gesamten Code aus den Schritten 2 und 3 für zukünftige Remote-Code-Injection-Projekte wiederverwenden.
'# beinhalten pthread.h
int pthread_create (pthread_t * thread, const pthread_attr_t * attr, void * (* start_routine) (void *), void * arg); ' Kompiliere und verlinke mit -pthread.
siehe man pthread_create für Details