plugins/forensics/skills/forensics-profile/SKILL.md
Build target system profile via SSH or cloud API enumeration
npx skillsauth add jmagly/aiwg forensics-profileInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build a comprehensive system profile of the target by enumerating OS details, running services, user accounts, installed packages, network configuration, and security controls. The profile establishes a baseline for subsequent investigation stages.
/forensics-profile <target> [options]
| Argument | Required | Description |
|----------|----------|-------------|
| target | Yes | SSH connection string (ssh://user@host:port) or cloud target (aws://account-id/region) |
| --output | No | Custom output directory (default: .aiwg/forensics/profiles/<hostname>-<date>/) |
| --deep | No | Perform deep enumeration including package inventory and kernel config |
| --cloud | No | Cloud provider context: aws, azure, or gcp |
| --no-network | No | Skip network enumeration (faster, less intrusive) |
| --format | No | Output format: markdown (default) or json |
When invoked, this command:
Parse Target
System Enumeration
User and Account Inventory
/etc/passwd/etc/sudoers and sudoers.d entriesNetwork Baseline
Security Control Assessment
Save Profile Artifact
system-profile.md with structured findingssystem-profile.json for machine processing/forensics-profile ssh://[email protected]:22
/forensics-profile ssh://[email protected] --deep --output .aiwg/forensics/profiles/web-server/
/forensics-profile aws://123456789012/us-east-1 --cloud aws
/forensics-profile ssh://analyst@host --format json
Artifacts are saved to .aiwg/forensics/profiles/<hostname>-<date>/:
.aiwg/forensics/profiles/web01-2026-02-27/
├── system-profile.md # Human-readable profile
├── system-profile.json # Machine-readable profile
├── acquisition-log.yaml # Timing and metadata
└── checksums.sha256 # Integrity hashes
Profiling Target: 192.168.1.50
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 1: Connecting to target
Connected via SSH ([email protected]:22)
OS detected: Ubuntu 22.04.3 LTS (kernel 5.15.0-91)
Step 2: System enumeration
Hostname: web01.internal
Uptime: 47 days, 3 hours
Architecture: x86_64
Running services: 23 active units
Installed packages: 412
Step 3: User inventory
Total accounts: 28 (4 with shell access)
Privileged users: root, deploy
Sudo group members: admin, deploy
Active sessions: 2
Step 4: Network baseline
Interfaces: eth0 (10.0.1.50/24), lo
Listening ports: 22 (sshd), 80 (nginx), 443 (nginx), 3306 (mysqld)
Active connections: 14 established
Firewall: ufw active (12 rules)
Step 5: Security controls
auditd: active
fail2ban: active (3 jails)
AppArmor: enforcing (18 profiles)
SSH: password auth disabled, key-only
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Profile complete.
Output: .aiwg/forensics/profiles/web01-2026-02-27/
Next Steps:
/forensics-triage ssh://[email protected] - Capture volatile data
/forensics-investigate ssh://[email protected] --scope full
data-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.