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
dirmap — Un outil avancé de scan de répertoires et de fichiers web, plus puissant que DirBuster, Dirsearch, cansina et Yu Jian. | Kitploit
Outils/GitHubGitHub/h4ckforjob/dirmap
ReconnaissanceScanners de VulnérabilitésCollecte d'InformationsSécurité WebTests d'Intrusion
GitHubh4ckforjob/dirmap

dirmap

Un outil avancé de scan de répertoires et de fichiers web, plus puissant que DirBuster, Dirsearch, cansina et Yu Jian.

Voir le dépôt
3.4k555il y a 1 anVé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

Dirmap

English

Un outil avancé de scan de répertoires web, dont les fonctionnalités surpasseront DirBuster, Dirsearch, cansina, et Yujian.

dirmap

Analyse des besoins

Après de nombreuses recherches, un bon outil de scan de répertoires web doit au moins posséder les fonctionnalités suivantes :

  • Moteur de concurrence
  • Capacité à utiliser des dictionnaires
  • Attaque par force brute pure
  • Capacité à crawler les pages pour générer dynamiquement des dictionnaires
  • Scan par fuzz
  • Requêtes personnalisées
  • Traitement personnalisé des réponses...

Voyons maintenant les caractéristiques de Dirmap.

Fonctionnalités

  1. Prise en charge de n cibles * n charge utile en concurrence
  2. Prise en charge du scan récursif
  3. Prise en charge des codes d'état personnalisés pour le scan récursif
  4. Prise en charge du scan avec un ou plusieurs dictionnaires
  5. Prise en charge de la force brute avec un jeu de caractères personnalisé
  6. Prise en charge du scan dynamique via dictionnaire généré par le crawler
  7. Prise en charge de l'étiquetage personnalisé pour le fuzz de l'URL cible
  8. User-Agent personnalisé pour les requêtes
  9. Délai aléatoire personnalisé entre les requêtes
  10. Délai d'expiration personnalisé pour les requêtes
  11. Proxy personnalisé pour les requêtes
  12. Expression régulière personnalisée pour détecter les pages 404 fausses
  13. Code d'état de réponse personnalisé à traiter
  14. Ignorer les pages d'une taille donnée
  15. Affichage personnalisé du type de contenu
  16. Affichage personnalisé de la taille des pages
  17. Déduplication des résultats par nom de domaine

Utilisation

Préparation de l'environnement

root@kitploit:~
git clone https://github.com/H4ckForJob/dirmap.git && cd dirmap && python3 -m pip install -r requirement.txt

Utilisation rapide

Saisie de la cible

Cible unique, par défaut http

root@kitploit:~
python3 dirmap.py -i https://target.com -lcf
root@kitploit:~
python3 dirmap.py -i 192.168.1.1 -lcf

Sous-réseau (format CIDR)

root@kitploit:~
python3 dirmap.py -i 192.168.1.0/24 -lcf

Plage réseau

root@kitploit:~
python3 dirmap.py -i 192.168.1.1-192.168.1.100 -lcf

Lecture depuis un fichier

root@kitploit:~
python3 dirmap.py -iF targets.txt -lcf

targets.txt prend en charge les formats ci-dessus.

Sauvegarde des résultats

  1. Les résultats seront automatiquement sauvegardés dans le dossier output à la racine du projet.
  2. Un fichier txt est généré pour chaque cible, nommé selon le format nom_de_domaine_cible.txt.
  3. Les résultats sont automatiquement dédoublonnés, pas de redondance.

Utilisation avancée

Personnalisez la configuration de Dirmap et explorez les fonctionnalités avancées.

Pour l'instant, la configuration détaillée se fait via un fichier de configuration, les paramètres de ligne de commande ne sont pas supportés pour une configuration détaillée !

Modifiez dirmap.conf à la racine du projet pour la configuration.

Explication détaillée de dirmap.conf

root@kitploit:~
# Configuration du scan récursif
[RecursiveScan]
# Activer/désactiver le scan récursif : 0=désactivé, 1=activé
conf.recursive_scan = 0
# Codes d'état déclenchant le scan récursif. Par défaut [301,403]
conf.recursive_status_code = [301,403]
# Longueur maximale de l'URL au-delà de laquelle le scan est arrêté
conf.recursive_scan_max_url_length = 60
# Extensions à exclure du scan récursif
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
# Répertoires à exclure du scan. Par défaut vide. Exemple : ['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

