otlite · Domain and DNS
Install dnsgen on Linux or macOS in one command
dnsgen takes a list of known subdomains and generates plausible permutations: numbers, environments, regions, and common words. It prints candidates for a resolver to check; it does no resolution itself.
dnsgen in three lines
pipx install otlite
otlite install dnsgen
otlite run dnsgen -- --helpRuns AlephNullSK/dnsgen (MIT, ★ 1.1k, otlite 1.2.1, catalog updated Oct 23, 2026). otlite installs and runs it at a tested version; it does not change or verify the tool itself.
What dnsgen is for
- Expanding ctfr or BBOT output into more names to resolve.
- Finding staging and dev hosts that follow a naming pattern.
Typed inputs for dnsgen
dnsgen has no typed input. Pass its own arguments after --; otlite info dnsgen shows an example.
Where the results go
Every run lands under ./results/dnsgen/<target>/ as a timestamped output file, a .meta.json sidecar (the exact command, start and end time, exit code, and the SHA-256 of the output), and a .envelope.json with the entities found, in the same shape for every tool. List runs with otlite results, group them with --case, compare the last two with otlite diff dnsgen <target>, and pull indicators out with otlite extract dnsgen.
Before you run it
- Pipe the output into a resolver such as the one in BBOT or secator; dnsgen only generates.
Update, remove, inspect
otlite info dnsgen # inputs, keys, an example command
otlite example dnsgen # sample output, where there is one
otlite update dnsgen # move to the next tested version
otlite remove dnsgen # delete its virtualenvFull reference: the otlite docs, and the tool's own README on GitHub.
Pairs with
FAQ
dnsgen with otlite, answered
How do I install dnsgen on Kali, Ubuntu, or macOS?
Install otlite once with pipx install otlite (or the one-line installer on the otlite page), run otlite init, then otlite install dnsgen. The tool lands in its own virtualenv under ~/.otlite/, pinned to a version that was tested, so nothing touches your system Python. otlite doctor prints the command that fixes a missing git or venv module.
Which inputs does dnsgen take through otlite?
dnsgen does not take a typed input; pass its own arguments after --. otlite info dnsgen prints what it accepts and an example command.
Where does otlite save dnsgen results?
Under ./results/dnsgen/<target>/ in the folder you run from, as a timestamped output file plus a .meta.json sidecar (the exact command, timing, exit code, and SHA-256) and a .envelope.json with the entities found. Add --case <name> to group runs, otlite results to list them, and otlite diff dnsgen <target> to compare the last two.
Does dnsgen need an API key or a login?
No key is required for the basic run. Optional keys, where the project supports them, go in with otlite keys set NAME and are passed only to tools that declare them.
Can I run dnsgen together with other tools?
Not through --all, because dnsgen has no typed input. Run it on its own, or put it in a playbook with explicit arguments.