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

  • Examinarea certificatelor SSL incorect configurate
  • Ghicirea unor lucruri precum „vpn.example.com”
  • Cred că există mai multe decât pe care le-am găsit până acum, dar acum nu mai am idei.

    Comentarii

    • Există un alt st on stackoverflow that ‘ s destul de bun: [List of Subdomains] [1] [1]: stackoverflow.com/questions/ 131989 / …
    • Apoi, există o singură modalitate – faceți-o ca și maltego: faceți presupuneri educate …
    • Aș încerca cu knock ( code.google.com/p/knock ), dar aveți grijă: există riscul de a fi inclus pe lista neagră.
    • Există ‘ un script python numit subdomainer.py care ar trebui să vă poată ajuta … Căutați pe Google
    • FYI, acesta poate fi găsit pe site-ul edge-security.com , dar vechiul link postat pe pagina de wiki SecurityTube este mort (deși are un exemplu de utilizare care este bineînțeles definit în 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 obscur pgp.rediris.es care pare a fi un scrapper de e-mail.

    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 și example.org. dnsrecon poate face acest lucru și cu dnsrecon -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.

    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)

    1. Introduceți domeniul în caseta de căutare și rulați căutarea. (De exemplu, stackexchange.com )

      Wolfram - Pagina de pornire

    2. În a 3-a secțiune din partea de sus (denumită „Statistici web pentru toate stackexchange. com „) faceți clic pe Subdomenii

      Wolfram - buton Subdomenii

    3. În secțiunea Subdomenii, faceți clic pe Mai multe

      Wolfram - Buton Mai multe subdomenii

    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/

    http://www.nonexiste.net/?q=stackexchange.com

    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?

    Lasă un răspuns

    Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *