{"adoption": {"forks": 376, "observed_at": "2026-08-28T04:06:40.635761+00:00", "stars": 2356}, "canonical_url": "https://ross.abutalabs.com/products/ingram", "card": {"archived": false, "artifact_type": "cli-tool", "description": "网络摄像头漏洞扫描工具 | Webcam vulnerability scanning tool", "domain": ["security", "penetration-testing", "iot"], "enriched": true, "function": ["security", "penetration-testing", "vulnerability-scanning", "cli"], "health_score": 81, "homepage": null, "language": "Python", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["jorhelp/Ingram"], "name": "jorhelp/Ingram", "platform": ["python", "cli"], "pushed_at": "2026-08-19T05:04:43+00:00", "repo": "jorhelp/Ingram", "stars": 2356, "tags": ["webcam", "cctv", "ip-camera", "cve-scanner", "hikvision", "dahua", "dlink", "network-scanning", "linux", "macos"], "topics": ["cve-2017-7921", "cve-2020-25078", "dahua", "dlink", "hack", "hikvision", "cve-2021-36260", "camera", "cve-2021-33044", "cctv"], "urls": [], "use_cases": ["scan ip camera vulnerabilities", "find hikvision cve-2021-36260 devices on my network", "bulk scan cctv devices for weak credentials", "audit network cameras for known cves", "scan ip range for exposed webcam login pages", "pair with masscan to find live cameras then check exploits"], "what_it_is": "Ingram is a Python-based vulnerability scanning framework targeting network cameras (IP/CCTV devices). It integrates known exploits for common vendors such as Hikvision, Dahua, Uniview, and D-Link, and scans IP ranges or host lists for vulnerable devices.", "when_to_avoid": ["you need a general-purpose network vulnerability scanner beyond cameras", "you require Windows support natively", "you need real-time exploit exploitation rather than detection"], "when_to_choose": ["you need to audit IP camera fleets for known CVEs like CVE-2017-7921 or CVE-2020-25078", "you want a lightweight Python CLI that scans large IP ranges with configurable concurrency", "you target Hikvision, Dahua, Uniview, or D-Link devices specifically"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ingram", "repo": "jorhelp/Ingram", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "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:06:40.635761+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:40.635761+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:36:25.352860+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3e9d1829e04cbb5adf13b00e20080924ce350b2b4e986ad7e514d5ed5e6a5a23", "fetched_at": "2026-08-28T04:06:40.635761+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jorhelp/Ingram"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "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": 1569, "days_push": 14, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}