malware-report-writer
Skill46 starsChanged 2 months agoMITView on GitHub
Create professional malware analysis reports for enterprise security teams and incident response. Use when you need to write, structure, or improve a malware analysis report, produce executive summaries, author YARA rules, or format IOCs and detection rules for professional delivery.
- Installs packages
In this repository6 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- detection-engineerSkill
- malware-dynamic-analysisSkill
- malware-triageSkill
- malware-analysisSkill
- specialized-file-analyzerSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
26 rules. About 0 are common, 21 are distinctive, and 5 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈21
Distinctive · estimate
This author's own choices. Worth a look.
5
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 8
Create professional, comprehensive malware analysis reports for enterprise security teams, incident response, and threat intelligence.
- Very specific: line 15
Defang at write time: Run any IOC list through python3 scripts/ioc_extract.py (repo root) rather than defanging by hand.
- Very specific: line 16
Output is a file: Write reports/<sample>_report.md in the user's workspace (create the directory), then print the executive summary and the …
- Distinctive: line 21
Use this skill when the user needs to:
- Distinctive: line 22
Create a complete malware analysis report from analysis findings
- Distinctive: line 24
Write executive summaries for malware samples
- Very specific: line 37
Run the Quality Checklist below and references/best_practices.md.
- Distinctive: line 59
Use precise technical language with clear explanations
- Distinctive: line 62
Document methodology and tools used
- Distinctive: line 90
Document both positive and negative findings
- Distinctive: line 92
Use code blocks for technical artifacts
- Distinctive: line 101
Test IOCs for accuracy before including
- Distinctive: line 103
Defanging (required): All IOCs in reports MUST be defanged to prevent accidental activation:
- Distinctive: line 117
Test against sample (must detect)
- Distinctive: line 118
Test against clean files (must not false positive)
- Distinctive: line 120
Use meaningful string and variable names
- Distinctive: line 121
Add comments explaining detection logic
- Distinctive: line 180
Before submitting any report, verify:
- Distinctive: line 218
Create reports in Markdown format using the template structure.
- Distinctive: line 219
Create report in Markdown using the template
- Distinctive: line 221
Ensure all sections are complete
- Distinctive: line 223
Verify detection rules are included and tested
- Very specific: line 230
Read analysis_state.md, the triage report, dynamic summaries, and the Sigma/Suricata files already created.
- Very specific: line 232
Write the YARA rule from runtime strings / ransom-note markers / mutex.
- Distinctive: line 234
Write remediation ordered by urgency (isolate → block C2 → remove persistence → recover), and the limitations section.
- Distinctive: line 235
Run the Quality Checklist.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Malware Report Writer
Create professional, comprehensive malware analysis reports for enterprise security teams, incident response, and threat intelligence.
Execution Model
- You write the report. Read
analysis_state.mdand the evidence directory yourself (triage report,procmon_summary.txt,sysmon_summary.txt, tshark exports, decoded scripts, detection rule files) and draft every section from that. Ask the user only for what the evidence cannot tell you: engagement name, analyst name, audience, classification/TLP, and gaps you have flagged. - Locate skill files. Scripts and reference files ship in this skill's directory. Set
R="${CLAUDE_PLUGIN_ROOT:-<dir containing this SKILL.md>}"once (when installed as a plugin$CLAUDE_PLUGIN_ROOTis set; otherwise it is this skill folder). Your working directory is the user's analysis workspace, so prefix every script path below with$R, e.g.python3 "$R"/scripts/ioc_extract.py. - Author the YARA rule from the evidence (runtime-decrypted strings, unique UA/URI, mutex, PDB path, config markers) and test it yourself when
yarais installed — see Testing YARA rules. If it cannot be tested, mark the ruleUNTESTEDin the report; never present an untested rule as validated. - Defang at write time. Run any IOC list through
python3 scripts/ioc_extract.py(repo root) rather than defanging by hand. - Output is a file. Write
reports/<sample>_report.mdin the user's workspace (create the directory), then print the executive summary and the quality-checklist result. Never leave template placeholders in the delivered file. - State what was not done. Phases skipped, network not observed, packer not defeated — these go in the report's limitations, not silently omitted.
When to Use This Skill
Use this skill when the user needs to:
- Create a complete malware analysis report from analysis findings
- Structure analysis results into professional documentation
- Write executive summaries for malware samples
- Format IOCs and detection rules for delivery
- Review or improve existing malware reports
- Prepare report documentation for stakeholders
Quick Start
Creating a New Report
cat analysis_state.md;lsthe evidence and detection directories; read the phase outputs you need- Copy
assets/report_template.mdtoreports/<sample>_report.md - Populate each section from the evidence, citing it (file, line, event) so every claim is traceable
- Author and test the YARA rule; paste Sigma/Suricata rules from
detection-engineerverbatim - Run the Quality Checklist below and
references/best_practices.md; fix, then deliver
Report Structure
The standard report includes these sections in order:
- Executive Summary - High-level overview for non-technical stakeholders
- Sample Information - Basic file metadata and hashes
- Static Analysis - File structure, strings, imports/exports, resources
- Dynamic Analysis - Runtime behavior, system changes, network activity
- IOCs - Organized by type (file, network, host indicators)
- Detection Rules - YARA rules and optionally Sigma rules
- Malware Classification - Family, type, capabilities
- Remediation and Mitigation - Actionable response steps
- Technical Details - Additional deep-dive analysis
- Conclusion - Final summary and assessment
- References - External resources and links
- Appendix - Timeline, tools used, screenshots
Key Principles
Professional Quality
- Use precise technical language with clear explanations
- Include all three hash types (MD5, SHA1, SHA256)
- Provide full context for every finding
- Document methodology and tools used
- Include timestamps and version information
Professional Report Requirements
Industry-standard reports require:
- Complete technical documentation of malware samples
- Professional format suitable for enterprise delivery
- Working detection rules based on malware characteristics
- Clear IOCs that can be operationalized
Critical: The quality of your report reflects your professionalism. Allocate sufficient time for writing and review.
Audience Awareness
Structure content for multiple audiences:
- Executive Summary: Non-technical decision makers
- Technical Sections: Security analysts and researchers
- IOCs/Detection: SOC teams and detection engineers
- Remediation: Incident responders
Writing Guidelines
Executive Summary
- 2-4 paragraphs maximum
- Plain language, minimal jargon
- Answer: What? How critical? What actions?
- Include key findings in bullet points
Technical Analysis
- Document both positive and negative findings
- Provide evidence for every claim
- Use code blocks for technical artifacts
- Include screenshots when they add value
- Connect behaviors to specific evidence
IOCs Section
Format:
- Group by type (file, network, host)
- Include context for each indicator
- Provide confidence levels if uncertain
- Test IOCs for accuracy before including
Defanging (required): All IOCs in reports MUST be defanged to prevent accidental activation:
- URLs:
http→hxxp,https→hxxps(e.g.,hxxps://malicious[.]example[.]com/payload) - Domains: bracket the dot before the TLD (e.g.,
evil[.]com,sub.domain[.]net) - Email addresses:
@→[@](e.g.,attacker[@]evil[.]com) - IP addresses: bracket each dot separator (e.g.,
192[.]168[.]1[.]1)
Avoid:
- Environment-specific artifacts
- Personal/analyst system information
- Common legitimate values
- Untested indicators
Detection Rules
YARA Rules:
- Test against sample (must detect)
- Test against clean files (must not false positive)
- Include metadata: author, date, description, hash
- Use meaningful string and variable names
- Add comments explaining detection logic
- Set appropriate conditions to balance detection and false positives
Testing YARA rules (run these; paste the results into the report's detection section):
command -v yara || echo "yara not installed: pip install yara-python / apt install yara — mark rule UNTESTED"
yara -w -s detections/yara/family.yar samples/sample.exe # must match; -s shows which strings hit
yara -w -s detections/yara/family.yar samples/unpacked.exe # and the unpacked/dropped stages
yara -w -r detections/yara/family.yar /usr/lib /usr/bin clean/ 2>/dev/null | head # must print nothing (clean corpus; add a Windows clean dir if available)A rule that matches only on strings present in the packed sample is a hash in disguise; prefer runtime-decrypted strings, config markers, mutexes, and code patterns, and require 2 of them or more with a filesize bound.
Best practices:
rule Malware_Family_Variant {
meta:
description = "Detects Malware_Family based on C2 configuration"
author = "Analyst Name"
date = "2025-10-25"
hash = "abc123..."
reference = "Internal analysis"
strings:
$c2_config = { 48 8B ?? ?? ?? ?? ?? 48 8D ?? ?? } // Config access pattern
$ua_string = "Mozilla/4.0 (Suspicious UA)" ascii
$mutex = "Global\\UniqueMalwareMutex" wide
condition:
uint16(0) == 0x5A4D and // MZ header
filesize < 2MB and
2 of them
}Common Mistakes to Avoid
- Over-relying on automated tool output without interpretation
- Listing findings without explaining significance
- Missing critical hashes or file metadata
- Weak or untested detection rules
- Vague remediation recommendations
- Poor grammar/spelling
- Inconsistent formatting
- Environment-specific artifacts in IOCs
Best Practices Reference
For detailed guidance on report quality, writing style, and common pitfalls, see references/best_practices.md.
Key topics covered:
- Report writing principles (clarity, completeness, objectivity)
- Structure guidelines for each section
- IOC quality standards
- Detection rule best practices
- Audience considerations
- Quality checklist
- Efficient workflow strategies
Quality Checklist
Before submitting any report, verify:
Technical Accuracy:
- All three hash types included and verified
- File paths are complete and accurate
- Timestamps include timezone
- Process IDs included for process activity
- Tool versions documented
Detection Rules:
- YARA rules tested against sample (detects correctly)
- YARA rules tested against clean files (no false positives)
- Rules include complete metadata
- Conditions are appropriate and not over-matching
IOCs:
- Grouped by type (file, network, host)
- Context provided for each IOC
- All IOCs defanged (hxxp/hxxps, [.] for domains and IPs, [@] for email)
- No environment-specific artifacts
- All IOCs validated
Report Quality:
- Executive summary is non-technical and actionable
- All sections completed
- Grammar and spelling checked
- Consistent formatting throughout
- Evidence supports all claims
- Remediation steps are specific and prioritized
Professional Standards:
- Report is professional and enterprise-ready
- Detection rules work and are well-documented
- Technical details demonstrate thorough analysis
- Report answers: What is it? What does it do? How to detect? How to remove?
Output Format
Create reports in Markdown format using the template structure. For professional delivery:
- Create report in Markdown using the template
- Convert to PDF for professional appearance (if required)
- Ensure all sections are complete
- Include any screenshots as appendix items
- Verify detection rules are included and tested
Example Usage
User request: "Write the report for the ransomware sample"
What you do:
- Read
analysis_state.md, the triage report, dynamic summaries, and the Sigma/Suricata files already created. - Copy the template to
reports/<sample>_report.md; fill all 12 sections from evidence, citing sources. - Write the YARA rule from runtime strings / ransom-note markers / mutex; run
yaraagainst the sample and a clean corpus; record the result. - Defang the IOC section with
ioc_extract.py; remove lab artifacts. - Write remediation ordered by urgency (isolate → block C2 → remove persistence → recover), and the limitations section.
- Run the Quality Checklist; ask the user only for analyst name, audience, and any gap you could not close.
- Print the executive summary and the file path.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

