En av de saker jag behöver göra då och då är att hitta till exempel underdomäner på en webbplats.

Börjar med exempel.com

  • sub1. exempel.se
  • annat.exempel.se
  • annat.exempel.com

Jag letar efter ytterligare sätt att utföra rekonstruktion på dessa mål och jag vill få en lista över alla underdomäner för en domän.

Jag gör för närvarande ett antal saker inklusive

  • använder maltego för att genomsöka information
  • Använda sökmotorer för att söka efter underdomäner
  • genomsökande webbplatslänkar
  • Granska DNS-poster
  • Granska felaktigt konfigurerade SSL-certifikat
  • Gissa saker som ”vpn.example.com”

Jag tror att det finns fler än sådana som jag hittat hittills, men nu har jag inga idéer.

Kommentarer

  • Det finns en annan po st på stackoverflow som ’ är ganska bra: [Lista över underdomäner] [1] [1]: stackoverflow.com/questions/ 131989 / …
  • Då finns det bara ett sätt – gör det som maltego: gör utbildade gissningar …
  • Jag skulle prova det med knock ( code.google.com/p/knock ) men se upp: det finns en risk att bli svartlistad.
  • Det ’ ett python-skript som heter subdomainer.py som ska kunna hjälpa dig … Ha en sökning på google
  • FYI det kan hittas på webbplatsen edge-security.com , men den gamla länken publicerad på SecurityTube wiki-sida är död (om än den har ett användandexempel som givetvis definieras i usage() ändå). Att döma efter källkod, vad det gör är att det samlar in data från tre stora sökmotorer (yahoo, msn, google) och för mig obskär webbplats pgp.rediris.es som verkar vara en e-postskrotare.

Svar

Eftersom en pentester kan hitta underdomänerna för en webbplats kommer ofta upp. Så jag skrev ett verktyg SubBrute som gör det ganska bra om jag säger det själv. Kort sagt, detta är bättre än andra verktyg (fierce2) genom att det är mycket snabbare, mer exakt och lättare att arbeta med . Detta verktyg kommer med en lista över riktiga underdomäner som erhållits från spindling på nätet. Den här underdomänlistan är mer än 16 gånger storleken på fierce2 och det tar cirka 15 minuter att ta bort listan i en hemanslutning. Utgången är en ren, ny linjeseparerad lista som är lätt att använda som ingång för andra verktyg som nmap eller en sårbarhetsskanner för webbapplikationer.

Kommentarer

  • Häftigt, jag ’ Jag kolla in det. Någon aning om hur bra den jämförs med ’ knock ’?
  • @ D3C4FF knock är skit.
  • All ära åt Rook. Jag använde verktyget i ett live test idag och det fungerade som en charm. Det missade bara en av två dussin underdomäner som fick namnet minwebreading
  • @ D3C4FF helvete ja, jag ’ är glad att det gjorde tricket;)
  • @Rook bara en snabb idé angående subbrute, lägg till alternativet för att lösa (och skriva ut) IP-adressen från de hittade värdnamnen också. Jag gjorde den förändringen och det hjälpte med några tester där vissa intervall var utanför räckvidden trots att de var underdomäner. Tack igen!

Svar

1. Zonöverföring

Vissa namnservrar tillåter DNS-zonöverföring till vem som helst på internet, vanligtvis oavsiktligt. I denna fråga förklaras det ytterligare: DNS-zonöverföringsattack .

Verktyg för zonöverföringar

andra svaret på den frågan nämner hur man testar det för både Windows och Linux:

Windows:

nslookup > server <DNS you are querying> > set type=any > ls -d <target> 

Unix (nslookup har upphört att gälla på Unix):

dig -t axfr @<DNS you are querying> <target> 

(Jag redigerade Unix-en eftersom -axfr verkar inte fungera. Jag behövde ange -t axfr.)

2. DNSSEC-zonpromenad

DNSSEC undertecknar DNS-poster, så du kan vara säker på att du får rätt svar (ja, med tanke på vissa tillitsrötter och mellanhänder). Men hur bevisar du att något inte finns, t.ex. när vi letar efter nonexistentsub.example.com, hur bevisar namnservern för example.com att det inte finns någon underdomän? Det har inte signeringsnyckeln på sig (signering sker efter uppdatering av zonen av administratörer).

I deras svar på Hur fungerar DNSSec? Finns det kända begränsningar eller problem?, / u / tylerl förklarar:

Uppenbarligen behöver svaret att signeras, men i allmänhet har DNS-servern inte tillgång till din signeringsnyckel och kan inte underteckna svaret direkt. signaturerna skapas alla ” offline ” i förväg. Detta förhindrar att din nyckel exponeras om din DNS-server blir äventyrad.

