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
DIBF — Bruteforceur d'ioctl Windows NT et fuzzer modulaire | Kitploit
Outils/GitHubGitHub/nccgroup/dibf
Analyse des VulnérabilitésAnalyse Dynamique de Code (DAST)Rétro-ingénierieFuzzingTests d'IntrusionExploitation de Binaires
GitHubnccgroup/dibf

DIBF

Bruteforceur d'ioctl Windows NT et fuzzer modulaire

Voir le dépôt
12728il y a 7 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 →
Partager

DIBF

Suite d'outils IOCTL pour pilotes Windows.

DIBF

Brute-Forcer dynamique d'IOCTL (et fuzzers)

Cet outil comprend deux fonctionnalités distinctes. Il devine les valeurs IOCTL que le pilote accepte ainsi que leurs limites de taille valides et stocke les résultats dans un fichier pour une réutilisation future. La deuxième fonctionnalité est composée de 3 fuzzers simples : un fuzzer purement aléatoire, un fuzzer à DWORD glissant et un fuzzer asynchrone. Vous pouvez exécuter n'importe quelle combinaison des 3 séquentiellement et définir des limites de temps pour chaque exécution de fuzzer. Les fuzzers synchrones vous avertiront également si trop de requêtes échouent d'affilée (indiquant qu'un fuzzing supplémentaire pourrait être inutile, par exemple en raison d'un manque de permissions) et le fuzzer asynchrone vous permet de définir le pourcentage de requêtes sur lesquelles tenter une annulation ainsi que le niveau de concurrence (combien de requêtes en attente à la fois). D'autres fonctionnalités incluent le contrôle du niveau de verbosité et la possibilité d'arrêter proprement toute exécution de fuzzer avec ctrl-c. À la fin, chaque fuzzer affiche des statistiques cumulatives.

Utilisation

root@kitploit:~
dibf.exe <options> <device name>
Options:
	-h You're looking at it
	-i Ignore previous logfile - THIS WILL OVERWRITE IT
	-l Specify custom logfile name to read from/write to (default dibf-bf-results.txt)
	-d Deep IOCTL bruteforce (8-9 times slower)
	-v [0-3] Verbosity level
	-s [ioctl] Start IOCTL value
	-e [ioctl] End IOCTL value
	-t [d1,d2,d4] Timeout for each fuzzer in seconds -- no spaces and decimal input ONLY
	-p [max requests] Max number of async pending requests (loosely enforced, default 64)
	-a [max threads] Max number of threads, default is 2xNbOfProcessors, max is 128
	-c [% cancelation] Async cancelation attempt percent rate (default 15)
	-f [0-7] Fuzz flag. OR values together to run multiple
			 fuzzer stages. If left out, it defaults to all
      		 stages.
      0 = Brute-force IOCTLs only
      1 = Sliding DWORD (sync)
      2 = Random (async)
      4 = Named Pipe (async)
Examples:
	dibf \\.\MyDevice
	dibf -v -d -s 0x10000000 \\.\MyDevice
	dibf -f 0x3 \\.\MyDevice
Notes:
	- The bruteforce stage will generate a file named "dibf-bf-results.txt"
	  in the same directory as the executable. If dibf is started with no
	  arguments, it will look for this file and start the fuzzer with the values
	  from it The -l flag can be used to specify a custom results file name.
	- If not specified otherwise, command line arguments can be passed as decimal or hex (prefix with "0x")
	- CTRL-C interrupts the current stage and moves to the next if any. Current statistics will be displayed.
	- The statistics are cumulative.
	- The command-line flags are case-insensitive.

Utilisation du fournisseur de fuzzing par tube nommé

Afin de fournir des paquets fuzzés au fuzzer de tube nommé, connectez-vous à \\.\pipe\dibf_pipe en mode PIPE_TYPE_MESSAGE et envoyez les données fuzzées. Les 4 derniers octets du paquet seront interprétés comme le code IOCTL. De plus, l'éditeur Peach pour tube nommé peut être utilisé pour fuzzer les points de terminaison de tube nommé en dehors du cadre de DIBF.

