Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
asminject — Fork fortement modifié du projet dlinject de David Buchanan. Injecte des payloads d'assemblage arbitraires (ou de binaires précompilés) directement dans des processus Linux x86-64, x86 et ARM32 sans utiliser ptrace, en accédant à /proc/<pid>/mem. Utile pour certains scénarios de post-exploitation, la récupération de contenu depuis la mémoire des processus, etc. | Kitploit
Outils/GitHubGitHub/bishopfox/asminject
ShellcodePost-ExploitationTests d'IntrusionDéveloppement de Charges UtilesÉvasion de Conteneur
GitHubbishopfox/asminject

asminject

Voir le dépôt
1481522il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →

À propos

Fork fortement modifié du projet dlinject de David Buchanan. Injecte des payloads d'assemblage arbitraires (ou de binaires précompilés) directement dans des processus Linux x86-64, x86 et ARM32 sans utiliser ptrace, en accédant à /proc/<pid>/mem. Utile pour certains scénarios de post-exploitation, la récupération de contenu depuis la mémoire des processus, etc.

Partager

asminject.py

asminject.py est un fork fortement modifié du projet dlinject de David Buchanan. Il injecte des charges utiles en assembleur arbitraire (ou des binaires précompilés) directement dans des processus Linux x86-64, x86 et ARM32 en accédant à /proc/<pid>/mem au lieu de s'attacher via ptrace. Utile pour altérer des processus de confiance, certains scénarios de post-exploitation, récupérer du contenu depuis la mémoire de processus et contourner certains contrôles de sécurité. Peut injecter dans des processus conteneurisés depuis l'extérieur du conteneur, tant que vous disposez d'un accès root sur l'hôte.

Vous pouvez également en apprendre davantage sur asminject.py et ses origines sur sa page d'outil Bishop Fox, notamment un article détaillé sur le travail qui a inspiré l'outil.

Dans ce document :

  • Argumentaires éclair ou TLDR
  • Origines
  • Exemples
  • Mais qu'en est-il des restrictions ptrace_scope de Yama ?
  • Objectifs futurs

Documentation séparée et plus détaillée :

  • Comment fonctionne asminject.py - une discussion architecturale de haut niveau avec des plongées approfondies dans certaines spécificités techniques, en particulier pour les lecteurs qui n'ont jamais travaillé avec des outils d'injection mémoire auparavant
  • Pour commencer
  • Différences par rapport à dlinject.py
  • Options spécialisées
  • Dépannage
  • Historique des versions

Argumentaires éclair ou TLDR

  • "asminject.py est comme dlinject, sauf qu'il permet d'injecter n'importe quelle charge utile au lieu de simplement charger une bibliothèque, et il fonctionne sur plusieurs architectures."
  • "asminject.py ressemble vaguement à Frida, sauf qu'il ne s'attache pas via l'interface ptrace, de sorte que les processus ne peuvent pas le bloquer en s'auto-traçant via ptrace."

Origines

asminject.py a été écrit pour deux scénarios principaux de test de pénétration dans des environnements Linux :

  • Attaquer les contrôles de sécurité au niveau des processus et des conteneurs depuis le point de vue d'un attaquant disposant d'un accès root à l'hôte
  • Éviter la détection après avoir réussi à exploiter une autre faille

Par exemple, considérons un test de pénétration dans lequel le testeur a obtenu un accès root à un serveur hébergeant de nombreux conteneurs. L'un des conteneurs traite des virements bancaires et dispose d'un produit de sécurité des points de terminaison très robuste installé à l'intérieur. Lorsque le testeur d'intrusion tente de modifier les données de virement depuis l'intérieur du conteneur, le logiciel de sécurité des points de terminaison détecte et bloque la tentative. asminject.py permet au testeur d'intrusion d'injecter du code arbitraire directement dans la mémoire du processus du logiciel bancaire, voire même dans le produit de sécurité des points de terminaison, depuis l'extérieur du conteneur. Comme une victime du « malin génie » de Descartes, le logiciel de sécurité dans le conteneur est impuissant, car il existe dans un environnement entièrement contrôlé par l'attaquant.

Le dlinject.py original a été conçu spécifiquement pour charger des bibliothèques partagées Linux dans un processus existant. asminject.py fait tout ce que l'original faisait et bien plus encore. Il exécute du code assembleur arbitraire et inclut des modèles pour une variété d'attaques. Il a également été repensé pour aider à éviter la détection par les mécanismes de sécurité qui se basent sur des activités potentiellement suspectes, comme les événements de chargement de bibliothèques.

Exemples

Le répertoire practice de ce dépôt contient un code de boucle de base qui affiche un horodatage et le numéro d'itération de la boucle sur la console, afin que vous puissiez vous entraîner à injecter différents types de code dans un environnement contrôlé. Ces boucles d'entraînement sont utilisées dans les exemples suivants.

La syntaxe de base pour appeler asminject.py est :

# 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>

Dans la plupart des cas, toutes les charges utiles utilisées dans les exemples fonctionneront sur toutes les architectures prises en charge.

  • Exemples de base - des charges utiles simples qui, par exemple, amènent un processus existant à copier des fichiers pour vous
  • Injection de code Python
  • Injection de code PHP
  • Injection de code Ruby
  • Injection de shellcode/stager
  • Injection de bibliothèque partagée

Mais qu'en est-il des restrictions ptrace_scope de Yama ?

La plupart des distributions Linux incluent un module de sécurité du noyau nommé Yama qui contrôle l'accès à l'utilisation de la capacité ptrace contre d'autres processus. Bien que asminject.py ne s'attache pas à l'interface du débogueur, il nécessite toujours l'autorisation d'utiliser la capacité ptrace. Si vous recevez des erreurs concernant cette capacité, vérifiez le contenu de /proc/sys/kernel/yama/ptrace_scope. S'il est défini sur 2, exécutez la commande suivante en tant que root :

echo 1 > /proc/sys/kernel/yama/ptrace_scope

Les valeurs de 3 ou plus ne peuvent pas être désactivées sans un redémarrage. Cependant, si vous êtes un administrateur autorisé d'un système Linux où quelqu'un a accidentellement défini /proc/sys/kernel/yama/ptrace_scope sur 3, ou si vous menez un test de pénétration autorisé dans un environnement où cette valeur a été définie, consultez le répertoire ptrace_scope_kernel_module pour un contournement potentiel qui ne nécessite pas de redémarrage.

Objectifs futurs

Télécharger l’outil