Jak znaleźć subdomeny domeny: logi certyfikatów, DNS i ich ograniczenia
Aby znaleźć subdomeny domeny bez łączenia się z jej serwerami, przeszukaj logi Certificate Transparency (CT). Każdy publiczny certyfikat HTTPS trafia do tych otwartych rejestrów razem z nazwami, dla których został wystawiony, więc zapytanie do crt.sh lub Cert Spotter o example.com zwróci nazwy w rodzaju mail., staging. czy old-shop.example.com. Następnie sprawdź każdą nazwę w DNS: które nadal istnieją i dokąd prowadzą. Nasza darmowa wyszukiwarka subdomen wykonuje oba kroki. Ważne zastrzeżenie: żadna metoda z zewnątrz nie daje gwarantowanie pełnej listy — ma ją tylko strefa DNS domeny, widoczna dla właściciela.
Metody wyszukiwania subdomen w porównaniu
| Metoda | Rodzaj | Co znajduje | Czego nie widzi |
|---|---|---|---|
| Logi Certificate Transparency (crt.sh, Cert Spotter) | Pasywna | Każdą nazwę, dla której kiedykolwiek wystawiono publiczny certyfikat, także dawne | Nazw objętych tylko certyfikatem wildcard, nazw bez HTTPS, nazw wewnętrznych |
| Pasywny DNS i agregatory (np. subfinder) | Pasywna | Nazwy widziane przez resolvery, crawlery i różne otwarte źródła | Zasięg zależy od źródeł, wiele wymaga kluczy API |
Wyszukiwarki (site:example.com -www) | Pasywna | Publiczne hosty z zaindeksowanymi stronami | Wszystkiego, czego nie ma w indeksie |
| Słownikowe zgadywanie (brute force) | Aktywna | Typowe nazwy: dev, vpn, staging | Nietypowych nazw; wysyła mnóstwo zapytań — tylko dla własnych domen |
| Transfer strefy (AXFR) | Aktywna | Całą strefę, jeśli serwer jest źle skonfigurowany | Na poprawnie skonfigurowanym serwerze prawie zawsze odmowa |
| Panel dostawcy DNS | Dostęp właściciela | Pełną listę rekordów | Tylko dla domen, którymi zarządzasz |
Metoda 1: logi Certificate Transparency
Urzędy certyfikacji publikują wystawione certyfikaty w otwartych logach CT, do których można tylko dopisywać, a przeglądarki takie jak Chrome i Safari ufają publicznym certyfikatom wyłącznie wtedy, gdy zostały zalogowane. Certyfikat wymienia nazwy, dla których jest ważny, więc logi to w praktyce historia wszystkich nazw w domenie, na których ktoś włączył HTTPS.
- Otwórz crt.sh i wpisz
%.example.com(%to symbol wieloznaczny, dzięki niemu dostaniesz wszystkie subdomeny). - Patrz na kolumnę Matching Identities. Logi przechowują wpisy na zawsze, więc wiele nazw to historia.
- Aby dostać czystą listę, pobierz JSON i usuń duplikaty:
curl -s 'https://crt.sh/?q=%25.example.com&output=json' \
| jq -r '.[].name_value' \
| tr 'A-Z' 'a-z' | sed 's/^\*\.//' | sort -u
%25 to zakodowany w URL znak %. Pole name_value może zawierać kilka nazw rozdzielonych znakiem nowej linii; jq -r wypisze je w osobnych wierszach. crt.sh to darmowa usługa społecznościowa i pod obciążeniem często zwraca błąd 502 albo nie odpowiada wcale — gdy pisaliśmy ten tekst 13 października 2026 roku, zdarzało się to raz za razem. Wtedy spróbuj później albo użyj Cert Spotter:
curl -s 'https://api.certspotter.com/v1/issuances?domain=example.com&include_subdomains=true&expand=dns_names' \
| jq -r '.[].dns_names[]' | sort -u
Według dokumentacji API SSLMate Cert Spotter zwraca tylko niewygasłe certyfikaty, a bez klucza pozwala na ograniczoną liczbę zapytań na godzinę do użytku osobistego lub testowego. Krótko: crt.sh to historia, Cert Spotter to stan bieżący.
Metoda 2: sprawdź, które subdomeny działają w DNS
Nazwa w logu certyfikatów dowodzi tylko tego, że kiedyś wystawiono dla niej certyfikat. To, co istnieje dziś, pokaże DNS:
# czy nazwa się rozwiązuje i na co?
dig +short staging.example.com
# czy to alias (CNAME)? na jaki host?
dig +short CNAME staging.example.com
# pełna odpowiedź: patrz na „status:” — NOERROR lub NXDOMAIN
dig staging.example.com
# test wildcard DNS: losowa nazwa NIE powinna się rozwiązywać
dig +short pp-test-8f3k2.example.com
- NXDOMAIN — nazwy już nie ma, został tylko stary certyfikat. To historia, nie problem.
- NOERROR z adresem — subdomena działa. Upewnij się, że jest potrzebna i aktualizowana.
- NOERROR bez rekordu A/AAAA — nazwa istnieje, ale nie ma adresu (np. tylko MX lub TXT). Zwykle w porządku.
- CNAME prowadzi do nieistniejącej nazwy — wiszący rekord. Więcej w sekcji o przejęciu subdomeny.
Jeśli losowa nazwa z ostatniego polecenia się rozwiązała, domena ma włączony wildcard DNS: odpowiada każda nazwa, więc „rozwiązuje się” nic nie mówi o konkretnej subdomenie.
Dlaczego z zewnątrz nie da się poznać wszystkich subdomen
- Certyfikaty wildcard. Jeśli usługi działają pod
*.example.com, w logach jest tylko gwiazdka, bez konkretnych nazw. - Nazwy bez publicznego HTTPS. Hosty działające tylko po HTTP, nazwy pocztowe i usługi wewnętrzne z certyfikatami prywatnego urzędu nie trafiają do logów CT.
- DNS nie ma zapytania „pokaż wszystko”. Resolver odpowiada na pytania o nazwy, które już znasz. Jedyny standardowy sposób na zrzut strefy to transfer strefy, a obcym serwery go odmawiają.
- Stare nazwy zostają w logach. Lista zawsze miesza nazwy aktywne i dawno usunięte — dlatego potrzebne jest sprawdzenie w DNS.
Metody aktywne: zgadywanie nazw i transfer strefy
Metody aktywne wysyłają zapytania do infrastruktury celu. To standard w testach bezpieczeństwa — na własnych systemach lub tam, gdzie wyraźnie pozwolono testować.
- Zgadywanie ze słownika sprawdza w DNS tysiące prawdopodobnych nazw (
dev,api,vpn,staging…). OWASP Amass łączy zbieranie otwartych danych z aktywnym rozpoznaniem; subfinder korzysta wyłącznie ze źródeł pasywnych. - Transfer strefy (AXFR) to mechanizm, którym zapasowe serwery DNS kopiują strefę (RFC 5936). Sprawdź własną domenę tak:
dig NS example.com +short
dig AXFR example.com @ns1.example.com
Poprawnie skonfigurowany serwer odpowie „Transfer failed” albo odmówi. Jeśli twój serwer oddaje całą strefę każdemu, ogranicz AXFR do własnych serwerów zapasowych.
Wiszący CNAME i przejęcie subdomeny
Typowa historia: na potrzeby kampanii założono promo.example.com jako CNAME na example-promo.herokuapp.com. Później aplikację usunięto, a rekord w DNS został. Jeśli platforma pozwala każdemu utworzyć aplikację (bucket, stronę) o tej samej nazwie, atakujący może ją zająć i wyświetlać na twojej subdomenie własne treści — z twoją domeną w pasku adresu. To subdomain takeover, czyli przejęcie subdomeny.
Sam wiszący CNAME nie jest jeszcze dowodem podatności: niektóre platformy nie pozwalają zająć zwolnionej nazwy, a potwierdzić ryzyko można tylko po stronie samej platformy. Naprawa jest jednak tania: usuń CNAME albo odtwórz zasób u dostawcy, jeśli subdomena wciąż jest potrzebna.
Co zrobić ze znalezionymi subdomenami
- Wyeksportuj listę i zaznacz wszystkie nazwy, o których nie wiedziałeś.
- Usuń wiszące CNAME oraz rekordy starych środowisk testowych i zakończonych kampanii.
- Panele administracyjne, staging i narzędzia wewnętrzne zabezpiecz logowaniem albo listą dozwolonych IP i nie zostawiaj ich na przestarzałych wersjach CMS.
- Sprawdź ważne aktywne subdomeny: certyfikat sprawdzeniem SSL, rekordy sprawdzeniem DNS, a ślady złośliwego kodu i nieaktualnego oprogramowania skanerem bezpieczeństwa strony.
- Powtarzaj wyszukiwanie co jakiś czas: każdy nowy certyfikat dodaje nazwy do logów.
Jak znaleźć subdomeny w PromoPilot
Wpisz domenę w wyszukiwarkę subdomen. Nazwy pochodzą z crt.sh (cała historia certyfikatów); jeśli crt.sh nie odpowie — z Cert Spotter (tylko ważne certyfikaty), o czym narzędzie poinformuje. Lista nazw jest przechowywana w pamięci podręcznej przez 24 godziny. Następnie narzędzie:
- normalizuje nazwy (małe litery, bez
*., tylko sama domena i jej subdomeny); - sprawdza w DNS do 300 nazw — najpierw te z najnowszymi certyfikatami — przez publiczny DNS-over-HTTPS Cloudflare (zapasowo Google): rekordy A, a dla nazw bez A — AAAA;
- pokazuje status każdej nazwy (jest w DNS, nie ma w DNS, bez A/AAAA, wiszący CNAME), łańcuch CNAME i datę wygaśnięcia najnowszego certyfikatu;
- testuje wildcard DNS losową nazwą i oznacza takie wiersze, a także ostrzega o znalezionych certyfikatach wildcard;
- podaje usługę za wiszącym CNAME, jeśli jest na liście platform, gdzie przejęcie jest możliwe (Amazon S3, Azure, Heroku, GitHub Pages, Netlify, Shopify i inne);
- pozwala filtrować tabelę i pobrać ją jako CSV.
Limity: 15 wyszukiwań dziennie bez konta, 45 z darmowym kontem, w Pro bez limitu dziennego; nie więcej niż 6 wyszukiwań na minutę.
Czego narzędzie nie robi
- Żadnego zgadywania nazw ze słownika, skanowania portów ani zapytań HTTP do znalezionych hostów. Dlatego ryzyko przejęcia może oznaczyć, ale nie potwierdzić.
- Widzi tylko nazwy z publicznymi certyfikatami. Nazwy schowane pod certyfikatem wildcard lub bez HTTPS się nie pojawią.
- Dla domen z ogromną liczbą certyfikatów lista jest ograniczona do 5000 unikalnych nazw, a DNS w jednym przebiegu sprawdzany jest dla 300 z nich.
Warto przeczytać
- Sprawdzanie certyfikatu SSL — ważność, łańcuch, protokoły.
- Sprawdzanie rekordów DNS domeny — A, CNAME, MX, TXT i co oznaczają.
- Jak sprawdzić, czy strona jest bezpieczna — szersza lista kontrolna.