Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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
ghidra — Ghidra est un framework de rétro-ingénierie logicielle (SRE) | Kitploit
Outils/GitHubGitHub/nationalsecurityagency/ghidra
Analyse StatiqueAnalyse Dynamique (Sandboxing)Frameworks d'ExploitationAnalyse des VulnérabilitésRétro-ingénierieScripting et AutomatisationDébogueursAnalyse de MalwareAnalyse de BinairesApprentissage et ÉducationAnalyse de Micrologiciel
71.1k7.8kil y a 2 joursVé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 →
Partager
GitHub
nationalsecurityagency/ghidra

ghidra

Ghidra est un framework de rétro-ingénierie logicielle (SRE)

Voir le dépôtSite web

Ghidra dockerisé

Construction

Depuis le répertoire racine de votre version de Ghidra, exécutez la commande suivante.

root@kitploit:~
./docker/build-docker-image.sh

Cela construira l'image docker ghidra avec une balise correspondant à la version de la version de Ghidra.

La variable d'environnement MODE

Le conteneur Docker Ghidra prend en charge les modes d'exécution MODE suivants :

  • gui
  • headless
  • ghidra-server
  • bsim
  • bsim-server
  • pyghidra

La variable d'environnement MODE désigne quel point d'entrée de Ghidra exécuter.

Le script entrypoint.sh est exécuté au démarrage du conteneur.

Configuration d'un conteneur

La configuration d'un conteneur se fait comme pour tout autre conteneur docker. Des volumes peuvent être montés, des variables d'environnement définies, des ports mappés du conteneur vers l'hôte, etc. Les étapes de configuration varient considérablement selon le MODE avec lequel le conteneur est démarré.

Le répertoire de base de Ghidra dans le conteneur se trouve à /ghidra. Tous les emplacements par défaut de ghidra pour les fichiers, configurations, etc., sont les mêmes à l'intérieur de celui-ci. Ghidra est exécuté en tant qu'utilisateur ghidra dans le conteneur, avec l'uid 1001 et le gid 1001.

L'utilisateur ghidra n'a que les permissions sur les répertoires suivants à l'intérieur du conteneur :

  • /ghidra
  • /home/ghidra

Lorsqu'un conteneur ne reçoit aucun argument passé avec la commande docker run, l'interface en ligne de commande (CLI) correspondant au MODE exécuté affichera son message d'utilisation.

Mappage de volumes locaux vers un conteneur

Les volumes dans le conteneur peuvent rencontrer des problèmes de permissions si les volumes ne sont pas accessibles aux utilisateurs du groupe d'identifiant 1001.

L'uid et le gid par défaut du conteneur sont 1001:1001. Les volumes mappés au conteneur doivent être accessibles par cet uid/gid.

Ajouter l'utilisateur de la machine hôte au groupe 1001 sur l'hôte aide à gérer les volumes qui seront utilisés dans le conteneur. Cela peut facilement être fait en exécutant sudo usermod -aG 1001 <user> sur Linux.

Exemple de mode Headless

root@kitploit:~
docker run \
    --env MODE=headless \
    --rm \
    --volume /path/to/myproject:/home/ghidra/myproject \
    --volume /path/to/mybinary:/home/ghidra/mybinary \
    ghidra/ghidra:<version> \
    /home/ghidra/myproject programFolder -import /home/ghidra/mybinary

Détaillons ligne par ligne :

  • docker run va démarrer un conteneur docker en utilisant l'image ghidra/ghidra:<version>
  • --env MODE=headless configure la variable d'environnement MODE dans le conteneur à la valeur headless
  • --rm supprime le conteneur après la fin de la commande
  • --volume /path/to/myproject:/home/ghidra/myproject monte le volume local /path/to/myproject de l'hôte vers /home/ghidra/myproject dans le conteneur
  • --volume /path/to/mybinary:/home/ghidra/mybinary monte le volume local /path/to/mybinary de l'hôte vers /home/ghidra/mybinary dans le conteneur
  • ghidra/ghidra:<version> est la référence complète de l'image docker, où est le groupe et le nom de l'image, et est la balise.

Ne passer aucun argument affichera l'utilisation de l'analyseur headless.

/path/to/myproject sur l'hôte doit être accessible au gid 1001 avec les permissions rwx.

Exemple de mode GUI

Exécuter l'interface graphique (GUI) de Ghidra dans un conteneur docker n'est pas une méthode recommandée pour utiliser Ghidra. Les interfaces graphiques ne sont pas un cas d'utilisation typique pour les applications dockerisées.

root@kitploit:~
docker run \
    --env MODE=gui \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume "$HOME/.Xauthority:/home/ghidra/.Xauthority" \
    ghidra/ghidra:<version>

Dans ce mode, le conteneur repose sur le transfert X11 pour afficher l'interface graphique. La configuration de X11 peut varier, mais dans ce cas, le fichier Xauthority de l'hôte est monté dans le conteneur, le conteneur est configuré pour utiliser le réseau de l'hôte, et la variable d'environnement DISPLAY est passée au conteneur. Cela permet de rediriger l'interface graphique vers l'écran de la machine hôte. Les volumes contenant des binaires doivent également être montés dans le conteneur, ainsi que les volumes pour les projets ghidra.

Le fichier .Xauthority de l'hôte doit avoir les permissions appropriées - attribuées au groupe :1001 avec les permissions de groupe rw.

