Assetfinder: Complete Guide to Asset Discovery and Subdomain Enumeration Using Kali Linux

Assetfinder: Complete Guide to Asset Discovery and Subdomain Enumeration Using Kali Linux

assetfinder is a small, single-purpose Go tool created by Tom Hudson (TomNomNom), a well-known contributor to the bug bounty tooling ecosystem. Its sole purpose is to find domains and subdomains potentially related to a given target using passive sources such as Certificate Transparency logs, the Wayback Machine, and other public datasets. It intentionally does one thing well rather than trying to be a full recon framework, which makes it a popular building block in shell pipelines alongside other TomNomNom tools like httprobe, waybackurls, and gf.

Installation

Assetfinder is written in Go and installed via go install, or is available pre-packaged on Kali.

# Kali/Debian
sudo apt update && sudo apt install assetfinder -y

# Via Go (any platform with Go installed)
go install github.com/tomnomnom/assetfinder@latest

# Ensure GOPATH/bin is in your PATH
export PATH=$PATH:$(go env GOPATH)/bin

Verify installation:

assetfinder --help

Syntax

assetfinder [--subs-only] DOMAIN

Assetfinder can also accept domains piped in via stdin.

Command-Line Options

FlagDescription
--subs-onlyOnly return subdomains of the given domain, excluding unrelated root domains found via passive sources
(no flag)Default mode also returns related root domains discovered alongside subdomains
DOMAINThe target domain, passed as a positional argument
(stdin)Domains can be piped in, one per line, instead of passed as an argument

Note: Assetfinder is intentionally minimal and does not offer additional flags such as output formats, threading controls, or API key configuration — its simplicity is by design, and it relies entirely on being combined with other Unix tools via pipes.

Basic Usage

assetfinder example.com

Expected output:

www.example.com
mail.example.com
example.com
example.net
exampleinc.com

Practical Examples

Example 1 — Basic run (includes related root domains)

assetfinder example.com
www.example.com
mail.example.com
example.com
example-related.net

Example 2 — Subdomains only

assetfinder --subs-only example.com
www.example.com
mail.example.com
dev.example.com

Example 3 — Save output to a file

assetfinder --subs-only example.com > subs.txt
cat subs.txt
www.example.com
mail.example.com
dev.example.com

Example 4 — Piping a list of domains in via stdin

cat domains.txt
# example.com
# example.org

cat domains.txt | assetfinder --subs-only
www.example.com
mail.example.org
api.example.org

Example 5 — Chaining with httprobe to find live hosts

assetfinder --subs-only example.com | httprobe
https://www.example.com
https://mail.example.com

Example 6 — Deduplicating combined results from multiple tools

(assetfinder --subs-only example.com; subfinder -d example.com -silent) | sort -u
api.example.com
dev.example.com
mail.example.com
www.example.com

Example 7 — Chaining into nmap for a quick port scan of discovered hosts

assetfinder --subs-only example.com | while read -r sub; do
    ip=$(dig +short "$sub" | tail -n1)
    [ -n "$ip" ] && echo "$sub -> $ip"
done
www.example.com -> 93.184.216.34
mail.example.com -> 93.184.216.35

Common Use Cases

  • Fast, no-configuration-needed passive subdomain discovery as one link in a larger Unix-pipe recon chain.
  • Combining with httprobe/httpx to quickly filter down to live web hosts.
  • Cross-validating results from other subdomain tools (Amass, Subfinder) by running Assetfinder in parallel and merging/deduplicating output.
  • Lightweight recon in CI/CD-style automated bug bounty monitoring scripts where simplicity and speed matter more than exhaustive source coverage.

Automation with Bash

Merge Assetfinder with Subfinder and Amass for maximum subdomain coverage:

#!/bin/bash
# merged_recon.sh
DOMAIN=$1
{
  assetfinder --subs-only "$DOMAIN"
  subfinder -d "$DOMAIN" -silent
  amass enum -passive -d "$DOMAIN"
} | sort -u > "${DOMAIN}_all_subs.txt"

echo "[+] Combined unique subdomains saved to ${DOMAIN}_all_subs.txt"
wc -l "${DOMAIN}_all_subs.txt"

Continuous monitoring loop for new assets:

#!/bin/bash
DOMAIN=$1
DATE=$(date +%F)
assetfinder --subs-only "$DOMAIN" | sort -u > "assets_${DATE}.txt"

PREV=$(ls -t assets_*.txt 2>/dev/null | sed -n 2p)
if [ -n "$PREV" ]; then
    comm -13 "$PREV" "assets_${DATE}.txt" > "new_assets_${DATE}.txt"
    [ -s "new_assets_${DATE}.txt" ] && echo "[+] New assets detected:" && cat "new_assets_${DATE}.txt"
fi

Tips and Best Practices

  • Always use --subs-only in automated pipelines — without it, unrelated root domains can pollute your results and downstream tooling.
  • Never rely on Assetfinder alone for exhaustive enumeration; it is best used as one of several tools (alongside Amass/Subfinder) whose outputs are merged and deduplicated.
  • Because it has no built-in output/threading options, always redirect (>) or pipe (|) its output — don’t expect JSON or structured formats.
  • Combine with anew (another TomNomNom tool) instead of manual comm/diff scripting for cleaner continuous-monitoring workflows.

Troubleshooting

ProblemCauseFix
command not found: assetfinderGo bin directory not in $PATHRun export PATH=$PATH:$(go env GOPATH)/bin and add it to your shell profile
No output at allDomain has no passive DNS/Certificate Transparency footprint, or network/DNS issueVerify internet connectivity; test with a well-known domain like google.com first
Output includes irrelevant/unrelated domainsRan without --subs-only, so related root domains are also shownAlways pass --subs-only when only subdomains of the target are wanted
Slow response timesUpstream passive data source (e.g., crt.sh) is under heavy loadRetry after a short delay; this is an upstream availability issue, not a local bug

References

  • Official GitHub repository: https://github.com/tomnomnom/assetfinder
  • TomNomNom’s tool ecosystem overview: https://github.com/tomnomnom
  • Kali Linux tool page: https://www.kali.org/tools/assetfinder/
Total
0
Shares

Leave a Reply

Previous Post
Subfinder: Complete Guide to Fast Passive Subdomain Enumeration Using Kali Linux

Subfinder: Complete Guide to Fast Passive Subdomain Enumeration Using Kali Linux

Next Post
theHarvester: Complete Guide to OSINT, Email, and Subdomain Enumeration Using Kali Linux

theHarvester: Complete Guide to OSINT, Email, and Subdomain Enumeration Using Kali Linux

Related Posts