Parse and analyze Cobalt Strike Malleable C2 profiles using dissect.cobaltstrike and pyMalleableC2 to extract C2 indicators, detect evasion techniques, and generate network detection signatures.
44
45%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/analyzing-cobaltstrike-malleable-c2-profiles/SKILL.mdQuality
Discovery
82%Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.
This is a strong, highly specific description targeting a clear cybersecurity niche. It names concrete actions, specific tools, and domain-appropriate terminology that security professionals would naturally use. The main weakness is the absence of an explicit 'Use when...' clause, which would help Claude know exactly when to select this skill.
Suggestions
Add an explicit 'Use when...' clause, e.g., 'Use when the user asks about Cobalt Strike profiles, Malleable C2 configuration analysis, or generating IOCs/detection rules from C2 profiles.'
| Dimension | Reasoning | Score |
|---|---|---|
Specificity | Lists multiple specific concrete actions: 'parse and analyze Malleable C2 profiles', 'extract C2 indicators', 'detect evasion techniques', 'generate network detection signatures'. Also names specific tools (dissect.cobaltstrike, pyMalleableC2). | 3 / 3 |
Completeness | Clearly answers 'what does this do' with specific actions and tools, but lacks an explicit 'Use when...' clause or equivalent trigger guidance. The when is only implied by the nature of the actions described. | 2 / 3 |
Trigger Term Quality | Includes highly relevant natural keywords a security analyst would use: 'Cobalt Strike', 'Malleable C2 profiles', 'C2 indicators', 'evasion techniques', 'network detection signatures'. These are the exact terms someone in threat intelligence or detection engineering would mention. | 3 / 3 |
Distinctiveness Conflict Risk | Extremely niche and specific to Cobalt Strike Malleable C2 profile analysis with named libraries. Very unlikely to conflict with other skills given the highly specialized domain and specific tool references. | 3 / 3 |
Total | 11 / 12 Passed |
Implementation
7%Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.
This skill reads like a high-level outline or table of contents rather than actionable guidance. It lacks any executable code examples despite referencing specific Python libraries, explains concepts Claude already knows (what Malleable C2 profiles are, HTTP protocol basics), and provides only vague procedural steps without validation checkpoints or error recovery. To be useful, it needs concrete code snippets showing actual API usage for parsing profiles and extracting indicators.
Suggestions
Add complete, executable Python code examples showing how to use `C2Profile.from_path()`, iterate over HTTP blocks, and extract specific indicators like URIs, headers, and user agents.
Remove the explanatory overview of what Malleable C2 profiles are and the generic 'When to Use' section — Claude already knows these concepts. Replace with a concise one-liner and jump straight to actionable content.
Add validation checkpoints to the workflow: e.g., verify profile parses without errors, validate extracted indicators against expected schema, test generated Suricata rules against sample PCAPs.
Include a concrete example showing input (a snippet of a Malleable C2 profile) and expected output (the extracted JSON report structure) so Claude knows exactly what to produce.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The overview explains what Malleable C2 profiles are and what Cobalt Strike does — concepts Claude already knows well. The 'When to Use' section is generic boilerplate that adds no value. Prerequisites list obvious items like 'Understanding of HTTP protocol.' Significant token waste throughout. | 1 / 3 |
Actionability | Despite mentioning specific libraries, there is zero executable code — no Python snippets, no example commands, no concrete API usage. Steps are vague descriptions ('Extract HTTP GET/POST block configurations') rather than actionable instructions with actual code showing how to do it. | 1 / 3 |
Workflow Clarity | The 10 steps are a high-level checklist with no validation checkpoints, no error handling, no feedback loops, and no concrete commands. There's no guidance on what to do if parsing fails, if profiles are obfuscated, or how to verify generated signatures. For a multi-step process involving security-critical analysis, this is inadequate. | 1 / 3 |
Progressive Disclosure | The content is organized into logical sections (Overview, When to Use, Prerequisites, Steps, Expected Output), which provides some structure. However, there are no references to supporting files, no links to examples or detailed guides, and the content is neither deep enough to stand alone nor properly linked to supplementary materials. | 2 / 3 |
Total | 5 / 12 Passed |
Validation
90%Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.
Validation — 10 / 11 Passed
Validation for skill structure
| Criteria | Description | Result |
|---|---|---|
frontmatter_unknown_keys | Unknown frontmatter key(s) found; consider removing or moving to metadata | Warning |
Total | 10 / 11 Passed | |
0445030
Table of Contents
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.