Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
dirmap — Uno strumento avanzato di scansione di directory e file web che sarà più potente di DirBuster, Dirsearch, cansina e Yu Jian. | Kitploit
Strumenti/GitHubGitHub/h4ckforjob/dirmap
RicognizioneScanner di VulnerabilitàRaccolta InformazioniSicurezza WebPenetration Testing
GitHubh4ckforjob/dirmap

dirmap

Uno strumento avanzato di scansione di directory e file web che sarà più potente di DirBuster, Dirsearch, cansina e Yu Jian.

Vedi Repository
3.4k55511 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Dirmap

English

Uno strumento avanzato per la scansione di directory web, con funzionalità superiori a DirBuster, Dirsearch, cansina, Yujian

dirmap

Analisi dei requisiti

Dopo un'ampia ricerca, si è concluso che un buon strumento per la scansione di directory web deve avere almeno le seguenti caratteristiche:

  • Motore concorrente
  • Capacità di utilizzare dizionari
  • Capacità di pura forza bruta
  • Capacità di eseguire crawling delle pagine per generare dinamicamente dizionari
  • Capacità di scansione Fuzz
  • Richieste personalizzabili
  • Gestione personalizzata delle risposte...

Vediamo ora le caratteristiche di Dirmap

Caratteristiche

  1. Supporta n target * n payload in concorrenza
  2. Supporta scansione ricorsiva
  3. Supporta codici di stato personalizzati per attivare la scansione ricorsiva
  4. Supporta scansione con (singolo|multiplo) dizionario
  5. Supporta forza bruta con set di caratteri personalizzati
  6. Supporta scansione con dizionario dinamico generato dal crawler
  7. Supporta tag personalizzati per fuzz sugli URL target
  8. User-Agent personalizzabile per le richieste
  9. Ritardo casuale personalizzabile per le richieste
  10. Timeout personalizzabile per le richieste
  11. Proxy personalizzabile per le richieste
  12. Espressioni regolari personalizzabili per rilevare pagine 404 false
  13. Codici di stato delle risposte da elaborare personalizzabili
  14. Salta pagine di dimensione x personalizzabile
  15. Mostra content-type personalizzabile
  16. Mostra dimensione della pagina personalizzabile
  17. Salva risultati deduplicati per dominio

Istruzioni per l'uso

Preparazione dell'ambiente

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

Utilizzo rapido

Inserimento target

Singolo target, predefinito http

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

Sottorete (formato CIDR)

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

Intervallo di rete

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

Lettura da file

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

targets.txt supporta i formati sopra indicati

Salvataggio risultati

  1. I risultati vengono salvati automaticamente nella cartella output nella directory radice del progetto
  2. Per ogni target viene generato un file txt, denominato dominio_target.txt
  3. I risultati vengono automaticamente deduplicati, senza preoccuparsi di ridondanza

Utilizzo avanzato

Personalizza la configurazione di dirmap e inizia a esplorare le funzionalità avanzate.

Per ora la configurazione dettagliata viene effettuata caricando un file di configurazione: non è supportata la configurazione dettagliata tramite parametri da riga di comando!

Modifica il file dirmap.conf nella directory radice del progetto per configurare.

Dettaglio della configurazione di dirmap.conf

root@kitploit:~
#Configurazione della scansione ricorsiva
[RecursiveScan]
#Attiva/disattiva scansione ricorsiva: disattiva:0; attiva:1
conf.recursive_scan = 0
#Con questi codici di stato, avvia scansione ricorsiva. Configurazione predefinita [301,403]
conf.recursive_status_code = [301,403]
#Se l'URL supera questa lunghezza, esci dalla scansione
conf.recursive_scan_max_url_length = 60
#Estensioni da escludere dalla scansione ricorsiva
conf.recursive_blacklist_exts = ["html",'htm','shtml','png','jpg','webp','bmp','js','css','pdf','ini','mp3','mp4']
#Imposta le directory da escludere. Predefinito vuoto. Altri esempi: e.g:['/test1','/test2']
#conf.exclude_subdirs = ['/test1','/test2']
conf.exclude_subdirs = ""

