
Zero-dependency, sub-second Windows live digital forensics & incident response (DFIR) triage engine for USB responders.
Zero-dependency, sub-second Windows live digital forensics and incident response (DFIR) triage engine designed for rapid USB responders.
During live incident response, time and stealth are everything. Traditional triage scripts suffer from critical vulnerabilities:
History databases via Windows file sharing handles (dwShareMode), causing standard collectors to crash or fail unless the browser is forcefully terminated (destroying volatile memory evidence).OmniTriage solves this cleanly: built from the ground up in 100% pure Python standard library (winreg, sqlite3, ctypes, subprocess, hashlib, struct). No pip install, no external binaries, zero disk noise, executing in under 1 second and generating an interactive, standalone dark-mode HTML report alongside structured JSON.
ConsoleHost_history.txt) with heuristic keyword flagging (IEX, DownloadString, mimikatz, bypass, vssadmin).Win+R dialog history).%TEMP%, %APPDATA%, and %LOCALAPPDATA% for suspicious binaries (.exe, .dll, .bat, .ps1, .vbs, .js, .scr)..lnk shortcut activity tracking.USBSTOR).HKCU and HKLM Run and RunOnce autostart keys.Startup directories.ipconfig /displaydns) to detect active Command & Control infrastructure (e.g. ngrok, duckdns, pastebin, discord webhooks).fDenyTSConnections) and Terminal Services logon sessions (Event ID 21/24/25).IEX, DownloadString, mimikatz, encodedcommand).10ts structure) directly from Windows Registry. Uncovers historical paths of deleted malware executables!schtasks) to detect suspicious automated triggers running out of %TEMP%, %APPDATA%, or Users\Public.Triage_<HOST>_<TIMESTAMP>.html) with zero CDN dependencies (completely offline capable).Triage_<HOST>_<TIMESTAMP>.json) ready for SIEM ingestion (Splunk, Elastic, Sentinel).| MITRE ATT&CK ID | Tactic | Technique | OmniTriage Collector |
|---|---|---|---|
| T1059.001 | Execution | PowerShell Command History & ScriptBlocks | execution.py, remote_exec.py |
| T1021 | Lateral Movement | Remote Services (RDP, WinRM) | collectors/remote_exec.py |
| T1071.004 | Command & Control | DNS Domain Resolutions | collectors/dns_cache.py |
| T1204 | Execution | User Execution (RunMRU / UserAssist / ShimCache) | execution.py, shimcache.py |
| T1053.005 | Persistence | Scheduled Task Persistence | collectors/tasks.py |
| T1070 | Anti-Forensics | Indicator Removal on Host (Log Clearing) | collectors/event_logs.py |
| T1543.003 | Persistence | Windows Service Creation (Event 7045) | collectors/event_logs.py |
| T1036 | Defense Evasion | Masquerading in %TEMP% / %APPDATA% | collectors/filesystem.py |
| T1547.001 | Persistence | Registry Run Keys / Startup Folder | collectors/persistence.py |
| T1082 | Discovery | System Information & InstallDate | collectors/sysinfo.py |
| T1049 | Discovery | System Network Connections & Wi-Fi | collectors/network.py |
| T1005 | Collection | Browser Data & Download Logs | collectors/browser.py |
| T1005 | Collection | Browser Data & Download Logs | collectors/browser.py |
OmniTriage/
├── collectors/
│ ├── __init__.py
│ ├── sysinfo.py # OS build, InstallDate/Format date, Uptime (GetTickCount64), RAM
│ ├── execution.py # PowerShell history, RunMRU, UserAssist (ROT13), BAM
│ ├── browser.py # Chrome, Edge, Brave SQLite lock bypass & download records
│ ├── network.py # Wi-Fi SSIDs, USBSTOR device history, active TCP sockets
│ ├── filesystem.py # Executables/scripts in %TEMP%, SHA-256 hashing, Recent .lnk
│ └── persistence.py # Registry Run/RunOnce keys & Startup folder audit
├── reporters/
│ ├── __init__.py
│ ├── json_reporter.py # Normalized JSON serialization
│ └── html_reporter.py # Standalone dark-mode HTML dashboard
├── omnitriage.py # Main CLI orchestrator & banner
├── run_usb_triage.bat # One-click USB rapid response launcher
├── LICENSE # MIT License
└── README.md
git clone https://github.com/prox0959/OmniTriage.git
cd OmniTriage
python omnitriage.py
Copy the OmniTriage folder onto an incident response USB drive. When plugged into a target machine, execute:
run_usb_triage.bat
Or directly via command-line:
python omnitriage.py --out D:\Evidence\Case_101
options:
-h, --help show this help message and exit
--out OUT, -o OUT Output directory for reports (default: triage_output)
--quick, -q Quick mode (skips deep file hashing)
--json-only Only produce JSON report
--html-only Only produce interactive HTML dashboard
--no-browser Skip browser history acquisition
--no-fs Skip staging directory filesystem scans
--lang {en,tr} Console output language (default: en)
____ _ _____ _
/ __ \____ ___ ____ (_)__ \_ __(_) __ _ __ _ ___
/ / / / __ `__ \/ __ \/ / / /\/ '__/ / _` |/ _` |/ _ \
/ /_/ / / / / / / / / / / / / | | / / (_| | (_| | __/
\____/_/ /_/ /_/_/ /_/_/ \/ |_|/_/ \__,_|\__, |\___|
|___/
[::] OmniTriage v1.0.0 | Pure Python DFIR Live Triage Engine
[::] Author: Çınar (prox0959) | Zero External Dependencies
[*] Starting live forensic acquisition on target system...
[*] Destination: C:\Forensics\Case_01
[*] Acquiring OS telemetry, InstallDate, and Uptime...
[+] Host: DESKTOP-IR01 | User: analyst
[+] OS: Windows 10 Home (Build: 26200.9457)
[+] Windows Format/Install Date: 2026-07-03 16:31:44
[+] System Uptime: 0d 6h 52m (Boot: 2026-09-24 17:29:51)
[*] Collecting program execution evidence (PowerShell, RunMRU, UserAssist)...
[+] PowerShell history: 89 commands (0 flagged)
[+] RunMRU (Win+R history): 2 items
[+] UserAssist GUI applications: 100 items decoded
[*] Bypassing SQLite locks & harvesting browser history...
[+] Browser activity: 300 URLs, 19 downloads acquired
[*] Harvesting Wi-Fi profiles, USB connection history, and active sockets...
[+] Wi-Fi & Network Profiles: 2 profiles discovered
[+] Historical USB storage devices: 3 drives logged
[+] Active TCP sockets: 139 connections
[*] Scanning staging directories (%TEMP%, %APPDATA%) for suspicious executables...
[+] Executables in %TEMP%: 40 found
[+] Recent shortcut items: 40 items
[*] Auditing autostart persistence mechanisms (Run/RunOnce, Startup)...
[+] Registry Run/RunOnce keys: 20 entries
[+] Startup folder items: 4 files
[*] Compiling forensic reports...
[+] JSON Report written: C:\Forensics\Case_01\Triage_DESKTOP-IR01_20260925_002236.json (193.21 KB)
[+] HTML Dashboard written: C:\Forensics\Case_01\Triage_DESKTOP-IR01_20260925_002236.html (88.56 KB)
=================================================================
[+] Forensic acquisition completed in 0.24 seconds.
=================================================================
This software is developed strictly for authorized digital forensics, incident response, system auditing, and educational research. Always obtain proper authorization and consent prior to acquiring artifacts on any computer system.
This project is licensed under the MIT License - authored by Çınar (@prox0959).