agentic/code/frameworks/forensics-complete/skills/forensics-acquire/SKILL.md
Evidence acquisition with chain of custody and hash verification
npx skillsauth add jmagly/aiwg forensics-acquireInstall 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.
Collect and preserve forensic evidence from the target system with complete chain of custody documentation and SHA-256 hash verification. Supports selective acquisition of logs, configuration files, memory images, and disk artifacts.
/forensics-acquire <target> [options]
| Argument | Required | Description |
|----------|----------|-------------|
| target | Yes | SSH connection string (ssh://user@host:port) |
| --logs | No | Acquire system and application logs |
| --config | No | Acquire configuration files (SSH, cron, systemd, PAM) |
| --memory | No | Acquire memory image via /proc/kcore or LiME |
| --disk | No | Acquire disk image or filesystem artifacts |
| --all | No | Acquire all evidence types |
| --since | No | Acquire logs since timestamp (e.g., 2026-02-27T00:00:00Z) |
| --output | No | Output directory (default: .aiwg/forensics/acquisition/) |
| --cloud | No | Acquire cloud evidence (EBS snapshots, CloudTrail, Activity Logs, Audit Logs) |
| --container | No | Acquire container evidence (logs, filesystem exports, inspect data) |
| --compress | No | Compress evidence archives with gzip |
| --no-verify | No | Skip post-acquisition hash verification (not recommended) |
When invoked, this command:
Initialize Chain of Custody
EVD-<date>-<seq>)Log Acquisition (when --logs specified)
/var/log/auth.log, /var/log/secure/var/log/syslog, /var/log/messagesjournalctl full export/var/log/audit/audit.log--since timestamp if providedConfiguration Acquisition (when --config specified)
/etc/ssh/sshd_config and sshd_config.d/.ssh/authorized_keys files/etc/cron*, /var/spool/cron//etc/systemd/system/, /usr/lib/systemd/system/ (recently modified)/etc/pam.d//etc/sudoers, /etc/sudoers.d/.bashrc, .profile, .bash_profile for all usersMemory Acquisition (when --memory specified)
/proc/kcore (limited)Disk Artifact Acquisition (when --disk specified)
debugfs or extundeleteCloud Evidence Acquisition (when --cloud specified)
Container Evidence Acquisition (when --container specified)
docker logs), export filesystem (docker export), capture inspect metadata (docker inspect)Integrity Verification
Evidence Manifest
evidence-manifest.yaml with all artifact metadatacustody-log.yaml with full acquisition audit trail/forensics-acquire ssh://[email protected] --logs
/forensics-acquire ssh://[email protected] --logs --config
/forensics-acquire ssh://[email protected] --all
/forensics-acquire ssh://admin@host --logs --since 2026-02-26T18:00:00Z
/forensics-acquire ssh://admin@host --logs --config --compress
/forensics-acquire aws://account-id --cloud
/forensics-acquire ssh://admin@host --container
/forensics-acquire ssh://[email protected] --all --cloud --container
Artifacts are saved to .aiwg/forensics/acquisition/:
.aiwg/forensics/acquisition/
├── evidence-manifest.yaml # Complete artifact inventory with hashes
├── custody-log.yaml # Chain of custody audit trail
├── logs/
│ ├── auth.log.gz
│ ├── syslog.gz
│ ├── btmp.gz
│ ├── dpkg.log.gz
│ ├── journal-export.bin.gz
│ └── audit.log.gz
├── snapshots/
│ ├── login-history.txt
│ ├── failed-logins.txt
│ └── recently-modified.txt
├── config/
│ ├── sshd_config
│ ├── authorized_keys-<user>.txt
│ ├── crontabs/
│ └── sudoers/
├── images/
│ ├── disk.img
│ └── memory.raw
├── cloud/
│ ├── cloudtrail-events.json
│ ├── iam-credential-report.csv
│ ├── azure-activity-log.json
│ └── gcp-audit-log.json
├── containers/
│ ├── <container_id>-logs.txt
│ ├── <container_id>-filesystem.tar
│ └── <container_id>-inspect.json
└── checksums.sha256
Acquiring Evidence: 192.168.1.50
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Case ID: EVD-2026-02-27-001
Investigator: analyst@workstation
Start: 2026-02-27T14:39:02Z
Step 1: Log acquisition
auth.log (4.2 MB) sha256: a1b2c3... VERIFIED
syslog (12.8 MB) sha256: d4e5f6... VERIFIED
journal export (87.3 MB) sha256: 789abc... VERIFIED
audit.log (2.1 MB) sha256: def012... VERIFIED
nginx/access.log (34.2 MB) sha256: 345678... VERIFIED
Step 2: Configuration acquisition
/etc/ssh/sshd_config sha256: 9abcde... VERIFIED
authorized_keys (3 users) sha256: f01234... VERIFIED
/etc/crontab sha256: 567890... VERIFIED
/etc/sudoers sha256: abcdef... VERIFIED
Step 3: Integrity verification
14 artifacts collected
14/14 hashes verified
0 verification failures
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Acquisition complete.
Evidence: .aiwg/forensics/acquisition/
Manifest: .aiwg/forensics/acquisition/evidence-manifest.yaml
Custody: .aiwg/forensics/acquisition/custody-log.yaml
Total: 14 artifacts (140.6 MB)
Next Steps:
/forensics-investigate ssh://[email protected] --skip-stage acquire
/forensics-timeline .aiwg/forensics/findings/web01-2026-02-27/
# .aiwg/forensics/acquisition/custody-log.yaml
case_id: EVD-2026-02-27-001
target: 192.168.1.50
investigator: analyst@workstation
entries:
- artifact: auth.log
original_path: /var/log/auth.log
collected_at: "2026-02-27T14:39:15Z"
method: ssh-scp
sha256: a1b2c3d4e5f6...
size_bytes: 4404224
verified: true
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`.