{"adoption": {"forks": 359, "observed_at": "2026-08-28T04:05:40.728810+00:00", "stars": 1819}, "canonical_url": "https://ross.abutalabs.com/products/phishing_catcher", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Phishing catcher using Certstream", "domain": ["security", "osint"], "enriched": true, "function": ["osint", "security", "monitoring", "streaming"], "health_score": 20, "homepage": "https://blog.0day.rocks/catching-phishing-using-certstream-97177f0d499a", "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "maintenance", "member_repos": ["x0rz/phishing_catcher"], "name": "x0rz/phishing_catcher", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2024-08-13T22:18:01+00:00", "repo": "x0rz/phishing_catcher", "stars": 1819, "tags": ["certstream", "certificate-transparency", "phishing-detection", "threatintel", "domain-monitoring", "threat-intelligence", "phishing", "docker"], "topics": ["phishing", "threat-intelligence", "certificate-transparency", "osint", "threatintel"], "urls": [], "use_cases": ["detect newly issued phishing domains in real time", "monitor certificate transparency logs for suspicious domains", "score domains for phishing likelihood based on keywords", "feed threat intelligence workflows with early phishing warnings", "run a dockerized phishing domain watcher", "customize keyword scoring rules for brand protection"], "what_it_is": "A Python CLI tool that monitors TLS certificate issuances in near real time via the CertStream API and flags suspicious domains using a configurable keyword-scoring system. It serves as a proof-of-concept for detecting potential phishing domains as they are registered in the Certificate Transparency Log.", "when_to_avoid": ["you need a full phishing detection platform with takedown and reporting features", "you require low false positives out of the box without tuning", "you need a GUI or managed service rather than a PoC script", "you want passive DNS or URL content analysis rather than certificate-based detection"], "when_to_choose": ["you want near-real-time alerts on suspicious TLS certificate issuances", "you need a lightweight, scriptable phishing domain detector", "you want to customize scoring rules via simple YAML config", "you work in threat intelligence or OSINT and monitor domain abuse"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/phishing_catcher", "repo": "x0rz/phishing_catcher", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "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:05:40.728810+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.728810+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:20:02.824102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8ed543ea72af0302ad154ab066de2e38e4723fc612fb1c93afc91b932510d402", "fetched_at": "2026-08-28T04:05:40.728810+00:00", "kind": "readme", "missing": false, "url": "https://github.com/x0rz/phishing_catcher"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3221, "days_push": 750, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}