Dnstwist

20250130

Domain name permutation engine for detecting homograph phishing attacks, typo squatting, and brand impersonation.

  • Verified 24 Sept 2026
  • pip 20250130
  • Apache-2.0
  • 5.7k stars

Install and run

  1. otlite install dnstwist

    Installs dnstwist==20250130 into its own virtualenv, with dnstwist[full]==20250130. otlite lists what it will install and asks before it starts.

  2. otlite run dnstwist -- d:example.com

    dnstwist receives dnstwist example.com

No otlite yet? Install it in one line
curl -fsSL https://get.otinstaller.com/otlite | sh

Linux and macOS, no Docker. It uses your Python and pipx when both are there, and otherwise brings its own Python. About otlite · otlite docs

What it takes

Typed inputs after -- become Dnstwist's own arguments. Anything else after -- passes through unchanged, so every option of the tool still works.

InputWith otlitednstwist receives
Domaind:otlite run dnstwist -- d:example.comdnstwist example.com

What a run leaves

Every run is saved under results/ where you run otlite (or --output, or OTLITE_RESULTS_DIR): what the tool printed, a sidecar with how it ran, and an envelope.

  • results/dnstwist/example.com/<time>_dnstwist_example.com_<run id>.txt
  • results/dnstwist/example.com/<time>_dnstwist_example.com_<run id>.meta.json
  • results/dnstwist/example.com/<time>_dnstwist_example.com_<run id>.envelope.json
{
  "envelope": 1,
  "tool": "dnstwist@20250130",
  "runtime": "otlite",
  "input": { "target": "example.com" },
  "case": null,
  "started_at": "…", "ended_at": "…", "duration_ms": …,
  "exit_code": 0,
  "status": "complete",
  "entities": [{ "type": "url", "value": "…" }, …],
  "warnings": [],
  "output": { "path": "results/dnstwist/example.com/<time>_dnstwist_example.com_<run id>.txt", "sha256": "…", "bytes": … }
}
The envelope's shape, the same for every tool; values elided. Its entities are the emails, domains, IP addresses and URLs found in the output, or the tool's own when it prints them.
otlite results --tool dnstwist
otlite extract dnstwist
otlite diff dnstwist example.com

List the saved runs, pull out every indicator, or compare the two latest runs against the same target.

With other tools

These run it with every other installed tool that takes the same input, a few at a time, and save each run:

otlite run --all d:example.com
otlite auto example.com

It is in the domain-recon playbook:

otlite playbook domain-recon example.com

Also on the OTInstaller registry

Prefer a sandbox? osintverse-community/dnstwist runs Dnstwist with ot: pinned and scanned, in a locked-down container with no access to your files and no network unless it needs one. Linux, macOS and Windows, with Docker or Podman.

ot install osintverse-community/dnstwist

Related tools

All 47 tools →
Esc

Try

↑ ↓ to move↵ to open