# Configuration du mode de scan (4 modes, un seul choix à la fois)
[ScanModeHandler]
# Mode dictionnaire : 0=désactivé, 1=dictionnaire unique, 2=multi-dictionnaires
conf.dict_mode = 1
# Chemin du dictionnaire unique
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
# Chemin des dictionnaires multiples, par défaut dictmult
conf.dict_mode_load_mult_dict = "dictmult"
# Mode force brute : 0=désactivé, 1=activé
conf.blast_mode = 0
# Longueur minimale du dictionnaire généré. Par défaut 3
conf.blast_mode_min = 3
# Longueur maximale du dictionnaire généré. Par défaut 3
conf.blast_mode_max = 3
# Jeu de caractères par défaut : a-z. Non utilisé pour l'instant.
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
# Jeu de caractères par défaut : 0-9. Non utilisé pour l'instant.
conf.blast_mode_num = "0123456789"
# Jeu de caractères personnalisé. Par défaut "abc". Construit le dictionnaire avec abc.
conf.blast_mode_custom_charset = "abc"
# Jeu de caractères de reprise. Par défaut vide.
conf.blast_mode_resume_charset = ""
# Mode crawler : 0=désactivé, 1=activé
conf.crawl_mode = 0
# Dictionnaire des suffixes pour le fuzz dynamique
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
# Analyse du fichier robots.txt. Non implémenté.
conf.crawl_mode_parse_robots = 0
# Expression XPath pour analyser le HTML
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
# Activer la génération dynamique du dictionnaire via le crawler. Par défaut 1 (activé). Autres : 0=désactivé, 1=activé
conf.crawl_mode_dynamic_fuzz = 1
# Mode Fuzz : 0=désactivé, 1=dictionnaire unique, 2=multi-dictionnaires
conf.fuzz_mode = 0
# Chemin du dictionnaire unique pour le fuzz.
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
# Chemin des dictionnaires multiples pour le fuzz. Par défaut : fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
# Étiquette pour le fuzz. Par défaut {dir}. Utilise {dir} comme point d'insertion du dictionnaire, remplace http://target.com/{dir}.php par chaque ligne du dictionnaire. Autre exemple : {ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

# Configuration du traitement des charges utiles. Non implémenté.
[PayloadHandler]

# Configuration des requêtes
[RequestHandler]
# En-têtes personnalisés. Par défaut vide. Exemple : test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
# User-Agent personnalisé. Par défaut Chrome.
conf.request_header_ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"
# Cookie personnalisé. Par défaut vide. Exemple : cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
# Authentification 401 personnalisée. Non implémenté (l'en-tête personnalisé peut suffire).
conf.request_header_401_auth = ""
# Méthode de requête personnalisée. Par défaut get. Autres : get, head
#conf.request_method = "head"
conf.request_method = "get"
# Délai d'expiration par requête. Par défaut 3 secondes.
conf.request_timeout = 3
# Délai aléatoire (0-x) secondes avant chaque requête. Doit être un entier. Par défaut 0 (pas de délai).
conf.request_delay = 0
# Nombre de threads par cible. Par défaut 30.
conf.request_limit = 30
# Nombre maximal de tentatives. Non implémenté.
conf.request_max_retries = 1
# Connexion persistante. Utiliser session(). Non implémenté.
conf.request_persistent_connect = 0
# Redirection 302. Par défaut False (pas de redirection). Autres : True, False
conf.redirection_302 = False
# Extension ajoutée après la charge utile. Par défaut vide. Exemples : txt, php, asp, jsp
#conf.file_extension = "txt"
conf.file_extension = ""

# Configuration du traitement des réponses
[ResponseHandler]
# Codes d'état à enregistrer. Par défaut [200]. Autres exemples : [200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
# Enregistrer l'en-tête content-type. Par défaut 1 (oui)
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
# Enregistrer la taille de la page. Par défaut 1 (oui)
#conf.response_size = 0
conf.response_size = 1
# Détection automatique des pages 404. Par défaut True. Autres : True, False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
# Expression régulière personnalisée pour la page 503. Non implémenté.
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
# Expression régulière personnalisée pour le contenu de la page
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
# Ignorer les pages d'une taille donnée. Pour ne pas ignorer, mettre "None". Par défaut "None". Exemples : None, 0b, 1k, 1m
#conf.skip_size = "0b"
conf.skip_size = "None"

