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
like-dbg — Environnement de débogage du noyau Linux entièrement dockerisé | Kitploit
Outils/GitHubGitHub/0xricksanchez/like-dbg
ExploitationDébogueursFuzzingCTFExploitation de Binaires
GitHub0xricksanchez/like-dbg

like-dbg

Environnement de débogage du noyau Linux entièrement dockerisé

Voir le dépôt
770574il y a 2 moisVé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

LIKE-DBG

Code style: black Build Status: flake8 Build Status: shellcheck Build Status: hadolint codecov License: MIT GitHub Release

LIKE-DBG (LInux-KErnel-DeBuGger) vise à automatiser les étapes fastidieuses de mise en place d'un environnement de débogage du noyau Linux. Je me suis lancé dans la recherche en exploitation de noyaux et j'ai trouvé les solutions existantes insuffisamment utilisables. Cette tentative a donc pour but de rendre toutes les étapes préalables, avant même de penser à se plonger dans la recherche, aussi simples et amusantes que possible. Toutes les étapes, de la compilation d'un noyau à son exécution dans un environnement émulé, en passant par l'attachement d'un débogueur, sont réalisées de manière transparente dans des conteneurs docker afin de minimiser les exigences système. Actuellement, il existe un conteneur docker dédié pour chacune des étapes suivantes :

  • Compilation du noyau
  • Création d'un système de fichiers racine à utiliser avec le noyau
  • Lancement du noyau + système de fichiers en tant que cible
  • Attachement au noyau en tant que débogueur

Mises en garde

