{"adoption": {"forks": 410, "observed_at": "2026-08-28T04:07:28.783073+00:00", "stars": 2898}, "canonical_url": "https://ross.abutalabs.com/products/100-redteam-projects", "card": {"archived": false, "artifact_type": "learning-resource", "description": "Projects for security students", "domain": ["security", "penetration-testing", "networking", "tutorials", "education"], "enriched": true, "function": ["security", "networking", "developer-tools", "workflow-automation"], "health_score": 65, "homepage": null, "language": "Python", "license": null, "license_family": "other", "maturity": "active", "member_repos": ["kurogai/100-redteam-projects"], "name": "kurogai/100-redteam-projects", "platform": ["python", "cross-platform"], "pushed_at": "2026-03-29T15:40:43+00:00", "repo": "kurogai/100-redteam-projects", "stars": 2898, "tags": ["red-team", "pentesting", "ethical-hacking", "project-ideas", "awesome-list", "offensive-security", "hacking-tools", "linux"], "topics": ["redteam", "security", "network", "network-programming", "programming", "hacking", "hacking-tools", "web", "linux", "powershell", "bash", "automation", "framework", "project", "docker"], "urls": [], "use_cases": ["learn red teaming by building my own hacking tools", "project ideas to practice penetration testing skills", "stop being a script kiddie and write security tools myself", "find progressive exercises for offensive security learning", "practice network programming for pentesting", "study list for aspiring red team operators"], "what_it_is": "A curated list of 100 red team project ideas for security students and aspiring pentesters, organized from basic to advanced levels. It guides learners to build their own offensive security tools (TCP/UDP servers, ciphers, netcat clones, etc.) rather than relying on existing ones.", "when_to_avoid": ["you need ready-to-use, production-grade hacking tools rather than exercises", "you want formal training material with tutorials and explanations rather than a bare project list", "you need a maintained software library with a license for commercial use"], "when_to_choose": ["you want hands-on project ideas to learn offensive security from scratch", "you want to improve programming skills through security-themed exercises", "you are a student or educator looking for a structured pentesting curriculum"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/100-redteam-projects", "repo": "kurogai/100-redteam-projects", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "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:07:28.783073+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.783073+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:35:13.033059+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "794d3eadb73b68914dc96b725bbccfb1a57dce92ae2992cd8fbb2d5c5d11208d", "fetched_at": "2026-08-28T04:07:28.783073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/kurogai/100-redteam-projects"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 74, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2296, "days_push": 157, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}