#Configurazione modalità di scansione (4 modalità, solo 1 può essere selezionata per volta)
[ScanModeHandler]
#Modalità dizionario: disattiva:0; singolo dizionario:1; dizionario multiplo:2
conf.dict_mode = 1
#Percorso del dizionario singolo
conf.dict_mode_load_single_dict = "dict_mode_dict.txt"
#Percorso del dizionario multiplo, predefinito dictmult
conf.dict_mode_load_mult_dict = "dictmult"
#Modalità forza bruta: disattiva:0; attiva:1
conf.blast_mode = 0
#Lunghezza minima del dizionario generato. Predefinito 3
conf.blast_mode_min = 3
#Lunghezza massima del dizionario generato. Predefinito 3
conf.blast_mode_max = 3
#Set di caratteri predefinito: a-z. Non ancora utilizzato.
conf.blast_mode_az = "abcdefghijklmnopqrstuvwxyz"
#Set di caratteri predefinito: 0-9. Non ancora utilizzato.
conf.blast_mode_num = "0123456789"
#Set di caratteri personalizzato. Predefinito "abc". Usa abc per costruire il dizionario
conf.blast_mode_custom_charset = "abc"
#Set di caratteri di ripresa personalizzato. Predefinito vuoto.
conf.blast_mode_resume_charset = ""
#Modalità crawler: disattiva:0; attiva:1
conf.crawl_mode = 0
#Dizionario dei suffissi per generare payload di file sensibili dinamici
conf.crawl_mode_dynamic_fuzz_suffix = "crawl_mode_suffix.txt"
#Analizza il file robots.txt. Non ancora implementato.
conf.crawl_mode_parse_robots = 0
#Espressione XPath per analizzare le pagine HTML
conf.crawl_mode_parse_html = "//*/@href | //*/@src | //form/@action"
#Attiva generazione dinamica del dizionario del crawler. Predefinito 1, attivo. Altri esempi: e.g: disattiva:0; attiva:1
conf.crawl_mode_dynamic_fuzz = 1
#Modalità Fuzz: disattiva:0; singolo dizionario:1; dizionario multiplo:2
conf.fuzz_mode = 0
#Percorso del dizionario singolo.
conf.fuzz_mode_load_single_dict = "fuzz_mode_dir.txt"
#Percorso del dizionario multiplo. Predefinito: fuzzmult
conf.fuzz_mode_load_mult_dict = "fuzzmult"
#Imposta tag fuzz. Predefinito {dir}. Usa il tag {dir} come punto di inserimento del dizionario, sostituisce http://target.com/{dir}.php con http://target.com/ogni riga del dizionario.php. Altri esempi: e.g:{dir};{ext}
#conf.fuzz_mode_label = "{ext}"
conf.fuzz_mode_label = "{dir}"

#Configurazione payload. Non ancora implementata.
[PayloadHandler]

#Configurazione richieste
[RequestHandler]
#Intestazioni personalizzate. Predefinito vuoto. Altri esempi: e.g:test1=test1,test2=test2
#conf.request_headers = "test1=test1,test2=test2"
conf.request_headers = ""
#User-Agent personalizzato per le richieste. Predefinito UA di 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 personalizzato per le richieste. Predefinito vuoto, nessun cookie. Altri esempi e.g:cookie1=cookie1; cookie2=cookie2;
#conf.request_header_cookie = "cookie1=cookie1; cookie2=cookie2"
conf.request_header_cookie = ""
#Autenticazione 401 personalizzata. Non ancora implementata. Perché la funzione di intestazione personalizzata può soddisfare questa esigenza (pigrizia XD)
conf.request_header_401_auth = ""
#Metodo HTTP personalizzato. Predefinito get. Altri esempi: e.g:get;head
#conf.request_method = "head"
conf.request_method = "get"
#Timeout per ogni richiesta. Predefinito 3 secondi.
conf.request_timeout = 3
#Ritardo casuale (0-x) secondi prima di inviare la richiesta. Il parametro deve essere un intero. Predefinito 0 secondi, nessun ritardo.
conf.request_delay = 0
#Numero di coroutine per singolo target. Predefinito 30 thread
conf.request_limit = 30
#Numero massimo di tentativi. Non ancora implementato.
conf.request_max_retries = 1
#Connessione persistente. Utilizzare session(). Non ancora implementato.
conf.request_persistent_connect = 0
#Reindirizzamento 302. Predefinito False, nessun reindirizzamento. Altri esempi: e.g:True;False
conf.redirection_302 = False
#Suffisso aggiunto al payload. Predefinito vuoto, nessun suffisso durante la scansione. Altri esempi: e.g:txt;php;asp;jsp
#conf.file_extension = "txt"
conf.file_extension = ""