Så istället alfabetiserar du dina underdomäner och säger ” för varje namn mellan mail.exempel. com och pop.example.com, inga andra underdomäner finns ” och undertecknar det påståendet. Sedan när någon frågar efter nachos.example.com kan du bara ge dem det svaret (som redan har undertecknats) och klienten vet att eftersom nachos.example.com faller alfabetiskt mellan mail.example.com och pop.example.com, då ” denna domän existerar inte ” svaret anses vara korrekt signerat och kom faktiskt från dig.

Platsen där detta blir problematiskt är att genom att ha en uppsättning av dessa negativa svar som uttryckligen säger att ” inga svar finns mellan X och Y, kan du enkelt kartlägga exakt vilka domäner finns för hela zonen. Du vet att ” X ” finns, och du vet att ” Y ” finns, och du vet att det inte finns något annat mellan dem. Gör bara lite mer pockning slumpmässigt så kommer du snabbt att kunna sammanställa en lista över alla poster som finns.

Posten som anger ” tills pop.example.com det finns inget ” heter NSEC (Next SECure record).

En lösning designades för detta: NSEC3. Det hashes namn, så mail förvandlas till b83a88... och pop förvandlas till b21afc.... Föreställ dig att det är de två enda underdomänerna, då kommer det signerade svaret att säga ” ingen post finns mellan b21afc... och b83a88... ”. Återigen fungerar det alfabetiskt och du kan få alla, men den här gången måste du knäcka varje hash innan du lär dig vad underdomänerna är.

Enligt min erfarenhet har NSEC3-tillägget aktiverat.

Verktyg för zonvandring

NSEC3Walker gör både uppräkning och sprickbildning. Jag kan inte garantera hur effektiv krackningen är, men den är definitivt bara CPU-baserad. Eftersom NSEC3 använder SHA1 (åtminstone ursprungligen) finns det förmodligen bättre krackningsprogram.

dnsrecon verkar också kunna göra det: dnsrecon -z -d example.com. Jag vet inte om det finns en officiell webbplats med information, men i Debian Stretch, Buster och Bullseye jag kan apt install dnsrecon.

3. Omvänd uppslag i ett undernät

Genom att gissa några kommer du ofta att hitta svar inom ett liknande intervall. Om du vet att www. existerar och mail. finns, och de båda bestämmer sig för att 192.168.3.x, där kan vara mer. Försök att göra en omvänd sökning efter alla adresser i 192.168.3.0-255 -området (/24), och du kommer förmodligen hitta fler underdomäner. Du kanske också vill prova en WHOIS-fråga på IP-adressen för att hitta områdets gränser (om de har ett eget block).

Verktyg för omvänd sökning

dnsrecon kan göra detta:

dnsrecon -t rvl -r 192.168.1.0/24 

Där -t rvl betyder ” typ reverse-lookup ” och -r passerar ett IP-intervall i CIDR-notering. Jag vet inte om det finns en officiell webbplats med information, men i Debian Stretch, Buster och Bullseye kan jag apt install dnsrecon.

4. DNS-tjänstposter

Man kan ställa in SRV (service) -poster för tjänsteupptäckt, till exempel _sip._tcp.example.com kan peka på sipserver.example.com på port 5060. Eftersom servicenamnen (” sip ” i exemplet) är vanligtvis de som är registrerade hos IANA, vi kan iterera genom dem.

Verktyg för att fråga SRV-poster

dnsrecon kan göra detta:

dnsrecon -t srv -d example.com 

Det tar en delmängd av de befintliga tjänstenamnen, valda av okända metod, som nämnts på dess mansida (man dnsrecon).

5. Andra metoder

Du nämnde redan några av dessa.Jag kommer inte att gå i detalj, för de är helt självförklarande och beror antingen på en applikation som körs på målet (som FTP), beror på en tredje part, eller så finns det egentligen inte mycket att säga om dem .

  • Sökresultat kan avslöja underdomäner. Återigen kan dnsrecon göra detta med alternativet -t goo (använder Google specifikt).

  • Kontroll av andra toppdomäner med samma namn kan avslöja andra varianter eller IP-adresser. T.ex. om example.com existerar kan example.org också existera. dnsrecon kan också göra detta med dnsrecon -t tld -d example.com.

  • Genomsöka en webbplats eller hitta referenser någon annanstans kan ge tips. (Önskad hjälp: vilket verktyg ska du använda?)

  • Att titta på TLS-certifikat ger ofta resultat. Var noga med att kontrollera portarna för HTTPS, SMTP (S), FTP (S) osv. Och använd STARTTLS.

  • Det finns verktyg från tredje part som kan lista underdomäner i en domän. Deras metoder är mindre tydliga, men genomsökning av internet och historiska poster (kanske en domänöverföring var en gång möjlig?) Är ofta en del av det. (Önskad hjälp: några rekommendationer? Jag kommer bara ihåg att jag såg att den existerar.)

