fabriren/fiuto

GitHub: fabriren/fiuto

一款用于离线Windows磁盘的DFIR自动化取证工具,整合38+模块并输出HTML报告,加速事件响应与调查。

Stars: 6 | Forks: 0

# FIUTO 🔍 ## 🇬🇧 English Version **FIUTO** (**F**orensic **I**nvestigation **U**tility **T**ool for **O**ffline) is a unified DFIR (Digital Forensics and Incident Response) toolkit for comprehensive offline Windows disk analysis. It automates the extraction and analysis of 38+ critical forensic artifacts, generating detailed HTML reports for rapid and effective investigations. ## 📋 Key Features ### Comprehensive Windows Artifact Coverage FIUTO collects and analyzes: - **Execution histories** (Prefetch, AmCache, ShimCache, BAM) - **Persistence artifacts** (Run Keys, Scheduled Tasks, Services, WMI) - **Navigation history** (Browser history, URL MRU, TypedPaths) - **User activity** (UserAssist, ShellBags, LNK files, JumpLists) - **Network artifacts** (Interfaces, DNS cache, WLAN/VPN profiles) - **Windows event logs** (Security, System, PowerShell, RDP) - **Virtual memory** (Pagefile, Hibernation, SRUM) - **Removable devices** (USB history, connection timeline) - **Active Directory** (NTDS.dit, domain hashes, PAD offline analysis) - **And much more...** ### Flexible Execution Modes ``` ./fiuto.sh # Interactive menu ./fiuto.sh /mnt/windows # Specify Windows volume root ./fiuto.sh /mnt/windows --all # Run all modules ./fiuto.sh /mnt/windows --module 3 # Run specific module ``` ### Professional Output - Interactive and navigable HTML reports - Aggregated chronological timelines - Detailed logs for audit and tracking - Batch summaries with execution metrics ## 🛠️ Dependencies ### System Requirements - **Bash 4.0+** - **Python 3.9+** (with multi-version compatibility) - **Linux (or WSL) or macOS** (for mounting/analyzing offline Windows disks) ### Required Python Modules ``` pip install regipy # Offline registry hive parsing pip install python-evtx # Reading .evtx files ``` ### Support Scripts The script uses internal bash helpers for: - Binary Windows file parsing - FILETIME timestamp decoding - Proprietary format metadata extraction ## 📦 Installation 1. **Clone the repository** git clone https://github.com/fabriren/fiuto.git cd fiuto 2. **Make the script executable** chmod +x fiuto.sh 3. **Install Python dependencies** pip install regipy python-evtx # On macOS with Homebrew: # python3 -m pip install --user regipy python-evtx 4. **Mount the Windows disk (example)** # On Linux with ntfs-3g sudo mount -t ntfs-3g -o ro /dev/sda3 /mnt/windows # On macOS sudo mount -t ntfs -o rdonly /dev/disk0s3 /mnt/windows ## 🚀 Quick Start Guide ### Interactive Analysis ``` ./fiuto.sh /mnt/windows ``` The script will present a numbered menu with 38 available modules. Select the module number or type `--all` to run them all. ### Automated Batch Analysis ``` ./fiuto.sh /mnt/windows --all ``` Runs all modules sequentially, generates a final summary, and saves reports to `fiuto_reports/`. ### Single Module ``` ./fiuto.sh /mnt/windows --module 12 ``` Runs only module 12 (Event Log in our example). ### Output Generated reports are located in: ``` fiuto_reports/ ├── 001_PSReadLine_History.html ├── 002_IFEO.html ├── 012_Event_Log.html ├── ... └── 38_PAD_Offline.html ``` ## 📊 The 38 Analysis Modules | # | Module Name | Windows Artifact | Usage | |---|---|---|---| | 1 | PowerShell PSReadLine History | PSReadLine history file | Retrieve executed commands and sensitive strings | | 2 | IFEO | Registry SOFTWARE | Detect executable manipulation | | 3 | BAM | Registry SYSTEM | Timeline of background executions | | 4 | RDP Cache | Terminal Server Client Cache | Reconstruct RDP sessions | | 5 | Run Keys & Persistence | Registry NTUSER.DAT, SOFTWARE | Detect backdoors and malware | | 6 | Prefetch | Windows/Prefetch/*.pf | Program execution history | | 7 | Notepad TabState | AppData Packages | Recover unsaved text | | 8 | Scheduled Tasks | Windows/System32/Tasks | Find scheduled droppers | | 9 | USB/Devices | Registry SYSTEM | USB device insertion history | | 10 | LNK & JumpList | AppData Recent | Recently used files | | 11 | Services | Registry SYSTEM | Anomalous or custom services | | 12 | Event Log | Windows/System32/winevt/Logs/*.evtx | Logins, RDP, suspicious activity | | 13 | Amcache + Shimcache | Amcache.hve, Registry | Execution history with hashes | | 14 | Recycle Bin | $Recycle.Bin | Recover deleted files | | 15 | WMI Subscriptions | OBJECTS.DATA | Fileless persistence | | 16 | SRUM | SRUDB.dat | Resource consumption by app | | 17 | Browser History | SQLite History/places | Web navigation | | 18 | UserAssist + MRU | Registry NTUSER.DAT | GUI-launched apps | | 19 | ShellBags | Registry NTUSER.DAT/UsrClass | Folder navigation | | 20 | SAM Hash | Windows/System32/config/SAM | NTLM hashes of local accounts | | 21 | MFT Timeline | $MFT | Granular NTFS changes | | 22 | OpenSaveMRU | Registry NTUSER.DAT | Open/save file history | | 23 | USN Journal | $UsnJrnl:$J | Massive file system activity | | 24 | NTDS.dit | ntds.dit, Registry SYSTEM | Domain user hashes | | 25 | Hibernation/Pagefile | hiberfil.sys, pagefile.sys | Memory dump analysis | | 26 | WER Files | WER Report Archive | System crashes and errors | | 27 | Credential Manager | Credentials DPAPI | Saved network credentials | | 28 | WLAN & VPN Profiles | Wlansvc Profiles | SSIDs and VPN profiles | | 29 | AppX / UWP Packages | AppData/Local/Packages | Installed modern apps | | 30 | Browser Downloads & Logins | SQLite databases | Downloads and credentials | | 31 | Clipboard History | ActivitiesCache.db | Clipboard history | | 32 | Office MRU & Recent | NTUSER.DAT, AppData | Recently opened documents | | 33 | Defender Quarantine | Quarantine folder | Identified threats | | 34 | PowerShell Script Block | Event Log 4104 | Executed scripts | | 35 | JumpLists | Recent Destinations | App user interaction | | 36 | Network Artifacts | Registry SYSTEM | DNS, interfaces, networks | | 37 | Master Timeline | (Aggregated) | Cross-artifact timeline | | 38 | PAD Offline | NTDS.dit | Advanced Active Directory | ## 🔍 Use Cases ### Malware Investigations Use persistence modules (Run Keys, Services, WMI) to find backdoors, and PowerShell logs to track obfuscated payload execution. ### Incident Response Combine BAM, Prefetch, and Event Logs to build an accurate timeline of what was executed and when, helping identify patient zero. ### Compliance & Audit Extract network activity (SRUM, DNS) and RDP access (RDP Cache, Event Logs) to demonstrate who accessed which systems. ### Ransomware Forensics Analyze USN Journal, MFT Timeline, Recycle Bin, and Browser Downloads to trace infection spread and origins. ### Threat Hunting Use USB history, WLAN/VPN profiles, and web navigation to uncover data exfiltration or communication with suspicious IPs. ## ⚙️ Advanced Options ### Specify User ``` ./fiuto.sh /mnt/windows --user Administrator ``` Focus analysis on a specific user. ### Load IoC List ``` ./fiuto.sh /mnt/windows --ioc /path/to/ioc_list.txt ``` Scan artifacts for matches with indicators of compromise. ### Silent Mode ``` ./fiuto.sh /mnt/windows --all --silent ``` Run without interactive output (useful for automated scripts). ## 📄 Report Output Each module generates an HTML report with: - **Structured data table** that sortable and filterable - **Timeline** with UTC timestamps and decoded FILETIME values - **Highlighting** of suspicious elements (passwords, tokens, obfuscated commands) - **Metadata** (hashes, absolute paths, involved accounts) - **Forensic notes** on how to interpret results ### Example Report ``` ┌─ Report: Event Log (Module 12) │ ├─ Timespan: 2025-03-15 08:30:00 UTC → 2025-04-14 17:42:00 UTC ├─ Total Events: 12,847 ├─ Critical Events: 8 │ ├─ Suspicious PowerShell: 3 │ ├─ Failed RDP Logins: 4 │ └─ Service Installs: 1 │ └─ Top Events ├─ [08:45:32] EID 4688 - Process Created: powershell.exe -NoP -W H -C "IEX ..." ├─ [14:22:15] EID 4768 - Kerberos Auth Failure: Administrator └─ ... ``` ## 🐛 Troubleshooting ### Error: "regipy module not found" ``` # Install for correct Python version python3 -m pip install regipy # Or check which Python has regipy: which python3 | xargs python3 -c "import regipy; print('OK')" ``` ### Read-only file system The script opens the disk in read-only mode (`-o ro`) by default. It never modifies the analyzed system. ### Permission denied on some files Some artifacts (SAM, NTDS.dit) may require elevated privileges: ``` sudo ./fiuto.sh /mnt/windows --all ``` ### Reports not generated Verify the `fiuto_reports/` directory exists and is writable: ``` mkdir -p fiuto_reports chmod 755 fiuto_reports ``` ## 📝 Logging The script creates a detailed session log in: ``` fiuto_reports/session_YYYY-MM-DD_HH-MM-SS.log ``` Useful for debugging and audit trail: ``` tail -f fiuto_reports/session_*.log ``` ## ⚖️ License This project is **free** and distributed under the **MIT License**. ## 👤 Author Created by **zi®iginal** for the DFIR community. ## 📚 Recommended Resources - [SANS Windows Artifact Analysis](https://www.sans.org) - [Plaso - Timeline log2timeline](https://plaso.readthedocs.io) - [Registry Explorer](https://www.sans.org/tools/registry-explorer/) - [KAPE - Kroll Artifact Parser](https://www.kroll.com/en/services/cyber-risk/incident-response-forensics/kape) - [Hayabusa - Windows Event Log Analysis](https://github.com/Yamato-Security/hayabusa) ## ⚠️ Legal Disclaimer FIUTO is a tool to accelerate legitimate digital forensic analysis, intended for authorized offline analysis. It must be used **only** on systems you have the legal right to analyze. Unauthorized use may violate privacy and data protection laws. **We are not responsible for:** - Unauthorized or illegal tool usage - Privacy or data protection violations - Direct or indirect damages from using fiuto # 🇮🇹 Versione Italiana **FIUTO** (**F**orensic **I**nvestigation **U**tility **T**ool for **O**ffline) è un toolkit DFIR (Digital Forensics and Incident Response) unificato per l'analisi completa di dischi Windows offline. Automatizza l'estrazione e l'analisi di 38+ artefatti critici in ottica forense digitale, generando report HTML dettagliati per investigazioni rapide ed efficaci. ## 📋 Caratteristiche Principali ### Copertura Completa di Artefatti Windows FIUTO raccoglie e analizza: - **Cronologie di esecuzione** (Prefetch, AmCache, ShimCache, BAM) - **Artefatti di persistenza** (Run Keys, Scheduled Tasks, Services, WMI) - **Cronologia di navigazione** (Browser history, URL MRU, TypedPaths) - **Attività utente** (UserAssist, ShellBags, LNK files, JumpLists) - **Artefatti di rete** (Interfacce, cache DNS, profili WLAN/VPN) - **Log eventi di Windows** (Security, System, PowerShell, RDP) - **Memoria virtuale** (Pagefile, Hibernation, SRUM) - **Dispositivi rimovibili** (Cronologia USB, storia delle connessioni) - **Active Directory** (NTDS.dit, hash domain, PAD offline analysis) - **E molto altro...** ### Modalità di Esecuzione Flessibili ``` ./fiuto.sh # Menu interattivo ./fiuto.sh /mnt/windows # Specifica la root del volume Windows ./fiuto.sh /mnt/windows --all # Esegui tutti i moduli ./fiuto.sh /mnt/windows --module 3 # Esegui un modulo specifico ``` ### Output Professionale - Report HTML interattivi e navigabili - Timeline cronologiche aggregate - Log dettagliati per audit e tracciamento - Riepilogati batch con metriche di esecuzione ## 🛠️ Dipendenze ### Requisiti di Sistema - **Bash 4.0+** - **Python 3.9+** (con module di compatibilità multiple versioni) - **Linux (anche WSL) o macOS** (per montare/analizzare dischi Windows offline) ### Moduli Python Richiesti ``` pip install regipy # Parsing degli hive di registro offline pip install python-evtx # Lettura dei file .evtx ``` ### Script di Supporto Lo script utilizza internamente helper bash per: - Parsing di file binari Windows - Decodifica di timestamp FILETIME - Estrazione di metadati da formati proprietari ## 📦 Installazione 1. **Clona il repository** git clone https://github.com/fabriren/fiuto.git cd fiuto 2. **Rendi eseguibile lo script** chmod +x fiuto.sh 3. **Installa le dipendenze Python** pip install regipy python-evtx # Su macOS con Homebrew: # python3 -m pip install --user regipy python-evtx 4. **Monta il disco Windows (esempio)** # Su Linux con ntfs-3g sudo mount -t ntfs-3g -o ro /dev/sda3 /mnt/windows # Su macOS sudo mount -t ntfs -o rdonly /dev/disk0s3 /mnt/windows ## 🚀 Guida Rapida ### Analisi Interattiva ``` ./fiuto.sh /mnt/windows ``` Il sistema presenterà un menu numerato con i 38 moduli disponibili. Seleziona il numero del modulo o digita `--all` per eseguirli tutti. ### Analisi Batch Automatica ``` ./fiuto.sh /mnt/windows --all ``` Esegue tutti i moduli sequenzialmente, genera un riepilogo finale e salva i report in `fiuto_reports/`. ### Singolo Modulo ``` ./fiuto.sh /mnt/windows --module 12 ``` Esegue solo il modulo 12 (Event Log nel nostro esempio). ### Output I report generati si trovano in: ``` fiuto_reports/ ├── 001_PSReadLine_History.html ├── 002_IFEO.html ├── 012_Event_Log.html ├── ... └── 38_PAD_Offline.html ``` ## 📊 I 38 Moduli di Analisi | # | Nome Modulo | Artefatto Windows | Utilizzo | |---|---|---|---| | 1 | PowerShell PSReadLine History | PSReadLine history file | Recupera comandi eseguiti e stringhe sensibili | | 2 | IFEO | Registry SOFTWARE | Rilevare manipolazioni di eseguibili di sistema | | 3 | BAM | Registry SYSTEM | Timeline di esecuzioni in background | | 4 | RDP Cache | Terminal Server Client Cache | Ricostruire sessioni RDP | | 5 | Run Keys & Persistenza | Registry NTUSER.DAT, SOFTWARE | Rilevare backdoor e malware | | 6 | Prefetch | Windows/Prefetch/*.pf | Cronologia esecuzione programmi | | 7 | Notepad TabState | AppData Packages | Recuperare testo non salvato | | 8 | Scheduled Tasks | Windows/System32/Tasks | Trovar dropper temporizzati | | 9 | USB/Dispositivi | Registry SYSTEM | Storico inserimento supporti USB | | 10 | LNK & JumpList | AppData Recent | File usati recentemente | | 11 | Services | Registry SYSTEM | Servizi anomali o custom | | 12 | Event Log | Windows/System32/winevt/Logs/*.evtx | Login, RDP, attività sospette | | 13 | Amcache + Shimcache | Amcache.hve, Registry | Cronologia esecuzione con hash | | 14 | Recycle Bin | $Recycle.Bin | Recuperare file cancellati | | 15 | WMI Subscriptions | OBJECTS.DATA | Persistenza fileless | | 16 | SRUM | SRUDB.dat | Consumo risorse per app | | 17 | Browser History | SQLite History/places | Navigazione web | | 18 | UserAssist + MRU | Registry NTUSER.DAT | App avviate GUI | | 19 | ShellBags | Registry NTUSER.DAT/UsrClass | Navigazione cartelle | | 20 | SAM Hash | Windows/System32/config/SAM | NTLM hash account locali | | 21 | MFT Timeline | $MFT | Granular NTFS changes | | 22 | OpenSaveMRU | Registry NTUSER.DAT | Cronologia file aperti/salvati | | 23 | USN Journal | $UsnJrnl:$J | Attività file system massicce | | 24 | NTDS.dit | ntds.dit, Registry SYSTEM | Hash utenti dominio | | 25 | Hibernation/Pagefile | hiberfil.sys, pagefile.sys | Memory dump analysis | | 26 | WER Files | WER Report Archive | Crash e errori di sistema | | 27 | Credential Manager | Credentials DPAPI | Credenziali di rete salvate | | 28 | WLAN & VPN Profiles | Wlansvc Profiles | SSID e profili VPN | | 29 | AppX / UWP Packages | AppData/Local/Packages | App Modern installate | | 30 | Browser Downloads & Logins | SQLite databases | Download e credenziali | | 31 | Clipboard History | ActivitiesCache.db | Cronologia appunti | | 32 | Office MRU & Recent | NTUSER.DAT, AppData | Documenti aperti recenti | | 33 | Defender Quarantine | Quarantine folder | Minacce identificate | | 34 | PowerShell Script Block | Event Log 4104 | Script eseguiti | | 35 | JumpLists | Recent Destinations | Interazione utente app | | 36 | Network Artifacts | Registry SYSTEM | DNS, interfacce, reti | | 37 | Master Timeline | (Aggregato) | Timeline cross-artefatto | | 38 | PAD Offline | NTDS.dit | Active Directory avanzato | ## 🔍 Casi d'Uso ### Indagini Malware Utilizza i moduli di persistenza (Run Keys, Services, WMI) per trovare backdoor, e i log di PowerShell per tracciare esecuzione di payload offuscati. ### Incident Response Combina BAM, Prefetch e Event Logs per costruire una timeline precisa di cosa è stato eseguito e quando, aiutando a identificare il paziente zero. ### Compliance & Audit Estrai l'attività di rete (SRUM, DNS) e gli accessi RDP (RDP Cache, Event Logs) per dimostrare chi ha accesso a quali sistemi. ### Ransomware Forensics Analizza USN Journal, MFT Timeline, Recycle Bin e Browser Downloads per tracciare la diffusione e le origini dell'infezione. ### Threat Hunting Usa la cronologia USB, i profili WLAN/VPN e la navigazione web per scoprire esfiltrazione di dati o comunicazioni con indirizzi IP sospetti. ## ⚙️ Opzioni Avanzate ### Specificare Utenti ``` ./fiuto.sh /mnt/windows --user Administrator ``` Focalizza l'analisi su un utente specifico. ### Carica Lista IoC ``` ./fiuto.sh /mnt/windows --ioc /path/to/ioc_list.txt ``` Scansiona gli artefatti per trovare match con indicatori di compromissione. ### Modalità Silenziosa ``` ./fiuto.sh /mnt/windows --all --silent ``` Esegui senza output interattivo (utile per script automatici). ## 📄 Output Report Ogni modulo genera un report HTML con: - **Tabella dati** strutturata e ordinabile - **Timeline** con timestamp UTC e valori FILETIME decodificati - **Evidenziazione** di elementi sospetti (password, token, comandi offuscati) - **Metadata** (hash, percorsi assoluti, account coinvolti) - **Note forensiche** su come interpretare i risultati ### Esempio Report ``` ┌─ Report: Event Log (Module 12) │ ├─ Timespan: 2025-03-15 08:30:00 UTC → 2025-04-14 17:42:00 UTC ├─ Total Events: 12,847 ├─ Critical Events: 8 │ ├─ Suspicious PowerShell: 3 │ ├─ Failed RDP Logins: 4 │ └─ Service Installs: 1 │ └─ Top Events ├─ [08:45:32] EID 4688 - Process Created: powershell.exe -NoP -W H -C "IEX ..." ├─ [14:22:15] EID 4768 - Kerberos Auth Failure: Administrator └─ ... ``` ## 🐛 Troubleshooting ### Errore: "regipy module not found" ``` # Installa per la versione Python corretta python3 -m pip install regipy # O controlla quale Python ha regipy: which python3 | xargs python3 -c "import regipy; print('OK')" ``` ### File system di sola lettura Il sistema apre il disco in modalità read-only (`-o ro`) per impostazione predefinita. Non modifica mai il sistema analizzato. ### Permessi negati su alcuni file Alcuni artefatti (SAM, NTDS.dit) potrebbero richiedere privilegi elevati: ``` sudo ./fiuto.sh /mnt/windows --all ``` ### Report non generati Verifica che la directory `fiuto_reports/` esista ed è scrivibile: ``` mkdir -p fiuto_reports chmod 755 fiuto_reports ``` ## 📝 Logging Lo script crea un log dettagliato di ogni sessione in: ``` fiuto_reports/session_YYYY-MM-DD_HH-MM-SS.log ``` Utile per debugging e audit trail: ``` tail -f fiuto_reports/session_*.log ``` ## 🤝 Contributi Se hai miglioramenti, segnalazioni di bug o moduli aggiuntivi: 1. Fork il repository 2. Crea un branch per la tua feature (`git checkout -b feature/nuovo-modulo`) 3. Commit i tuoi cambiamenti (`git commit -am 'Add nuovo modulo'`) 4. Push al branch (`git push origin feature/nuovo-modulo`) 5. Apri una Pull Request ## ⚖️ Licenza Questo progetto è **gratuito** e distribuito sotto licenza **MIT**. Se FIUTO ti è stato utile e vuoi supportarne lo sviluppo, una piccola donazione tramite PayPal è sempre apprezzata — ma assolutamente facoltativa! 🙏 [![Dona con PayPal](https://img.shields.io/badge/Dona-PayPal-blue.svg)](https://paypal.me/rendina) ## 👤 Autore Creato da **zi®iginal** per la community DFIR. ## 📚 Risorse Consigliate - [SANS Windows Artifact Analysis](https://www.sans.org) - [Plaso - Timeline log2timeline](https://plaso.readthedocs.io) - [Registry Explorer](https://www.sans.org/tools/registry-explorer/) - [KAPE - Kroll Artifact Parser](https://www.kroll.com/en/services/cyber-risk/incident-response-forensics/kape) - [Hayabusa - Windows Event Log Analysis](https://github.com/Yamato-Security/hayabusa) ## ⚠️ Disclaimer Legale FIUTO è uno strumento per velocizzare le analisi forensi digitale legittimo, da impiegarsi per analisi offline autorizzate. Deve essere utilizzato **solo** su sistemi di cui hai il diritto legale di analizzare. L'uso non autorizzato potrebbe violare le leggi sulla privacy e protezione dei dati. **Non siamo responsabili per:** - Uso non autorizzato o illegale dello strumento - Violazioni di privacy o protezione dati - Danni diretti o indiretti derivanti dall'uso di fiuto **Changelog:** **Date:** 2026-04-18 | **Version:** 1.1 Bug fix. **Date:** 2026-04-15 | **Version:** 1.0 First release. **Screenshot:** image image image image
标签:AmCache, BAM, Bash, DNS缓存, HTML报告, HTTPS请求, JumpLists, LNK文件, NTDS.dit, PAD离线分析, PowerShell日志, Prefetch, Python, python-evtx, RDP日志, regipy, Run Keys, ShellBags, ShimCache, SRUM, TypedPaths, URL MRU, USB历史, UserAssist, VPN, Windows取证, WLAN, WMI, 休眠文件, 域哈希, 安全日志, 应用安全, 数字取证, 无后门, 服务, 注册表分析, 浏览器历史, 磁盘分析, 离线取证, 系统日志, 自动化取证, 自动化脚本, 计划任务, 连接时间线, 逆向工具, 页面文件