Skip to content
KitploitKITPLOIT
ToolsBlog
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
dlinject — Injizieren einer Shared Library (d.h. beliebigen Code) in einen laufenden Linux-Prozess ohne ptrace | Kitploit
Tools/GitHubGitHub/davidbuchanan314/dlinject
ExploitationShellcodeRed Teaming
GitHubdavidbuchanan314/dlinject

dlinject

Injizieren einer Shared Library (d.h. beliebigen Code) in einen laufenden Linux-Prozess ohne ptrace

Repository anzeigen
82786vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

dlinject.py

Füge eine dynamische Bibliothek (d.h. beliebigen Code) in einen laufenden Linux-Prozess ein, ohne ptrace. Inspiriert von Cexigua und linux-inject und anderen.

asciicast

Verwendung

root@kitploit:~
    .___.__  .__            __               __
  __| _/|  | |__| ____     |__| ____   _____/  |_  ______ ___.__.
 / __ | |  | |  |/    \    |  |/ __ \_/ ___\   __\ \____ <   |  |
/ /_/ | |  |_|  |   |  \   |  \  ___/\  \___|  |   |  |_> >___  |
\____ | |____/__|___|  /\__|  |\___  >\___  >__| /\|   __// ____|
     \/              \/\______|    \/     \/     \/|__|   \/

source: https://github.com/DavidBuchanan314/dlinject

usage: dlinject.py [-h] [--stopmethod {sigstop,cgroup_freeze,none}]
                   pid /path/to/lib.so

Inject a shared library into a live process.

positional arguments:
  pid                   The pid of the target process
  /path/to/lib.so       Path of the shared library to load (note: must be
                        relative to the target process's cwd, or absolute)

optional arguments:
  -h, --help            show this help message and exit
  --stopmethod {sigstop,cgroup_freeze,none}
                        How to stop the target process prior to shellcode
                        injection. SIGSTOP (default) can have side-effects.
                        cgroup freeze requires root. 'none' is likely to cause
                        race conditions.

Warum?

  • Weil ich es kann.

  • Es gibt verschiedene Anti-ptrace-Techniken, die dieses Tool umgeht, indem es ptrace einfach nicht verwendet.

  • Ich mag ptrace nicht.

  • Die Verwendung von LD_PRELOAD kann manchmal knifflig oder unmöglich sein, wenn der Prozess, in den Sie injizieren möchten, von einem anderen Prozess mit einer sauberen Umgebung erzeugt wird.

Wie es funktioniert

  • Sende das Stoppsignal an den Zielprozess. (optional)

  • Lokalisiere das Symbol _dl_open().

  • Rufe RIP und RSP über /proc/[pid]/syscall ab.

  • Erstelle ein Backup eines Teils des Stacks und des Codes, den wir mit unserem Shellcode überschreiben werden, indem wir aus /proc/[pid]/mem lesen.

  • Erstelle primäre und sekundäre Shellcode-Puffer.

  • Füge primären Shellcode an der Stelle von RIP ein, indem wir in /proc/[pid]/mem schreiben.

  • Der primäre Shellcode:

    • Legt allgemeine Register auf den Stack.
    • Lädt den sekundären Shellcode über mmap().
    • Springt zum sekundären Shellcode.
  • Der sekundäre Shellcode:

    • Stellt den Stack und den Programmcode auf ihren ursprünglichen Zustand zurück.
    • Verschiebt den Stack (damit wir den Original-Stack gar nicht berühren).
    • Ruft _dl_open() auf, um die vom Benutzer angegebene Bibliothek zu laden. Konstruktoren werden beim Laden wie üblich ausgeführt.
    • Stellt den Registerzustand wieder her, macht die Stack-Verschiebung rückgängig und springt dorthin zurück, wo er zum Zeitpunkt des ursprünglichen war.

Einschränkungen:

  • Das Senden von SIGSTOP kann unerwünschte Nebenwirkungen verursachen, z.B. wenn ein anderer Thread auf waitpid() wartet. Mit der Option --stopmethod=cgroup_freeze wird dies vermieden, erfordert aber root-Rechte (zumindest auf den meisten Distributionen).

  • Ich bin mir nicht ganz sicher, wie sich dies mit komplexen Multithread-Anwendungen verhält. Es besteht definitiv Potenzial für Brüche.

  • Nur für x86-64 Linux (vorerst - 32-Bit-Unterstützung könnte möglicherweise hinzugefügt werden).

  • Erfordert root oder eine lockere YAMA-Konfiguration (echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope ist beim Testen nützlich).

  • Wenn der Zielprozess in einer Sandbox läuft (z.B. seccomp-Filter), hat er möglicherweise keine Berechtigung, den zweiten Shellcode zu mmap() oder die Bibliothek zu dlopen().

Tool herunterladen
SIGSTOP