Agent skill

Dangling DNS Finder

by anirudhbiyani in anirudhbiyani/findmytakeover

Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool.

GPL-3.0Auto-check passedDevOps & Cloud

Install Dangling DNS Finder

skills CLI
$ npx skills add anirudhbiyani/findmytakeover --skill dangling-dns-finder -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install anirudhbiyani/findmytakeover dangling-dns-finder --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/anirudhbiyani/findmytakeover.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/dangling-dns-finder .claude/skills/dangling-dns-finder && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
dangling-dns-finder
GitHub stars
180
Token cost
~1.8k tokens
SKILL.md length
918 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
GPL-3.0

At a glance

Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool.

  • Works in 4 steps: Configure → Run → Report → …
  • The user wants to find dangling domains/records
  • SKILL.md covers Prerequisites, Workflow, Interpreting results — what is… and Pitfalls
  • Calls python3, pip3 and aws; needs CLOUDFLARE_API_TOKEN

What it does

Dangling DNS Finder is an agent skill from anirudhbiyani/findmytakeover. Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool. Use whenever the user wants to find dangling domains/records, stale CNAMEs, subdomain takeover exposure, orphaned DNS entries, or audit their DNS zones for records pointing at deleted cloud resources — dead load balancers (ELBs), released EC2/GCP/Azure IPs, or expired SaaS targets. Triggers on "dangling domains", "dangling DNS", "subdomain takeover", "audit my DNS", "find…

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in DevOps & Cloud, covering Cloud networking and Cloud architecture. It works with Microsoft Azure, Google Cloud and Amazon Web Services. The repository describes itself as: find dangling domains in a multi cloud environment. The licence is GPL-3.0.

When your agent uses it

  • The user wants to find dangling domains/records
  • Subdomain takeover exposure
  • Orphaned DNS entries
  • Audit their DNS zones for records pointing at deleted cloud resources — dead load balancers (ELBs)

Example prompts

  • “dangling domains”
  • “dangling DNS”
  • “subdomain takeover”
  • “/dangling-dns-finder”

