
Strumento forense per NTFS (parser, mft, bitlocker, file cancellati)
NTFSTool è uno strumento forense focalizzato sui volumi NTFS. Supporta la lettura delle informazioni sulle partizioni (MBR, tabella delle partizioni, VBR) ma anche informazioni su Master File Table, volumi crittografati con Bitlocker, file crittografati con EFS, journal USN e altro.
Scarica gli ultimi binari su AppVeyor o controllando gli ultimi artefatti su GitHub.
Vedi sotto per alcuni esempi delle funzionalità!
Una documentazione alternativa realizzata da deepwiki è disponibile qui: https://deepwiki.com/thewhiteninja/ntfstool/
NTFSTool mostra la struttura completa del master boot record, volume boot record, tabella delle partizioni e record file $MFT. È anche possibile scaricare qualsiasi file (anche $MFT o SAM) o analizzare e analizzare il journal USN, LogFile inclusi i flussi da Alternate Data Stream (ADS). $MFT può essere scaricato come csv o json con l'analisi di Zone.Identifier per identificare rapidamente i file scaricati. Il comando undelete cercherà qualsiasi record file contrassegnato come "non in uso" e ti permetterà di recuperare il file (o parte del file se è già stato riscritto). Supporta l'input da file immagine, disco live o virtuale come VeraCrypt e TrueCrypt, ma puoi anche usare strumenti come OSFMount per montare l'immagine del disco. Sono supportati anche file sparsi e compressi (lznt1, xpress).
Per le partizioni crittografate con Bitlocker, può mostrare i record FVE, verificare una password e una chiave (bek, password, chiave di ripristino), estrarre VMK e FVEK. Non esiste una funzionalità di brute force perché l'attacco basato su GPU è migliore (vedi Bitcracker e Hashcat) ma puoi ottenere l'hash per questi strumenti.
Le masterkey, le chiavi private e i certificati possono essere elencati, visualizzati e decifrati utilizzando gli input necessari (SID, password). I certificati con chiavi private possono essere esportati utilizzando il comando backup.
Reimporta il backup su un'altra macchina per poter leggere di nuovo il tuo file crittografato!
Oppure puoi usare il comando efs.decrypt per decifrare un file usando la chiave di backup.
Maggiori informazioni su Mimikatz Wiki
I record del journal USN possono essere analizzati utilizzando regole personalizzate per rilevare programmi e azioni sospetti ma anche per avere una panoramica del journal (% di file eliminati, creati ...)
Regole predefinite: Rules/default.json``` { "id": "lsass-dump", "description": "Dumped LSASS.exe process.", "severity": "high", "rule": { "filename": "lsass(\.(dmp|dump))?" } }
Vedi un esempio di esecuzione qui: [usn.analyze](#usn-analyze)
### Shell
C'è una shell limitata con pochi comandi (exit, cd, ls, cat, pwd, cp, quit, rec).
Il comando `rec` mostra i dettagli del record MFT.
## Aiuto ed Esempi
Il comando di aiuto mostra descrizione ed esempi per ogni comando.
Le opzioni possono essere inserite come numero decimale o esadecimale con prefisso "0x" (es: inode).
ntfstool help [command]
| Comando | Descrizione |
| --- | --- |
| [info](#info) | Mostra informazioni per tutti i dischi e volumi |
| [mbr](#mbr) | Mostra struttura MBR, codice e partizioni per un disco |
| [gpt](#gpt) | Mostra struttura GPT, codice e partizioni per un disco |
| [vbr](#vbr) | Mostra struttura VBR e codice per un volume specificato (ntfs, fat32, fat1x, bitlocker supportati) |
| [extract](#extract) | Estrai un file da un volume. |
| [image](#image) | Crea un file immagine di un disco o volume. |
| [mft.dump](#mft-dump) | Scarica il file $MFT nel formato specificato: csv, json, raw. |
| [mft.record](#mft-record) | Mostra i dettagli del record FILE per un inode MFT specificato. Quasi tutti i tipi di attributo supportati |
| [mft.btree](#mft-btree) | Mostra il contenuto VCN e l'indice Btree per un inode |
| [bitlocker.info](#bitlocker-info) | Mostra informazioni e hash ($bitlocker$) per tutti i VMK. Testa una password o chiave di ripristino. |
| [bitlocker.decrypt](#bitlocker-decrypt) | Decifra un volume in un file usando password, chiave di ripristino o bek. |
| [bitlocker.fve](#bitlocker-fve) | Mostra informazioni per il blocco FVE specificato. |
| [efs.backup](#efs-backup) | Esporta le chiavi EFS in formato PKCS12 (pfx). |
| [efs.decrypt](#efs-decrypt) | Decifra file crittografato EFS usando chiavi in formato PKCS12 (pfx). |
| [efs.certificate](#efs-certificate) | Elenca, mostra ed esporta i certificati di sistema (SystemCertificates/My/Certificates). |
| [efs.key](#efs-key) | Elenca, mostra, decifra ed esporta le chiavi private (Crypto/RSA). |
| [efs.masterkey](#efs-masterkey) | Elenca, mostra e decifra le masterkey (Protect). |
| [reparse](#reparse) | Analizza e mostra i punti di reparse da \$Extend\$Reparse. |
| [logfile.dump](#logfile-dump) | Scarica il file $LogFile nel formato specificato: csv, json, raw. |
| [usn.analyze](#usn-analyze) | Analizza il file $UsnJrnl con regole specificate. Output: csv o json. |
| [usn.dump](#usn-dump) | Scarica il file $UsnJrnl nel formato specificato: csv, json, raw. |
| [shadow](#shadow) | Elenca gli snapshot dei volumi shadow dal disco e volume selezionati. |
| [streams](#streams) | Mostra gli Alternate Data Streams |
| [undelete](#undelete) | Cerca ed estrae file eliminati per un volume. |
| [shell](#shell-1) | Avvia una shell limitata simile a Unix |
| [smart](#smart) | Mostra dati S.M.A.R.T |
## Limitazioni
- Alcuni casi non supportati. WIP.
- Nessuna documentazione :no_mouth:.
Sentiti libero di aprire una segnalazione o richiedere una nuova funzionalità!
## Compilazione
- Installa [Visual Studio 2022](https://visualstudio.microsoft.com/fr/vs/)
- Installa vcpkg (per le librerie di terze parti richieste) come descritto qui: [vcpkg#getting-started](https://github.com/microsoft/vcpkg#getting-started)
```
git clone https://github.com/microsoft/vcpkg
.\vcpkg\bootstrap-vcpkg.bat
```
- Integralo nel tuo ambiente VisualStudio:
```
vcpkg integrate install
```