Comme ce projet en est à ses débuts, je m'attends à ce que les choses évoluent rapidement, tout en introduisant des changements cassants au passage. Les principaux points à améliorer sont :

  • Tendre vers un véritable support multi-architecture au-delà de x86_64 et arm64
  • Étendre le compilateur de noyau pour ne pas seulement réussir à compiler les noyaux récents™
  • Ajouter le support des noyaux Android
  • Ajouter des tests (d'intégration)
  • Élever encore plus l'expérience de débogage

Fonctionnalités

Côté positif, malgré son stade précoce, quelques fonctionnalités utiles sont déjà présentes :

  • Général :
    • Exigences minimales sur le système hôte grâce à la dockerisation de chaque étape
    • Une configuration configs/user.ini facile à appréhender qui permet des sessions hautement personnalisables
      • Ou fournissez différentes configurations pour différents environnements de débogage via la ligne de commande !
    • Un lanceur CTF spécialement conçu pour gérer les défis d'exploitation du noyau Linux
      • ctf/misc qui contient quelques scripts astucieux pour aider lors des CTF
    • Mesures de qualité de code :
      • formateur black pour le code Python
      • linter flake8 pour tout le code Python
      • linter shellcheck pour les scripts shell
      • linter hadolint pour les Dockerfiles
    • Indépendant du système d'exploitation, ce qui signifie qu'il devrait fonctionner correctement sur :
      • Debian/Ubuntu
      • Arch Linux/Manjaro
      • Fedora
  • Compilateur de noyau :
    • Multi-architecture : x86_64, arm64
    • Choix entre gcc et clang pour compiler le noyau
    • Modes de configuration :
      • generic-mode,
      • syzkaller-mode,
      • custom-mode, ou
      • fournir une configuration de noyau utilisable
    • Contrôle de version à granularité fine pour compiler à partir de :
      • Hash de commit
      • Tag de version (ex. : 5.10-rc)
      • Major-Minor-Patch (ex. : 5.10.77)
    • Possibilité d'appliquer automatiquement des fichiers de patch
    • Possibilité de base d'ajouter des modules noyau personnalisés
  • Générateur de système de fichiers racine :
    • Propulsé par debootstrap
    • Génération automatique d'un système de fichiers correspondant à l'architecture du noyau
    • Possibilité de personnaliser :
      • les paquets souhaités dans le système de fichiers
      • la version de la distribution Debian sur laquelle tout doit être basé
  • Cible :
    • Propulsé par QEMU
    • Personnalisation des options d'exécution de QEMU depuis les fichiers configs/*.ini.
  • Débogueur :
    • Propulsé par GDB (multiarch) avec soit
      • GEF et GEF-extras, soit
      • pwndbg
    • Permet aux utilisateurs de spécifier un script GDB dans io/scripts/gdb_script pour offrir une expérience de débogage adaptée au scénario

Prérequis

Pour commencer, vous devez vous assurer que les prérequis suivants sont installés sur votre système :

  • docker
  • tmux
  • python>=3.11
  • poetry # https://python-poetry.org/docs/

Il est recommandé de ne pas exécuter ceci en tant qu'utilisateur root, par exemple à des fins de test sur un VPS. Cela peut très bien fonctionner, mais en général je recommande vivement de créer un utilisateur non-root dédié et de l'ajouter aux groupes docker et sudo !

Remarque : Si vous utilisez une configuration TMUX personnalisée, assurez-vous que votre premier volet commence à 0 !

Optionnel

Cette section couvre les outils qui ne sont pas requis pour exécuter LIKE-DBG mais qui sont agréables à avoir et qui aident considérablement lors du débogage ou de l'écriture d'un exploit.

  • musl-gcc
  • ctags
  • ropr

Installation

Dans like-dbg, exécutez poetry install

Configuration

Le réglage fin de l'expérience de débogage du noyau est l'un des objectifs de ce projet. Actuellement, toutes les options réglables sont exposées dans les deux fichiers de configuration : configs/system.ini et configs/user.ini. Il est recommandé de ne pas modifier certains champs, car ils servent principalement au développement. Cependant, tous ceux permettant de personnaliser l'environnement selon vos besoins devraient être explicites, car ils sont tous accompagnés d'un bref commentaire.

Utilisation

Remarque : Lors de la première utilisation, exécutez poetry install.

Une fois que vous avez écrit ou adapté une configuration, l'utilisation dépend de votre scénario. La façon la plus simple de commencer, basée sur la configuration configs/user.ini, est la suivante :

root@kitploit:~
tmux -f .tmux.conf
poetry shell
# This checks out a kernel, builds it, creates a root file system and starts the debugger and debuggee eventually
./start_kgdb.py

Il existe 2 utilisateurs pour les systèmes de fichiers créés automatiquement :

  • root sans mot de passe
  • user:user

C'est prévu afin que vous puissiez développer et exploiter facilement depuis l'un ou l'autre point de vue.

Utilisation avancée

root@kitploit:~
# If you want to try a CTF challenge where you were given a (compressed) Linux Image and a root filesystem try:
./start_kgdb.py --ctf <Image> <RootFS>

# If you want to kill the current debugging session
./start_kgdb.py -k

# If you want to provide a custom 'user.ini' for a specific debugging setup
./start_kgdb.py -c <path_to_cfg> [other_args]

# If you want to test some partial functionality of LIKE-DBG
# Stage 1: Download Kernel
# Stage 2: Stage 1 & unpack Kernel
# Stage 3: Stage 2 & build Kernel
# Stage 4: Only build a root file system
# Stage 5: Stage 3+4 & start debuggee
./start_kgdb.py -p <stage_nr>

# Update all containers
./start_kgdb.py -u

Exemples

Le sous-répertoire examples contient des exemples illustrant comment LIKE_DBG peut vous aider dans des tâches spécifiques de débogage du noyau. Chaque exemple contient également un README.md dédié avec les informations nécessaires pour reproduire les exemples.

Démonstration

img/example.png

Développement

Le code Python est assez lisible, alors n'hésitez pas à étendre le projet avec vos propres idées. Toutes les PR sont les bienvenues :) ! Sinon, n'hésitez pas à créer une issue de demande de fonctionnalité ou à vous rendre sur la page de discussions pour réfléchir à de nouvelles fonctionnalités sympas !

PS : Si vous souhaitez fournir un logo, n'hésitez pas.

Télécharger l’outil