{"adoption": {"forks": 418, "observed_at": "2026-08-28T04:08:07.732248+00:00", "stars": 3511}, "canonical_url": "https://ross.abutalabs.com/products/ehole", "card": {"archived": false, "artifact_type": "cli-tool", "description": "EHole(棱洞)3.0 重构版-红队重点攻击系统指纹探测工具", "domain": ["security", "penetration-testing", "developer-tools"], "enriched": true, "function": ["osint", "web-scraping", "security", "cli"], "health_score": 21, "homepage": "https://forum.ywhack.com/", "language": "Go", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["EdgeSecurityTeam/EHole"], "name": "EdgeSecurityTeam/EHole", "platform": ["cli", "windows", "go"], "pushed_at": "2024-04-02T06:02:34+00:00", "repo": "EdgeSecurityTeam/EHole", "stars": 3511, "tags": ["fingerprinting", "red-team", "reconnaissance", "cms-detection", "fofa", "linux", "macos"], "topics": [], "urls": [], "use_cases": ["identify CMS fingerprints from a list of urls", "find vulnerable systems in a c-class ip range", "bulk extract assets from fofa by ip range", "export fingerprint scan results to json", "detect which web apps run on target servers during recon", "prioritize attack surface during red team engagement"], "what_it_is": "EHole (棱洞) is a Go-based fingerprint identification tool for red team reconnaissance that pinpoints high-value, easily attackable systems (OA, VPN, Weblogic, etc.) from large asset lists or C-segment IP ranges. It supports local URL file scanning and FOFA API-based batch asset discovery, with keyword, faviconhash, and regex fingerprint rules and JSON output.", "when_to_avoid": ["you need a full vulnerability scanner rather than fingerprint identification", "you want passive or agentless scanning without FOFA keys or direct url access", "you need ongoing scheduled monitoring rather than one-off scans"], "when_to_choose": ["you need fast fingerprinting of many urls or an ip range during red team recon", "you already have a FOFA account and want API-driven asset discovery", "you want customizable fingerprint rules via keyword, favicon hash, or regex"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ehole", "repo": "EdgeSecurityTeam/EHole", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:07.732248+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:35:42.584758+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5956082e8034c95f0726fb950f1ee87c4b210602c438633040db03d7b3909c7b", "fetched_at": "2026-08-28T04:08:07.732248+00:00", "kind": "readme", "missing": false, "url": "https://github.com/EdgeSecurityTeam/EHole"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2056, "days_push": 883, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}