# Options de proxy
[ProxyHandler]
# Configuration du proxy. Par défaut "None" (pas de proxy). Exemple : {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
#conf.proxy_server = {"http":"http://127.0.0.1:8080","https":"https://127.0.0.1:8080"}
conf.proxy_server = None

# Options de débogage
[DebugMode]
# Afficher les charges utiles et quitter
conf.debug = 0

# Options de mise à jour
[CheckUpdate]
# Vérifier les mises à jour sur GitHub. Non implémenté.
conf.update = 0

TODO

  • Analyse des arguments de la ligne de commande pour l'initialisation globale
  • Initialisation du moteur
    • Définition du nombre de threads
  • Initialisation de la cible
    • Analyse automatique du format d'entrée (-i, inputTarget)
      • IP
      • Domaine
      • URL
      • IP/MASQUE
      • Plage IP
    • Lecture depuis un fichier (-iF, inputLocalFile)
  • Initialisation du bruteur
    • Chargement de la configuration ()
      • Lecture des arguments de la ligne de commande
      • Lecture du fichier de configuration (-lcf, loadConfigFile)

Fichiers de dictionnaire par défaut

Les fichiers dictionnaires se trouvent dans le dossier data à la racine du projet.

  1. dict_mode_dict.txt Dictionnaire du "mode dictionnaire", utilisant le dictionnaire par défaut de dirsearch
  2. crawl_mode_suffix.txt Dictionnaire du "mode crawler", utilisant le dictionnaire par défaut de FileSensor
  3. fuzz_mode_dir.txt Dictionnaire du "mode fuzz", utilisant le dictionnaire par défaut de DirBuster
  4. fuzz_mode_ext.txt Dictionnaire du "mode fuzz", construit avec des suffixes courants
  5. dictmult Dossier contenant les dictionnaires multiples par défaut du "mode dictionnaire" : BAK.min.txt (petit dictionnaire de sauvegarde), BAK.txt (grand dictionnaire de sauvegarde), LEAKS.txt (dictionnaire de fuites d'informations)
  6. fuzzmult Dossier contenant les dictionnaires multiples par défaut du "mode fuzz" : fuzz_mode_dir.txt (dictionnaire de répertoires par défaut), fuzz_mode_ext.txt (dictionnaire de suffixes par défaut)

Défauts connus

  1. Le "mode crawler" ne crawl que la page courante de la cible pour générer le dictionnaire dynamique. À l'avenir, le module de crawl sera séparé de la génération de dictionnaire.
  2. Erreur à la ligne 517 de bruter.py : bar.log.start(). Solution : installez progressbar2. Désinstallez progressbar pour éviter les conflits de modules. Merci à un collègue de l'avoir signalé.
root@kitploit:~
Exécutez :
python3 -m pip uninstall progressbar
python3 -m pip install progressbar2

Maintenance

  1. Si vous rencontrez des problèmes lors de l'utilisation, n'hésitez pas à ouvrir une issue.
  2. Ce projet est en cours de maintenance, de nouvelles fonctionnalités seront ajoutées (voir la liste TODO, les éléments non cochés).

Remerciements

Lors de la rédaction de dirmap, de nombreux modèles et idées de projets open source exceptionnels ont été empruntés. Nous tenons à les mentionner et à les remercier.

  • Sqlmap
  • POC-T
  • Saucerframe
  • gwhatweb
  • dirsearch
  • cansina
  • weakfilescan
  • FileSensor
  • BBscan
  • werdy

Contacter l'auteur

mail: [email protected]

donate

Télécharger l’outil
  • Options du mode récursif (RecursiveScan)
    • Scan récursif (-rs, recursive_scan)
    • Codes d'état à traiter récursivement (-rd, recursive_status_code)
    • Exclusion de certains répertoires (-es, exclude_subdirs)
  • Options du mode de scan (ScanModeHandler)
    • Mode dictionnaire (-dm, dict_mode)
      • Chargement d'un seul dictionnaire (-dmlsd, dict_mode_load_single_dict)
      • Chargement de plusieurs dictionnaires (-dmlmd, dict_mode_load_mult_dict)
    • Mode force brute (-bm, blast_mode)
      • Plage de longueurs des répertoires (obligatoire)
        • Longueur minimale (-bmmin, blast_mode_min)
        • Longueur maximale (-bmmax, blast_mode_max)
      • Basé sur le jeu de caractères par défaut
        • Basé sur a-z
        • Basé sur 0-9
      • Basé sur un jeu de caractères personnalisé (-bmcc, blast_mode_custom_charset)
      • Reprise de la génération de charges utiles (-bmrc, blast_mode_resume_charset)
    • Mode crawler (-cm, crawl_mode)
      • Balises d'analyse personnalisées (-cmph, crawl_mode_parse_html) (a:href, img:src, form:action, script:src, iframe:src, div:src, frame:src, embed:src)
      • Analyse de robots.txt (-cmpr, crawl_mode_parse_robots)
      • Scan fuzz dynamique via le crawler (-cmdf, crawl_mode_dynamic_fuzz)
    • Mode fuzz (-fm, fuzz_mode)
      • Fuzz avec un seul dictionnaire (-fmlsd, fuzz_mode_load_single_dict)
      • Fuzz avec plusieurs dictionnaires (-fmlmd, fuzz_mode_load_mult_dict)
      • Étiquette de fuzz (-fml, fuzz_mode_label)
  • Options d'optimisation des requêtes (RequestHandler)
    • Délai d'expiration personnalisé (-rt, request_timeout)
    • Délai personnalisé (-rd, request_delay)
    • Limite du nombre de coroutines par cible (-rl, request_limit)
    • Limite du nombre de tentatives (-rmr, request_max_retries)
    • Connexion persistante HTTP (-rpc, request_persistent_connect)
    • Méthode de requête personnalisée (-rm, request_method) (get, head)
    • Gestion du code 302 (-r3, redirection_302) (redirection ou non)
    • En-têtes personnalisés
      • Autres en-têtes personnalisés (-rh, request_headers) (pour l'authentification 401)
      • User-Agent personnalisé (-rhua, request_header_ua)
      • Cookie personnalisé (-rhc, request_header_cookie)
  • Options de traitement du dictionnaire (PayloadHandler)
    • Traitement du dictionnaire (modification des charges utiles - suppression des barres obliques)
    • Traitement du dictionnaire (modification - ajout d'une barre oblique au début)
    • Traitement du dictionnaire (modification - mise en majuscule de la première lettre)
    • Traitement du dictionnaire (modification - suppression des extensions)
    • Traitement du dictionnaire (modification - suppression des caractères non alphanumériques)
  • Module de traitement des réponses (ResponseHandler)
    • Ignorer les fichiers d'une taille donnée (-ss, skip_size)
    • Détection automatique des pages 404 (-ac4p, auto_check_404_page)
    • Page 503 personnalisée (-c5p, custom_503_page)
    • Expression régulière personnalisée pour le contenu de la réponse et action correspondante
      • Expression régulière personnalisée pour la réponse (-crp, custom_response_page)
      • Action (non définie pour l'instant)
    • Résultat affiché pour les codes d'état personnalisés (-rsc, response_status_code)
    • Affichage du chemin complet de la charge utile (par défaut URL complète)
    • Affichage du type de contenu dans les résultats
    • Déduplication automatique des résultats sauvegardés
  • Module de gestion des états (StatusHandler)
    • Affichage de l'état (en attente, en cours, en pause, exception, terminé)
    • Affichage de la progression
    • Contrôle de l'état (démarrer, suspendre, reprendre, arrêter)
    • Module de reprise (non configuré)
    • Reprise après arrêt
    • Reprise à partir d'une ligne donnée
  • Module de journalisation (ScanLogHandler)
    • Journal de scan
    • Journal d'erreurs
  • Module proxy (ProxyHandler)
    • Proxy unique (-ps, proxy_server)
    • Pool de proxys
  • Options du mode débogage (DebugMode)
    • debug (--debug)
  • Options de vérification des mises à jour (CheckUpdate)
    • update (--update)