
Sudomy è uno strumento di enumerazione dei sottodomini per raccogliere sottodomini e analizzare domini eseguendo ricognizione automatizzata (recon) per bug hunting / pentesting
Sudomy è uno strumento di enumerazione dei sottodomini per raccogliere sottodomini e analizzare domini eseguendo ricognizioni automatizzate avanzate (framework). Questo strumento può essere utilizzato anche per attività di OSINT (Open-source intelligence).
Metodo Attivo
Metodo Passivo
Valutando e selezionando i buoni siti/risorse di terze parti, il processo di enumerazione può essere ottimizzato. Si otterranno più risultati con meno tempo richiesto. Sudomy può raccogliere dati da questi 22 siti di terze parti ben curati:
https://censys.io
https://developer.shodan.io
https://dns.bufferover.run
https://index.commoncrawl.org
https://riddler.io
https://api.certspotter.com
https://api.hackertarget.com
https://api.threatminer.org
https://community.riskiq.com
https://crt.sh
https://dnsdumpster.com
https://docs.binaryedge.io
https://securitytrails.com
https://graph.facebook.com
https://otx.alienvault.com
https://rapiddns.io
https://spyse.com
https://urlscan.io
https://www.dnsdb.info
https://www.virustotal.com
https://threatcrowd.org
https://web.archive.org
Come funziona sudomy o il flusso di ricognizione, quando esegui i migliori argomenti per raccogliere sottodomini e analizzare facendo ricognizione automatica.
root@maland: ./sudomy -d bugcrowd.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze -sS
Questo è il flusso di lavoro di ricognizione di Sudomy v1.1.8#dev