Requirements

  • Python 3
  • A credential in CLOUDFLARE_API_TOKEN

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Configure
  2. Run
  3. Report
  4. Remediate (show, don't run)

What it can do on your machine

Read from SKILL.md and the folder at commit bf3ff92. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3
    • pip3
    • aws

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pip3 and aws, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • CLOUDFLARE_API_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Dangling DNS Finder loads about 1.8k tokens when it runs. Until then it costs about 171 tokens; SKILL.md has 918 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~171
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from anirudhbiyani/findmytakeover at commit bf3ff92, republished under its GPL-3.0 licence (© anirudhbiyani). 918 words, ~1,828 tokens.

Download SKILL.mdSave it as .claude/skills/dangling-dns-finder/SKILL.md (or your agent's skills folder).
name
dangling-dns-finder
description
Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool. Use whenever the user wants to find dangling domains/records, stale CNAMEs, subdomain takeover exposure, orphaned DNS entries, or audit their DNS zones for records pointing at deleted cloud resources — dead load balancers (ELBs), released EC2/GCP/Azure IPs, or expired SaaS targets. Triggers on "dangling domains", "dangling DNS", "subdomain takeover", "audit my DNS", "find stale/orphaned DNS records", "dead CNAMEs", or asking what's safe to delete. Works across AWS, GCP, and Azure using the accounts the user can already read.

Dangling DNS Finder

Find DNS records that point at infrastructure that no longer exists — the classic subdomain-takeover setup. A CNAME to a deleted ELB, or an A record to a released cloud IP, can be silently reclaimed by someone else and used to serve content under your domain.

This skill drives the repo's own tool, findmytakeover.py. It enumerates every DNS record and every live infrastructure endpoint (IPs, ELB/LB hostnames, etc.) across the configured AWS/GCP/Azure accounts, then reports any DNS record whose value has no matching live resource. No wordlists, no guessing — a record is dangling because the thing it points at is not in your inventory.

Do not write new scripts to resolve DNS or probe endpoints — the tool already collects both sides and diffs them. Your job is to configure it, run it, and interpret the output.

Prerequisites

  • Read-only cloud credentials for the accounts being scanned, already set up in the local CLIs:
    • AWS — ViewOnlyAccess + SecurityAudit (or an assumable IAM role)
    • GCP — Viewer (Application Default Credentials, or a service-account key)
    • Azure — Reader (Azure CLI login, or tenant/client/secret)
    • Cloudflare — read-only API token (CLOUDFLARE_API_TOKEN env, or a token string)
    • Oracle (OCI) — read/inspect group (~/.oci/config DEFAULT profile, or a config path)
  • Dependencies: pip3 install . from the repo root (installs from pyproject.toml).

Workflow

1. Configure

The tool reads findmytakeover.config (YAML) — default path is the repo root, override with -c. Enable only the providers the user actually has. For each, set enabled: true and pick credentials:

  • credentials: default — use the local CLI's logged-in creds and auto-discover accounts/projects/subscriptions. Simplest; prefer this.
  • Otherwise an IAM role name (AWS), a service-account JSON path (GCP), or a tenant/client/secret mapping (Azure) — and list accounts: explicitly.

A provider appears under both dns: and infra: — both must be enabled for the dangling check to run (it needs both sides to diff). Use exclude: for IP ranges/domains that are known-safe and should never be flagged (e.g. SaaS email domains, reserved ranges).

Confirm the config with the user before running — wrong account scope is the main way this wastes time.

2. Run
bash
python3 findmytakeover.py -c findmytakeover.config
# add -d dump.csv to also save the raw DNS + infrastructure inventory

It prints how many DNS records and infra resources it collected per provider, then one line per dangling record:

Found dangling DNS record - <name> with value <value> in <cloud> cloud (account/...: <id>)

Use -d <file> whenever the user wants to inspect the raw data or when a result looks surprising — the dump shows exactly what DNS and infra were compared.

3. Report

Present the dangling records as a table: Subdomain · Value (target) · Cloud · Account. Group by cloud. Call out anything sensitive (customer-named subdomains, *-prod hosts) for manual confirmation before any deletion.

Frame confidence honestly (see Interpreting results) — a value missing from the inventory is a strong signal, not proof, and some classes of record are expected to have no backing infra.

4. Remediate (show, don't run)

The tool only reports; it does not delete. For each confirmed dangling record, show the user the deletion command for their DNS provider (e.g. aws route53 change-resource-record-sets with a change batch, gcloud dns record-sets delete, az network dns record-set ... delete).

DNS deletion is hard to reverse and outward-facing — default to showing the command and letting the user run it. Only run it yourself if they explicitly say so, and never batch-delete customer-named or *-prod records without a record-by-record confirmation.

Show full SKILL.md (387 more words)Show less

Interpreting results — what is NOT a takeover risk

A record can have no matching infra yet be perfectly fine. Bucket these separately as "stale / out of scope," not as takeover risks:

  • Cert validation — *.acm-validations.aws, *.authorize.certificatemanager.goog, _acme-challenge.*. These point at validation zones / single-use tokens, not service endpoints. Not a takeover vector.
  • Email auth (DKIM/SPF etc.) — CNAMEs into live SaaS provider zones (*.dkim.*, *.domainkey.*, *.hubspotemail.net, salesforce/highspot/etc.). Expected to have no infra in your accounts.
  • MX / TXT / SOA / apex NS — out of scope; never delete as part of this. (Child NS delegations to a cloud NS pool are checked — see Pitfalls.)
  • Resources in an account you didn't scan. If a value points at real infra living in an account/project/subscription that wasn't in the config, it shows up as dangling but isn't. Widen the scan before trusting the result — this is the #1 false positive. Add such ranges/domains to exclude: once confirmed.

A genuine takeover risk is a record pointing at a real endpoint (ELB, cloud host, app) that exists in none of the accounts you scanned.

Pitfalls

  • Incomplete account scope = false positives. The tool can only match against infra in the accounts it can read. A value owned by an unscanned account looks dangling. Always confirm the config covers every account that could own the targets before reporting.
  • Both dns and infra must be enabled (and for the same providers you care about) or there's nothing to diff — the tool will say so and exit.
  • Credentials must already work in the CLI. The tool assumes roles / uses ADC / Azure login; it does not log you in. A permissions error means fix the cloud creds, not the tool.
  • NS dangling is partially covered — the tool flags child NS delegations that point at a cloud-provider nameserver pool (awsdns/azure-dns/googledomains) but whose delegated zone no longer exists in any scanned account. Delegations to other DNS providers are out of scope (can't be judged from cloud inventory). The delegated zone is proven "live" from the infra side (zone-name rows), so the provider hosting the child zone must have infra enabled and scanned — otherwise a live delegation looks dangling.
  • Matching is on the record value. A CNAME/A whose value exactly matches a collected infra endpoint is considered live; partial/normalized mismatches (trailing dots, case) are worth spot-checking with -d if a known-good record shows up as dangling.

© anirudhbiyani, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/dangling-dns-finder of anirudhbiyani/findmytakeover.

Open the folder on GitHubat commit bf3ff92

Compare with similar skills

Dangling DNS Finder next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Dangling DNS Finder compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Dangling DNS Finder this skillanirudhbiyani/findmytakeover180—~1.8kAutomated safety check: PassGPL-3.0
Cloud Cost Optimizationwshobson/agents40k14 repos~1.7kAutomated safety check: PassMIT
Thesvgglincker/thesvg2.8k—~1.5kAutomated safety check: PassMIT
Hybrid Cloud Networkingwshobson/agents40k11 repos~1.5kAutomated safety check: PassMIT
Terraform Module Librarywshobson/agents40k11 repos~1.3kAutomated safety check: PassMIT
Multi Cloud ArchitectureHermeticOrmus/LibreUIUX-Claude-Code11211 repos~1.2kAutomated safety check: PassMIT

Similar skills

  • Cuts cloud spend across AWS, Azure, GCP and OCI with cost tagging, rightsizing, commitment and spot pricing models, and architecture changes.

    40k GitHub starsUsed in 14 repos~1.7k tokens
    DevOps & CloudAuto-check passed
  • Thesvg

    glincker/thesvg

    Fetch brand SVG logos and cloud architecture icons (AWS, Azure, GCP) from theSVG.

    2.8k GitHub stars~1.5k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Configure secure, high-performance connectivity between on-premises infrastructure and cloud platforms using VPN and dedicated connections.

    40k GitHub starsUsed in 11 repos~1.5k tokens
    DevOps & CloudAuto-check passed
  • Build reusable, tested Terraform modules for AWS, Azure, GCP and OCI, with a standard file layout, an AWS VPC example, versioning rules and Terratest checks.

    40k GitHub starsUsed in 11 repos~1.3k tokens
    DevOps & CloudAuto-check passed
  • Multi Cloud Architecture

    HermeticOrmus/LibreUIUX-Claude-Code

    Design multi-cloud architectures using a decision framework to select and integrate services across AWS, Azure, and GCP.

    112 GitHub starsUsed in 11 repos~1.2k tokens
    DevOps & CloudAuto-check passed
  • Cloud Architect

    Jeffallan/claude-skills

    Designs cloud architectures, migration plans, cost optimization recommendations and disaster recovery strategies across AWS, Azure and GCP.

    12k GitHub stars~1.9k tokensUpdated 8 days ago
    DevOps & CloudAuto-check passed

Categories

Questions about Dangling DNS Finder

What does Dangling DNS Finder do?

Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool. Dangling DNS Finder is an agent skill from anirudhbiyani/findmytakeover. Detect dangling DNS records and subdomain-takeover risks across a multi-cloud environment by running the bundled findmytakeover tool.

When should I use Dangling DNS Finder?

Dangling DNS Finder fits situations like: the user wants to find dangling domains/records; subdomain takeover exposure; orphaned DNS entries; audit their DNS zones for records pointing at deleted cloud resources — dead load balancers (ELBs).

How do I install Dangling DNS Finder in Claude Code?

Run `npx skills add anirudhbiyani/findmytakeover --skill dangling-dns-finder -a claude-code`. Or copy the skill folder (skills/dangling-dns-finder in anirudhbiyani/findmytakeover) into .claude/skills/dangling-dns-finder in your project. Claude Code loads it when a task matches its description.

How do I install Dangling DNS Finder in Codex?

Run `npx skills add anirudhbiyani/findmytakeover --skill dangling-dns-finder -a codex`. Or copy the skill folder (skills/dangling-dns-finder in anirudhbiyani/findmytakeover) into .agents/skills/dangling-dns-finder in your project. Codex loads it when a task matches its description.

Can I use Dangling DNS Finder in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add anirudhbiyani/findmytakeover --skill dangling-dns-finder -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/dangling-dns-finder, .gemini/skills/dangling-dns-finder, .github/skills/dangling-dns-finder and .opencode/skills/dangling-dns-finder in your project.

What does Dangling DNS Finder need to run?

Going by SKILL.md and its folder, Dangling DNS Finder needs the command-line tools its instructions call (python3, pip3 and aws) and credentials named CLOUDFLARE_API_TOKEN. Our summary lists: Python 3; A credential in CLOUDFLARE_API_TOKEN.

Does Dangling DNS Finder access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Dangling DNS Finder safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Dangling DNS Finder use?

Dangling DNS Finder is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Dangling DNS Finder use?

About 1.8k tokens (SKILL.md is roughly 7.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Dangling DNS Finder?

Skills that share tags, products or a category with Dangling DNS Finder: Cloud Cost Optimization (wshobson/agents, 40k stars), Thesvg (glincker/thesvg, 2.8k stars), Hybrid Cloud Networking (wshobson/agents, 40k stars) and Terraform Module Library (wshobson/agents, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Dangling DNS Finder?

anirudhbiyani (a GitHub user) maintains it in anirudhbiyani/findmytakeover, which has 180 GitHub stars. The repository was last updated on September 7, 2026.

Source: anirudhbiyani/findmytakeover on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.