
의존성 없는, 1초 미만의 Windows 실시간 디지털 포렌식 및 사고 대응(DFIR) 트리아지 엔진으로, USB 응답자용입니다.
의존성 없는, 1초 미만의 Windows 라이브 디지털 포렌식 및 사고 대응(DFIR) 트리아지 엔진으로, 신속한 USB 대응 장치를 위해 설계되었습니다.
라이브 사고 대응 중에는 시간과 은밀함이 전부입니다. 기존 트리아지 스크립트는 다음과 같은 치명적인 취약점을 가지고 있습니다:
dwShareMode)을 통해 SQLite History 데이터베이스를 잠그기 때문에, 브라우저를 강제 종료하지 않는 한(휘발성 메모리 증거 파괴) 표준 수집기가 충돌하거나 실패합니다.OmniTriage는 이를 깔끔하게 해결합니다: 100% 순수 Python 표준 라이브러리(winreg, sqlite3, ctypes, subprocess, hashlib, struct)로 처음부터 구축되었습니다. pip install도, 외부 바이너리도, 디스크 노이즈도 없으며, 1초 미만에 실행되어 대화형 독립형 다크 모드 HTML 보고서와 구조화된 JSON을 함께 생성합니다.
ConsoleHost_history.txt)과 휴리스틱 키워드 플래깅(IEX, DownloadString, mimikatz, bypass, vssadmin).Win+R 대화 상자 기록).%TEMP%, %APPDATA%, %LOCALAPPDATA%에서 의심스러운 바이너리(.exe, .dll, , , , , )를 스캔합니다.OmniTriage/
├── collectors/
│ ├── __init__.py
│ ├── sysinfo.py # OS 빌드, InstallDate/Format 날짜, 가동 시간 (GetTickCount64), RAM
│ ├── execution.py # PowerShell 기록, RunMRU, UserAssist (ROT13), BAM
│ ├── browser.py # Chrome, Edge, Brave SQLite 잠금 우회 및 다운로드 기록
│ ├── network.py # Wi-Fi SSID, USBSTOR 장치 기록, 활성 TCP 소켓
│ ├── filesystem.py # %TEMP% 내 실행 파일/스크립트, SHA-256 해싱, 최근 .lnk
│ └── persistence.py # 레지스트리 Run/RunOnce 키 및 시작 폴더 감사
├── reporters/
│ ├── __init__.py
│ ├── json_reporter.py # 정규화된 JSON 직렬화
│ └── html_reporter.py # 독립형 다크 모드 HTML 대시보드
├── omnitriage.py # 메인 CLI 오케스트레이터 및 배너
├── run_usb_triage.bat # 원클릭 USB 신속 대응 런처
├── LICENSE # MIT 라이선스
└── README.md
git clone https://github.com/prox0959/OmniTriage.git
cd OmniTriage
python omnitriage.py
OmniTriage 폴더를 사고 대응 USB 드라이브에 복사합니다. 대상 머신에 연결한 후 다음을 실행합니다:
run_usb_triage.bat
또는 명령줄을 통해 직접:
python omnitriage.py --out D:\Evidence\Case_101
options:
-h, --help 이 도움말 메시지를 표시하고 종료합니다
--out OUT, -o OUT 보고서 출력 디렉터리 (기본값: triage_output)
--quick, -q 빠른 모드 (심층 파일 해싱 건너뜀)
--json-only JSON 보고서만 생성
--html-only 대화형 HTML 대시보드만 생성
--no-browser 브라우저 기록 수집 건너뜀
--no-fs 스테이징 디렉터리 파일 시스템 스캔 건너뜀
--lang {en,tr} 콘솔 출력 언어 (기본값: 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.
=================================================================
이 소프트웨어는 승인된 디지털 포렌식, 사고 대응, 시스템 감사 및 교육 연구를 위해 엄격히 개발되었습니다. 모든 컴퓨터 시스템에서 아티팩트를 수집하기 전에 항상 적절한 승인과 동의를 받으십시오.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - **Çınar (@prox0959)**가 작성했습니다.
.bat.ps1.vbs.js.scr.lnk 바로 가기 활동 추적.USBSTOR를 통한 Vendor, Product ID, 일련번호).HKCU 및 HKLM의 Run 및 RunOnce 자동 시작 키를 감사합니다.Startup 디렉터리를 검사합니다.ngrok, duckdns, pastebin, discord webhooks)를 탐지하기 위해 라이브로 확인된 DNS 항목(ipconfig /displaydns)을 가져옵니다.fDenyTSConnections) 및 터미널 서비스 로그온 세션(이벤트 ID 21/24/25)을 감사합니다.IEX, DownloadString, mimikatz, encodedcommand)에 대한 PowerShell ScriptBlock 로깅(이벤트 4104) 분석.10ts 구조)를 파싱합니다. 삭제된 악성코드 실행 파일의 과거 경로를 밝혀냅니다!schtasks)을 감사하여 %TEMP%, %APPDATA%, 또는 Users\Public 외부에서 실행되는 의심스러운 자동 트리거를 탐지합니다.Triage_<HOST>_<TIMESTAMP>.html)(완전 오프라인 가능).Triage_<HOST>_<TIMESTAMP>.json).| MITRE ATT&CK ID | 전술 | 기법 | OmniTriage 수집기 |
|---|
| T1059.001 | 실행 | PowerShell 명령 기록 및 ScriptBlocks | execution.py, remote_exec.py |
| T1021 | 측면 이동 | 원격 서비스 (RDP, WinRM) | collectors/remote_exec.py |
| T1071.004 | 명령 및 제어 | DNS 도메인 확인 | collectors/dns_cache.py |
| T1204 | 실행 | 사용자 실행 (RunMRU / UserAssist / ShimCache) | execution.py, shimcache.py |
| T1053.005 | 지속성 | 예약된 작업 지속성 | collectors/tasks.py |
| T1070 | 안티 포렌식 | 호스트에서 지표 제거 (로그 삭제) | collectors/event_logs.py |
| T1543.003 | 지속성 | Windows 서비스 생성 (이벤트 7045) | collectors/event_logs.py |
| T1036 | 방어 회피 | %TEMP% / %APPDATA%에서의 위장 | collectors/filesystem.py |
| T1547.001 | 지속성 | 레지스트리 Run 키 / 시작 폴더 | collectors/persistence.py |
| T1082 | 탐색 | 시스템 정보 및 InstallDate | collectors/sysinfo.py |
| T1049 | 탐색 | 시스템 네트워크 연결 및 Wi-Fi | collectors/network.py |
| T1005 | 수집 | 브라우저 데이터 및 다운로드 로그 | collectors/browser.py |
| T1005 | 수집 | 브라우저 데이터 및 다운로드 로그 | collectors/browser.py |