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
Risky
Do not use without reviewing
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 two specific Python libraries, provides no concrete parsing commands or output examples, and includes substantial boilerplate that wastes tokens on concepts Claude already knows. The workflow steps are too abstract to be useful for actual Malleable C2 profile analysis.
Suggestions
Add complete, executable Python code examples showing how to parse a profile with dissect.cobaltstrike (e.g., `C2Profile.from_path()`, iterating over http-get/http-post blocks, extracting URIs and headers) and pyMalleableC2.
Include a concrete example of a generated Suricata rule derived from extracted profile indicators, showing the input profile snippet and the resulting detection signature.
Remove the 'When to Use' section entirely and trim the Overview to 1-2 sentences — Claude already knows what Cobalt Strike and Malleable C2 profiles are.
Add validation checkpoints to the workflow, such as verifying the profile parses without errors, validating extracted indicators against expected schema, and testing generated Suricata rules against sample PCAPs.
| Dimension | Reasoning | Score |
|---|---|---|
Conciseness | The overview explains what Malleable C2 profiles are and what Cobalt Strike is — concepts Claude already knows. The 'When to Use' section is generic boilerplate that adds no actionable 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 profile parsing, no example Suricata rule generation. Steps are vague descriptions ('Extract HTTP GET/POST block configurations') rather than concrete commands or code. This describes rather than instructs. | 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 a profile is malformed, 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 linked examples, and no bundle files. The content is neither a monolithic wall nor well-structured with navigation — it's a flat, shallow document. | 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 | |
0f429d0
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.