
Strumento di ricognizione iniziale dei driver
Sto scrivendo questo strumento per imparare il C++ e ottenere una valutazione iniziale dei driver installati su un sistema Windows (ad es. immagini master sviluppate da OEM o aziende). Dovrebbe aiutare nella selezione dei target, nell'individuare i frutti a portata di mano e fornire assistenza nell'analisi binaria approfondita. Attualmente instabile, in fase di sviluppo attivo.
Ho utilizzato una combinazione di DeviceTree, WinObjEx64 e WinDbg per questi casi d'uso. È un processo manuale noioso che non scala facilmente, quindi DIRT tenta semplicemente di renderlo più comodo.
Dovrebbe compilarsi con Visual Studio 2015 o successivo.
bcdedit -debug on in un Prompt dei comandi amministrativo.kldbgdrv.sys (trovato con WinDbg) nella stessa directory di DIRT.exe.DIRT.exe > output.txt con privilegi amministrativi.Le opzioni --lp-only e --no-msft possono essere utilizzate per filtrare i risultati.
Di seguito un esempio di output per capire cosa aspettarsi:
DIRT v0.1.0: Driver Initial Reconnaisance Tool (@Jackson_T)
Repository: https://github.com/jthuraisamy/DIRT
Compiled on: Aug 22 2018 00:01:04
INFO: Hiding Microsoft drivers (--no-msft).
INFO: Only showing drivers that low-privileged users can interface with (--lp-only).
Capcom: Capcom
Path: C:\Windows\System32\Capcom.sys
DispatchDeviceControl: 0xFFFFF8024C9A0590
Devices: 1
└── \Device\Htsysm72FB (open DACL, 1 symlinks)
└── \\.\Global\Htsysm72FB
SmbDrvI: SmbDrvI (Synaptics Incorporated)
Path: C:\WINDOWS\System32\drivers\Smb_driver_Intel.sys - Hooked by Wdf01000 (Microsoft Corporation)
DispatchDeviceControl: 0xFFFFF808212C72B0
Devices: 1
└── \Device\SmbDriver (open DACL, 1 symlinks)
└── \\.\Global\SmbDriver
nvlddmkm: nvlddmkm
Path: C:\Windows\System32\DriverStore\FileRepository\nvlt.inf_amd64_ed3ba3fb30d4dd86\nvlddmkm.sys
DispatchDeviceControl: 0xFFFFF80822D074D0
Devices: 2
├── \Device\NvAdminDevice (open DACL, 1 symlinks)
│ └── \\.\Global\NvAdminDevice
└── \Device\UVMLiteController0x1 (open DACL, 1 symlinks)
└── \\.\Global\UVMLiteController
È disponibile anche un output CSV utilizzando DIRT::Main::ExportCSV():

Jackson Thuraisamy (2018). Il codice deriva in gran parte dal progetto WinObjEx64 di @hFireF0X.
MIT