Vulnify is a PowerShell tool that automatically identifies and tests vulnerable Windows kernel drivers from the LOTL API list created by @TevelSho.
⚠️ Vulnify is just a quick PoC. Breaking changes may be made to APIs and also there are many known bugs and issues.
Vulnify source code available here and can be cloned using git clone
:
git clone https://github.com/tevelsho/vulnify.git
After cloing the project we are going to need to change the current directory to the cloned repository:
cd vulnify
After following the steps above we need to install the needed dependecies for the script to run.
Ensure that PowerShell 7 or higher is installed.
Ensure that VS Code PowerShell extension is installed.
Due to PowerShell version and admin privilege limitations, the tool was divided into two scripts: vulnify.ps1
for filtering and loader.ps1
for loading.
Navigate to the directory where the PowerShell scripts are located at:
cd scripts
Allow script execution in PowerShell:
Set-ExecutionPolicy RemoteSigned
Run Vulnify:
./vulnify.ps1
_ ____ ____ _ ______________ __
| | / / / / / / / | / / _/ ____/\ \/ /
| | / / / / / / / |/ // // /_ \ /
| |/ / /_/ / /___/ /| // // __/ / /
|___/\____/_____/_/ |_/___/_/ /_/
one driver at a time
Vulnify [Version: 1.0.0]
Usage:
./vulnify.ps1 [flags]
Flags:
-dd <date> filter by full creation date (yy-mm-dd)
-u <usecase> filter by exploit use case
-h help for Vulnify
Examples:
./vulnify.ps1 -a
./vulnify.ps1 -dd "2023-05-06" -u "Elevate privileges"
Note: vulnify.ps1
automatically calls loader.ps1
once it has finish running. If the script breaks halfway, either re-run the script OR run the loader with the folder (full path) containing the vulnerable drivers:
.\loader.ps1 -f "C:\Users\Admin\vulnify\vulnerable_LOTL_drivers"
Vulnify works well on the latest Window's Machines (23H2). It's recommended to use the latest versions possible to avoid issues.
If you run into issues, check the Known Issues.
Driver Filtering
- Creation Date
- Use Case
Bug | Description | Severity |
---|---|---|
Blue Screen of Death (BSOD) | Returns a SYSTEM_THREAD_EXCEPTION_NOT_HANDLED error due to internal driver issues or system threads failing to handle exceptions.Requires a full machine restart, breaking the script |
High |
Failure to Fetch API Data | Returns a 404 Not Found error.Breaks the script due to improper handling |
Medium |
Instance of a Driver already Running | Error message indicating the driver file cannot be accessed as it is in use by another process. Doesn't break the script |
Low |
- Enhanced filtering (e.g., by year)
- Auto-stop and remove vulnerable drivers post-testing
- Save MD5 hashes of vulnerable drivers to a file for crash recovery
- Improved dynamic error handling
To contribute to Vulnify, please open a pull-request!
Please do not open any issues regarding those in Known Issues.