mcpField
A
analyzing-powershell-script-block-logging

analyzing-powershell-script-block-logging

github.com/mukul975Security35.2k307 installsUpdated 8w ago
Repository

About analyzing-powershell-script-block-logging

A security skill for SOC analysts investigating PowerShell Script Block Logging and developing detection or threat-hunting procedures. It guides parsing Event ID 4104, rebuilding split scripts, and assessing suspicious patterns.

Key features

  1. 01Parse Event ID 4104 logs
  2. 02Reconstruct multi-part scripts
  3. 03Detect encoding and download patterns
  4. 04Identify AMSI bypass and obfuscation
  5. 05Generate risk and ATT&CK reports

Use cases

  1. 01Investigate PowerShell-related security incidents
  2. 02Create detection rules and hunting queries
  3. 03Check monitoring coverage for attack techniques

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill analyzing-powershell-script-block-logging

After installing, type/analyzing-powershell-script-block-loggingin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

LICENSE
references/
api-reference.md
scripts/
agent.py

Details

From the project README

Analyzing PowerShell Script Block Logging

When to Use

  • When investigating security incidents that require analyzing powershell script block logging
  • When building detection rules or threat hunting queries for this domain
  • When SOC analysts need structured procedures for this analysis type
  • When validating security monitoring coverage for related attack techniques

Prerequisites

  • Familiarity with security operations concepts and tools
  • Access to a test or lab environment for safe execution
  • Python 3.8+ with required dependencies installed
  • Appropriate authorization for any testing activities

Instructions

  1. Install dependencies: pip install python-evtx lxml
  2. Collect PowerShell Operational logs: Microsoft-Windows-PowerShell%4Operational.evtx
  3. Parse Event ID 4104 entries using python-evtx to extract ScriptBlockText, ScriptBlockId, and MessageNumber/MessageTotal for multi-part script reconstruction.
  4. Apply detection heuristics:
    • Base64-encoded commands (-EncodedCommand, FromBase64String)
    • Download cradles (DownloadString, DownloadFile, Invoke-WebRequest, Net.WebClient)
    • AMSI bypass patterns (AmsiUtils, amsiInitFailed)
    • Obfuscation indicators (high entropy, tick-mark insertion, string concatenation)
  5. Generate a report with reconstructed scripts, risk scores, and MITRE ATT&CK mappings.
python scripts/agent.py --evtx-file /path/to/PowerShell-Operational.evtx --output ps_analysis.json

Examples

Detect Encoded Command Execution
import base64
if "-encodedcommand" in script_text.lower():
    encoded = script_text.split()[-1]
    decoded = base64.b64decode(encoded).decode("utf-16-le")
Reconstruct Multi-Block Script

Scripts split across multiple 4104 events share a ScriptBlockId. Concatenate blocks ordered by MessageNumber to recover the full script.

Comments

Markdown supported