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
asminject — Heavily-modified fork of David Buchanan's dlinject project. Injects arbitrary assembly (or precompiled binary) payloads directly into x86-64, x86, and ARM32 Linux processes without the use of ptrace by accessing /proc/<pid>/mem. Useful for certain post-exploitation scenarios, recovering content from process memory, etc.. | Kitploit
Tools/GitHubGitHub/bishopfox/asminject
ShellcodePost-ExploitationPenetration TestingPayload DevelopmentContainer Escape
GitHubbishopfox/asminject

asminject

Repository anzeigen
14815vor 3 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Über

Heavily-modified fork of David Buchanan's dlinject project. Injects arbitrary assembly (or precompiled binary) payloads directly into x86-64, x86, and ARM32 Linux processes without the use of ptrace by accessing /proc/<pid>/mem. Useful for certain post-exploitation scenarios, recovering content from process memory, etc..

Teilen

asminject.py

asminject.py ist ein stark modifizierter Fork des dlinject-Projekts von David Buchanan. Es injiziert beliebige Assembly- (oder vorkompilierte Binär-) Payloads direkt in x86-64-, x86- und ARM32-Linux-Prozesse, indem es auf /proc/<pid>/mem zugreift, anstatt über ptrace anzuhängen. Nützlich zum Manipulieren vertrauenswürdiger Prozesse, für bestimmte Post-Exploitation-Szenarien, zum Wiederherstellen von Inhalten aus dem Prozessspeicher und zum Umgehen einiger Sicherheitskontrollen. Es kann in containerisierte Prozesse von außerhalb des Containers injizieren, solange man Root-Zugriff auf den Host hat.

Weitere Informationen über asminject.py und seine Ursprünge findest du auf der Bishop-Fox-Tool-Seite, einschließlich einer ausführlichen Abhandlung über die Arbeit, die das Tool inspiriert hat.

In diesem Dokument:

  • Elevator-Pitches oder TLDR
  • Ursprünge
  • Beispiele
  • Aber was ist mit Yamas ptrace_scope-Einschränkungen?
  • Zukünftige Ziele

Separate, ausführlichere Dokumentation:

  • Wie asminject.py funktioniert – eine architektonische Diskussion auf höherer Ebene mit tiefen Einblicken in einige technische Details, besonders für Leser, die bisher noch nicht mit Speicherinjektionswerkzeugen gearbeitet haben
  • Erste Schritte
  • Unterschiede zu dlinject.py
  • Spezialisierte Optionen
  • Fehlerbehebung
  • Versionshistorie

Elevator-Pitches oder TLDR

  • „asminject.py ist wie dlinject, nur dass du damit jeden beliebigen Payload injizieren kannst, anstatt nur eine Bibliothek zu laden, und es funktioniert auf mehreren Architekturen.“
  • „asminject.py ist vage wie Frida, nur dass es nicht über die ptrace-Schnittstelle anhängt, sodass Prozesse es nicht blockieren können, indem sie sich selbst per ptrace überwachen.“

Ursprünge

asminject.py wurde für zwei primäre Szenarien im Penetrationstest innerhalb von Linux-Umgebungen geschrieben:

  • Angriff auf Sicherheitskontrollen auf Prozess- und Containerebene aus der Perspektive eines Angreifers mit Root-Zugriff auf den Host
  • Vermeidung der Erkennung nach der erfolgreichen Ausnutzung eines anderen Problems

Stell dir zum Beispiel einen Penetrationstest vor, bei dem der Tester Root-Zugriff auf einen Server erlangt hat, der viele Container hostet. Einer der Container verarbeitet Banküberweisungen und enthält ein sehr robustes Endpunktsicherheitsprodukt. Wenn der Pentester versucht, die Banküberweisungsdaten von innerhalb des Containers zu ändern, erkennt die Endpunktsicherheitssoftware den Versuch und blockiert ihn. asminject.py ermöglicht es dem Pentester, beliebigen Code direkt in den Prozessspeicher der Bankensoftware oder sogar in das Endpunktsicherheitsprodukt von außerhalb des Containers zu injizieren. Wie ein Opfer von Descartes‘ „bösem Dämon“ ist die Sicherheitssoftware im Container hilflos, weil sie in einer Umgebung existiert, die vollständig unter der Kontrolle des Angreifers steht.

Das ursprüngliche dlinject.py wurde speziell dafür entwickelt, Linux-Shared-Libraries in einen bestehenden Prozess zu laden. asminject.py kann alles, was das Original konnte, und noch viel mehr. Es führt beliebigen Assembly-Code aus und enthält Vorlagen für eine Vielzahl von Angriffen. Es wurde außerdem neu gestaltet, um die Erkennung durch Sicherheitsmechanismen zu vermeiden, die sich an potenziell verdächtigen Aktivitäten wie Bibliotheksladeereignissen orientieren.

Beispiele

