Codex

linux-forensics

Generalized Linux incident response and forensic analysis covering Debian/Ubuntu, RHEL/CentOS/Rocky, and SUSE families

104 stars

Best use case

linux-forensics is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

It is a strong fit for teams already working in Codex.

Generalized Linux incident response and forensic analysis covering Debian/Ubuntu, RHEL/CentOS/Rocky, and SUSE families

Teams using linux-forensics should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/linux-forensics/SKILL.md --create-dirs "https://raw.githubusercontent.com/jmagly/aiwg/main/.agents/skills/linux-forensics/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/linux-forensics/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How linux-forensics Compares

Feature / Agentlinux-forensicsStandard Approach
Platform SupportCodexLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Generalized Linux incident response and forensic analysis covering Debian/Ubuntu, RHEL/CentOS/Rocky, and SUSE families

Which AI agents support this skill?

This skill is designed for Codex.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

Related Guides

SKILL.md Source

# linux-forensics

Performs structured forensic analysis on Linux systems, adapting collection and verification procedures to the detected distribution family. Covers Debian/Ubuntu (apt/debsums), RHEL/CentOS/Rocky (rpm), and SUSE (zypper/rpm). Produces a findings document aligned with NIST SP 800-86 collection ordering.

## Triggers


Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):

- "ir" / "incident response" for Linux → generalized Linux forensics
- "DFIR" → Digital Forensics and Incident Response
- "triage [host]" → host-level forensic triage

## Purpose

Linux distributions differ in package managers, log file paths, service managers, and integrity verification tools. A forensic workflow that hardcodes Debian paths will miss evidence on RHEL systems and vice versa. This skill detects the distribution family at runtime and selects appropriate tooling, producing consistent output regardless of target distro.

## Behavior

When triggered, this skill:

1. **Detect distribution family**:
   - Read `/etc/os-release` — check `ID_LIKE` and `ID` fields
   - Classify as: `debian` (Debian, Ubuntu, Mint), `rhel` (RHEL, CentOS, Rocky, AlmaLinux, Fedora), `suse` (openSUSE, SLES)
   - Fall back to generic Linux procedures if family is unknown

2. **Verify package integrity**:
   - Debian family: `debsums -c 2>/dev/null | grep -v OK` — lists files failing checksum
   - RHEL family: `rpm -Va 2>/dev/null | grep -v '^......G'` — lists changed attributes
   - SUSE family: `rpm -Va 2>/dev/null` (same as RHEL; rpm is the package tool)
   - Flag any modified files in system binary directories (`/bin`, `/sbin`, `/usr/bin`, `/usr/sbin`, `/lib`)

3. **Collect authentication and authorization evidence**:
   - Debian: `/var/log/auth.log`, `/var/log/auth.log.1`
   - RHEL/SUSE: `/var/log/secure`, `/var/log/secure-*`
   - All families: `journalctl -u sshd --no-pager -n 5000`
   - Parse for: failed logins, sudo usage, su activity, PAM events, cron authentication

4. **Audit scheduled tasks**:
   - System cron: `/etc/crontab`, `/etc/cron.d/`, `/etc/cron.{hourly,daily,weekly,monthly}/`
   - User cron tables: `for u in $(cut -d: -f1 /etc/passwd); do crontab -l -u $u 2>/dev/null; done`
   - Systemd timers: `systemctl list-timers --all`
   - At jobs: `atq 2>/dev/null`

5. **Review persistence mechanisms**:
   - Init scripts: `/etc/init.d/` (SysV), `/etc/rc.local`
   - Systemd units added by non-package managers: compare unit file mtimes against package database
   - PAM modules: `/etc/pam.d/` — check for unexpected `pam_exec.so` or `pam_python.so` entries
   - LD_PRELOAD abuse: `/etc/ld.so.preload`, per-user `.bashrc`/`.profile` exports

6. **Examine recently modified files**:
   - `find /etc /usr /bin /sbin /tmp /var/tmp -newer /proc/1 -not -path '/proc/*' -not -path '/sys/*' -ls 2>/dev/null`
   - `find /home /root -name '.*' -newer /proc/1 -ls 2>/dev/null` — hidden files in home dirs
   - Flag SUID/SGID binaries not owned by root: `find / -perm /6000 -not -user root 2>/dev/null`

