2026-08-13

Attack Surface Management

Enumerate Hostnames via Recursive DNS Brute Force

Brute-force sub-subdomains of known hostnames. Rank likely prefixes, generate FUZZ at each DNS level, and resolve. Built-in or custom level wordlists. Caps per level.

Agent

What Enumerate Hostnames via Recursive DNS Brute Force does

Sub-subdomain enumeration walks the label tree of a known hostname. Given a deep name like test.foo.bar.baz.example.com, recursive DNS brute force tries FUZZ at each shorter suffix to find new labels at other depths, which is a different move from same-level permutations or first-level wordlists against the apex. The module ranks which hostnames are most likely to have valid names at other levels, then generates and resolves candidates with built-in or custom per-level wordlists.

You feed known hostnames. The module ranks which of those names are likely to have valid labels at other depths, then brute-forces new labels there (FUZZ.foo.bar.example.com, FUZZ.bar.example.com). This is sub-subdomains of names you already have, not first-level vs the apex. You nest this subgraph on a hostname list; you do not run it from a shell.

Where it fits in the pipeline

Illustrative excerpt. Each node is a Trickest module.

Upstream

Known hostnames from passive hostname OSINT and root-domain DNS brute force. Crawl can feed names back in after probe.

Downstream

Found hostnames into probe for web servers. Generate custom DNS wordlists emits level-2-wordlist, level-3-wordlist, and level-4-wordlist this consumes.

Parallel

DNS permutations on the same seed, altering same-level labels rather than adding new labels at other depths.

When to use this

Nest this after a first hostname set exists, and after those names have depth to walk into. Flat first-level names give recursion little to do. Enumerate Hostnames via OSINT Sources and Enumerate Hostnames via Root Domain DNS Brute Force produce the seed. Enumerate Hostnames via DNS Permutations Brute Force runs on the same seed, same-level. Probe for Web Servers next. Enumerate Hostnames via Crawling last, only on live URLs.

Data

The tables this module produces. Sample rows are illustrative.

hostnames8 columns · 3 sample rows

Resolved sub-subdomains found by brute-forcing new labels at other DNS depths of known hostnames.

hostnametext
domain_nametext
initial_assettext
initial_asset_typetext
discovery_methodtext
evidencetext
evidence_typetext
evidence_reproductiontext
1vpn.foo.bar.example.comexample.comtest.foo.bar.example.comhostnamedns brute forceA 203.0.113.41 resolved 2026-08-13 at level 3dns answerdig vpn.foo.bar.example.com +short
2mail.bar.example.comexample.comtest.foo.bar.example.comhostnamedns brute forceA 203.0.113.42 resolved 2026-08-13 at level 2dns answerdig mail.bar.example.com +short
3ci.foo.bar.baz.example.comexample.comtest.foo.bar.baz.example.comhostnamedns brute forceA 203.0.113.43 resolved 2026-08-13 at level 4dns answerdig ci.foo.bar.baz.example.com +short

How it differs from similar modules

Artifact class it owns

Names third parties already know

Upstream it needs

domains

Artifact class it owns

Names in HTML, JS, headers of live sites

Upstream it needs

live URLs after probe

Artifact class it owns

Altered spellings of known hostnames

Upstream it needs

known hostnames

Artifact class it owns

First-level names against the apex

Upstream it needs

domains + wordlist

Enumerate Hostnames via Recursive DNS Brute Force

Artifact class it owns

Sub-subdomains of names you already have

Upstream it needs

known hostnames + level-2/3/4 wordlists

questions

Enumerate Hostnames via Recursive DNS Brute Force questions

Root-domain wordlists first-level names against the apex (`label.example.com`). This takes hostnames you already have and brute-forces new labels at other depths (`FUZZ.foo.bar.example.com`). Different input (known hostnames vs domains), different depth, different output shape. Run root-domain or OSINT first to build the seed, then this.

Nest Enumerate Hostnames via Recursive DNS Brute Force in a workflow

Drop this module into a Trickest workflow and connect it to your upstream and downstream nodes. The face contract above is the wiring.

Get a personalized demo

See Trickest in Action

A 30-minute walkthrough. We map the platform to your stack and answer pricing and deployment questions for your environment.