{"id":18155439,"url":"https://github.com/0x4f53/subs","last_synced_at":"2026-02-28T09:32:22.361Z","repository":{"id":251817255,"uuid":"838535551","full_name":"0x4f53/subs","owner":"0x4f53","description":"Grab valid subdomains, resolve them, split them and more!","archived":false,"fork":false,"pushed_at":"2025-04-30T11:20:21.000Z","size":142878,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-02-19T16:24:50.391Z","etag":null,"topics":["attack-surface-management","cybersecurity","cybersecurity-tool","cybersecurity-tools","golang","hacking","hacking-tool","infosec","linux","macos","network-analysis","osint","pentesting","recon","reconnaissance","subdomain-enumeration","subdomain-finder-in-go","sudomains","tools","utilities"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/0x4f53.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-08-05T21:00:33.000Z","updated_at":"2025-10-23T20:33:28.000Z","dependencies_parsed_at":"2024-11-02T04:11:07.709Z","dependency_job_id":"3af9154f-c07f-4612-b433-2d2f68b814a9","html_url":"https://github.com/0x4f53/subs","commit_stats":null,"previous_names":["0x4f53/subs"],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/0x4f53/subs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4f53%2Fsubs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4f53%2Fsubs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4f53%2Fsubs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4f53%2Fsubs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/0x4f53","download_url":"https://codeload.github.com/0x4f53/subs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/0x4f53%2Fsubs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29929350,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T19:37:42.220Z","status":"online","status_checked_at":"2026-02-28T02:00:07.010Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["attack-surface-management","cybersecurity","cybersecurity-tool","cybersecurity-tools","golang","hacking","hacking-tool","infosec","linux","macos","network-analysis","osint","pentesting","recon","reconnaissance","subdomain-enumeration","subdomain-finder-in-go","sudomains","tools","utilities"],"created_at":"2024-11-02T04:10:59.262Z","updated_at":"2026-02-28T09:32:22.334Z","avatar_url":"https://github.com/0x4f53.png","language":"Go","funding_links":[],"categories":["\u003ca name=\"online\"\u003e\u003c/a\u003eOnline search and resources"],"sub_categories":[],"readme":"[![Golang](https://img.shields.io/badge/Golang-fff.svg?style=flat-square\u0026logo=go)](https://go.dev)\n[![License](https://img.shields.io/badge/License-GNU%20GPL%203.0-purple?style=flat-square\u0026logo=libreoffice)](LICENSE)\n[![Latest Version](https://img.shields.io/github/v/tag/0x4f53/subs?label=Version\u0026style=flat-square\u0026logo=semver)](https://github.com/0x4f53/subs/releases)\n[![Binaries](https://img.shields.io/badge/Binaries-Click%20Here-blue?style=flat-square\u0026logo=dropbox)](.build/binaries/)\n\n# 🔍 subs\n\n\u003cimg src = preview.png alt=\"subs preview\" width = \"500dp\"\u003e\n\nA utility to grab valid domains and subdomains from files, split them if they're fused, resolve them and more - straight from the command-line! \nThis is a command-line utility written in Golang as a proof-of-concept for the [textsubs package](https://github.com/0x4f53/textsubs).\n\nNote: This tool only extracts subs from text. It does not extract URLs (there are several methods to do that, such as grep and regular\nexpressions)\n\nFeatures:\n\n- Splits fused strings (`google.comapple.comblog.0x4f.in` magically becomes `google.com` `apple.com` `blog.0x4f.in`)\n- Resolves subdomains and domains concurrently in seconds\n- Multiple kinds of output, including domain, subdomain or both as JSON!\n\n## ⚙️ Building\n\nTo build this on your machine, you need to have Golang installed.\nIf you do, simply make build.sh executable and run it like so\n\n```bash\nchmod +x build.sh\n./build.sh\n```\n\n### ⚙️ Installation\n\n#### Linux and macOS\n\nSimply run the `./install.sh` script (don't have the time to put this on package managers)\n\n```bash\nchmod +x install.sh\nsudo ./install.sh\n```\n\nAnd to uninstall\n\n```bash\nchmod +x uninstall.sh\nsudo ./uninstall.sh\n```\n\nYou can also find the binaries in [`.build/binaries`](.build/binaries/) if you want to directly run them\nwithout installation\n\n### 🖊️ Usage\n\n```bash\nsubs [input_file] [flags]\n```\n\n#### Flags\n\n- `-h`, `--help`      Help\n- `-d`, `--domains`   Get domains only\n- `-r`, `--resolve`   Only get items that resolve (using local DNS settings)\n- `-p`, `--pair`   Pair as a JSON string `{\"subdomain\":\"www.example.com\", \"domain\": \"example.com\"}`\n- `-i`, `--ip`   Get IP addresses only\n- `-k`, `--keepDomains`   Keep both domains and subdomains in output (this catches both `example.com` and `www.example.com`)\n- `-r`, `--resolve`   Only get items that resolve (using local DNS settings)\n\n#### Examples\n\nRead a file on disk\n\n```bash\n❯ subs test.txt\nsubdomain1.example.com\nsubdomain2.example.com\nsubdomain3.example.com\nsubdomain4.example.com\n...\n```\n\nRead all files in a directory\n\n```bash\n❯ for file in *; subs \"$file\"\nwww.gnu.org\ngoogle.golang.org\nsubdomain1.example.com\n...\n```\n\nGenerate permutations from a wordlist, resolve them and remove duplicates on the way.\n\n```bash\n❯ wget \"https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt\" -O\nbest-dns-wordlist.txt        100% [===================================\u003e]  76.65M  2.28MB/s    eta 24s    \n\n❯ awk '{print}' best-dns-wordlist.txt | xargs -n1 | while read line; do echo $line; done | xargs -n1 -I{} bash -c 'for i in $(cat best-dns-wordlist.txt); do for j in $(cat best-dns-wordlist.txt); do if [ \"$i\" != \"$j\" ]; then echo \"$i.$j\"; fi; done; done' \u003e\u003e permutations.txt\n\n# This takes a long, long time.\n\n❯ subs permutations.txt -r -p \u003e\u003e output.txt\n\n# This takes even more time.\n\n{\"subdomain\":\"www.ci.dev\",\"domain\":\"ci.dev\"}\n{\"subdomain\":\"www.api.app\",\"domain\":\"api.app\"}\n{\"subdomain\":\"www.www.furniture\",\"domain\":\"www.furniture\"}\n{\"subdomain\":\"www.web.dev\",\"domain\":\"web.dev\"}\n{\"subdomain\":\"www.jira.dev\",\"domain\":\"jira.dev\"}\n\n...\n```\n\nContinuously scan certificates on crt.sh for alive subdomains with autoincremented id\n\n```bash\n❯ id=129341; while true; do wget \"https://crt.sh/?q=$id\" -O .temp \u0026\u0026 subs .temp -r -p \u003e\u003e output.txt \u0026\u0026 rm .temp; id=$((id + 1)); done\n{\"subdomain\":\"crt.sh\",\"domain\":\"crt.sh\"}\n{\"subdomain\":\"fonts.googleapis.com\",\"domain\":\"googleapis.com\"}\n{\"subdomain\":\"ct.googleapis.com\",\"domain\":\"googleapis.com\"}\n{\"subdomain\":\"plausible.ct.nordu.net\",\"domain\":\"nordu.net\"}\n```\n\n---\n\nCopyright (c) 2024  Owais Shaikh\n\nLicensed under [GNU GPL 3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0x4f53%2Fsubs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F0x4f53%2Fsubs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F0x4f53%2Fsubs/lists"}