Een van de dingen die ik van tijd tot tijd moet doen, is bijvoorbeeld het vinden van subdomeinen van een site.
Beginnend met example.com
- sub1. example.com
- other.example.com
- another.example.com
Ik ben op zoek naar aanvullende manieren om deze doelen te verkennen en ik wil een lijst krijgen van alle subdomeinen van een domein.
Ik doe momenteel een aantal dingen, waaronder
- maltego gebruiken om te crawlen voor informatie
- zoekmachines gebruiken om naar subdomeinen te zoeken
- sitelinks crawlen
- DNS-records onderzoeken
- Verkeerd geconfigureerde SSL-certificaten onderzoeken
- Dingen raden als “vpn.example.com”
Ik denk dat er meer zijn dan de degenen die ik tot nu toe heb gevonden, maar nu heb ik geen ideeën meer.
Reacties
Answer
Als pentester komt het vaak naar voren om de subdomeinen van een site te vinden. Dus ik heb een tool geschreven, SubBrute die dit redelijk goed doet als ik het zelf zeg. Kortom, dit is beter dan andere tools (fierce2) doordat het veel sneller, nauwkeuriger en gemakkelijker is om mee te werken . Deze tool wordt geleverd met een lijst met echte subdomeinen die zijn verkregen door het web te spiden. Deze lijst met subdomeinen is meer dan 16 keer zo groot als fierce2 en het duurt ongeveer 15 minuten voordat subbrute deze lijst op een thuisverbinding heeft uitgeput. De uitvoer is een schone, door een nieuwe regel gescheiden lijst, die gemakkelijk te gebruiken is als invoer voor andere tools zoals nmap of een kwetsbaarheidsscanner voor webtoepassingen.
Opmerkingen
- Geweldig, ik ‘ zal het eens bekijken. Enig idee hoe goed het zich verhoudt tot ‘ klop ‘?
- @ D3C4FF klop is waardeloos.
- Alle glorie zij Rook. Ik heb de tool vandaag in een live test gebruikt en het werkte als een zonnetje. Het miste slechts één van de twee dozijn subdomeinen die de naam mywebreading
- @ D3C4FF heetten ja, ik ‘ ben blij dat het gedaan is de truc;)
- @Rook even een snel idee over subbrute, voeg de optie toe om het IP-adres van de gevonden hostnamen ook op te lossen (en af te drukken). Ik heb die wijziging aangebracht en het hielp met een paar tests waarbij bepaalde bereiken buiten het bereik vielen, ook al waren het subdomeinen. Nogmaals bedankt!
Antwoord
1. Zone-overdracht
Sommige naamservers staan DNS-zone-overdrachten naar iedereen op het internet toe, meestal onbedoeld. In deze vraag wordt het verder uitgelegd: DNS-zoneoverdrachtaanval .
Tools voor zoneoverdrachten
De tweede antwoord op die vraag vermeldt hoe je erop kunt testen voor zowel Windows als Linux:
Windows:
nslookup > server <DNS you are querying> > set type=any > ls -d <target>
Unix (nslookup is verouderd op Unix):
dig -t axfr @<DNS you are querying> <target>
(Ik heb de Unix-versie bewerkt, omdat -axfr
niet lijkt te werken. Ik moest -t axfr
.)
2. DNSSEC zone walk
DNSSEC ondertekent DNS-records, zodat je er zeker van kunt zijn dat je het juiste antwoord krijgt (nou ja, gezien een aantal vertrouwenswortels en tussenpersonen). Maar hoe bewijs je dat iets niet bestaat, b.v. bij het zoeken naar nonexistentsub.example.com
, hoe bewijst de nameserver van example.com
dat er geen subdomein bestaat? De ondertekeningssleutel staat er niet op (ondertekening wordt gedaan bij het bijwerken van de zone door beheerders).
In hun antwoord op Hoe werkt DNSSec? Zijn er bekende beperkingen of problemen?, / u / tylerl legt uit:
Het is duidelijk dat die reactie nodig is te ondertekenen, maar over het algemeen heeft de DNS-server zelf geen toegang tot uw ondertekeningssleutel en kan hij het antwoord niet on-the-fly ondertekenen; de handtekeningen zijn allemaal ” offline ” van tevoren aangemaakt. Dit zorgt ervoor dat je sleutel niet zichtbaar wordt als je DNS-server in gevaar komt.
Dus in plaats daarvan alfabetiseer je je subdomeinen en zeg je ” voor elke naam tussen mail.example. com en pop.example.com, bestaan er geen andere subdomeinen ” en onderteken die bewering. Wanneer iemand vervolgens om nachos.example.com vraagt, kunt u hem dat antwoord geven (dat al is ondertekend) en de klant weet dat omdat nachos.example.com alfabetisch tussen mail.example.com en pop.example.com valt, dan wordt het ” dit domein “niet bestaat” ” reactie beschouwd als correct ondertekend en eigenlijk van jou afkomstig.
De plaats waar dit problematisch wordt, is dat door een set van deze negatieve antwoorden te hebben die expliciet aangeven dat ” er geen antwoorden bestaan tussen X en Y, je gemakkelijk precies kunt in kaart brengen welke domeinen bestaan voor de hele zone. Je weet dat ” X ” bestaat, en je weet dat ” Y ” bestaat, en je weet dat er niets anders tussen zit. Doe gewoon een beetje meer willekeurig porren en je zult snel een lijst van alle records kunnen samenstellen die bestaan.
Het record dat ” specificeert tot pop.example.com er is niets ” wordt genoemd NSEC (Next SECure record).
Hiervoor is een tijdelijke oplossing ontworpen: NSEC3. Het hashes namen, dus mail
verandert in b83a88...
en pop
verandert in b21afc...
. Stel je voor dat dit de enige twee subdomeinen zijn, dan zegt het ondertekende antwoord ” er bestaat geen record tussen b21afc...
en b83a88...
“. Nogmaals, het werkt alfabetisch en je kunt ze allemaal verkrijgen, maar deze keer moet je elke hash kraken voordat je leert wat de subdomeinen zijn.
Naar mijn ervaring hebben de meeste de NSEC3-extensie ingeschakeld.
Tools voor zone walking
NSEC3Walker doet zowel de opsomming als het kraken. Ik kan niet instaan voor hoe efficiënt het kraken is, maar het is absoluut alleen CPU-gebaseerd. Aangezien NSEC3 SHA1 gebruikt (althans oorspronkelijk), zijn er waarschijnlijk betere kraakprogrammas.
dnsrecon
lijkt het ook te kunnen: dnsrecon -z -d example.com
. Ik weet niet of er een officiële website is met informatie, maar in Debian Stretch, Buster en Bullseye Ik kan apt install dnsrecon
.
3. Omgekeerde zoekopdrachten in een subnet
Door er een paar te raden, vindt u vaak antwoorden in een vergelijkbaar bereik. Als je weet dat www.
bestaat en mail.
bestaat, en ze allebei worden omgezet naar 192.168.3.x
, is er misschien meer. Probeer een reverse lookup uit te voeren voor alle adressen in het 192.168.3.0-255
bereik (het /24
), en je zult waarschijnlijk meer subdomeinen vinden. U kunt ook een WHOIS-zoekopdracht op het IP-adres uitproberen om de grenzen van het bereik te vinden (als ze hun eigen blok hebben).
Tools voor reverse lookups
dnsrecon
kan dit doen:
dnsrecon -t rvl -r 192.168.1.0/24
Waarbij -t rvl
betekent ” type reverse-lookup ” en -r
geeft een IP-bereik door in CIDR-notatie. Ik weet het niet als er een officiële website is met informatie, maar in Debian Stretch, Buster en Bullseye kan ik apt install dnsrecon
.
4. DNS-servicerecords
Men kan SRV (service) -records instellen voor service-detectie, bijvoorbeeld _sip._tcp.example.com
kan verwijzen naar sipserver.example.com
op poort 5060. Omdat de servicenamen (” sip
” in het voorbeeld) zijn doorgaans de standaard die geregistreerd zijn bij IANA, we kunnen ze doorlopen.
Tools voor het opvragen van srv-records
dnsrecon
kan dit doen:
dnsrecon -t srv -d example.com
Er is een subset nodig van de bestaande servicenamen, geselecteerd door een onbekende methode, zoals vermeld in de man-pagina (man dnsrecon
).
5. Andere methoden
Je hebt er al een paar genoemd.Ik zal niet in detail treden, omdat ze nogal vanzelfsprekend zijn, en ofwel afhankelijk zijn van een applicatie die op het doel draait (zoals FTP), afhankelijk zijn van een derde partij, of er eigenlijk gewoon niet veel over te zeggen is .
-
Zoekresultaten kunnen subdomeinen onthullen. Nogmaals,
dnsrecon
kan dit doen met de-t goo
optie (gebruikt specifiek Google). -
Als u andere TLDs op dezelfde naam controleert, kunnen er andere varianten of IP-adressen worden onthuld. Bijv. als
example.com
bestaat, kanexample.org
ook bestaan.dnsrecon
kan dit ook doen metdnsrecon -t tld -d example.com
. -
Een website crawlen of referenties zoeken elders kunnen hints geven. (Hulp gevraagd: welke tool te gebruiken?)
-
Het kijken naar TLS-certificaten levert vaak resultaten op. Controleer de poorten voor HTTPS, SMTP (S), FTP (S), enz. En gebruik STARTTLS.
-
Er zijn tools van derden die subdomeinen in een lijst kunnen vermelden. domein. Hun methoden zijn minder duidelijk, maar het doorzoeken van internet en historische gegevens (misschien was ooit een domeinoverdracht mogelijk?) Maken daar vaak deel van uit. (Hulp gevraagd: eventuele aanbevelingen? Ik herinner me alleen dat ik zag dat het bestond.)
6. Raden.
De laatste optie is gewoon raden, ofwel door een woordenboek (ik zou dat aanraden) of brute kracht. Dit wordt moeilijker gemaakt door jokertekens, hoewel veel tools zullen proberen dit te detecteren en op te lossen.
Tools voor raden / brute-forcing
Fierce is hiervoor gebouwd: https://github.com/mschwager/fierce
Het wordt standaard geïnstalleerd in Kali Linux.
Als / u / rook genoemd in een ander antwoord in deze thread , schreven ze Subbrute voor dit doel: https://github.com/TheRook/subbrute
dnsrecon
kan dit doen met dnsrecon -t brt -d example.com
. Gebruik -f
naar ” Filter op Brute Force Domain lookup-records die worden omgezet naar het door jokertekens gedefinieerde IP-adres bij het opslaan van records ” (citaat de man-pagina). Je kunt -D
doorgeven als woordenboekbestand.
Bijlage: dict ionaries
Ik ben nog steeds op zoek naar goede woordenboeken (om te raden / brute forcering), maar hier zijn er een paar waarvan ik me bewust ben. Help me alstublieft om deze lijst te voltooien! Hoe groter hoe beter, zolang ze op waarschijnlijkheid zijn gesorteerd.
- De opslagplaats van Fierce bevat enkele woordenboeken: https://github.com/mschwager/fierce / tree / master / lists
- ” Bitquark “heeft een analyse uitgevoerd van de meest gebruikte subdomeinen wat resulteerde in deze lijsten: https://github.com/bitquark/dnspop/tree/master/results . Het lijkt erop dat de blogposts een aantal rare resultaten hebben, dus ik ben niet zeker van de kwaliteit van deze lijsten.
-
dnsrecon
wordt geleverd met een lijst, simpelweg genaamdnamelist.txt
.dpkg -L dnsrecon
onthult waar het is geïnstalleerd. Het is alfabetisch gesorteerd. - Subbrute heeft een korte en een lange lijst: https://github.com/TheRook/subbrute
Antwoord
Jason Haddix schreef mijn favoriete hulpmiddel voor het ontdekken van subdomeinen / hostnamen dat afhankelijk is van een zeer recente versie van recon-ng – hier beschikbaar –
https://github.com/jhaddix/domain
subbrute is redelijk, fierce -dns <domain>
werkt prima, dnsmap <domain> -r file.txt
is ook geldig, en ik zie geen reden om een hekel aan knock -wc <domain>
te hebben (hoewel de andere kenmerken van knock verdachte). Al deze tools gebruiken echter technieken die hun leeftijd laten zien. De truc voor sommige van deze aanvalsverbeteringen is om een aangepast bestand te bedenken met hostnamen die specifiek op het doelwit zijn afgestemd.
De kettingzaag voor DNS-detectie is echter dnsrecon. Het doet alles.
Je zou ook een commercieel aanbod kunnen overwegen, zoals RiskIQ, dat veel meer kan dan al deze tools. Hun technieken omvatten veel onderzoek dat de meesten van jullie niet zouden bedenken.
[UPDATE] Een andere favoriet (voor hostnamen, niet primair subdomeinen – is het OP in beide geïnteresseerd?) Is – https://github.com/tomsteele/blacksheepwall
Antwoord
Ik zou het proberen met kloppen , maar pas op: er bestaat een risico om op de zwarte lijst te komen.
Helaas is er geen manier omheen bruteforcing als een zoneoverdracht “niet werkt.
Reacties
- Deze tool is van lage kwaliteit; SubBrute is een stuk beter.
Answer
Over Stack Overflow , stelde Paul Melici voor met behulp van WolframAlpha .(Screenshots door mijzelf)
Voer het domein in het zoekvak in en voer de zoekopdracht uit. (Bijv.
stackexchange.com
)In het derde gedeelte van boven (genaamd “Webstatistieken voor alle stackexchange. com “) klik op Subdomeinen
Klik in het gedeelte Subdomeinen op Meer
U zult daar een lijst met subdomeinen kunnen zien. Hoewel ik vermoed dat het niet ALLE subdomeinen toont.
Reacties
- wordt dit vermeld in de eerste opmerking
Antwoord
Kijk eens naar http://ha.ckers.org/fierce/ . Het kan zowel een woordenboekbestand als brute kracht vergen. Het is ook opgenomen in Kali.
Answer
Aanvankelijk gebruik ik vaak passieve dns-database om subdomeinen voor een site te vinden. Het nadeel van deze methode is dat je alleen sites kunt vinden die in de database staan. Maar het voordeel is dat u sites kunt vinden die niet in woordenlijsten voorkomen.
Enkele databases ter referentie:
https://www.virustotal.com/en/domain/stackexchange.com/information/
Antwoord
Gemakkelijk. Schrijf site-adres naar wolframalpha. En klik op de knop “subdomins”.
Een voorbeeld; https://www.wolframalpha.com/input/?i=www.imdb.com
Klik op “Subdomeinen” om de subdomeinen van de site te bekijken.
Wolfram alpha heeft ook api als je het wilt bereiken en gebruiken. Hoop dat het helpt …
Reacties
- Verloren – als je dit kunt uitbreiden door uit te leggen wat Wolfram doet, kan dit antwoord upvotes krijgen.
- De ” subdomeinen ” link lijkt alleen aanwezig te zijn voor enkele domeinen?
usage()
). Te oordelen naar de broncode verzamelt het gegevens van drie grote zoekmachines (yahoo, msn, google) en voor mij een obscure websitepgp.rediris.es
die een e-mailverwijderaar lijkt te zijn.