
Lepus è uno strumento per l'enumerazione di sottodomini, la verifica di takeover di sottodomini e l'esecuzione di scansioni delle porte – ed è molto veloce!
lepus.py yahoo.com
Le modalità di enumerazione sono diversi modi che lepus utilizza per identificare sottodomini per un dato dominio. Queste modalità sono:
Inoltre:
La modalità Collectors raccoglie sottodomini dai seguenti servizi:
| Servizio | API richiesta |
|---|---|
| Censys | Sì |
| CertSpotter | No |
| CRT | No |
| DNSTrails | Sì |
| FOFA | Sì |
| Google Transparency | No |
| HackerTarget | No |
| PassiveTotal | Sì |
| Project Discovery Chaos | Sì |
| Project Crobat | No |
| Project Sonar | No |
| Riddler | Sì |
| Shodan | Sì |
| Spyse | Sì |
| ThreatCrowd | No |
| ThreatMiner | No |
| VirusTotal | Sì |
| Wayback Machine | No |
| ZoomEye | Sì |
Puoi aggiungere le tue chiavi API nel file config.ini.
Il modulo Collectors verrà eseguito di default su lepus. Se non vuoi usare i collectors durante un'esecuzione di lepus (per non esaurire i limiti delle tue chiavi API), puoi usare l'argomento -nc o --no-collectors.
La modalità dizionario può essere usata quando vuoi fornire a lepus una lista di sottodomini. Puoi usare l'argomento -w o --wordlist seguito dal file. Con lepus viene inclusa una lista personalizzata situata in lists/subdomains.txt. Un esempio di esecuzione sarebbe:
lepus.py -w lists/subdomains.txt yahoo.com
La modalità Permutazioni esegue modifiche sulla lista di sottodomini che sono stati identificati. Per ogni sottodominio, verrà effettuato un numero di permutazioni basate sul file lists/words.txt. Puoi anche fornire una wordlist personalizzata per le permutazioni con l'argomento -pw o --permutation-wordlist, seguito dal nome del file. Un esempio di esecuzione sarebbe:
lepus.py --permutate yahoo.com
oppure
lepus.py --permutate -pw customsubdomains.txt yahoo.com
La modalità ReverseDNS raccoglierà tutti gli indirizzi IP risolti ed eseguirà un reverse DNS su ciascuno di essi per rilevare ulteriori sottodomini. Ad esempio, se www.example.com risolve in 1.2.3.4, lepus eseguirà un reverse DNS per 1.2.3.4 e raccoglierà qualsiasi altro sottodominio appartenente a example.com, ad esempio www2, internal o oldsite.
Per eseguire il modulo ReverseDNS usa l'argomento --reverse. Inoltre, --ripe (o -ripe) può essere usato per istruire il modulo a interrogare il database RIPE usando il dominio di secondo livello per potenziali intervalli di rete. Inoltre, lepus supporta l'argomento --ranges (o -r). Puoi usarlo per effettuare risoluzioni reverse DNS contro CIDR che appartengono al dominio di destinazione.
Per impostazione predefinita, questo modulo terrà conto di tutti gli IP precedentemente identificati, poi degli intervalli definiti, poi degli intervalli identificati tramite il database RIPE. Nel caso in cui si voglia eseguire il modulo solo contro intervalli specifici o identificati da RIPE, e non contro tutti gli IP già identificati, puoi usare l'argomento --only-ranges (-or).
Un esempio di esecuzione sarebbe:
lepus.py --reverse yahoo.com
oppure
lepus.py --reverse -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com
oppure solo contro gli intervalli definiti o identificati da RIPE
lepus.py --reverse -or -ripe -r 172.216.0.0/16,183.177.80.0/23 yahoo.com
Suggerimento: lepus identificherà ASN e Reti durante l'enumerazione, quindi puoi anche usare questi intervalli per identificare più sottodomini con un'esecuzione successiva.
Con questo modulo, Lepus utilizzerà le catene di Markov per addestrarsi e poi generare sottodomini basati su quelli già noti. Più ampia è la superficie generale, migliore sarà la capacità dello strumento di addestrarsi e, di conseguenza, migliori saranno i risultati.
Il modulo può essere attivato con l'argomento --markovify. I parametri includono anche la dimensione dello stato di Markov, la lunghezza massima dell'aggiunta del candidato generato e la quantità di candidati generati. I valori predefiniti sono rispettivamente 3, 5 e 5. Questi argomenti possono essere modificati con -ms (--markov-state), -ml (--markov-length) e -mq (--markov-quantity) per soddisfare le tue esigenze. Tieni presente che più grandi sono questi valori, più tempo Lepus impiegherà per generare i candidati.
Va notato che esecuzioni diverse di questo modulo potrebbero generare candidati diversi, quindi sentiti libero di eseguirlo alcune volte consecutivamente. Tieni presente che più alti sono i valori di -ms, -ml e -mq, più tempo sarà necessario per la generazione dei candidati.
lepus.py --markovify yahoo.com
oppure
lepus.py --markovify -ms 5 -ml 10 -mq 10
Lepus ha una lista di firme per identificare se un dominio può essere preso in consegna (takeover). Puoi usarlo fornendo l'argomento --takeover. Questo modulo supporta anche notifiche Slack, una volta identificato un potenziale takeover, aggiungendo un token Slack nel file config.ini. I controlli vengono effettuati sui seguenti servizi:
Il modulo di scansione delle porte verificherà le porte aperte su un target e le registrerà nei risultati. Puoi usare l'argomento --portscan che per impostazione predefinita scansionerà le porte 80, 443, 8000, 8080, 8443. Puoi anche usare porte personalizzate o scegliere un insieme predefinito di porte.