{"adoption": {"forks": 258, "observed_at": "2026-08-28T04:05:01.138694+00:00", "stars": 1542}, "canonical_url": "https://ross.abutalabs.com/products/sharpersist", "card": {"archived": true, "artifact_type": "cli-tool", "description": null, "domain": ["security", "penetration-testing", "windows"], "enriched": true, "function": ["security", "cli"], "health_score": 10, "homepage": null, "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["mandiant/SharPersist"], "name": "mandiant/SharPersist", "platform": ["windows", "dotnet"], "pushed_at": "2023-08-11T00:52:09+00:00", "repo": "mandiant/SharPersist", "stars": 1542, "tags": ["persistence", "red-team", "offensive-security", "csharp", "post-exploitation"], "topics": [], "urls": [], "use_cases": ["establish persistence on a windows machine during a red team engagement", "add a registry run key that executes a command at logon", "create a scheduled task that runs a payload daily or hourly", "backdoor an existing scheduled task with an extra action", "install a malicious windows service for persistence", "drop an lnk file in the startup folder", "backdoor a keepass config file", "list or remove existing persistence entries"], "what_it_is": "SharPersist is a Windows persistence toolkit written in C# that can add, remove, check, and list various persistence techniques such as registry run keys, scheduled tasks, startup folder shortcuts, Windows services, and KeePass config backdoors. It is intended for red team and penetration testing use on Windows systems.", "when_to_avoid": ["you need persistence on linux or macos", "you are a defender looking for detection tooling rather than offensive capability", "you need stealth features like AMSI or ETW bypasses, which are out of scope", "you require ongoing feature development, as the project is in maintenance mode"], "when_to_choose": ["you need a single C# binary covering many windows persistence techniques", "you are performing authorized penetration testing or red team operations on windows", "you want add, remove, list, and dry-run (check) capabilities for persistence mechanisms", "you prefer a .NET tool that can be compiled or run in-memory"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/sharpersist", "repo": "mandiant/SharPersist", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "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:01.138694+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:01.138694+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:30:45.102987+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2914d7abfa4bf753a9d9e75976b0a70ebf980b92c845f1fe2bc7ede3c4d017c2", "fetched_at": "2026-08-28T04:05:01.138694+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mandiant/SharPersist"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2630, "days_push": 1119, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}