{"adoption": {"forks": 169, "observed_at": "2026-08-28T04:04:24.789626+00:00", "stars": 1333}, "canonical_url": "https://ross.abutalabs.com/products/graphrunner", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A Post-exploitation Toolset for Interacting with the Microsoft Graph API", "domain": ["security", "penetration-testing"], "enriched": true, "function": ["security", "http-client", "cli"], "health_score": 66, "homepage": null, "language": "PowerShell", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["dafthack/GraphRunner"], "name": "dafthack/GraphRunner", "platform": ["windows", "cli"], "pushed_at": "2026-04-09T20:13:39+00:00", "repo": "dafthack/GraphRunner", "stars": 1333, "tags": ["post-exploitation", "microsoft-graph", "azure-ad", "entra-id", "red-team", "offensive-security", "oauth", "reconnaissance", "powershell", "linux"], "topics": [], "urls": [], "use_cases": ["search and export a compromised user's email, OneDrive, and SharePoint files", "dump Teams chats and channels from an account with a stolen token", "enumerate app registrations and conditional access policies in a tenant", "find modifiable security groups and misconfigured mailboxes during red team engagements", "harvest OAuth authorization codes during consent grant attacks", "maintain persistence by refreshing token packages and deploying malicious apps"], "what_it_is": "GraphRunner is a post-exploitation toolset for interacting with the Microsoft Graph API, written in PowerShell. It enables reconnaissance, persistence, and data pillaging against Microsoft Entra ID (Azure AD) accounts using authenticated access tokens.", "when_to_avoid": ["you need a defensive auditing or compliance tool rather than offensive tradecraft", "your target is not Microsoft Graph / Entra ID", "you require stealth features or C2 integration beyond token-based Graph interaction"], "when_to_choose": ["you are doing authorized post-exploitation or red team work against Microsoft 365 / Entra ID", "you need a dependency-free PowerShell toolset that works on Windows and Linux", "you want both a CLI and an HTML GUI for pillaging an account via Graph API tokens"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/graphrunner", "repo": "dafthack/GraphRunner", "role": "main", "score": 62}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "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:04:24.789626+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.789626+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:44:42.386440+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "aba79612ce60c4d8d00100903e00236e95b993af7c0760de79fc099139b117db", "fetched_at": "2026-08-28T04:04:24.789626+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dafthack/GraphRunner"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 76, "longevity": 79, "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": 1114, "days_push": 146, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 62, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}