Subdomain Finder
Discover subdomains for any domain by aggregating Certificate Transparency logs, passive DNS, threat-intel feeds and web archives. Passive discovery, no probing of the target.
About subdomain discovery
We enumerate subdomains by aggregating multiple passive intelligence sources: Certificate Transparency logs, passive-DNS feeds, threat-intel datasets and web archives. No packets are sent to the target itself, only public datasets are queried. This is pure passive reconnaissance. Each discovered host is then resolved over DNS-over-HTTPS so you can tell live hosts from stale records, and hosts confirmed by several independent lookups are marked.
Method
- Several independent passive datasets are queried in parallel and merged.
- Every host is resolved over DNS-over-HTTPS; live hosts are separated from stale records.
- Resolved IPs are checked against Cloudflare's network so you can see which hosts are proxied.
Sources run isolated, so a single provider being down only removes its results, never the whole lookup. Wildcard entries (*.example.com) are filtered and duplicates are merged. Internal or expired subdomains may still appear.
When it's useful
- Mapping an organization's external attack surface before a penetration test.
- Finding forgotten staging or admin endpoints that still have certs.
- Due diligence on a domain you're about to acquire.
How it works
The lookup collects hostnames from two kinds of public data. The first kind is Certificate Transparency data: every publicly trusted TLS certificate is recorded in append-only public logs, and a certificate lists the hostnames it covers. The second kind is passive DNS and archive data: historic observations of hostnames from resolvers, web crawls, URL scanners and web archives. Several independent services of both kinds are queried in parallel from the server, and the domain name you enter is sent to them as the search term.
The raw results are normalized before they are merged. Names are lowercased, a leading *. and a trailing dot are removed, and anything that is not a hostname below the searched domain is discarded. The remaining names are de-duplicated, and for each name the tool counts how many sources reported it.
Each name is then looked up over DNS-over-HTTPS for an A record, which gives the IPv4 address if one exists. At most 600 names are resolved per lookup. When there are more, names reported by several sources and common service labels such as www, mail or api are resolved first, while very long or random-looking names are resolved last. Names beyond the cap are listed as not checked. Resolved IPv4 addresses are compared with the published Cloudflare address ranges to flag proxied hosts. Finished results are cached, so repeating a lookup shortly afterwards can return the earlier result.
How to read the results
- found: the number of distinct hostnames collected from all sources, whether or not they currently resolve.
- resolve: how many of the checked names returned an
Arecord at lookup time. These are shown first in the list. - IP address: the first IPv4 address returned. If it belongs to a reverse proxy or CDN, it is the address of that service, not of your origin server.
- Cloudflare badge: the address lies in a published Cloudflare IPv4 range, so the host is very likely served through that proxy.
- The multiplier badge (for example x2): the number of independent sources that reported the name. A higher number means the name is less likely to be an artifact of a single data set, but it says nothing about whether the host is still in use.
- no DNS: no
Arecord was returned. The name may be retired, may exist only as an IPv6 or CNAME-only record that did not yield an IPv4 answer, or may be reachable only from inside a private network.
What a result does not prove
A subdomain that appears in a certificate was valid at some point, but certificates are often issued months in advance of use and remain in the logs after the service is gone. A name seen in passive DNS or an archive may have been decommissioned years ago. Conversely, a host that is absent from the list may still exist: internal names, names covered only by a wildcard certificate, and names that were never published anywhere public cannot be found passively.
Wildcard certificates deserve special attention. A certificate for *.example.com shows that the organization uses wildcard coverage but does not reveal which names sit behind it, which is one reason complete enumeration is not possible from public data alone. The tool strips the wildcard prefix and does not list the bare apex domain as a subdomain.
Examples
Example 1: a typical organization
Input: example.com. Suppose the result lists www, mail, api and staging below the domain, with the first three resolving and staging showing no DNS. The first three are live. staging appeared in certificate logs or an archive but has no A record now, so it is likely a retired environment. Check whether its DNS entry was removed deliberately and whether any other record still points at the old system.
Example 2: mostly proxied hosts
Input: example.org. If most resolving hosts carry the Cloudflare badge, the addresses shown are proxy addresses. They cannot be used to locate the origin servers, and any port scan of those addresses would test the proxy, not the application behind it.
Example 3: a large domain
Input: a domain with several thousand certificates. The list may exceed the 600 resolution cap, so part of it is shown as not checked. Those names are still real findings from the sources, but their current DNS state is unknown. Copy them and resolve them with your own tooling if you need a complete picture.
Common problems and how to fix them
- The result is empty. The domain may have no publicly logged certificates and no archive history, or the domain was entered with a typo. Enter only the registrable name (for example
example.com), without a path or port. - The lookup reports that providers are unavailable. Every source failed or timed out. Wait a minute and try again. A single failing source only removes its own results.
- A known subdomain is missing. It has probably never appeared in a public certificate, passive DNS record or archive. Names behind a wildcard certificate or on a private network stay invisible.
- Many names show no DNS. This is expected for older domains. Use the list to find forgotten records and certificates, not as a list of live systems.