{"adoption": {"forks": 290, "observed_at": "2026-08-28T04:05:36.073148+00:00", "stars": 1785}, "canonical_url": "https://ross.abutalabs.com/products/reverseclabs-c3", "card": {"archived": false, "artifact_type": "framework", "description": "Custom Command and Control (C3). A framework for rapid prototyping of custom C2 channels, while still providing integration with existing offensive toolkits.", "domain": ["security", "penetration-testing"], "enriched": true, "function": ["security", "networking", "developer-tools"], "health_score": 75, "homepage": null, "language": "C++", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["ReversecLabs/C3"], "name": "ReversecLabs/C3", "platform": ["windows", "cpp", "cross-platform"], "pushed_at": "2026-01-16T14:53:32+00:00", "repo": "ReversecLabs/C3", "stars": 1785, "tags": ["red-team", "c2", "command-and-control", "cobalt-strike", "offensive-security", "externalc2"], "topics": [], "urls": [], "use_cases": ["build a custom C2 channel over Slack or Discord", "route Cobalt Strike traffic through cloud services like Dropbox or GitHub", "prototype esoteric command and control channels for red team engagements", "tunnel C2 through internal services like MSSQL or LDAP", "emulate real-world attacker TTPs in penetration tests"], "what_it_is": "C3 (Custom Command and Control) is a C++ framework for rapidly prototyping custom command and control (C2) channels for red team operations. It integrates with existing offensive toolkits such as Cobalt Strike via ExternalC2, letting operators focus only on implementing the channel itself.", "when_to_avoid": ["you need a general-purpose network security scanner", "you are looking for a defensive C2 detection tool (though detection resources exist)", "you need a turnkey C2 framework without writing custom channels"], "when_to_choose": ["you need a custom or unusual C2 channel integrated with Cobalt Strike", "you want rapid prototyping of C2 channels with a stable framework", "you are a red team needing to emulate adaptive real-world attackers"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/reverseclabs-c3", "repo": "ReversecLabs/C3", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "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:36.073148+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:36.073148+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:24:11.659612+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "54fca01725b45cf2dc11b76d029eebcd1ccc13329ded034f7d141178c1ebfb87", "fetched_at": "2026-08-28T04:05:36.073148+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ReversecLabs/C3"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 62, "longevity": 100, "rhythm": 54}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2560, "days_push": 229, "days_rel": 229, "gap_med": 57.0, "n_releases_24m": 3}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}