Informazioni dettagliate sul file di ricognizione e dati interessanti
------------------------------------------------------------------------------------------------------
- subdomain.txt -- Elenco sottodomini < $DOMAIN (Target)
- httprobe_subdomain.txt -- Convalida sottodomini < subdomain.txt
- webanalyzes.txt -- Scansione tecnologie identificate < httprobe_subdomain.txt
- httpx_status_title.txt -- titolo+codice di stato+lungh. < httprobe_subdomain.txt
- dnsprobe_subdomain.txt -- Risoluzione sottodomini < subdomain.txt
- Subdomain_Resolver.txt -- Risoluzione sottodomini (alt) < subdomain.txt
- cf-ipresolv.txt -- Scansione Cloudflare < ip_resolver.txt
- Live_hosts_pingsweep.txt -- Controllo host attivi < ip_resolver.txt
- ip_resolver.txt -- Elenco IP risolti < Subdomain_Resolver::dnsprobe
- ip_dbasn.txt -- Controllo numero ASN < ip_resolver.txt
- vHost_subdomain.txt -- Virtual Host (Raggruppato per IP) < Subdomain_Resolver.txt
- nmap_top_ports.txt -- Scansione porte attive < cf-ipresolv.txt
- ip_dbport.txt -- Scansione porte passiva < cf-ipresolv.txt
------------------------------------------------------------------------------------------------------
- Passive_Collect_URL_Full.txt -- Tutti gli URL di crawling completi (WebArchive, CommonCrawl, UrlScanIO)
------------------------------------------------------------------------------------------------------
- ./screenshots/report-0.html -- Report screenshot < httprobe_subdomain.txt
- ./screenshots/gowitness/gowitness.sqlite3 -- Database screenshot < httprobe_subdomain.txt
------------------------------------------------------------------------------------------------------
- ./interest/interesturi-allpath.out -- Percorsi interessanti(/api,/git,etc) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-doc.out -- Documenti interessanti (doc,pdf,xls) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-otherfile.out -- Altri file (.json,.env,etc) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-js.out -- Tutti i file Javascript(*.js) < Passive_Collect_URL_Full.txt
- ./interest/interesturi-nodemodule.out -- File da /node_modules/ < Passive_Collect_URL_Full.txt
- ./interest/interesturi-param-full.out -- Elenco completo parametri < Passive_Collect_URL_Full.txt
- ./interest/interesturi-paramsuniq.out -- Elenco parametri unici < Passive_Collect_URL_Full.txt
- Note: puoi validare gli url/parametri interessanti usando urlprobe o httpx per evitare falsi positivi
------------------------------------------------------------------------------------------------------
- ./takeover/CNAME-resolv.txt -- Risoluzione CNAME < subdomain.txt
- ./takeover/TakeOver-Lookup.txt -- DNSLookup < CNAME-resolv.txt
- ./takeover/TakeOver-nxdomain.txt -- Altre piattaforme di servizi di terze parti < TakeOver-Lookup.txt
- ./takeover/TakeOver.txt -- Controllo vulnerabilità < CNAME-resolv.txt
------------------------------------------------------------------------------------------------------
- ./wordlist/wordlist-parameter.lst -- Genera wordlist parametri < Passive_Collect_URL_Full.txt
- ./wordlist/wordlist-pathurl.lst -- Genera wordlist percorsi < Passive_Collect_URL_Full.txt
- Note: Questo wordlist si basa sulle informazioni del dominio e del sottodominio (percorso,file,stringhe di query e parametri)
------------------------------------------------------------------------------------------------------
Sudomy minimizza più risorse quando utilizza risorse (Siti di Terze Parti) valutando e selezionando i buoni siti/risorse di terze parti, in modo che il processo di enumerazione possa essere ottimizzato. Il dominio utilizzato in questo confronto è tiket.com.
I seguenti sono i risultati del test di enumerazione DNS passiva di Sublist3r v1.1.0, Subfinder v2.4.5, e Sudomy v1.2.0.
Qui subfinder è ancora classificato come molto veloce per la raccolta di sottodomini utilizzando molte risorse. Soprattutto se le risorse utilizzate sono state ottimizzate (?).
Per i risultati di compilazione e i video, puoi controllare qui:
Quando ho tempo libero. Forse in futuro, sudomy userà anche il golang. Se vuoi contribuire, le pull request sono aperte.
Sudomy è attualmente esteso con i seguenti strumenti. Le istruzioni su come installare e utilizzare l'applicazione sono collegate di seguito.
# Clona questo repository
git clone --recursive https://github.com/screetsec/Sudomy.git
$ python3 -m pip install -r requirements.txt
Sudomy richiede jq e GNU grep per funzionare e analizzare. Le informazioni su come scaricare e installare jq sono disponibili qui
# Linux
apt-get update
apt-get install jq nmap phantomjs npm chromium parallel
npm i -g wappalyzer wscat
# Mac
brew cask install phantomjs
brew install jq nmap npm parallel grep
npm i -g wappalyzer wscat
# Nota
Avrai bisogno di un'installazione dell'ultima versione di Google Chrome o Chromium
Imposta il PATH nel file rc per le modifiche a GNU grep
# Estrai un'immagine da DockerHub
docker pull screetsec/sudomy:v1.2.1-dev
# Crea la directory di output
mkdir output
# Esegui un'immagine, puoi eseguire l'immagine su una directory personalizzata ma devi copiare/scaricare il file di configurazione sudomy.api nella directory corrente
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -v "${PWD}/sudomy.api:/usr/lib/sudomy/sudomy.api" -t --rm screetsec/sudomy:v1.1.9-dev [argument]
# oppure definisci una variabile API quando esegui l'immagine.
docker run -v "${PWD}/output:/usr/lib/sudomy/output" -e "SHODAN_API=xxxx" -e "VIRUSTOTAL=xxxx" -t --rm screetsec/sudomy:v1.1.9-dev [argument]
La chiave API è necessaria prima di interrogare siti di terze parti, come Shodan, Censys, SecurityTrails, Virustotal e BinaryEdge.
# Shodan
# URL : http://developer.shodan.io
# Esempio :
# - SHODAN_API="VGhpc1M0bXBsZWwKVGhmcGxlbAo"
SHODAN_API=""
# Censys
# URL : https://search.censys.io/register
CENSYS_API=""
CENSYS_SECRET=""
# Virustotal
# URL : https://www.virustotal.com/gui/
VIRUSTOTAL=""
# Binaryedge
# URL : https://app.binaryedge.io/login
BINARYEDGE=""
# SecurityTrails
# URL : https://securitytrails.com/
SECURITY_TRAILS=""
YOUR_WEBHOOK_URL è necessario prima di utilizzare le notifiche Slack
# Configurazione Avviso Slack
# Per la configurazione/tutorial per ottenere l'url del webhook, segui questo sito
# - https://api.slack.com/messaging/webhooks
# Esempio:
# - YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"
YOUR_WEBHOOK_URL="https://hooks.slack.com/services/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"
___ _ _ _
/ __|_ _ __| (_)(_)_ __ _ _
\__ \ || / _ / __ \ ' \ || |
|___/\_,_\__,_\____/_|_|_\_, |
|__/ v{1.2.1#dev} by @screetsec
Sud⍥my - Fast Subdomain Enumeration and Analyzer
http://github.com/screetsec/sudomy
Usage: sud⍥my.sh [-h [--help]] [-s[--source]][-d[--domain=]]
Example: sud⍥my.sh -d example.com
sud⍥my.sh -s Shodan,VirusTotal -d example.com
Best Argument:
sudomy -d domain.com -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe -aI webanalyze --slack -sS
Optional Arguments:
-a, --all Esegue tutta l'enumerazione, no nmap e gobuster
-b, --bruteforce Forza bruta sui sottodomini usando Gobuster (Wordlist: TUTTI i migliori DNS SecList)
-d, --domain Dominio del sito web da scansionare
-h, --help Mostra questo messaggio di aiuto
-o, --outfile Specifica un file di output al completamento
-s, --source Usa la fonte per enumerare i sottodomini
-aI, --apps-identifier Identifica le tecnologie sul sito web (es: -aI webanalyze)
-dP, --db-port Raccolta di porte da terze parti predefinito=shodan
-eP, --extract-params Raccolta dei parametri URL dai motori
-tO, --takeover Scanner di vulnerabilità Subdomain TakeOver
-wS, --websocket Controllo connessione WebSocket
-cF, --cloudflare Controlla se un IP è di proprietà di Cloudflare
-pS, --ping-sweep Controlla host attivi usando il metodo Ping Sweep
-rS, --resolver Converte elenchi di domini in elenchi di IP risolti senza duplicati
-sC, --status-code Ottiene codici di stato, risposta dall'elenco dei domini
-nT, --nmap-top Scansione porte con top-ports usando nmap dall'elenco dei domini
-sS, --screenshot Screenshot di un elenco di siti web (predefinito: gowitness)
-nP, --no-passive Non esegue enumerazione passiva dei sottodomini
-gW, --gwordlist Genera wordlist basata sulla raccolta di risorse URL (Passive)
--httpx Esegue più probe httpx usando retryablehttp
--dnsprobe Esegue più query DNS (dnsprobe)
--no-probe Non esegue httprobe
--html Crea report in HTML
--graph Visualizzazione grafico di rete
Per usare tutte le 22 fonti e verificare la presenza di server http o https funzionanti (Validazioni):
$ sudomy -d hackerone.com
Per usare una o più fonti:
$ sudomy -s shodan,dnsdumpster,webarchive -d hackerone.com
Per usare tutte le fonti senza validazioni:
$ sudomy -d hackerone.com --no-probe
Per usare uno o più plugin:
$ sudomy -pS -sC -sS -d hackerone.com
Per usare tutti i plugin: test dello stato dell'host, codice di stato http/https, takeover dei sottodomini e screenshots.
Nmap, Gobuster, wappalyzer e wscat non inclusi.
$ sudomy -d hackerone.com --all
Per creare report in formato HTML
$ sudomy -d hackerone.com --html --all
Esempio di report HTML:
| Dashboard | Reports |
|---|---|
![]() | ![]() |
Per generare la visualizzazione del grafico di rete per sottodomini e virtualhost
$ sudomy -d hackerone.com -rS --graph
Grafico di visualizzazione Esempio:
| nGraph |
|---|
![]() |
Per usare i migliori argomenti per raccogliere sottodomini, analizzare facendo ricognizione automatica e inviare notifiche a Slack
./sudomy -d ngesec.id -dP -eP -rS -cF -pS -tO -gW --httpx --dnsprobe --graph -aI webanalyze --slack -sS
Esempio di notifica Slack:
| Slack |
|---|
![]() |
Tutte le modifiche notevoli a questo progetto saranno documentate in questo file.