Domain Hunter

La selezione del nome di dominio è un aspetto importante della preparazione per penetration test e soprattutto per il Red Team engagement. Comunemente, i domini che sono stati utilizzati in precedenza per scopi benigni e sono stati correttamente classificati possono essere acquistati solo per pochi dollari. Tali domini possono consentire a un team di aggirare i filtri Web basati sulla reputazione e le restrizioni in uscita dalla rete per attività di phishing e di C2 (Comando e Controllo).

Questo strumento basato su Python è stato scritto per interrogare rapidamente il motore di ricerca Expireddomains.net per i domini scaduti/disponibili con una precedente cronologia di utilizzo. Quindi, facoltativamente, esegue query per la domain reputation su servizi come Symantec Site Review (BlueCoat), IBM X-Force e Cisco Talos. L’output dello strumento principale è un rapporto in stile tabella HTML con timestamp.

Registro modifiche

  • 07 gennaio 2021
    • Correzione del controllo della reputazione di Symantec Site Review (Bluecoat) per ignorare XSRF e ulteriori controlli dei parametri POST
    • Correzione temporanea per collegamento a domini malware non funzionante. Questo servizio non è più offerto nella forma utilizzata da DomainHunter.
    • Aggiungi commenti al codice interno per la leggibilità
    • Aggiungi il controllo per il nome utente ExpiredDomains prima di chiedere una password
    • Disabilitare la reputazione di Google Safe Browsing/PhishTank da MxToolbox poiché questo servizio è cambiato
  • 21 febbraio 2020
    • versione Pillow aggiornata per supportare Python3.7+
    • Aggiungi le istruzioni per l’installazione utilizzando pipenv
  • 13 agosto 2019
    • Aggiunto il supporto per l’autenticazione per ExpiredDomains.net – grazie ad acole76!
  • 5 ottobre 2018
    • Logica fissa per filtrare i domini con categorizzazioni desiderabili. In precedenza, alcune condizioni di errore non venivano filtrate e avrebbero portato a domini senza una categorizzazione valida che sarebbero stati inseriti nell’elenco finale.
  • 4 ottobre 2018
    • Logica di analisi ottimizzata
    • Risolto il problema con gli indici delle colonne analizzate
  • 17 settembre 2018
    • Risolti gli errori di analisi di Symantec WebPulse Site Review causati dagli aggiornamenti del servizio
  • 18 maggio 2018
    • Aggiungi –alexa switch per controllare il filtraggio del sito classificato di Alexa
  • 16 maggio 2018
    • Aggiorna le query per aumentare la probabilità di trovare rapidamente un dominio disponibile per l’acquisto istantaneo. In precedenza, molti domini segnalati avevano lo stato “In Auction” o “Make an Offer”. Nuovi criteri: .com|.net|.org + Alexa Ranked + Available for Purchase
    • Logica migliorata per filtrare le categorizzazioni di domini non categorizzate e potenzialmente indesiderabili nella tabella di testo finale e nell’output HTML
    • Rimosse le colonne non necessarie dal report HTML
  • 6 maggio 2018
    • Risolto il problema con l’analisi dei domini scaduti durante l’esecuzione di una ricerca per parola chiave
    • Aggiornamenti minori dell’output di tabelle di testo e HTML
    • Controlli di reputazione filtrati da eseguire solo per i domini .COM, .ORG e .NET e controllo rimosso per i record Archive.org quando si esegue una ricerca predefinita o per parola chiave. – Ringraziamo @christruncer per le PR e l’idea originali.
  • 11 aprile 2018
    • Aggiunto il supporto OCR per la risoluzione di CAPTCHA con tesseract. – Grazie a t94j0 per l’idea in AIRMASTER
    • Aggiunto supporto per l’elenco dei file di input di potenziali domini (-f/–filename)
    • Cambiato l’opzione -q/–query in -k/–parola chiave per meglio corrispondere al suo scopo
    • Aggiunto ulteriore controllo degli errori per l’analisi di ExpiredDomains.net
  • 9 aprile 2018
    • Aggiunto -t switch per il controllo della temporizzazione. -t <1-5>
    • Aggiunti controlli di reputazione di Google SafeBrowsing e PhishTank
    • Risolto bug nell’analisi della risposta IBMXForce
  • 7 aprile 2018
    • Supporto fisso per Symantec WebPulse Site Review (precedentemente Blue Coat WebFilter)
    • Aggiunto il controllo della reputazione del dominio Cisco Talos
    • Aggiunta funzionalità per eseguire un controllo della reputazione su un singolo dominio non scaduto. Ciò è utile quando si monitora la reputazione per i domini utilizzati nelle campagne e negli impegni in corso.
  • 6 giugno 2017
    • Aggiunto il supporto per Python 3
    • Pulizia del codice e correzione di bug
    • Aggiunta la colonna Stato (Disponibile, Fai un’offerta, Prezzo, Ordine arretrato, ecc.)

Caratteristiche

  • Recupera il numero specificato di domini scaduti ed eliminati di recente (.com, .net, .org) da ExpiredDomains.net
  • Recupera i domini disponibili in base alla ricerca per parole chiave da ExpiredDomains.net
  • Eseguire controlli di reputazione sui servizi Symantec WebPulse Site Review (BlueCoat), IBM x-Force, Cisco Talos, Google SafeBrowsing e PhishTank
  • Ordina i risultati per età del dominio (se noto) e filtra per reputazione
  • Tabella basata su testo e output di report HTML con collegamenti a fonti di reputazione e voce di Archive.org