7. **Inspect network state and processes**:
   - Listening services: `ss -tlnp`
   - Established connections with process ownership: `ss -tnp state established`
   - Open files per process: `lsof -nP -i 2>/dev/null | grep ESTABLISHED`
   - Processes without a backing file on disk: `ls -la /proc/*/exe 2>/dev/null | grep '(deleted)'`

8. **Collect kernel and module state**:
   - Loaded modules: `lsmod`
   - Kernel parameters relevant to security: `sysctl -a 2>/dev/null | grep -E 'kptr_restrict|dmesg_restrict|yama|randomize'`
   - Check for unsigned or out-of-tree modules

9. **Write findings document**:
   - Save to `.aiwg/forensics/findings/<hostname>-linux.md`
   - Tag each finding with severity: INFO, SUSPICIOUS, MALICIOUS

## Usage Examples

### Example 1 — Remote investigation
```
linux forensics user@prod-api-01.example.com
```

### Example 2 — Local system
```
investigate linux server localhost
```

### Example 3 — RHEL target with elevated access
```
linux incident response root@192.0.2.100
```

## Output Locations

- Findings: `.aiwg/forensics/findings/<hostname>-linux.md`
- Package integrity report: `.aiwg/forensics/evidence/<hostname>-pkg-integrity.txt`
- Raw collection: `.aiwg/forensics/evidence/<hostname>-linux-raw.txt`

## Configuration

```yaml
linux_forensics:
  find_depth: 5
  log_lines: 5000
  flag_suid_non_root: true
  distro_families:
    debian:
      auth_log: /var/log/auth.log
      pkg_verify: debsums -c
    rhel:
      auth_log: /var/log/secure
      pkg_verify: "rpm -Va"
    suse:
      auth_log: /var/log/messages
      pkg_verify: "rpm -Va"
```

## References

- @$AIWG_ROOT/agentic/code/addons/aiwg-utils/rules/research-before-decision.md — Detect distribution family before selecting tooling; read /etc/os-release first
- @$AIWG_ROOT/agentic/code/frameworks/forensics-complete/rules/non-destructive.md — Never modify target system state; use read-only commands and copy-on-collect procedures
- @$AIWG_ROOT/agentic/code/frameworks/forensics-complete/rules/volatility-order.md — Collect volatile process and network state before disk artifacts
- @$AIWG_ROOT/agentic/code/frameworks/forensics-complete/rules/red-flag-escalation.md — Escalate immediately when active malicious processes, rootkit indicators, or live attacker sessions are found
- @$AIWG_ROOT/agentic/code/frameworks/forensics-complete/skills/evidence-preservation/SKILL.md — Preserve and hash collected log files before analysis

Related Skills

supply-chain-forensics

104
from jmagly/aiwg

SBOM analysis, build pipeline forensics, and dependency verification covering package integrity, build reproducibility, and CI/CD pipeline tampering

Codex

memory-forensics

104
from jmagly/aiwg

Volatility 3 memory forensics workflows covering acquisition with LiME and WinPmem, and structured analysis using Volatility 3 plugin reference

Codex

forensics-triage

104
from jmagly/aiwg

Quick triage investigation following RFC 3227 volatility order

Codex

forensics-timeline

104
from jmagly/aiwg

Build correlated event timeline from multiple sources

Codex

forensics-status

104
from jmagly/aiwg

Show investigation status dashboard

Codex

forensics-report

104
from jmagly/aiwg

Generate forensic investigation report

Codex

forensics-profile

104
from jmagly/aiwg

Build target system profile via SSH or cloud API enumeration

Codex

forensics-ioc

104
from jmagly/aiwg

Extract and enrich indicators of compromise

Codex

forensics-investigate

104
from jmagly/aiwg

Full multi-agent investigation workflow

Codex

forensics-hunt

104
from jmagly/aiwg

Threat hunt using Sigma rules against log sources

Codex

forensics-acquire

104
from jmagly/aiwg

Evidence acquisition with chain of custody and hash verification

Codex

container-forensics

104
from jmagly/aiwg

Docker, containerd/CRI-O, and Kubernetes forensic investigation covering container inventory (docker and crictl), privilege checks, image verification, layer analysis (dive), escape detection, eBPF runtime monitoring (Falco, Tetragon, Tracee), K8s RBAC audit, etcd security audit, and API server audit log analysis

Codex