Motor de triaje DFIR (forense digital y respuesta a incidentes) en vivo para Windows, sin dependencias y en menos de un segundo, para respondedores USB.
Motor de triaje DFIR (informática forense y respuesta a incidentes) para Windows en vivo, sin dependencias y en menos de un segundo, diseñado para respondedores USB rápidos.
Durante la respuesta a incidentes en vivo, el tiempo y el sigilo lo son todo. Los scripts de triaje tradicionales adolecen de vulnerabilidades críticas:
History mediante identificadores de uso compartido de archivos de Windows (dwShareMode), lo que provoca que los recolectores estándar fallen o se bloqueen a menos que el navegador se termine por la fuerza (destruyendo evidencia volátil en memoria).OmniTriage lo resuelve de forma limpia: construido desde cero en 100% biblioteca estándar de Python pura (winreg, sqlite3, ctypes, subprocess, hashlib, struct). Sin pip install, sin binarios externos, cero ruido en disco, ejecutándose en menos de 1 segundo y generando un informe HTML interactivo e independiente en modo oscuro junto con JSON estructurado.
ConsoleHost_history.txt) con marcado heurístico de palabras clave (IEX, DownloadString, mimikatz, bypass, vssadmin).Win+R).%TEMP%, %APPDATA% y %LOCALAPPDATA% en busca de binarios sospechosos (.exe, .dll, .bat, .ps1, .vbs, .js, .scr)..lnk recientes de Windows.USBSTOR).Run y RunOnce de HKCU y HKLM.Startup de usuario y sistema.ipconfig /displaydns) para detectar infraestructura activa de Comando y Control (p. ej. ngrok, duckdns, pastebin, discord webhooks).fDenyTSConnections) y las sesiones de inicio de sesión de Terminal Services (Event ID 21/24/25).IEX, DownloadString, mimikatz, encodedcommand).estructura 10ts) directamente desde el Registro de Windows. ¡Descubre rutas históricas de ejecutables de malware eliminados!schtasks) para detectar desencadenantes automatizados sospechosos que se ejecutan desde %TEMP%, %APPDATA% o Users\Public.Triage_<HOST>_<TIMESTAMP>.html) sin dependencias de CDN (totalmente funcional sin conexión).Triage_<HOST>_<TIMESTAMP>.json) listo para ingesta en SIEM (Splunk, Elastic, Sentinel).| MITRE ATT&CK ID | Táctica | Técnica | Recolector de OmniTriage |
|---|---|---|---|
| T1059.001 | Ejecución | Historial de comandos de PowerShell y ScriptBlocks | execution.py, remote_exec.py |
| T1021 | Movimiento lateral | Servicios remotos (RDP, WinRM) | collectors/remote_exec.py |
| T1071.004 | Comando y Control | Resoluciones de dominio DNS | collectors/dns_cache.py |
| T1204 | Ejecución | Ejecución por el usuario (RunMRU / UserAssist / ShimCache) | execution.py, shimcache.py |
| T1053.005 | Persistencia | Persistencia de tareas programadas | collectors/tasks.py |
| T1070 | Antiforense | Eliminación de indicadores en el host (borrado de registros) | collectors/event_logs.py |
| T1543.003 | Persistencia | Creación de servicios de Windows (Evento 7045) | collectors/event_logs.py |
| T1036 | Evasión de defensas | Enmascaramiento en %TEMP% / %APPDATA% | collectors/filesystem.py |
| T1547.001 | Persistencia | Claves Run del Registro / Carpeta de inicio | collectors/persistence.py |
| T1082 | Descubrimiento | Información del sistema e InstallDate | collectors/sysinfo.py |
| T1049 | Descubrimiento | Conexiones de red del sistema y Wi-Fi | collectors/network.py |
| T1005 | Recolección | Datos del navegador y registros de descargas | collectors/browser.py |
| T1005 | Recolección | Datos del navegador y registros de descargas |
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
Copia la carpeta OmniTriage en una unidad USB de respuesta a incidentes. Cuando se conecte a una máquina objetivo, ejecuta:
run_usb_triage.bat
O directamente desde la línea de comandos:
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.
=================================================================
Este software se desarrolla estrictamente para informática forense autorizada, respuesta a incidentes, auditoría de sistemas e investigación educativa. Obtén siempre la autorización y el consentimiento adecuados antes de adquirir artefactos en cualquier sistema informático.
Este proyecto está licenciado bajo la Licencia MIT - autoría de Çınar (@prox0959).
collectors/browser.py |