{"id":19023174,"url":"https://github.com/ethicalhackingplayground/dnsresolver","last_synced_at":"2025-10-04T23:08:00.275Z","repository":{"id":203625704,"uuid":"710030084","full_name":"ethicalhackingplayground/dnsresolver","owner":"ethicalhackingplayground","description":"A Lightning-Fast DNS Resolver written in Rust 🦀","archived":false,"fork":false,"pushed_at":"2024-11-19T08:20:34.000Z","size":1500,"stargazers_count":67,"open_issues_count":4,"forks_count":9,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-02T11:53:59.668Z","etag":null,"topics":["bugbounty","dns","http-prober","resolver"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ethicalhackingplayground.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}},"created_at":"2023-10-25T21:40:23.000Z","updated_at":"2025-01-25T18:27:10.000Z","dependencies_parsed_at":"2024-02-19T01:39:24.906Z","dependency_job_id":"529cb4b1-b1d7-45ae-87be-37fa6fd14806","html_url":"https://github.com/ethicalhackingplayground/dnsresolver","commit_stats":null,"previous_names":["ethicalhackingplayground/dnsresolver"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethicalhackingplayground%2Fdnsresolver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethicalhackingplayground%2Fdnsresolver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethicalhackingplayground%2Fdnsresolver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ethicalhackingplayground%2Fdnsresolver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ethicalhackingplayground","download_url":"https://codeload.github.com/ethicalhackingplayground/dnsresolver/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248075883,"owners_count":21043660,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bugbounty","dns","http-prober","resolver"],"created_at":"2024-11-08T20:28:59.690Z","updated_at":"2025-10-04T23:07:55.253Z","avatar_url":"https://github.com/ethicalhackingplayground.png","language":"Rust","readme":"# dnsresolver\n\n\u003ch1 align=\"center\"\u003e\n  \u003cbr\u003e\n\u003cimg src=\"https://github.com/ethicalhackingplayground/dnsresolver/blob/main/static/icon.png\" width=\"200px\" alt=\"DNS Resolver\"\u003e\n\u003c/h1\u003e\n\n\u003ch4 align=\"center\"\u003e\u003cb\u003eA Lightning-Fast DNS Resolver\u003c/b\u003e\u003c/h4\u003e\n\n---\n\n## Table of Contents\n\n- [Installation](#installation)\n- [Usage](#usage)\n  - [Basic Usage](#usage)\n  - [Resolving Hosts with Ports](#resolving-hosts-with-ports)\n  - [Virtual Host Enumeration](#virtual-host-enumeration)\n    - [Using Unresolved Domains](#using-unresolved-domains)\n    - [Using Localhost](#using-localhost)\n- [Demonstrations](#demonstrations)\n- [Feedback](#feedback)\n- [License](#license)\n\n---\n\n# Installation\n\nMake sure you have rust installed, then run the following command to install dnsresolver.\n\n```bash\ngit clone https://github.com/ethicalhackingplayground/dnsresolver ; cd dnsresolver ; cargo install --path .\n```\n\n---\n\n# Usage\n\n```bash\ncat subs.txt | dnsresolver\n```\n\nIf you need to resolve hosts with any ports, you can use the `--ports` flag.\n\n```bash\ncat subs.txt | dnsresolver -p 443,80,8080,8081\n```\n\n### Virtual Host Enumeration\n\n#### Using Unresolved Domains\n\nFirst step would be to get all the unresolved hosts from a given domain list using:\n\n```bash\ncat subs.txt | dnsresolver --show-unresolved | anew unresolved.txt\n```\n\nThen, to discover all the virtual hosts from a given domain list,\n\nyou can use the `--vhost` flag followed by the `--vhost-file` flag.\n\n**dnsresolver** aims to bypass access restrictions on certain pages. It does so by substituting the host header with unresolved domains and using the sift algorithm. This ensures that the virtual host's response differs from the actual response. Remember to raise the soft limit using the command `ulimit -n 10000` to handle more files simultaneously.\n\n```bash\ncat subs.txt | dnsresolver --vhost --vhost-file unresolved.txt\n```\n\nTo validate a finding run this curl command:\n\n```bash\ncurl -v -k thehost.com -H \"Host: unresolved-domain.com\"\n```\n\n#### Using Localhost\n\nYou can also use the `--vhost` flag with the `--check-localhost` flag to replace the host header with localhost, often times this allows you to access\nrestricted pages and can lead to some information disclosures and juicy admin panels.\n\n```bash\ncat subs.txt | dnsresolver --vhost --check-localhost\n```\n\nTo validate a finding run this curl command:\n\n```bash\ncurl -v -k thehost.com -H \"Host: localhost\"\n```\n\n# Demonstrations\n\n[![asciicast](https://asciinema.org/a/g8lpcHqYeiYdljWxShrgX8naP.svg)](https://asciinema.org/a/g8lpcHqYeiYdljWxShrgX8naP)\n\n[![asciicast](https://asciinema.org/a/GYBZM85QI6SbTiXz59Ncp1mT9.svg)](https://asciinema.org/a/GYBZM85QI6SbTiXz59Ncp1mT9)\n\n[![asciicast](https://asciinema.org/a/VbhwK5GTEHeonVwh55Z6tsfHr.svg)](https://asciinema.org/a/VbhwK5GTEHeonVwh55Z6tsfHr)\n\n## Feedback\n\nIf you have any feedback, please reach out to us at krypt0mux@gmail.com or via twitter [https://twitter.com/z0idsec](https://twitter.com/z0idsec)\n\n## License\n\n[MIT](https://choosealicense.com/licenses/mit/)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethicalhackingplayground%2Fdnsresolver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fethicalhackingplayground%2Fdnsresolver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fethicalhackingplayground%2Fdnsresolver/lists"}