Das Verzeichnis practice dieses Repositorys enthält einfachen Schleifencode, der einen Zeitstempel und die Schleifeniteration auf der Konsole ausgibt, sodass du das Injizieren verschiedener Codetypen in einer kontrollierten Umgebung üben kannst. Diese Übungsschleifen werden in den übrigen Beispielen referenziert.

Die grundlegende Syntax für den Aufruf von asminject.py lautet:

root@kitploit:~
# python3 ./asminject.py <target_process_id> <payload> \
  --arch [x86-64|x86|arm32] --relative-offsets-from-binaries --stop-method "slow" \
  --var <payload_variable_1_name> <payload_variable_1_value> \
  # ... \
  --var <payload_variable_n_name> <payload_variable_n_value>

In den meisten Fällen läuft jeder der in den Beispielen verwendeten Payloads auf jeder der unterstützten Architekturen.

  • Grundlegende Beispiele – einfache Payloads, die z. B. dafür sorgen, dass ein bestehender Prozess Dateien für dich kopiert
  • Python-Code-Injektion
  • PHP-Code-Injektion
  • Ruby-Code-Injektion
  • Shellcode-/Stager-Injektion
  • Shared-Library-Injektion

Aber was ist mit Yamas ptrace_scope-Einschränkungen?

Die meisten Linux-Distributionen enthalten ein Kernel-Sicherheitsmodul namens Yama, das den Zugriff auf die Nutzung der ptrace-Fähigkeit gegenüber anderen Prozessen steuert. Obwohl asminject.py nicht an der Debugger-Schnittstelle anhängt, benötigt es dennoch die Berechtigung, die ptrace-Fähigkeit zu nutzen. Wenn du Fehler bezüglich dieser Fähigkeit erhältst, überprüfe den Inhalt von /proc/sys/kernel/yama/ptrace_scope. Wenn dort der Wert 2 steht, führe den folgenden Befehl als root aus:

root@kitploit:~
echo 1 > /proc/sys/kernel/yama/ptrace_scope

Werte von 3 oder höher können ohne Neustart nicht zurückgesetzt werden. Wenn du jedoch ein autorisierter Administrator eines Linux-Systems bist, auf dem jemand versehentlich /proc/sys/kernel/yama/ptrace_scope auf 3 gesetzt hat, oder einen autorisierten Penetrationstest in einer Umgebung durchführst, in der dieser Wert gesetzt wurde, schau in das Verzeichnis ptrace_scope_kernel_module für eine mögliche Problemumgehung, die keinen Neustart erfordert.

Zukünftige Ziele

  • Unterstützung für ARM64 (Aarch64) hinzufügen.
  • Ermöglichen, Shellcode über stdin zu übergeben, zusätzlich zur derzeitigen Methode des Lesens aus einer Datei.
  • Untersuchen, ob Keystone für die Shellcode-Assemblierung verwendet werden kann, anstatt den gcc-Befehl auf Betriebssystemebene aufzurufen.
  • Für Python und andere Skript-Interpreter mit APIs zur Übergabe von kompiliertem Bytecode zur Ausführung (im Gegensatz zur eval-artigen Ausführung von menschenlesbarem Skriptcode) Payloads bereitstellen, die diese Fähigkeit für noch mehr Heimlichkeit nutzen.
  • Falls machbar, Java-Code über das JNI in Java-Prozesse injizieren.
  • Optionen hinzufügen, um eine bestimmte Methode (oder Adresse usw.) zu hooken, als Alternative zur derzeitigen Technik „nächsten Syscall hooken“, die von dlinject.py übernommen wurde.
  • Eine Möglichkeit bereitstellen, das Tool für Quasi-Debugging zu verwenden, z. B. eine Funktion zu hooken und jedes Mal die an sie übergebenen Argumente auszugeben, wenn sie aufgerufen wird.
    • Es könnte sinnvoller sein, einen Weg zu finden, Frida mithilfe von asminject.py zu injizieren – weitere Forschung ist erforderlich.
  • Interaktive Payloads entwickeln, z. B. anstatt eine bestimmte Zeile Python-Skriptcode in einen Python-Prozess zu injizieren, könnte asminject.py den Bediener nach einer Codezeile fragen, sie injizieren, die resultierende Ausgabe zurückgeben und dann den Bediener nach einer weiteren Codezeile fragen.
    • Auch dies könnte sinnvollerweise mit Frida gehandhabt werden, wenn Frida mithilfe von asminject.py so in einen Prozess injiziert werden kann, dass Fridas Notwendigkeit, vorübergehend die Debugger-Schnittstelle aufzurufen, vermieden wird.
Tool herunterladen
  • Eine Möglichkeit bereitstellen, mit einem Zielprozess zu interagieren, der auf einer Prozessorarchitektur läuft, die nicht der entspricht, auf der asminject.py ausgeführt wird. Z. B. mit einem entfernten Gerät über Hardware wie einen PCI-Leech interagieren, extreme Randfälle ausnutzen wie Geräte, deren /proc/mem als Root über eine NFS-Freigabe zugänglich ist, usw.
  • Aufwendigere Verschleierungsfragmente hinzufügen.