Jednou z věcí, které občas musím udělat, je například najít subdomény webu.
Počínaje example.com
- sub1. example.com
- other.example.com
- another.example.com
Hledám další způsoby, jak provést průzkum těchto cílů, a chci získat seznam všech subdomén domény.
V současné době dělám spoustu věcí, včetně
- procházení informací pomocí maltego
- vyhledávání vyhledávacích subdomén pomocí vyhledávačů,
- procházení odkazů na stránky,
- zkoumání záznamů DNS,
- Zkoumání nesprávně nakonfigurovaných certifikátů SSL
- Hádání věcí jako „vpn.example.com“
Domnívám se, že jich je víc než ty, které jsem zatím našel, ale teď jsem bez nápadů.
Komentáře
Odpověď
Často se objevuje pentester, který dokáže najít subdomény webu. Napsal jsem tedy nástroj SubBrute , který to dělá celkem dobře, když to řeknu já. Stručně řečeno, je to lepší než jiné nástroje (fierce2) v tom, že je mnohem rychlejší, přesnější a snazší pracovat s . Tento nástroj je dodáván se seznamem skutečných subdomén získaných z pavučiny. Tento seznam subdomén je více než 16krát větší než fierce2 a subbrute bude trvat asi 15 minut, než se tento seznam vyčerpá při domácím připojení. Výstupem je čistý seznam oddělených novými řádky, který lze snadno použít jako vstup pro další nástroje, jako je nmap nebo skener zranitelnosti webových aplikací.
Komentáře
- Úžasné, zkontroluji to ‚. Napadá vás, jak dobře je to v porovnání s ‚ knock ‚?
- @ D3C4FF knock je svinstvo.
- Veškerá sláva Rookovi. Nástroj jsem dnes použil při živém testu a fungoval jako kouzlo. Chyběla mu pouze jedna ze dvou desítek subdomén, která byla pojmenována mywebreading
- @ D3C4FF sakra jo, jsem ‚ rád, že to udělal trik;)
- @ Prohlédněte si jen krátkou představu o subbrute, přidejte možnost vyřešit (a vytisknout) také IP adresu z nalezených názvů hostitelů. Udělal jsem tuto změnu a pomohlo to s několika testy, kde určité rozsahy byly mimo rozsah, přestože to byly subdomény. Ještě jednou děkujeme!
Odpověď
1. Přenos zón
Některé servery jmen umožňují zónový přenos DNS komukoli na internetu, obvykle neúmyslně. V této otázce je vysvětleno dále: útok na přenos zón DNS .
Nástroje pro přenos zón
The druhá odpověď na tuto otázku uvádí, jak ji otestovat pro Windows i Linux:
Windows:
nslookup > server <DNS you are querying> > set type=any > ls -d <target>
Unix (nslookup je v Unixu zastaralý):
dig -t axfr @<DNS you are querying> <target>
(Upravil jsem unixový, protože -axfr
nefunguje. Potřeboval jsem specifikovat -t axfr
.)
2. Procházka zónou DNSSEC
DNSSEC podepisuje záznamy DNS, takže si můžete být jisti, že obdržíte správnou odpověď (vzhledem k některým kořenům důvěry a zprostředkovatelům). Jak ale dokázat, že něco neexistuje, např. jak při hledání nonexistentsub.example.com
jak dokáže nameserver example.com
neexistenci subdomény? Nemá na sobě podpisový klíč (podpis se provádí po aktualizaci zóny administrátory).
V odpovědi na Jak DNSSec funguje? Existují známá omezení nebo problémy?, / u / tylerl vysvětluje:
Je zřejmé, že odpověď vyžaduje být podepsán, ale samotný server DNS obvykle nemá přístup k vašemu podpisovému klíči a nemůže podepisovat odpověď za běhu; všechny podpisy jsou předem vytvořeny “ offline „. Tím zabráníte tomu, aby byl váš klíč odhalen, pokud dojde k ohrožení vašeho serveru DNS.
Takže místo toho abecedujete své subdomény a pro každé jméno mezi mail.example řeknete „. com a pop.example.com, neexistují žádné další subdomény “ a podepište toto tvrzení. Když pak někdo požádá o nachos.example.com, můžete mu dát odpověď (která již byla podepsána) a klient to ví, protože nachos.example.com spadá abecedně mezi mail.example.com a pop.example.com, pak je “ tato doména neexistuje “ odpověď je považována za správně podepsanou a skutečně pochází od vás.
Místo, kde se to stává problematickým, je to, že když máte sadu těchto negativních odpovědí, které výslovně uvádějí, že “ mezi X a Y neexistují žádné odpovědi, můžete snadno přesně mapovat, které domény existují pro celou zónu. Víte, že “ X “ existuje a víte, že “ Y “ existuje a víte, že mezi nimi není nic jiného. Stačí jen trochu náhodně poklepat a budete rychle schopni sestavit seznam všech záznamů které existují.
Záznam, který specifikuje “ do pop.example.com neexistuje nic “ NSEC (další záznam SECure).
Bylo navrženo řešení: NSEC3. Obsahuje hash jmen, takže mail
se změní na b83a88...
a pop
se změní na b21afc...
. Představte si, že jsou to pouze dvě subdomény, poté podepsaná odpověď řekne “ mezi b21afc...
a „. Opět to funguje abecedně a můžete je získat všechny, ale tentokrát budete muset rozluštit každý hash, než se naučíte, jaké jsou subdomény.
Podle mých zkušeností má většina povoleno rozšíření NSEC3.
Nástroje pro procházení zón
NSEC3Walker provádí výčet i crackování. Nemohu zaručit, jak efektivní je cracking, ale je to rozhodně pouze na CPU. Jelikož NSEC3 používá SHA1 (alespoň původně), pravděpodobně existují lepší crackovací programy.
se také zdá být schopen to udělat: dnsrecon -z -d example.com
. Nevím, jestli existuje oficiální web s informacemi, ale v Debian Stretch, Buster a Bullseye mohu apt install dnsrecon
.
3. Zpětné vyhledávání v podsíti
Když uhodnete několik, často najdete odpovědi v podobném rozsahu. Pokud víte, že www.
existuje a existuje mail.
a oba se rozhodnou 192.168.3.x
, existuje může být víc. Zkuste provést zpětné vyhledávání všech adres v rozsahu 192.168.3.0-255
(/24
) a pravděpodobně najdete další subdomény. Můžete také vyzkoušet WHOIS dotaz na IP adresu, abyste našli hranice rozsahu (pokud mají svůj vlastní blok).
Nástroje pro zpětné vyhledávání
dnsrecon
to může udělat:
dnsrecon -t rvl -r 192.168.1.0/24
Kde -t rvl
znamená “ zadejte zpětné vyhledávání “ a -r
předá rozsah IP v notaci CIDR. Nevím pokud existuje oficiální web s informacemi, ale v Debianu Stretch, Buster a Bullseye mohu apt install dnsrecon
.
4. Záznamy služby DNS
Lze nastavit záznamy SRV (služby) pro zjišťování služeb, například _sip._tcp.example.com
může ukazovat na sipserver.example.com
na portu 5060. Protože názvy služeb (“ sip
“ v příkladu) jsou obvykle ty standardní registrované u IANA, můžeme je iterovat.
Nástroje pro dotazování záznamů srv
dnsrecon
to může udělat:
dnsrecon -t srv -d example.com
Bude to trvat podmnožinu existujících názvů služeb vybraných neznámým metoda, jak je uvedeno na její manuálové stránce (man dnsrecon
).
5. Další metody
Některé z nich jste již zmínili.Nebudu zacházet do podrobností, protože jsou zcela vysvětlující a buď závisí na aplikaci běžící na cíli (například FTP), závisí na třetí straně, nebo o nich opravdu není moc co říct .
-
Výsledky vyhledávání mohou odhalit subdomény.
dnsrecon
to může opět udělat pomocí možnosti-t goo
(používá konkrétně Google). -
Kontrola dalších TLD se stejným názvem může odhalit některé další varianty nebo IP adresy. Např. pokud
example.com
existuje, může také existovatexample.org
.dnsrecon
to lze provést také pomocídnsrecon -t tld -d example.com
. -
Procházení webu nebo hledání odkazů jinde by mohly dávat rady. (Hledáme pomoc: jaký nástroj použít?)
-
Pohled na certifikáty TLS často přináší výsledky. Nezapomeňte zkontrolovat porty na HTTPS, SMTP (S), FTP (S) atd. A použít STARTTLS.
-
Existují nástroje třetích stran, které mohou vypisovat subdomény v doména. Jejich metody jsou méně jasné, ale procházení internetu a historické záznamy (možná byl někdy možný přenos domény?) K tomu často patří. (Hledaná pomoc: nějaká doporučení? Pamatuji si jen, že jsem viděl, že existuje.)
6. Hádání.
Poslední možností je pouze hádání, buď slovníkem (doporučuji to), nebo hrubou silou. Zástupné znaky to ztěžují, ačkoli mnoho nástrojů se to pokusí zjistit a vyřešit.
Nástroje pro hádání / brute-forcing
K tomu bylo vytvořeno divoké: https://github.com/mschwager/fierce
Ve výchozím nastavení je nainstalován v systému Kali Linux.
Jako / u / rook zmíněné v jiné odpovědi v tomto vlákně , pro tento účel napsali Subbrute: https://github.com/TheRook/subbrute
dnsrecon
to lze provést pomocí dnsrecon -t brt -d example.com
. Použijte -f
to “ Odfiltrovat záznamy vyhledávání domén Brute Force, které se při ukládání záznamů “ odfiltrují z adresy IP definované zástupným znakem jeho manuálová stránka). Pro soubor slovníku můžete předat -D
.
Dodatek: dict ionaries
Stále hledám dobré slovníky (pro hádání / hrubé vynucování), ale tady jsou některé, o kterých vím. Pomozte mi prosím doplnit tento seznam! Čím větší, tím lépe, pokud jsou tříděny podle pravděpodobnosti.
- Reprezentační server Fierce obsahuje několik slovníků: https://github.com/mschwager/fierce / tree / master / lists
- “ Bitquark „provedl analýzu nejčastěji používaných subdomén které vyústily v tyto seznamy: https://github.com/bitquark/dnspop/tree/master/results . Příspěvky na blogu však vypadají, jako by to mělo nějaké podivné výsledky, takže Nejsem si jistý kvalitou těchto seznamů.
-
dnsrecon
je dodáván se seznamem jednoduše nazvanýmnamelist.txt
.dpkg -L dnsrecon
odhaluje, kde je nainstalován. Je řazen abecedně. - Subbrute má krátký a dlouhý seznam: https://github.com/TheRook/subbrute
odpověď
napsal Jason Haddix můj oblíbený nástroj pro zjišťování subdomény / názvu hostitele, který závisí na velmi nedávné verzi rekonfigurace – k dispozici zde –
https://github.com/jhaddix/domain
subbrute je slušné, fierce -dns <domain>
funguje skvěle, dnsmap <domain> -r file.txt
je také platný a nevidím žádný důvod, proč bych neměl rád knock -wc <domain>
(i když ostatní vlastnosti klepání mohou být tušit). Všechny tyto nástroje však používají techniky, které ukazují jejich věk. Trik pro některá z těchto vylepšení útoku spočívá v tom, přijít s přizpůsobeným souborem s názvy hostitelů, které jsou zaměřeny speciálně pro cíl.
Řetězová pila pro zjišťování DNS je však dnsrecon. Dělá všechno.
Můžete také zvážit komerční nabídku, jako je RiskIQ, která dokáže mnohem víc než všechny tyto nástroje. Jejich techniky zahrnují spoustu průzkumů, na které by většina z vás nemyslela.
[UPDATE] Další oblíbená položka (pro jména hostitelů, nikoli primárně subdomény – zajímá se OP o oba?) – https://github.com/tomsteele/blacksheepwall
odpověď
Zkusil bych to s zaklepáním , ale pozor: existuje riziko, že se ocitnete na černé listině.
Bohužel neexistuje žádná cesta kolem bruteforcing, pokud přenos zóny nefunguje.
Komentáře
- Tento nástroj má nízkou kvalitu; SubBrute je mnohem lepší.
Odpověď
Over on Stack Overflow , navrhl Paul Melici pomocí WolframAlpha .(Screenshoty sám)
Zadejte doménu do vyhledávacího pole a spusťte vyhledávání. (Např.
stackexchange.com
)Ve 3. části shora (s názvem „Statistika webu pro všechny stackexchange. com „) click Subdomény
V sekci Subdomény klikněte na více
Uvidíte zde seznam subdomén. I když mám podezření, že nezobrazuje VŠECHNY subdomény.
Komentáře
- toto je zmíněno v prvním komentáři
Odpověď
Podívejte se na http://ha.ckers.org/fierce/ . Může to trvat soubor slovníku i hrubou silou. Je také součástí Kali.
Odpověď
Zpočátku často používám pasivní databázi dns k vyhledání subdomén pro web. Nevýhodou této metody je, že můžete najít pouze weby uvedené v databázi. Výhodou však je, že najdete weby, které nejsou uvedeny v žádných seznamech slov.
Některé databáze pro referenci:
https://www.virustotal.com/en/domain/stackexchange.com/information/
Odpověď
Snadné. Napište adresu webu na wolframalpha. A klikněte na tlačítko „subdominy“.
Příklad; https://www.wolframalpha.com/input/?i=www.imdb.com
Kliknutím na „Subdomény“ zobrazíte subdomény webu.
Také wolfram alpha má api, pokud jej chcete dosáhnout a používat. Doufám, že to pomůže …
Komentáře
- Ztraceno – pokud to můžete rozšířit vysvětlením toho, co dělá Wolfram, může tato odpověď získat hlasy.
- Odkaz “ subdomény “ se zdá být k dispozici pouze pro některé domény?
usage()
). Soudě podle zdrojového kódu to, co dělá, je to, že shromažďuje data ze tří hlavních vyhledávačů (yahoo, msn, google) a pro mě nejasný webpgp.rediris.es
, který se zdá být šrotem e-mailu.