#Configurazione risposte
[ResponseHandler]
#Imposta i codici di stato da registrare. Predefinito [200], registra solo 200. Altri esempi: e.g:[200,403,301]
#conf.response_status_code = [200,403,301]
conf.response_status_code = [200]
#Registra l'intestazione content-type. Predefinito 1 (registra)
#conf.response_header_content_type = 0
conf.response_header_content_type = 1
#Registra la dimensione della pagina. Predefinito 1 (registra)
#conf.response_size = 0
conf.response_size = 1
#Rileva automaticamente pagine 404. Predefinito True, rilevamento automatico attivo. Altri esempi: e.g:True;False
#conf.auto_check_404_page = False
conf.auto_check_404_page = True
#Espressione regolare personalizzata per pagine 503. Non ancora implementata. Probabilmente verrà rimossa.
#conf.custom_503_page = "page 503"
conf.custom_503_page = ""
#Espressione regolare personalizzata per il contenuto della risposta
#conf.custom_response_page = "([0-9]){3}([a-z]){3}test"
conf.custom_response_page = ""
#Salta le pagine con dimensione x. Se non impostato, configuralo come "None". Predefinito "None". Altri esempi: e.g:None;0b;1k;1m
#conf.skip_size = "0b"
conf.skip_size = "None"

#Opzioni proxy
[ProxyHandler]
#Configurazione proxy. Predefinito "None", nessun proxy. Altri esempi e.g:{"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

#Opzioni di debug
[DebugMode]
#Stampa i payload ed esci
conf.debug = 0

#Opzioni di aggiornamento
[CheckUpdate]
#Ottieni aggiornamenti da github. Non ancora implementato.
conf.update = 0

TODO

  • Parsing parametri da riga di comando per inizializzazione globale
  • Inizializzazione engine
    • Imposta numero di thread
  • Inizializzazione target
    • Analisi automatica dell'input ( -i,inputTarget)
      • IP
      • Dominio
      • URL
      • IP/MASK
      • IP Start-End
    • Lettura da file (-iF,inputLocalFile)
  • Inizializzazione bruter
    • Modalità di caricamento configurazione
      • Lettura valori parametri da riga di comando
      • Lettura file di configurazione (-lcf,loadConfigFile)

File dizionario predefinito

I file del dizionario si trovano nella cartella data nella directory radice del progetto

  1. dict_mode_dict.txt Dizionario per "modalità dizionario", utilizza il dizionario predefinito di dirsearch
  2. crawl_mode_suffix.txt Dizionario per "modalità crawler", utilizza il dizionario predefinito di FileSensor
  3. fuzz_mode_dir.txt Dizionario per "modalità fuzz", utilizza il dizionario predefinito di DirBuster
  4. fuzz_mode_ext.txt Dizionario per "modalità fuzz", dizionario creato da estensioni comuni
  5. dictmult Cartella per dizionari multipli predefiniti di "modalità dizionario", contiene: BAK.min.txt (dizionario piccolo di file di backup), BAK.txt (dizionario grande di file di backup), LEAKS.txt (dizionario di file con perdita di informazioni)
  6. fuzzmult Cartella per dizionari multipli predefiniti di "modalità fuzz", contiene: fuzz_mode_dir.txt (dizionario directory predefinito), fuzz_mode_ext.txt (dizionario estensioni predefinito)

Difetti noti

  1. La "modalità crawler" esegue il crawling solo della pagina corrente del target per generare il dizionario dinamico. In futuro il "modulo crawler" sarà separato dalla "funzione generazione dizionario dinamico".
  2. Errore alla riga 517 di bruter.py bar.log.start(). Soluzione: installa progressbar2. Disinstalla progressbar per evitare conflitti di modulo con lo stesso nome. Grazie a un certo cugino per l'avviso.
root@kitploit:~
Esegui i comandi:
python3 -m pip uninstall progressbar
python3 -m pip install progressbar2

Manutenzione

  1. In caso di problemi durante l'uso, si prega di aprire un issue
  2. Questo progetto è in fase di manutenzione, in futuro verranno aggiunte nuove funzionalità, secondo la lista "TODO", voci non spuntate

Ringraziamenti

Durante la scrittura di dirmap, sono stati presi come riferimento i modelli e le idee di molti eccellenti progetti open source. Un ringraziamento speciale.

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

Contatta l'autore

mail: [email protected]

donate

