{"id":26780371,"url":"https://github.com/sh13y/subhunter","last_synced_at":"2025-08-23T00:14:45.263Z","repository":{"id":284944439,"uuid":"956576482","full_name":"sh13y/SubHunter","owner":"sh13y","description":"SubHunter - A blazing-fast subdomain finder that hunts down hidden subdomains like a cyber-ninja! 🕵️‍♂️⚡","archived":false,"fork":false,"pushed_at":"2025-03-28T17:15:30.000Z","size":90,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-09T09:42:49.839Z","etag":null,"topics":["cybersecurity","dns-recon","javascript","network-security","osint","pentesting","reconnaissance","subdomain-enumeration"],"latest_commit_sha":null,"homepage":"https://subhunter.sriflix.my","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sh13y.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":"2025-03-28T13:43:51.000Z","updated_at":"2025-05-22T15:06:52.000Z","dependencies_parsed_at":"2025-03-28T14:45:47.179Z","dependency_job_id":null,"html_url":"https://github.com/sh13y/SubHunter","commit_stats":null,"previous_names":["sh13y/subhunter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/sh13y/SubHunter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh13y%2FSubHunter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh13y%2FSubHunter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh13y%2FSubHunter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh13y%2FSubHunter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sh13y","download_url":"https://codeload.github.com/sh13y/SubHunter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sh13y%2FSubHunter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271722248,"owners_count":24809662,"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","status":"online","status_checked_at":"2025-08-22T02:00:08.480Z","response_time":65,"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":["cybersecurity","dns-recon","javascript","network-security","osint","pentesting","reconnaissance","subdomain-enumeration"],"created_at":"2025-03-29T07:16:22.625Z","updated_at":"2025-08-23T00:14:45.218Z","avatar_url":"https://github.com/sh13y.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🕵️ SubHunter: Your Friendly Neighborhood Subdomain Stalker 🕸️\n\n![SubHunter Screenshot](Screenshot%202025-03-28%20215133.png)\n\n## 🚀 What is SubHunter?\n\nImagine if Sherlock Holmes went digital and decided to hunt down subdomains instead of criminals. That's SubHunter! 🕵️🔦\n\nA tool so nosy, it makes your grandma's neighborhood watch look like amateurs. We find subdomains faster than you can say \"DNS resolution\"!\n\n## 🔍 How the Digital Magic Happens\n\n### 1. The Great Subdomain Gathering\n```javascript\nconst sources = [\n    `https://api.hackertarget.com/hostsearch/?q=${domain}`,\n    `https://crt.sh/?q=%25.${domain}\u0026output=json`\n];\n```\nThink of this like a digital party invitation list. We're not just knocking on the main door, we're finding ALL the secret entrances! 🚪🕲️\n\n### 2. DNS Resolution: The IP Whisperer\n```javascript\nconst dnsResponse = await fetch(`https://dns.google.com/resolve?name=${subdomain}`);\nconst dnsData = await dnsResponse.json();\n\n// Collecting IP addresses\nif (dnsData.Answer) {\n    dnsData.Answer.forEach(answer =\u003e {\n        if (answer.type === 1) { // A record\n            subdomainDetails.get(subdomain).ips.add(answer.data);\n        }\n    });\n}\n```\nWe're basically the GPS for internet addresses. \"Hey Google, where does THIS subdomain live?\" 🛏️📍\n\n### 3. HTTP Status Check: The Digital Bouncer\n```javascript\ntry {\n    const httpResponse = await fetchWithTimeout(`https://${subdomain}`, {\n        method: 'HEAD',\n        redirect: 'manual'\n    });\n    \n    subdomainDetails.get(subdomain).httpStatus = httpResponse.status;\n} catch {\n    // Fallback to HTTP if HTTPS fails\n    try {\n        const httpResponse = await fetchWithTimeout(`http://${subdomain}`, {\n            method: 'HEAD',\n            redirect: 'manual'\n        });\n        \n        subdomainDetails.get(subdomain).httpStatus = httpResponse.status;\n    } catch {\n        subdomainDetails.get(subdomain).httpStatus = 'N/A';\n    }\n}\n```\nWe check if subdomains are alive or just digital zombies. \"You shall not pass!\" 🚧🧙‍♂️\n\n## 🌟 Features That'll Make Hackers Giggle\n\n- 📡 Subdomain hunting so thorough, it's almost creepy\n- 🌐 IP resolution faster than your internet connection\n- 🚦 HTTP status checking with attitude\n- 🎨 UI so cool, it makes The Matrix look boring\n\n## 🚨 Disclaimer: With Great Power Comes Great Responsibility\n\nSubHunter is for:\n- Ethical hackers\n- Cybersecurity nerds\n- People who think \"404\" is a personality trait\n- NOT for causing digital mischief! 🧕💕\n\n**Pro Tip:** Just because you CAN scan a domain doesn't mean you SHOULD. Ask for permission, or risk becoming everyone's least favorite party guest! 🎉🚫\n\n## 🤝 Wanna Contribute?\n\nGot ideas to make SubHunter even more awesome?\n- Fork the repo\n- Create a branch\n- Commit your digital wizardry\n- Open a pull request faster than you can say \"recursive DNS\"\n\n## 💡 Learn While You Hunt\n\nThis project is basically a masterclass in:\n- Web API gymnastics\n- Async JavaScript ninja moves\n- DNS resolution dark arts\n- How to look cool while coding 😎\n\n## 🏆 Crafted With Love (and Caffeine)\n\nMade in Ceylon by [@sh13y](https://github.com/yourusername)\n- Powered by ☕ and an unhealthy amount of curiosity\n- Fueled by the spirit of digital adventure\n\n## 🐜 License\n\nWTFPL (Because sharing is caring, and lawyers are expensive) 💸\n\n## 🌈 Parting Wisdom\n\nRemember: In the world of SubHunter, every subdomain has a story. We're just here to read it! 🕵️📚\n\n**Star this repo if it saved you hours of manual searching!** ⭐\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsh13y%2Fsubhunter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsh13y%2Fsubhunter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsh13y%2Fsubhunter/lists"}