
Outil de reconnaissance initiale des pilotes
J'écris cet outil pour apprendre le C++ et obtenir une évaluation initiale des pilotes installés sur un système Windows (par exemple, les images maîtres développées par les OEM ou les entreprises). Il est censé aider à la sélection des cibles, trouver des vulnérabilités évidentes, et apporter une aide à l'analyse binaire approfondie. Actuellement instable, en cours de développement actif.
J'ai utilisé une combinaison de DeviceTree, WinObjEx64 et WinDbg pour ces cas d'usage. C'est un processus manuel fastidieux qui ne passe pas facilement à l'échelle, donc DIRT tente simplement de le rendre plus pratique.
Cela devrait se compiler avec Visual Studio 2015 ou supérieur.
bcdedit -debug on dans une invite de commandes administrative.kldbgdrv.sys (trouvé avec WinDbg) dans le même répertoire que DIRT.exe.DIRT.exe > output.txt avec des privilèges administratifs.Les options --lp-only et --no-msft peuvent être utilisées pour filtrer les résultats.
Voici un exemple de sortie pour savoir à quoi s'attendre :
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
Il existe également une sortie CSV disponible en utilisant DIRT::Main::ExportCSV() :

Jackson Thuraisamy (2018). Le code est largement dérivé du projet WinObjEx64 par @hFireF0X.
MIT