Installazione

Installazione diretta

Installa i requisiti di Python

pip3 install -r requirements.txt

Facoltativo: installa dipendenze aggiuntive per il supporto OCR

  • Debian/Ubuntu: apt-get install tesseract-ocr python3-pil
  • MAC OSX: brew install tesseract

Installazione pipenv

pipenv --python 3.7

pipenv install

Facoltativo: installa dipendenze aggiuntive per il supporto OCR

  • Debian/Ubuntu: apt-get install tesseract-ocr python3-pil

Consiglio

Avrai bisogno delle credenziali di domini scaduti.net per la piena funzionalità

Utilizzo

usage: domainhunter.py [-h] [-a] [-k KEYWORD] [-c] [-f FILENAME] [--ocr]
                    [-r MAXRESULTS] [-s SINGLE] [-t {0,1,2,3,4,5}]
                    [-w MAXWIDTH] [-V]

Finds expired domains, domain categorization, and Archive.org history to determine good candidates for C2 and phishing domains optional arguments:
-h, --help            show this help message and exit
-a, --alexa           Filter results to Alexa listings
-k KEYWORD, --keyword KEYWORD
                        Keyword used to refine search results
-c, --check           Perform domain reputation checks
-f FILENAME, --filename FILENAME
                        Specify input file of line delimited domain names to
                        check
--ocr                 Perform OCR on CAPTCHAs when challenged
-r MAXRESULTS, --maxresults MAXRESULTS
                        Number of results to return when querying latest
                        expired/deleted domains
-s SINGLE, --single SINGLE
                        Performs detailed reputation checks against a single
                        domain name/IP.
-t {0,1,2,3,4,5}, --timing {0,1,2,3,4,5}
                        Modifies request timing to avoid CAPTCHAs. Slowest(0)
                        = 90-120 seconds, Default(3) = 10-20 seconds,
                        Fastest(5) = no delay
-w MAXWIDTH, --maxwidth MAXWIDTH
                        Width of text table
-V, --version         show program's version number and exit

Examples:
./domainhunter.py -k apples -c --ocr -t5
./domainhunter.py --check --ocr -t3
./domainhunter.py --single mydomain.com
./domainhunter.py --keyword tech --check --ocr --timing 5 --alexa
./domaihunter.py --filename inputlist.txt --ocr --timing 5

Usa le impostazioni predefinite per controllare i 100 domini più recenti e controlla la reputazione

python3 ./domainhunter.py

Cerca i 1000 domini scaduti/cancellati più di recente, ma non controllare la reputazione

python3 ./domainhunter.py -r 1000

Esegui tutti i controlli di reputazione per un singolo dominio

python3 ./domainhunter.py -s mydomain.com

[*] Downloading malware domain list from http://mirror1.malwaredomains.com/files/justdomains

[*] Fetching domain reputation for: mydomain.com
[*] Google SafeBrowsing and PhishTank: mydomain.com
[+] mydomain.com: No issues found
[*] BlueCoat: mydomain.com
[+] mydomain.com: Technology/Internet
[*] IBM xForce: mydomain.com
[+] mydomain.com: Communication Services, Software as a Service, Cloud, (Score: 1)
[*] Cisco Talos: mydomain.com
[+] mydomain.com: Web Hosting (Score: Neutral)

Esegui tutti i controlli di reputazione per un elenco di domini alla massima velocità con l’OCR dei CAPTCHA

python3 ./domainhunter.py -f <domainslist.txt> -t 5 --ocr

Cerca i domini disponibili con la parola chiave “dog”, con un elenco massimo di 25 risultati, e controlla la reputazione.

Search for available domains with keyword term of “dog”, max results of 25, and check reputation

python3 ./domainhunter.py -k dog -r 25 -c

____ ___ __ __ _ ___ _ _ _ _ _ _ _ _ _____ _____ ____
| _ \ / _ \| \/ | / \ |_ _| \ | | | | | | | | | \ | |_ _| ____| _ \
| | | | | | | |\/| | / _ \ | || \| | | |_| | | | | \| | | | | _| | |_) |
| |_| | |_| | | | |/ ___ \ | || |\ | | _ | |_| | |\ | | | | |___| _ <
|____/ \___/|_| |_/_/ \_\___|_| \_| |_| |_|\___/|_| \_| |_| |_____|_| \_\

Expired Domains Reputation Checker
Authors: @joevest and @andrewchiles

DISCLAIMER: This is for educational purposes only!
It is designed to promote education and the improvement of computer/cyber security.
The authors or employers are not liable for any illegal act or misuse performed by any user of this tool.
If you plan to use this content for illegal purpose, don’t. Have a nice day 🙂

[*] Downloading malware domain list from http://mirror1.malwaredomains.com/files/justdomains

[*] Fetching expired or deleted domains containing “dog”
[*] https://www.expireddomains.net/domain-name-search/?q=dog

[*] Performing domain reputation checks for 8 domains.
[*] BlueCoat: doginmysuitcase.com
[+] doginmysuitcase.com: Travel
[*] IBM xForce: doginmysuitcase.com
[+] doginmysuitcase.com: Not found.
[*] Cisco Talos: doginmysuitcase.com
[+] doginmysuitcase.com: Uncategorized

Autori Joe Vest (@joevest) & Andrew Chiles (@andrewchiles)

https://github.com/threatexpress/domainhunter

 

Twitter
Visit Us
LinkedIn
Share
YOUTUBE