Connexion à Peach

L'éditeur Peach fourni peut être utilisé pour connecter Peach au fournisseur de fuzzing par tube nommé de DIBF. Un exemple de fichier XML Peach peach_np.xml utilisant ce fournisseur se trouve dans le dossier PeachNamedPipePublisher :

root@kitploit:~
<?xml version="1.0" encoding="utf-8"?>
<Peach xmlns="http://peachfuzzer.com/2012/Peach" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://peachfuzzer.com/2012/Peach ../peach.xsd">

    <!-- DataModel containing a single string -->
    <DataModel name="TheDataModel">
        <String value="Hello World!" />
        <Number name="IOCTL0" value="EFBEADDE" valueType="hex" size="32" mutable="false" />
    </DataModel>

    <!-- StateModel referencing data model above -->
    <StateModel name="DibfState" initialState="DibfState0">
        <State name="DibfState0">
            <Action type="output">
                <DataModel ref="TheDataModel"/>
            </Action>
        </State>
    </StateModel>

    <!-- The test with pipe publisher -->
    <Test name="Default">
        <StateModel ref="DibfState"/>
        <Publisher class="NamedPipe">
            <Param name="host" value="." />
            <Param name="pipeName" value="dibf_pipe" />
            <Param name="impersonationLevel" value="1" />
        </Publisher>
    </Test>
</Peach>
<!-- end -->

Exemple de sortie DIBF

root@kitploit:~
<<<< RUNNING RANDOM FUZZER >>>>
RUN STARTED: 3/17/2014 4:14 PM
---------------------------------------
Sent Requests : 4233
Completed Requests : 4233 (4233 sync, 0 async)
SuccessfulRequests : 1254
FailedRequests : 2979
CanceledRequests : 0
RUN ENDED: 3/17/2014 4:14 PM
---------------------------------------

<<<< RUNNING SLIDING DWORD FUZZER >>>>
RUN STARTED: 3/17/2014 4:14 PM
---------------------------------------
Sent Requests : 6339
Completed Requests : 6339 (6339 sync, 0 async)
SuccessfulRequests : 1254
FailedRequests : 5085
CanceledRequests : 0
RUN ENDED: 3/17/2014 4:14 PM
---------------------------------------

<<<< RUNNING ASYNC FUZZER >>>>
RUN STARTED: 3/17/2014 4:14 PM
---------------------------------------
Sent Requests : 8272
Completed Requests : 8272 (6339 sync, 1933 async)
SuccessfulRequests : 1738
FailedRequests : 6414
CanceledRequests : 120
RUN ENDED: 3/17/2014 4:14 PM
---------------------------------------

IOCODE

Utilitaire simple d'encodage/décodage pour les codes IO

Cet outil très simple encode et décode les codes de contrôle IOCTL Windows. Il offre un moyen convivial de traiter l'encodage IO des types de périphérique, du numéro de fonction, de la méthode de transfert et du type d'accès.

root@kitploit:~
iocode.exe [IOCODE] or iocode.exe [DEVICE_TYPE] [FUNCTION] [METHOD] [ACCESS]

IOSEND

Envoi d'un seul IOCTL à un pilote

Cet outil est destiné à prouver des vulnérabilités et doit être utilisé conjointement avec un éditeur hexadécimal. Une fois la requête d'intérêt créée avec celui-ci, cet utilitaire l'enverra au pilote en utilisant les paramètres de ligne de commande. La réponse est envoyée sur stdout. Des adresses arbitraires peuvent également être utilisées comme adresses de tampon d'entrée et de sortie.

root@kitploit:~
iosend [Device] [IOCODE] [InputBufFilePath|InputAdress] [InputLen] [[OutputAddress]] [OutputLen] > [Output file]
Notes:
 - This utility prints error/status messages to stderr
 - Input can be provided as an arbitrary address or a file name
 - An output buffer is allocated and its contents eventually written to stdout unless the optional OutputAddress parameter is provided

Licence

GPLv2

Télécharger l’outil