Skip to content
Back to skills

Scout

ASecurity

Use when firmware binary analysis, attack surface mapping, or endpoint discovery is needed for a target

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 10, 2026
securitypythongobashapisecurity

Works with

  • api

Security analysis

A100/100

Scanned September 10, 2026

npx -y skills add R00T-Kim/Terminator --skill scout --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scout?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Scout
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/r00t-kim-scout/badge)](https://www.skillsdirectory.com/skills/r00t-kim-scout)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: scout
description: Use when firmware binary analysis, attack surface mapping, or endpoint discovery is needed for a target
argument-hint: <firmware-path> [--rootfs <extracted-rootfs>] [--profile exploit] [--stages stage1,stage2]
---

# SCOUT — Firmware-to-Exploit Evidence Engine

SCOUT location: `/home/rootk1m/SCOUT`
Launcher: `/home/rootk1m/SCOUT/scout`
Runs output: `/home/rootk1m/SCOUT/aiedge-runs/`

## What SCOUT Does

Deterministic firmware analysis pipeline: firmware blob → unpack → profile → inventory → attack surface → findings → exploit chain evidence. Produces hash-anchored JSON artifacts at every stage.

```
Firmware blob → Extraction → Profile → Inventory → Surfaces → Findings → Handoff
```

## Pre-checks (auto-executed)

Firmware file info:
!`if [ -n "$1" ] && [ -e "$1" ]; then file "$1" 2>/dev/null && ls -lh "$1" 2>/dev/null; fi`

Recent SCOUT runs:
!`ls -lt /home/rootk1m/SCOUT/aiedge-runs/ 2>/dev/null | head -6 || echo "no runs yet"`

## Usage Patterns

### 1. Quick Deterministic Analysis (no LLM, most common)

```bash
/home/rootk1m/SCOUT/scout analyze <firmware.bin> \
  --ack-authorization --no-llm \
  --case-id <descriptive-id>
```

### 2. Analysis with Pre-extracted Rootfs (when binwalk extraction is weak)

```bash
/home/rootk1m/SCOUT/scout analyze <firmware.bin> \
  --ack-authorization --no-llm \
  --case-id <id> \
  --rootfs /path/to/extracted/rootfs
```

### 3. Specific Stages Only

```bash
# Available stages: tooling, extraction, structure, carving, firmware_profile,
#   inventory, endpoints, surfaces, graph, attack_surface, functional_spec,
#   threat_model, findings, llm_synthesis, dynamic_validation, emulation,
#   exploit_chain, exploit_autopoc, poc_validation, exploit_policy

/home/rootk1m/SCOUT/scout analyze <firmware.bin> \
  --ack-authorization --no-llm --case-id <id> \
  --stages tooling,extraction,structure,carving,firmware_profile,inventory
```

### 4. Rerun Stages on Existing Run

```bash
/home/rootk1m/SCOUT/scout stages /home/rootk1m/SCOUT/aiedge-runs/<run_id> \
  --no-llm --stages inventory,surfaces,findings
```

### 5. Full Exploit Profile (lab-gated, requires authorization)

```bash
/home/rootk1m/SCOUT/scout analyze <firmware.bin> \
  --ack-authorization --case-id <id> \
  --profile exploit \
  --exploit-flag lab \
  --exploit-attestation authorized \
  --exploit-scope lab-only
```

### 6. View Results

```bash
# TUI dashboard (interactive)
/home/rootk1m/SCOUT/scout tui /home/rootk1m/SCOUT/aiedge-runs/<run_id> --interactive

# TUI live-refresh
/home/rootk1m/SCOUT/scout tw /home/rootk1m/SCOUT/aiedge-runs/<run_id> -t 2

# One-shot summary
/home/rootk1m/SCOUT/scout to /home/rootk1m/SCOUT/aiedge-runs/<run_id>

# Web viewer
/home/rootk1m/SCOUT/scout serve /home/rootk1m/SCOUT/aiedge-runs/<run_id>
```

## Orchestrator Workflow

When user provides a firmware binary for analysis:

### Step 1: Run SCOUT Analysis

Execute SCOUT with appropriate flags. Default to `--no-llm` for deterministic results unless user requests LLM synthesis.

### Step 2: Read Key Artifacts

After SCOUT completes, read these artifacts from `aiedge-runs/<run_id>/`:

| Artifact | Path | Content |
|----------|------|---------|
| Profile | `stages/firmware_profile/firmware_profile.json` | OS type, arch, SDK, emulation feasibility |
| Inventory | `stages/inventory/inventory.json` | File/binary catalog, coverage metrics |
| Binary Analysis | `stages/inventory/binary_analysis.json` | Risky symbols, arch summary |
| Surfaces | `stages/surfaces/surfaces.json` | Network services, entry points |
| Source-Sink Graph | `stages/surfaces/source_sink_graph.json` | Taint path candidates |
| Findings | `stages/findings/pattern_scan.json` | Structured vulnerability findings |
| Kill Chains | `stages/findings/chains.json` | Complete attack path hypotheses |
| CVE Matches | `stages/findings/known_disclosures.json` | Known CVE matches |
| Web UI | `stages/web_ui/web_ui.json` | JS/HTML security patterns |
| Handoff | `firmware_handoff.json` | Contract for Terminator pipeline |

### Step 3: Summarize for User

Present findings organized by severity:
1. **Critical/High** findings with kill-chain paths
2. **Attack surface** summary (services, endpoints, entry points)
3. **Profile** (OS, arch, SDK, emulation feasibility)
4. **Recommended next steps** (Terminator tribunal, dynamic validation, manual review)

### Step 4: Handoff to Terminator (if warranted)

When findings are promising, use `firmware_handoff.json` to feed into Terminator's firmware pipeline:
```
fw-profiler → fw-inventory → fw-surface → fw-validator
```

## Run Directory Structure

```
aiedge-runs/<timestamp>_<sha256-prefix>/
├── manifest.json                    # input identity + policy
├── firmware_handoff.json            # handoff contract
├── stages/
│   ├── extraction/                  # extracted filesystem
│   ├── firmware_profile/            # OS/arch/SDK classification
│   ├── inventory/                   # file catalog + binary analysis
│   ├── surfaces/                    # attack surface + source-sink graph
│   ├── web_ui/                      # JS/HTML security patterns
│   └── findings/                    # vulnerabilities + kill chains
└── report/
    ├── report.json                  # aggregated report
    └── viewer.html                  # browser viewer
```

## Environment Variables

| Variable | Purpose | Default |
|----------|---------|---------|
| `AIEDGE_PORTSCAN_TOP_K` | Port scan top-K | 1000 |
| `AIEDGE_PORTSCAN_BUDGET_S` | Port scan timeout | 120 |
| `AIEDGE_PRIV_RUNNER` | Privileged command prefix | (none) |
| `AIEDGE_LLM_CHAIN_TIMEOUT_S` | LLM synthesis timeout | 180 |
| `AIEDGE_LLM_CHAIN_MAX_ATTEMPTS` | LLM synthesis retries | 5 |

## Verification Scripts

```bash
# Evidence integrity
python3 /home/rootk1m/SCOUT/scripts/verify_analyst_digest.py --run-dir <run_dir>
python3 /home/rootk1m/SCOUT/scripts/verify_aiedge_analyst_report.py --run-dir <run_dir>

# Verified chain gates
python3 /home/rootk1m/SCOUT/scripts/verify_verified_chain.py --run-dir <run_dir>
python3 /home/rootk1m/SCOUT/scripts/verify_run_dir_evidence_only.py --run-dir <run_dir>
```

## Key Rules

1. **`--ack-authorization` is MANDATORY** for every analysis
2. **All artifact paths are run-dir-relative** — absolute paths in outputs are bugs
3. **No finding without evidence** — every finding requires file path, offset, hash, rationale
4. **Stages fail open, governance fails closed** — partial results over crashes, but promotion gates reject incomplete evidence
5. **`confirmed` status requires dynamic evidence** — no exceptions
6. **Exploit profile requires 3 extra flags**: `--exploit-flag lab --exploit-attestation authorized --exploit-scope lab-only`

## Gotchas
- Missing `--ack-authorization` flag causes immediate failure on authorized targets
- Without `--no-llm`, LLM API timeout on air-gapped environments blocks the entire pipeline
- Large firmware (>500MB) may exhaust /tmp — check disk space before extraction

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.