Scarica lo strumento
  • Opzioni modalità ricorsiva (RecursiveScan)
    • Scansione ricorsiva (-rs,recursive_scan)
    • Codici di stato per ricorsione (-rd,recursive_status_code)
    • Escludi alcune directory (-es,exclude_subdirs)
  • Opzioni modalità di scansione (ScanModeHandler)
    • Modalità dizionario (-dm,dict_mode)
      • Carica singolo dizionario (-dmlsd,dict_mode_load_single_dict)
      • Carica più dizionari (-dmlmd,dict_mode_load_mult_dict)
    • Modalità forza bruta (-bm,blast_mode)
      • Intervallo lunghezza directory (obbligatorio)
        • Lunghezza minima (-bmmin,blast_mode_min)
        • Lunghezza massima (-bmmax,blast_mode_max)
      • Basato su set di caratteri predefinito
        • Basato su a-z
        • Basato su 0-9
      • Basato su set di caratteri personalizzato (-bmcc,blast_mode_custom_charset)
      • Ripresa generazione payload da interruzione (-bmrc,blast_mode_resume_charset)
    • Modalità crawler (-cm,crawl_mode)
      • Tag di parsing personalizzati (-cmph,crawl_mode_parse_html)(a:href,img:src,form:action,script:src,iframe:src,div:src,frame:src,embed:src)
      • Analisi robots.txt (-cmpr,crawl_mode_parse_robots)
      • Scansione fuzz dinamica da crawler (-cmdf,crawl_mode_dynamic_fuzz)
    • Modalità fuzz (-fm,fuzz_mode)
      • Fuzz con dizionario singolo (-fmlsd,fuzz_mode_load_single_dict)
      • Fuzz con più dizionari (-fmlmd,fuzz_mode_load_mult_dict)
      • Etichetta fuzz (-fml,fuzz_mode_label)
  • Opzioni ottimizzazione richieste (RequestHandler)
    • Timeout richiesta personalizzato (-rt,request_timeout)
    • Ritardo richiesta personalizzato (-rd,request_delay)
    • Limite coroutine per singolo target (-rl,request_limit)
    • Limite tentativi (-rmr,request_max_retries)
    • Connessione persistente http (-rpc,request_persistent_connect)
    • Metodo richiesta personalizzato (-rm,request_method)(get, head)
    • Gestione stato 302 (-r3,redirection_302)(reindirizzamento o meno)
    • Intestazioni personalizzate
      • Altre intestazioni personalizzate (-rh,request_headers)(per autenticazione 401)
      • UA personalizzato (-rhua,request_header_ua)
      • Cookie personalizzato (-rhc,request_header_cookie)
  • Opzioni elaborazione dizionari (PayloadHandler)
    • Elaborazione dizionario (modifica payload - rimozione slash)
    • Elaborazione dizionario (modifica payload - aggiunta slash iniziale)
    • Elaborazione dizionario (modifica payload - prima lettera maiuscola)
    • Elaborazione dizionario (modifica payload - rimozione estensione)
    • Elaborazione dizionario (modifica payload - rimozione caratteri non alfanumerici)
  • Modulo elaborazione risultati risposta (ResponseHandler)
    • Salta file di dimensione x byte (-ss,skip_size)
    • Rilevamento automatico pagine 404 (-ac4p,auto_check_404_page)
    • Pagina 503 personalizzata (-c5p,custom_503_page)
    • Espressione regolare personalizzata per contenuto risposta e relative operazioni
      • Espressione regolare personalizzata per risposta (-crp,custom_response_page)
      • Operazione specifica (non ancora definita)
    • Output risultati con codici di stato personalizzati (-rsc,response_status_code)
    • Output payload come percorso completo (predefinito URL completo)
    • Output risultati con content-type
    • Salvataggio automatico deduplicato dei risultati
  • Modulo gestione stato (StatusHandler)
    • Visualizzazione stato (in attesa, in corso, in pausa, anomalia, completato)
    • Visualizzazione avanzamento
    • Controllo stato (avvio, pausa, ripresa, stop)
    • Modulo ripresa scansione (non ancora configurato)
    • Ripresa da interruzione
    • Ripresa da riga specifica
  • Modulo registrazione log (ScanLogHandler)
    • Log di scansione
    • Log errori
  • Modulo proxy (ProxyHandler)
    • Proxy singolo (-ps,proxy_server)
    • Pool di proxy
  • Opzioni modalità debug (DebugMode)
    • debug(--debug)
  • Opzioni controllo aggiornamenti (CheckUpdate)
    • update(--update)