6. Gissa.

Det sista alternativet är bara gissning, antingen genom en ordbok (jag skulle rekommendera det) eller brute force. Detta försvåras av jokertecken, även om många verktyg kommer att försöka upptäcka och lösa detta.

Verktyg för att gissa / brute-forcing

Fierce byggdes för att göra detta: https://github.com/mschwager/fierce
Den är installerad som standard i Kali Linux.

Som / u / rook nämns i ett annat svar i den här tråden , de skrev Subbrute för detta ändamål: https://github.com/TheRook/subbrute

dnsrecon kan göra detta med dnsrecon -t brt -d example.com. Använd -f till ” Filtrera från brute Force-domänuppslagsposter som löser till den jokertecken som definieras av IP-adress när du sparar poster ” dess mansida). Du kan skicka -D för en ordlistafil.

Bilaga: dict jonar

Jag letar fortfarande efter bra ordböcker (för att gissa / brute tvinga), men här är några som jag är medveten om. Snälla hjälp mig att fylla i listan! Ju större desto bättre, så länge de sorteras efter sannolikhet.

Svar

Jason Haddix skrev mitt favoritverktyg för upptäckt av underdomän / värdnamn som är beroende av en helt ny version av recon-ng – tillgänglig här –

https://github.com/jhaddix/domain

subbrute är anständigt, fierce -dns <domain> fungerar bra, dnsmap <domain> -r file.txt är också giltigt, och jag ser inte någon anledning att ogillar knock -wc <domain> (även om andra funktioner i knock kan vara misstänka). Alla dessa verktyg använder dock tekniker som visar sin ålder. Tricket för några av dessa attackförbättringar är att komma med en anpassad fil med värdnamn som är anpassade specifikt för målet.

Motorsågen för DNS-upptäckt är dock dnsrecon. Det gör allt.

Du kan också överväga ett kommersiellt erbjudande, till exempel RiskIQ, som kan göra mycket mer än alla dessa verktyg. Deras tekniker inkluderar en hel del kartläggning som de flesta av er inte skulle tänka på.

[UPPDATERING] En annan favorit (för värdnamn, inte främst underdomäner – är OP intresserad av båda?) Är – https://github.com/tomsteele/blacksheepwall

Svar

Jag skulle prova det med knock men se upp: det finns en risk att bli svartlistad.

Tyvärr finns det ingen väg bruteforcing om en zonöverföring inte fungerar.

Kommentarer

  • Det här verktyget är av låg kvalitet; SubBrute är mycket bättre.

Svar

Över på Stack Overflow , föreslog Paul Melici med WolframAlpha .(Skärmbilder av mig själv)

  1. Ange domänen i sökrutan och kör sökningen. (T.ex. stackexchange.com )

    Wolfram - Hemsida

  2. I det tredje avsnittet uppifrån (med namnet ”Webbstatistik för hela stackexchange”. com ”) klicka på Underdomäner

    Wolfram - knappen Underdomäner

  3. I avsnittet Underdomäner klickar du på Mer

    Wolfram - Knappen Fler underdomäner

Du kommer att kunna se en lista med underdomäner där. Även om jag misstänker att det inte visar ALLA underdomäner.

Kommentarer

  • detta nämns i den första kommentaren

Svar

Ta en titt på http://ha.ckers.org/fierce/ . Det kan ta en ordboksfil såväl som brute force. Det ingår också i Kali.

Svar

Inledningsvis använder jag ofta passiv dns-databas för att hitta underdomäner för en webbplats. Nackdelen med den här metoden är att du bara kan hitta webbplatser som är listade i databasen. Men fördelen är att du kan hitta webbplatser som inte finns med i någon ordlista.

Vissa databaser som referens:

https://www.virustotal.com/en/domain/stackexchange.com/information/

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

Svar

Enkelt. Skriv webbadress till wolframalpha. Och klicka på knappen ”underdomäner”.

Ett exempel; https://www.wolframalpha.com/input/?i=www.imdb.com

Klicka på ”Underdomäner” för att se underdomäner på webbplatsen.

Wolfram alpha har också API om du vill nå och använda den. Hoppas det hjälper …

Kommentarer

  • Borttappat – om du kan utöka det här genom att förklara vad Wolfram gör kan detta svar få röster.
  • Länken ” underdomäner ” verkar bara finnas för vissa domäner?

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *