Cet article est la suite de l'article « Comment réaliser un fuzzer » (MISC 36). Maintenant que les bases sont posées, voyons la mise en pratique. Fusil le fuzzer est une boîte à outils libre pour écrire ses propres fuzzers. Nous allons voir comment mettre en place l'environnement pour fuzzer une application, puis comment faire muter un fichier ou bien générer des données. Les sondes et le fonctionnement de Fusil seront détaillés pour bien comprendre ce qui se passe. Pour finir, l'exécution du fuzzer Python sera expliquée.
1. Mise en place l'environnement de test
Destiné initialement aux programmes Linux en ligne de commande, les types de cibles de Fusil sont divers et variés. Pour des questions pratiques (facilité à scripter), on peut souvent se ramener au cas d'un programme en ligne de commande. Plutôt que de lancer une interface graphique lourde comme Kpdf, on peut par exemple utiliser le programme en ligne de commande pdftotext : ces deux applications reposent sur la bibliothèque PDF poppler. Un crash de pdftotext a de fortes chances d'être reproductible avec avec Kpdf.
1.1 Créer un processus
Avant de pouvoir attaquer une cible, il faut préparer son environnement : mettre en place des variables d'environnement, créer une ligne de commande, lancer un ou plusieurs processus, etc. Comme c'est une tâche récurrente, Fusil dispose d'une collection d'outils pour répondre à ce besoin :
- AttachProcess surveille un processus en cours d'exécution, en particulier un serveur...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première