Odkrywanie subdomen jest jednym z kluczowych elementów rekonesansu w bezpieczeństwie informatycznym i testach penetracyjnych, pozwalając na pełne zmapowanie infrastruktury sieciowej badanego celu. Proces ten obejmuje zarówno metody pasywne, które wykorzystują publiczne źródła danych, jak i aktywne techniki bezpośrednio odpytujące infrastrukturę docelową. Poniższe kompendium przedstawia praktyczne metody, narzędzia i dobre praktyki — od prostych zapytań DNS po analizę logów przejrzystości certyfikatów oraz szybkie brute force.
Fundament techniczny – subdomeny i system DNS
Aby skutecznie znajdować subdomeny, warto zacząć od podstaw. Subdomena to adres internetowy zawierający nazwę domeny głównej po swojej prawej stronie. Przykładowo, mając domenę przykład.pl, możesz utworzyć blog.przykład.pl, który będzie działał niezależnie od witryny głównej, wspierając różne działy, wersje językowe czy środowiska.
Z technicznego punktu widzenia subdomeny obsługuje Domain Name System (DNS) – swoista „książka telefoniczna” Internetu. Po wpisaniu adresu URL, DNS tłumaczy nazwę na adres IP, angażując resolver, serwery główne, serwery TLD i autorytatywne. Zrozumienie tej ścieżki rezolucji jest kluczowe, bo niemal wszystkie techniki enumeracji subdomen bazują na DNS lub danych pochodnych.
Najważniejsze typy rekordów DNS i ich zastosowanie:
- rekord A – mapuje nazwę hosta na adres IPv4;
- rekord AAAA – mapuje nazwę hosta na adres IPv6;
- rekord CNAME – definiuje alias jednej nazwy na inną;
- rekord MX – wskazuje serwery pocztowe dla domeny;
- rekord TXT – przechowuje dane do odczytu maszynowego (np. polityki SPF, klucze, metadane).
Analiza tych rekordów często ujawnia cenne informacje o infrastrukturze organizacji i stanowi punkt wyjścia do dalszych działań.
Metody pasywne odkrywania subdomen
Pasywne odkrywanie subdomen opiera się na publicznych źródłach zewnętrznych (CT logs, pasywny DNS, archiwa internetowe), bez generowania bezpośredniego ruchu do infrastruktury celu. To podejście nie generuje podejrzanego ruchu widocznego dla systemów monitoringu po stronie badanego podmiotu.
Logowanie przejrzystości certyfikatów jako źródło subdomen
Jednym z najskuteczniejszych źródeł pasywnych są logi Certificate Transparency (CT). Urzędy certyfikacji muszą logować każdy wydany certyfikat SSL/TLS do publicznych rejestrów w krótkim czasie od jego wystawienia, co czyni logi CT bardzo aktualnym źródłem danych.
W certyfikatach często znajduje się wiele nazw w polu Subject Alternative Names (SAN), przez co pojedynczy certyfikat może ujawnić dziesiątki subdomen. Logi CT zawierają także historię wygasłych certyfikatów, pozwalając znaleźć subdomeny nieużywane, ale wciąż istniejące.
Do szybkich zapytań świetnie nadaje się crt.sh (np. wzorzec %.example.com), a automatyzację i formatowanie wyników ułatwia CTFR.
Bazy danych pasywnego DNS i usługi OSINT
Silnym filarem enumeracji są bazy pasywnego DNS i katalogi OSINT. Oto przykładowe serwisy przydatne w praktyce:
- SecurityTrails,
- Censys,
- Shodan,
- BinaryEdge,
- VirusTotal,
- WhoisXML API.
SecurityTrails śledzi ponad 2,6 miliarda nazw hostów i utrzymuje ponad 10 bilionów historycznych wpisów DNS, udostępniając je przez interfejs webowy i API. Censys umożliwia wyszukiwanie subdomen oraz powiązanych danych o usługach i certyfikatach, a Shodan specjalizuje się w wyszukiwaniu urządzeń/usług i ekspozycji w Internecie.
Narzędzie Subfinder (ProjectDiscovery) potrafi jednocześnie łączyć wiele źródeł pasywnych, zapewniając szybkie i szerokie pokrycie bez aktywnego odpytywania celu.
Narzędzia agregujące wiele źródeł danych
Amass (OWASP) łączy metody pasywne i aktywne w jednym narzędziu, obsługuje liczne integracje API i pozwala uzyskać bardzo szeroki obraz powierzchni domeny.
Findomain (Rust) słynie z szybkości i niskiego zużycia zasobów. Obsługuje wiele źródeł pasywnych, a w wersji płatnej oferuje monitoring subdomen i rozwiązywanie rekordów.
Metody aktywne odkrywania subdomen
Aktywne techniki wchodzą w interakcję z infrastrukturą celu i często ujawniają nazwy niewidoczne w publicznych bazach, ale mogą zostać wykryte przez systemy monitoringu. W większości przypadków metody aktywne należy stosować wyłącznie za wyraźną zgodą właściciela domeny.
DNS brute force i ataki słownikowe
DNS brute force polega na systematycznym testowaniu list potencjalnych nazw wobec domeny celu. To nadal jedna z najskuteczniejszych metod odsłaniania „ukrytych” subdomen, których nie znajdziemy w pasywnych bazach.
Dzisiejsze narzędzia, jak puredns i massdns, drastycznie przyspieszają proces dzięki równoległej rezolucji i filtrom jakości. Puredns zbudowany na massdns realizuje kilka kroków automatycznie:
- masowa rezolucja z użyciem szybkich publicznych resolverów,
- wykrywanie i filtrowanie rekordów typu wildcard,
- walidacja wyników przy użyciu zaufanych resolverów.
Podstawowe polecenie brute force z puredns wygląda następująco: puredns bruteforce all.txt domain.com. Plik all.txt zawiera listę kandydatów nazw subdomen.
Transfer strefy DNS (AXFR)
AXFR służy do replikacji stref między serwerami DNS. Błędna konfiguracja może pozwolić na pobranie pełnej strefy przez nieuprawnione osoby, ujawniając wszystkie rekordy, w tym subdomeny.
Aby sprawdzić podatność, najpierw ustal serwery NS: dig +short ns example.com, a następnie spróbuj transferu: dig axfr example.com @ns1.example.com. Jeśli serwer zezwoli, zwróci pełną zawartość strefy.
Narzędzia wiersza poleceń do enumeracji subdomen
Nslookup i dig – podstawowe narzędzia wiersza poleceń
Nslookup jest dostępny niemal wszędzie i pozwala szybko pobrać rekordy: nslookup -type=A example.com (rekordy A) lub nslookup -type=MX example.com (serwery poczty). Dig daje większą kontrolę i szczegółowe odpowiedzi.
Do masowej enumeracji lepiej sprawdzają się narzędzia wyspecjalizowane, które automatyzują testy i agregują wyniki.
DNSRecon – wielofunkcyjne narzędzie DNS
DNSRecon (Python) obsługuje sprawdzanie rekordów NS, brute force, wyszukiwanie odwrotne, testy AXFR i inne techniki.
Przykładowa enumeracja: ./dnsrecon.py -d example.com. Brute force: ./dnsrecon.py -d example.com -D wordlist.txt -t brt. Narzędzie szczególnie przydatne dla pentesterów do pogłębionej analizy infrastruktury DNS.
Sublist3r – szybkie narzędzie do enumeracji subdomen
Sublist3r wykorzystuje OSINT (Google, Yahoo, Bing, Baidu, Ask, Netcraft, VirusTotal, ThreatCrowd, DNSdumpster, ReverseDNS) do szybkiego odkrywania subdomen.
Podstawowe użycie: python3 sublist3r.py -d example.com. Dostępne są też tryby brute force (-b) i skan portów (-p), a także import jako moduł do własnych skryptów.
Usługi online i platformy do badania subdomen
DNSdumpster – bezpłatne narzędzie do badania DNS
DNSdumpster szybko ujawnia hosty i subdomeny powiązane z domeną oraz prezentuje wyniki w czytelnej formie. Intuicyjny interfejs webowy nie wymaga zaplecza technicznego.
SecurityTrails – platforma inteligencji zagrożeń
SecurityTrails udostępnia bieżące i historyczne dane: ponad 10 bilionów rekordów DNS, ponad 4 miliardy wpisów WHOIS i informacje o ponad 2,6 miliarda hostów. Dostępne są interfejs webowy i API.
Shodan – wyszukiwarka urządzeń i usług internetowych
Shodan pomaga wykrywać subdomeny przez dane o certyfikatach i DNS oraz pokazuje otwarte porty i działające usługi. Posiada CLI i API do automatyzacji. Przykład: shodan domain cnn.com.
Censys – platforma do badania sieci
Censys regularnie skanuje IPv4 i gromadzi dane o usługach, hostach i certyfikatach. Dostęp przez interfejs webowy i klucze API umożliwia zaawansowane kwerendy.
Dla szybkiego porównania interfejsów i zakresów danych poszczególnych usług przedstawiamy krótkie zestawienie:
| Usługa | Główny obszar danych | Interfejsy |
|---|---|---|
| DNSdumpster | Domeny, subdomeny, rekordy DNS | Web |
| SecurityTrails | DNS, WHOIS, hosty, historia | Web, API |
| Shodan | Urządzenia/usługi, certyfikaty, porty | Web, CLI, API |
| Censys | IPv4, certyfikaty SSL/TLS, usługi | Web, API |
Techniki zaawansowane i integracja narzędzi
Wyszukiwanie w archiwach internetowych
Common Crawl i Internet Archive gromadzą miliardy historycznych URL-i, które można przeszukiwać pod kątem subdomen. Narzędzia gau i waybackurls automatyzują pobieranie i ekstrakcję hostów.
Narzędzie gau (Get All URLs) odpyta następujące źródła, aby zbudować możliwie pełną listę adresów dla domeny:
- Wayback Machine,
- Common Crawl,
- URLScan,
- VirusTotal.
Przykładowy potok z ekstrakcją hostów: gau --threads 5 --subs example.com | unfurl -u domains | sort -u -o output.txt.
Project Sonar od Rapid7
Project Sonar wykonuje globalne, nieinwazyjne skany IPv4 i udostępnia zarchiwizowane wyniki społeczności. Dane te pomagają mapować subdomeny i infrastrukturę. Przykładowe zapytania można wiązać z dalszą analizą (np. w Metasploit).
Integracja wielu narzędzi w potok automatyzacji
Skuteczne zespoły łączą metody pasywne i aktywne w zautomatyzowany ciąg działań. Przykładowy, sprawdzony potok wygląda następująco:
- pasywna enumeracja (np. Amass, Subfinder, Findomain),
- analiza logów Certificate Transparency (np. crt.sh),
- rozszerzenie o bazy pasywnego DNS (np. SecurityTrails, Censys),
- aktywne techniki (np. puredns / massdns) oraz walidacja HTTP/HTTPS.
Findomain potrafi orkiestrwać Amass i Subfinder oraz agregować wyniki jednym poleceniem: findomain -t example.org --external-subdomains.
Praktyczne implementacje i dobre praktyki
Planowanie procesu enumeracji
W testach penetracyjnych (z wyraźną zgodą) zalecana jest kombinacja metod pasywnych i aktywnych. W czystym OSINT preferujemy podejście pasywne, aby nie generować ruchu do celu.
Rekomendowana kolejność działań jest następująca:
- zacznij od pasywnych źródeł (np. Subfinder, Amass, Findomain),
- zbadaj logi CT (np. crt.sh),
- sprawdź bazy pasywnego DNS (np. SecurityTrails, Censys),
- jeśli masz zgodę, przejdź do aktywnych metod (np. puredns).
Zarządzanie listami słownikowymi
Skuteczność brute force zależy od jakości listy. Popularne, duże listy (np. 34 miliony pozycji od Trickest czy zestawienia z GitHuba) warto uzupełnić o słowniki kontekstowe. Przykłady dla e‑commerce:
- shop,
- cart,
- payment.
Przykłady dla firm IT i środowisk developerskich:
- api,
- dev,
- test,
- staging.
Łącz różne listy, by zwiększyć pokrycie — pamiętaj jednak, że wydłuży to czas skanowania.
Filtrowanie wyników i walidacja
Po zebraniu dużych zbiorów nazw zastosuj filtrację, aby ograniczyć fałszywe trafienia i duplikaty:
- wykrywaj i filtruj wildcard (np. w puredns),
- weryfikuj rozwiązywanie DNS oraz obecność publicznego adresu IP (np.
findomain -r), - sprawdzaj dostępność HTTP/HTTPS i kody odpowiedzi (np. 200, 301, 403).
Rozważania bezpieczeństwa i kwestie prawne
Aspekty etyczne i prawne
Enumeracja subdomen zwykle korzysta z publicznych informacji, ale masowe zapytania DNS bez zgody mogą zostać uznane za nieautoryzowany test. Działaj odpowiedzialnie i w zgodzie z prawem.
Enumerację subdomen wykonuj tylko w następujących sytuacjach:
- masz wyraźną pisemną zgodę właściciela domeny,
- uczestniczysz w programie bug bounty dopuszczającym takie testy,
- prowadzisz badania akademickie w zgodzie z wytycznymi etycznymi.
Ograniczanie zagrożeń związanych z ujawnianiem subdomen
Z perspektywy obrony warto wdrożyć następujące praktyki minimalizujące ekspozycję:
- stosuj certyfikaty wildcard (*.example.com) zamiast wypisywania wielu SAN,
- monitoruj logi CT w celu szybkiego wykrycia nieautoryzowanych certyfikatów,
- wdróż DNSSEC, aby utrudnić manipulacje rekordami,
- utrzymuj aktualny inwentarz subdomen, ich twarde zabezpieczenia i monitoring.
Analiza konkurencji i przypadki użycia
Badanie infrastruktury konkurencji
Enumeracja subdomen pozwala zrozumieć strategię technologiczną konkurentów, ich usługi i możliwe słabości. Przykładowo, staging.konkurent.pl może zdradzać środowisko testowe o mniej restrykcyjnej konfiguracji.
W praktyce pomocne bywają operatory wyszukiwarek, np. site:*.konkurent.pl w Google oraz ip:123.45.67.89 w Bing, aby odnaleźć projekty hostowane na tym samym serwerze.
Odkrywanie zapomnianych lub dziedziczonych subdomen
Wraz ze zmianami w infrastrukturze często pozostają zapomniane subdomeny (np. test.example.com, dev.example.com, staging.example.com). Analiza logów CT z historią certyfikatów pomaga je odzyskać do inwentaryzacji i zabezpieczenia.
Zaawansowane techniki badawcze
Analiza SEO i ruch internetowy
Website Profiler i SE Ranking potrafią wskazać najpopularniejsze subdomeny na podstawie ruchu organicznego, liczby słów kluczowych i pozycji. SE Ranking Subdomain Finder umożliwia filtrowanie i eksport danych do dalszych analiz.
Monitorowanie zmian w infrastrukturze
Jeśli chcesz śledzić pojawianie się nowych subdomen, skorzystaj z monitoringu. Findomain oferuje tryb -m/--monitoring do cyklicznego skanowania i powiadomień.
Alerty wyślesz przez webhooki, API lub bezpośrednio do PostgreSQL, aby błyskawicznie wykrywać nowe zasoby — zarówno planowane, jak i nieautoryzowane.