Una delle cose che devo fare di tanto in tanto è trovare, ad esempio, sottodomini di un sito.
A partire da example.com
- sub1. esempio.com
- altro.esempio.com
- altro.esempio.com
Sto cercando altri modi per eseguire la ricognizione su questi obiettivi e desidero ottenere un elenco di tutti i sottodomini di un dominio.
Attualmente sto facendo una serie di cose tra cui
- Utilizzo di maltego per la scansione di informazioni
- Utilizzo dei motori di ricerca per la ricerca di sottodomini
- Scansione di link ai siti
- Esame dei record DNS
- Esame di certificati SSL configurati in modo errato
- Indovinare cose come “vpn.example.com”
Penso che ce ne siano più di quelli che ho trovato finora, ma ora non ho più idee.
Commenti
Risposta
La capacità di un pentester di trovare i sottodomini di un sito si presenta spesso. Quindi ho scritto uno strumento, SubBrute che lo fa abbastanza bene se lo dico io. In breve, è migliore di altri strumenti (fierce2) in quanto molto più veloce, più preciso e più facile da lavorare con . Questo strumento viene fornito con un elenco di sottodomini reali ottenuti dallo spidering del web. Questo elenco di sottodomini è più di 16 volte la dimensione di fierce2 e il subbrute impiegherà circa 15 minuti per esaurirlo su una connessione domestica. Loutput è un semplice elenco separato da una nuova riga, che è facile da usare come input per altri strumenti come nmap o uno scanner di vulnerabilità delle applicazioni web.
Commenti
- Fantastico, ‘ lo darò unocchiata. Qualche idea di quanto possa essere paragonato a ‘ knock ‘?
- @ D3C4FF knock è una schifezza.
- Tutta la gloria sia per Rook. Oggi ho usato lo strumento in un test dal vivo e ha funzionato a meraviglia. Ha perso solo uno su due dozzine di sottodomini che si chiamava mywebreading
- @ D3C4FF diavolo sì, ‘ sono contento che labbia fatto il trucco;)
- @Rook solo una rapida idea per quanto riguarda il subbruto, aggiungi lopzione per risolvere (e stampare) anche lindirizzo IP dai nomi host trovati. Ho apportato questa modifica e mi ha aiutato con alcuni test in cui alcuni intervalli erano fuori portata anche se erano sottodomini. Grazie ancora!
Risposta
1. Trasferimento di zona
Alcuni server dei nomi consentono trasferimenti di zona DNS a chiunque su Internet, di solito involontariamente. In questa domanda, viene spiegato ulteriormente: attacco di trasferimento di zona DNS .
Strumenti per trasferimenti di zona
Il seconda risposta a questa domanda menziona come testarla sia per Windows che per Linux:
Windows:
nslookup > server <DNS you are querying> > set type=any > ls -d <target>
Unix (nslookup è deprecato su Unix):
dig -t axfr @<DNS you are querying> <target>
(Ho modificato quello Unix, perché -axfr
non sembra funzionare. Dovevo specificare -t axfr
.)
2. DNSSEC zone walk
DNSSEC firma i record DNS, quindi puoi essere sicuro di ricevere la risposta corretta (beh, dati alcuni trust root e intermediari). Ma come si fa a dimostrare che qualcosa non esiste, ad es. quando si cerca nonexistentsub.example.com
, in che modo il server dei nomi di example.com
prova linesistenza di un sottodominio? Non ha la chiave di firma (la firma viene eseguita dopo laggiornamento della zona da parte degli amministratori).
Nella loro risposta a Come funziona DNSSec? Esistono limitazioni o problemi noti?, / u / tylerl spiega:
Ovviamente questa risposta deve essere firmato, ma generalmente il server DNS stesso non ha accesso alla tua chiave di firma e non può firmare la risposta al volo; le firme vengono tutte create ” offline ” in anticipo. Ciò impedisce che la tua chiave venga esposta se il tuo server DNS viene compromesso.
Quindi, invece, alfabetizzi i tuoi sottodomini e dì ” per ogni nome tra mail.example. com e pop.example.com, non esistono altri sottodomini ” e firmare tale affermazione. Quindi, quando qualcuno chiede nachos.example.com puoi semplicemente dare loro quella risposta (che è già stata firmata) e il client lo sa perché nachos.example.com cade alfabeticamente tra mail.example.com e pop.example.com, quindi la risposta ” questo dominio non “esiste ” è considerata correttamente firmata e proviene effettivamente da te.
Il punto in cui questo diventa problematico è che avendo un insieme di queste risposte negative che affermano esplicitamente che ” non esistono risposte tra X e Y, puoi facilmente mappare esattamente quali domini esistono per lintera zona. Sai che ” X ” esiste e sai che ” Y ” esiste e sai che non cè nientaltro tra di loro. Fai solo un po di più a caso e sarai rapidamente in grado di compilare un elenco di tutti i record che esistono.
Il record che specifica ” fino a quando pop.example.com non cè niente ” viene chiamato NSEC (Next SECure record).
Per questo è stata progettata una soluzione alternativa: NSEC3. Contiene nomi hash, quindi mail
diventa b83a88...
e pop
diventa b21afc...
. Immagina che questi siano gli unici due sottodomini, quindi la risposta firmata dirà ” nessun record esistente tra b21afc...
e b83a88...
“. Anche in questo caso funziona in ordine alfabetico e puoi ottenerli tutti, ma questa volta dovrai decifrare ogni hash prima di imparare cosa sono i sottodomini.
Nella mia esperienza, la maggior parte ha lestensione NSEC3 abilitata.
Strumenti per il controllo delle zone
NSEC3Walker esegue sia lenumerazione che il cracking. Non posso garantire quanto sia efficiente il cracking, ma è sicuramente solo basato sulla CPU. Poiché NSEC3 utilizza SHA1 (almeno originariamente), probabilmente ci sono programmi di cracking migliori.
dnsrecon
sembra anche essere in grado di farlo: dnsrecon -z -d example.com
. Non so se esiste un sito web ufficiale con informazioni, ma in Debian Stretch, Buster e Bullseye posso apt install dnsrecon
.
3. Ricerche inverse in una sottorete
Indovinandone alcune, troverai spesso risposte in un intervallo simile. Se conosci www.
esiste e mail.
ed entrambi risolvono a 192.168.3.x
, potrebbe essere di più. Prova a eseguire una ricerca inversa per tutti gli indirizzi nellintervallo 192.168.3.0-255
(/24
) e probabilmente troverai più sottodomini. Potresti anche provare una query WHOIS sullindirizzo IP per trovare i limiti dellintervallo (se hanno il loro blocco).
Strumenti per le ricerche inverse
dnsrecon
può fare questo:
dnsrecon -t rvl -r 192.168.1.0/24
Dove -t rvl
significa ” digita ricerca inversa ” e -r
passa un intervallo IP in notazione CIDR. Non lo so se esiste un sito web ufficiale con informazioni, ma in Debian Stretch, Buster e Bullseye posso apt install dnsrecon
.
4. Record di servizio DNS
È possibile impostare record SRV (servizio) per il rilevamento del servizio, ad esempio _sip._tcp.example.com
potrebbe puntare a sipserver.example.com
sulla porta 5060. Poiché i nomi dei servizi (” sip
” nellesempio) sono in genere quelli standard registrati con IANA, possiamo iterarli.
Strumenti per interrogare i record srv
dnsrecon
può farlo:
dnsrecon -t srv -d example.com
Richiederà un sottoinsieme dei nomi dei servizi esistenti, selezionati da uno sconosciuto metodo, come menzionato nella sua pagina man (man dnsrecon
).
5. Altri metodi
Hai già menzionato alcuni di questi.Non entrerò nei dettagli, perché sono abbastanza autoesplicativi, e o dipendono da unapplicazione in esecuzione sul target (come FTP), dipendono da una terza parte, o non cè davvero molto da dire su di loro .
-
I risultati di ricerca potrebbero rivelare sottodomini. Ancora una volta,
dnsrecon
può farlo con lopzione-t goo
(utilizza Google in modo specifico). -
Il controllo di altri TLD per lo stesso nome potrebbe rivelare alcune altre varianti o indirizzi IP. Per esempio. se
example.com
esiste, potrebbe esistere ancheexample.org
.dnsrecon
può farlo anche condnsrecon -t tld -d example.com
. -
Scansione di un sito web o ricerca di riferimenti altrove potrebbe dare suggerimenti. (Richiesta di aiuto: quale strumento utilizzare?)
-
Lanalisi dei certificati TLS spesso produce risultati. Assicurati di controllare le porte per HTTPS, SMTP (S), FTP (S) e così via e utilizza STARTTLS.
-
Esistono strumenti di terze parti che possono elencare i sottodomini in un dominio. I loro metodi sono meno chiari, ma la scansione di Internet e i record storici (forse una volta era possibile un trasferimento di dominio?) Ne fanno spesso parte. (Aiuto voluto: qualche consiglio? Ricordo solo di aver visto che esiste.)
6. Indovinare.
Lultima opzione è solo supporre, tramite un dizionario (lo consiglio) o la forza bruta. Ciò è reso più difficile dai caratteri jolly, sebbene molti strumenti cercheranno di rilevarlo e risolverlo.
Strumenti per indovinare / forzare brute
Fierce è stato creato per fare questo: https://github.com/mschwager/fierce
È installato di default in Kali Linux.
Come / u / rook menzionato in unaltra risposta in questo thread , hanno scritto Subbrute per questo scopo: https://github.com/TheRook/subbrute
dnsrecon
può farlo con dnsrecon -t brt -d example.com
. Utilizza -f
a ” Filtra i record di ricerca nel dominio della forza bruta che si risolvono nellindirizzo IP definito con caratteri jolly durante il salvataggio dei record ” (citando la relativa pagina man). Puoi passare -D
per un file dizionario.
Appendice: dict ionaries
Sto ancora cercando buoni dizionari (per indovinare / forzare brute), ma eccone alcuni di cui sono a conoscenza. Per favore aiutami a completare questo elenco! Più sono grandi, meglio è, a condizione che siano ordinati in base alla probabilità.
- Il repository di Fierce “contiene alcuni dizionari: https://github.com/mschwager/fierce / tree / master / lists
- ” Bitquark “ha eseguito unanalisi dei sottodomini più comunemente utilizzati che ha portato a questi elenchi: https://github.com/bitquark/dnspop/tree/master/results . Sembra che i post del blog abbiano alcuni risultati strani, quindi ho non sono sicuro della qualità di questi elenchi.
-
dnsrecon
viene fornito con un elenco, chiamato semplicementenamelist.txt
.dpkg -L dnsrecon
rivela dove è installato. È in ordine alfabetico. - Subbrute ha un elenco breve e uno lungo: https://github.com/TheRook/subbrute
Risposta
Jason Haddix ha scritto il mio strumento di rilevamento di sottodomini / nomi host preferito che dipende da una versione molto recente di recon-ng – disponibile qui –
https://github.com/jhaddix/domain
subbrute è decente, fierce -dns <domain>
funziona alla grande, dnsmap <domain> -r file.txt
è valido anche e non vedo alcun motivo per non apprezzare knock -wc <domain>
(sebbene le altre caratteristiche di knock potrebbero essere sospettare). Tuttavia, tutti questi strumenti utilizzano tecniche che mostrano la loro età. Il trucco per alcuni di questi miglioramenti di attacco è quello di creare un file personalizzato con nomi host che sono orientati specificamente per lobiettivo.
Tuttavia, la motosega per il rilevamento DNS è dnsrecon. Fa tutto.
Potresti anche considerare unofferta commerciale, come RiskIQ, che può fare molto di più di tutti questi strumenti. Le loro tecniche includono un sacco di sondaggi a cui la maggior parte di voi non penserebbe.
[AGGIORNAMENTO] Un altro preferito (per i nomi host, non principalmente i sottodomini – lOP è interessato a entrambi?) È – https://github.com/tomsteele/blacksheepwall
Risposta
Lo proverei con knock ma attenzione: cè il rischio di essere inseriti nella lista nera.
Purtroppo non cè niente da fare bruteforcing se un trasferimento di zona non funziona.
Commenti
- Questo strumento è di bassa qualità; SubBrute è molto meglio.
Risposta
Over on Stack Overflow , suggerì Paul Melici utilizzando WolframAlpha .(Screenshot da me)
Inserisci il dominio nella casella di ricerca ed esegui la ricerca. (Ad esempio
stackexchange.com
)Nella terza sezione dallalto (denominata “Statistiche web per tutto stackexchange. com “) fai clic su Sottodomini
Nella sezione Sottodomini fai clic su Altro
Qui potrai vedere un elenco di sottodomini. Anche se sospetto che non mostri TUTTI i sottodomini.
Commenti
- questo è menzionato nel primo commento
Risposta
Dai unocchiata a http://ha.ckers.org/fierce/ . Può richiedere un file di dizionario oltre alla forza bruta. È incluso anche in Kali.
Risposta
Inizialmente, utilizzo spesso database dns passivo per trovare sottodomini per un sito. Lo svantaggio di questo metodo è che puoi trovare solo i siti elencati nel database. Ma il vantaggio è che puoi trovare siti che non sono elencati in nessun elenco di parole.
Alcuni database di riferimento:
https://www.virustotal.com/en/domain/stackexchange.com/information/
Risposta
Facile. Scrivi lindirizzo del sito a wolframalpha. E fai clic sul pulsante “sottodomini”.
Un esempio; https://www.wolframalpha.com/input/?i=www.imdb.com
Fai clic su “Sottodomini” per visualizzare i sottodomini del sito.
Inoltre, wolfram alpha ha api se vuoi raggiungerlo e usarlo. Spero che aiuti …
Commenti
- Lost – se puoi ampliare questo argomento, spiegando cosa fa Wolfram, questa risposta potrebbe ricevere voti positivi.
- Il link ” sottodomini ” sembra essere presente solo per alcuni domini?
usage()
comunque). A giudicare dal codice sorgente, ciò che fa è che raccoglie i dati dai tre principali motori di ricerca (yahoo, msn, google) e dal mio oscuro sito webpgp.rediris.es
che sembra essere uno scrapper di email.