- 
      
- 
        Save werybigmonk/9fea236f4c6fa1a81e99dec7f0025bb5 to your computer and use it in GitHub Desktop. 
    A quick script to check for vulnerable drivers. Compares drivers on system with list from loldrivers.io
  
        
  
    
      This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
      Learn more about bidirectional Unicode characters
    
  
  
    
  | # Simple script to check drivers in C:\windows\system32\drivers against the loldrivers list | |
| # Author: Oddvar Moe - @oddvar.moe | |
| # Fork changes: | |
| # Drivers can also reside in driverstore\filerepository subdir | |
| # To check them also, $drivers should be with -recurse and get-filehash from real file $drivers file rather than assumed system32 path with filename | |
| $drivers = get-childitem -Path c:\windows\system32\drivers -recurse | |
| $web_client = new-object system.net.webclient | |
| $loldrivers = $web_client.DownloadString(" https://www.loldrivers.io/api/drivers.json") | ConvertFrom-Json | |
| Write-output("Checking {0} drivers in C:\windows\system32\drivers\* against loldrivers.io json file" -f $drivers.Count) | |
| foreach ($lol in $loldrivers.KnownVulnerableSamples) | |
| { | |
| # Check for matching driver name | |
| if($drivers.Name -contains $lol.Filename) | |
| { | |
| #CHECK HASH | |
| $Hash = ( $drivers | where Name -eq $lol.Filename | Get-FileHash ) | |
| if($lol.Sha256 -eq $Hash.Hash) | |
| { | |
| write-output("The drivername {0} is vulnerable with a matching SHA256 hash of {1}" -f $lol.Filename, $lol.SHA256) | |
| } | |
| } | |
| } | 
  
    Sign up for free
    to join this conversation on GitHub.
    Already have an account?
    Sign in to comment