Unul dintre lucrurile pe care trebuie să le fac din când în când este să găsesc, de exemplu, subdomenii ale unui site.
Începând cu example.com
- sub1. example.com
- other.example.com
- another.example.com
Caut alte modalități de a efectua reconfigurarea acestor ținte și vreau să obțin o listă cu toate subdomeniile unui domeniu.
În prezent, fac o serie de lucruri, incluzând
Cred că există mai multe decât pe care le-am găsit până acum, dar acum nu mai am idei.
Comentarii
Răspuns
Pe măsură ce un pentester care poate găsi subdomeniile pentru un site apare des. Așa că am scris un instrument, SubBrute care face acest lucru destul de bine dacă spun eu. Pe scurt, acest lucru este mai bun decât alte instrumente (fierce2), deoarece este mult mai rapid, mai precis și mai ușor de lucrat cu . Acest instrument vine cu o listă de subdomenii reale obținute prin păstrarea paginii web. Această listă de subdomenii este de peste 16 ori mai mare decât fierce2 și subbrutul va dura aproximativ 15 minute pentru a epuiza această listă pe o conexiune de domiciliu. Rezultatul este o listă curată separată de linia nouă, ușor de utilizat ca intrare pentru alte instrumente, cum ar fi nmap sau un scaner de vulnerabilități a aplicațiilor web.
Comentarii
- Minunat, voi ‘ îl voi verifica. Orice idee cât de bine se compară cu ‘ knock ‘?
- @ D3C4FF knock este o prostie.
- Toată slava să fie Rook. Am folosit instrumentul într-un test live astăzi și a funcționat ca un farmec. A ratat doar unul din două duzini de subdomenii care a fost numit mywebreading
- @ D3C4FF la naiba, da, ‘ mă bucur că a făcut-o truc;)
- @Rook doar o idee rapidă cu privire la subbrute, adăugați opțiunea de a rezolva (și de a imprima) adresa IP din numele de gazdă găsite, de asemenea. Am făcut acea schimbare și a ajutat la câteva teste în care anumite intervale erau în afara domeniului, chiar dacă erau subdomenii. Vă mulțumim din nou!
Răspuns
1. Transfer de zone
Unele servere de nume permit transferuri de zone DNS către oricine de pe internet, de obicei neintenționat. În această întrebare, se explică mai departe: atac de transfer de zonă DNS .
Instrumente pentru transferuri de zone
al doilea răspuns la această întrebare menționează modul de testare pentru Windows și Linux:
Windows:
nslookup > server <DNS you are querying> > set type=any > ls -d <target>
Unix (nslookup este depreciat pe Unix):
dig -t axfr @<DNS you are querying> <target>
(Am editat-o pe cea Unix, deoarece -axfr
nu pare să funcționeze. Trebuia să specific -t axfr
.)
2. DNSSEC zone walk
DNSSEC semnează înregistrări DNS, astfel încât să puteți fi siguri că primiți răspunsul corect (bine, având în vedere unele rădăcini de încredere și intermediari). Dar cum demonstrezi că ceva nu există, de ex. atunci când căutați nonexistentsub.example.com
, cum demonstrează serverul de nume al example.com
inexistența unui subdomeniu? Nu are cheia de semnare pe ea (semnarea se face la actualizarea zonei de către administratori).
În răspunsul lor la Cum funcționează DNSSec? Există limitări sau probleme cunoscute?, / u / tylerl explică:
Evident că răspunsul are nevoie să fie semnat, dar, în general, serverul DNS în sine nu are acces la cheia dvs. de semnare și nu poate semna răspunsul din mers; semnăturile sunt create ” offline ” înainte de timp. Acest lucru vă împiedică expunerea cheii dacă serverul DNS este compromis.
Deci, în schimb, vă alfabetizați subdomeniile și spuneți ” pentru fiecare nume dintre mail.example. com și pop.example.com, nu există alte subdomenii ” și semnează această afirmație. Apoi, când cineva cere nachos.example.com, îi puteți da răspunsul (care a fost deja semnat) și clientul știe asta, deoarece nachos.example.com se încadrează alfabetic între mail.example.com și pop.example.com, atunci răspunsul ” acest domeniu nu există ” răspunsul este considerat a fi semnat corect și de fapt a venit de la dvs.
Locul în care acest lucru devine problematic este că, având un set de răspunsuri negative care afirmă în mod explicit că ” nu există răspunsuri între X și Y, puteți identifica cu ușurință exact ce domenii există pentru întreaga zonă. Știți că ” X ” există și știți că ” Y ” există și știți că nu există altceva între ele. Doar faceți puțin mai mult la întâmplare și veți putea compila rapid o listă cu toate înregistrările care există.
Înregistrarea care specifică ” până la pop.example.com nu există nimic ” NSEC (Următoarea înregistrare securizată).
Pentru aceasta a fost concepută o soluție: NSEC3. Hash has names, așa că mail
se transformă în b83a88...
și pop
se transformă în b21afc...
. Imaginați-vă că acestea sunt singurele două subdomenii, apoi răspunsul semnat va spune ” nu există nicio înregistrare între b21afc...
și b83a88...
„. Din nou, funcționează alfabetic și le puteți obține pe toate, dar de data aceasta va trebui să spargeți fiecare hash înainte de a afla care sunt subdomeniile.
Din experiența mea, majoritatea au extensia NSEC3 activată.
Instrumente pentru mersul pe zone
NSEC3Walker face atât enumerarea, cât și cracarea. Nu pot garanta cât de eficientă este crack-ul, dar cu siguranță este doar bazat pe CPU. Deoarece NSEC3 folosește SHA1 (cel puțin inițial), există probabil programe mai bune de cracking.
dnsrecon
pare, de asemenea, capabil să o facă: dnsrecon -z -d example.com
. Nu știu dacă există un site web oficial cu informații, dar în Debian Stretch, Buster și Bullseye I can apt install dnsrecon
.
3. Căutări inversate într-o subrețea
Ghicind câteva, veți găsi adesea răspunsuri într-un interval similar. Dacă știți că www.
există și există mail.
și ambii se rezolvă la 192.168.3.x
, acolo ar putea fi mai mult. Încercați să efectuați o căutare inversă pentru toate adresele din intervalul 192.168.3.0-255
(/24
) și, probabil, veți găsi mai multe subdomenii. De asemenea, vă recomandăm să încercați o interogare WHOIS pe adresa IP pentru a găsi limitele intervalului (dacă au propriul bloc).
Instrumente pentru căutări inverse
dnsrecon
poate face acest lucru:
dnsrecon -t rvl -r 192.168.1.0/24
Unde -t rvl
înseamnă ” tip invers-căutare ” și -r
trece un interval IP în notație CIDR. Nu știu dacă există un site oficial cu informații, dar în Debian Stretch, Buster și Bullseye pot apt install dnsrecon
.
4. Înregistrări de servicii DNS
Se pot seta Înregistrări SRV (service) pentru descoperirea serviciului, de exemplu _sip._tcp.example.com
ar putea indica spre sipserver.example.com
pe portul 5060. De când numele serviciilor (” sip
” în exemplu) sunt de obicei cele standard înregistrate la IANA, putem itera prin ele.
Instrumente pentru interogarea înregistrărilor srv
dnsrecon
poate face acest lucru:
dnsrecon -t srv -d example.com
Va lua un subset al numelor de servicii existente, selectate de un necunoscut metodă, așa cum este menționat în pagina sa de manual (man dnsrecon
).
5. Alte metode
Ați menționat deja unele dintre acestea.Nu voi intra în detaliu, deoarece sunt destul de auto-explicative și fie depind de o aplicație care rulează pe țintă (cum ar fi FTP), fie de o terță parte, fie chiar nu există prea multe de spus despre ele .
-
Rezultatele căutării ar putea dezvălui subdomenii. Din nou,
dnsrecon
poate face acest lucru cu opțiunea-t goo
(utilizează Google în mod specific). - p> Verificarea altor nume TLD pentru același nume ar putea dezvălui alte variante sau adrese IP. De exemplu. dacă există
example.com
, ar putea exista șiexample.org
.dnsrecon
poate face acest lucru și cudnsrecon -t tld -d example.com
. -
Căutarea unui site web sau găsirea de referințe altundeva ar putea da indicii. (Ajutor dorit: ce instrument să utilizați?)
-
Privind certificatele TLS rezultă adesea rezultate. Asigurați-vă că verificați porturile pentru HTTPS, SMTP (S), FTP (S) etc. și utilizați STARTTLS.
-
Există instrumente terțe care pot lista subdomeniile într-un domeniu. Metodele lor sunt mai puțin clare, dar accesarea cu crawlere a internetului și a înregistrărilor istorice (poate a fost posibilă o dată transferul de domeniu?) Fac adesea parte din acesta. (Ajutor dorit: vreo recomandare? Îmi amintesc doar că am văzut că există.)
6. Ghicitul.
Ultima opțiune este doar ghicirea, fie printr-un dicționar (aș recomanda asta), fie prin forță brută. Acest lucru este îngreunat de metacaractere, deși multe instrumente vor încerca să detecteze și să rezolve acest lucru.
Instrumente de ghicit / forțare brută
Fierce a fost construit pentru a face acest lucru: https://github.com/mschwager/fierce
Este instalat implicit în Kali Linux.
Ca / u / rook menționat într-un alt răspuns în acest fir , au scris Subbrute în acest scop: https://github.com/TheRook/subbrute
dnsrecon
poate face acest lucru cu dnsrecon -t brt -d example.com
. Utilizați -f
la ” Filtrează din înregistrările de căutare a domeniului Brute Force care se rezolvă la adresa IP definită prin metacaracter la salvarea înregistrărilor ” pagina sa de manual). Puteți trece -D
pentru un fișier de dicționar.
Anexă: dict ionari
Încă caut dicționare bune (pentru a ghici / forța brută), dar iată câteva despre care știu. Vă rog să mă ajutați să completez această listă! Cu cât este mai mare, cu atât mai bine, cu condiția ca acestea să fie sortate în funcție de probabilitate.
- Depozitul Fierce conține câteva dicționare: https://github.com/mschwager/fierce / tree / master / lists
- ” Bitquark „a efectuat o analiză a celor mai utilizate subdomenii care a dus la aceste liste: https://github.com/bitquark/dnspop/tree/master/results . Totuși, postările de pe blog arată că au niște rezultate ciudate, așa că Nu sunt sigur de calitatea acestor liste.
-
dnsrecon
vine cu o listă, numită pur și simplunamelist.txt
.dpkg -L dnsrecon
dezvăluie unde este instalat. Este sortat alfabetic. - Subbrute are o listă scurtă și lungă: https://github.com/TheRook/subbrute
Răspuns
Jason Haddix a scris instrumentul meu preferat de descoperire a subdomeniului / numelui de gazdă care depinde de o versiune foarte recentă de recon-ng – disponibil aici –
https://github.com/jhaddix/domain
subbrutul este decent, fierce -dns <domain>
funcționează excelent, dnsmap <domain> -r file.txt
este, de asemenea, valabil și nu văd niciun motiv pentru care să nu-mi placă knock -wc <domain>
(deși celelalte caracteristici ale knock pot fi suspect). Cu toate acestea, toate aceste instrumente folosesc tehnici care își arată vârsta. Trucul pentru unele dintre aceste îmbunătățiri de atac este de a veni cu un fișier personalizat cu nume de gazdă care sunt orientate special pentru țintă.
Cu toate acestea, motosapa pentru descoperirea DNS este dnsrecon. Face totul.
Ați putea lua în considerare și o ofertă comercială, cum ar fi RiskIQ, care poate face mult mai mult decât toate aceste instrumente. Tehnicile lor includ o mulțime de sondaje la care majoritatea dintre voi nu v-ar gândi.
[UPDATE] Un alt favorit (pentru nume de gazdă, nu în primul rând subdomenii – este interesat de ambele OP?) Este – https://github.com/tomsteele/blacksheepwall
Răspuns
Aș încerca cu knock , dar atenție: există riscul de a fi inclus pe lista neagră.
Din păcate, nu există nicio cale de forțare brută dacă un transfer de zonă nu funcționează.
Comentarii
- Acest instrument este de calitate scăzută; SubBrute este mult mai bun.
Răspuns
Over on Stack Overflow , a sugerat Paul Melici folosind WolframAlpha .(Capturi de ecran de unul singur)
Introduceți domeniul în caseta de căutare și rulați căutarea. (De exemplu,
stackexchange.com
)În a 3-a secțiune din partea de sus (denumită „Statistici web pentru toate stackexchange. com „) faceți clic pe Subdomenii
În secțiunea Subdomenii, faceți clic pe Mai multe
Veți putea vedea o listă de subdomenii acolo. Deși bănuiesc că nu afișează TOATE subdomeniile.
Comentarii
- acesta este menționat în primul comentariu
Răspuns
Aruncă o privire la http://ha.ckers.org/fierce/ . Poate lua un fișier de dicționar, precum și forța brută. Este inclus și în Kali.
Răspuns
Inițial, folosesc adesea baza de date dns pasivă pentru a găsi subdomenii pentru un site. Dezavantajul acestei metode este că puteți găsi doar site-uri listate în baza de date. Dar avantajul este că puteți găsi site-uri care nu sunt listate în nici o listă de cuvinte.
Unele baze de date pentru referință:
https://www.virustotal.com/en/domain/stackexchange.com/information/
Răspuns
Ușor. Scrieți adresa site-ului către wolframalpha. Și faceți clic pe butonul „subdomine”.
Un exemplu; https://www.wolframalpha.com/input/?i=www.imdb.com
Faceți clic pe „Subdomenii” pentru a vedea subdomeniile site-ului.
De asemenea, wolfram alpha are API dacă doriți să îl atingeți și să îl utilizați. Sper că vă va ajuta …
Comentarii
- Pierdut – dacă puteți extinde acest lucru, explicând ce face Wolfram, acest răspuns poate obține voturi pozitive.
- Link-ul ” subdomenii ” pare a fi prezent doar pentru unele domenii?
usage()
oricum). Judecând după codul sursă, ceea ce face este că strânge date de la trei motoare de căutare majore (yahoo, msn, google) și pentru mine site-ul obscurpgp.rediris.es
care pare a fi un scrapper de e-mail.