Exemple de mode Ghidra Server

root@kitploit:~
docker run \
    --env MODE=ghidra-server \
    --rm \
    -it \
    --volume /path/to/my/repositories:/ghidra/repositories \
    --volume /path/to/my/configs/server.conf:/ghidra/server/server.conf \
    -p 13100:13100 \
    -p 13101:13101 \
    -p 13102:13102 \
    ghidra/ghidra:<version>

Des volumes doivent être montés dans le conteneur serveur pour sauvegarder les dépôts, les utilisateurs, et aussi pour configurer le serveur.

Pour utiliser svrAdmin, exécutez docker exec -it <container-id> bash dans le conteneur serveur ghidra en cours d'exécution pour obtenir un shell bash dans le conteneur. Après être entré dans le conteneur, l'administration et la gestion du serveur Ghidra sont les mêmes qu'en dehors d'un environnement conteneurisé.

Pour arrêter le conteneur, exécutez la commande docker stop <container-id>.

NOTE : les ports que vous mappez de l'hôte au conteneur docker doivent correspondre. Vous pouvez modifier le port de base du serveur par défaut (par exemple 13100) dans le fichier server.conf en utilisant l'option -p<port>.

Exemple de mode BSIM Server

root@kitploit:~
docker run \
    --env MODE=bsim-server \
    --rm \
    -it \
    --volume /path/to/my/datadir:/ghidra/bsim_datadir \
    -p 5432:5432 \
    ghidra/ghidra:<version> \
    /ghidra/bsim_datadir

/ghidra/bsim_datadir est le répertoire utilisé pour stocker les données de bsim dans le conteneur. D'autres répertoires pourraient être utilisés sur le conteneur, mais assurez-vous que le dossier sur la machine hôte a les permissions appropriées, attribuées au groupe :1001.

Cet exemple démarre simplement un serveur bsim. La configuration du serveur bsim et son remplissage avec des données peuvent être effectués après le démarrage dans le conteneur, d'une manière similaire à l'administration du serveur ghidra. Un administrateur devrait exécuter docker exec -it <container-id> bash dans le conteneur serveur bsim en cours d'exécution, et après être entré dans le conteneur, l'administration et la gestion du serveur Bsim sont les mêmes qu'en dehors d'un environnement conteneurisé.

Pour arrêter le conteneur, exécutez la commande docker stop <container-id>.

Exemple de mode CLI BSIM

root@kitploit:~
docker run \
		--env MODE=bsim \
		--rm \
		 -it \
		 ghidra/ghidra:<version> \
		 generatesigs ghidra://ghidrasvr/demo /home/ghidra \
			 --bsim postgresql://bsimsvr/demo \
			 --commit --overwrite \
			 --user ghidra

Dans cet exemple, le CLI bsim est utilisé pour se connecter à un serveur ghidra hébergé sur ghidrasvr, générer des signatures pour le dépôt demo sur ce serveur ghidra et les sauvegarder dans /home/ghidra, puis les valider sur le serveur BSIM hébergé sur bsimsvr dans la base de données demo.

Exemple de mode Pyghidra GUI

Exécuter l'interface graphique (GUI) de Ghidra dans un conteneur docker n'est pas une méthode recommandée pour utiliser Ghidra. Les interfaces graphiques ne sont pas un cas d'utilisation typique pour les applications dockerisées.

root@kitploit:~
docker run \
    --env MODE=pyghidra \
    -it \
    --rm \
    --net host \
    --env DISPLAY \
    --volume="$HOME/.Xauthority:/home/ghidra/.Xauthority:rw" \
    ghidra/ghidra:<version> -c

Dans ce mode, le conteneur repose sur le transfert X11 pour afficher l'interface graphique. La configuration de X11 peut varier, mais dans ce cas, le fichier Xauthority de l'hôte est monté dans le conteneur, le conteneur est configuré pour utiliser le réseau de l'hôte, et la variable d'environnement DISPLAY est passée au conteneur. Cela permet de rediriger l'interface graphique vers l'écran de la machine hôte. Les volumes contenant des binaires doivent également être montés dans le conteneur, ainsi que les volumes pour les projets ghidra.

Le fichier .Xauthority de l'hôte doit avoir les permissions appropriées - appartenant à :1001 avec les permissions de groupe rw.

Exemple de mode Pyghidra Headless

root@kitploit:~
docker run \
    --env MODE=pyghidra \
    --rm \
    --volume /path/to/myproject:/myproject \
    --volume /path/to/mybinary:/mybinary \
    ghidra/ghidra:<version> -H \
    /myproject programFolder -import /mybinary

Ne passer aucun argument à l'analyseur headless pyghidra entraînera l'affichage du menu d'aide, tout comme l'analyseur headless.

Ce cas d'utilisation est très similaire à l'exemple du mode headless, avec l'avantage supplémentaire de pouvoir utiliser python3 pour les scripts Ghidra.

Encore une fois, dans cet exemple, des permissions appropriées et l'attribution de groupe pour /path/to/myproject et /path/to/mybinary sont nécessaires pour éviter des problèmes de permissions.

Télécharger l’outil
ghidra/ghidra
<version>
  • /home/ghidra/myproject programFolder -import /home/ghidra/mybinary sont des arguments passés à l'interface en ligne de commande de l'analyseur headless de Ghidra