Giter Club home page Giter Club logo

loldrivers's Introduction

LOLDrivers - Living Off The Land Drivers 🚗💨

CI build Drivers

Welcome to LOLDrivers (Living Off The Land Drivers), an exciting open-source project that brings together vulnerable, malicious, and known malicious Windows drivers in one comprehensive repository. Our mission is to empower organizations of all sizes with the knowledge and tools to understand and address driver-related security risks, making their systems safer and more reliable.

Key Features

  • An extensive and well-organized collection of vulnerable and malicious Windows drivers
  • Continuously updated with the latest information on driver vulnerabilities and threats
  • Easy-to-navigate categories and indices for quick access to relevant information
  • Seamless integration with Sigma for proactive defense using hash prevention

How LOLDrivers Can Help Your Organization

  • Enhance visibility into vulnerable drivers within your infrastructure, fostering a stronger security posture
  • Stay ahead of the curve by being informed about the latest driver-related threats and vulnerabilities
  • Swiftly identify and address risks associated with driver vulnerabilities, minimizing potential damages
  • Leverage compatibility with Sigma to proactively block known malicious drivers by hash

Getting Started

To begin your journey with LOLDrivers, simply check out the LOLDrivers.io site or clone the repository and explore the wealth of information available in the categorized directories. We've designed the site to help you easily find the insights you need to protect your systems from vulnerable drivers.

To assist in speeding up the creating of a yaml file, check out loldrivers.streamlit.app

Support 📞

Please use the GitHub issue tracker to submit bugs or request features.

🤝 Contributing & Making PRs

Stay engaged with the LOLDrivers community by regularly checking for updates and contributing to the project. Your involvement will help ensure the project remains up-to-date and even more valuable to others.

Join us in our quest to create a safer and more secure digital environment for organizations everywhere. With LOLDrivers by your side, you'll be well-equipped to tackle driver-related security risks and confidently navigate the ever-evolving cyber landscape.

If you'd like to contribute, please follow these steps:

  1. Fork the repository
  2. Create a new branch for your changes
  3. Make your changes and commit them to your branch
  4. Push your changes to your fork
  5. Open a Pull Request (PR) against the upstream repository

For more detailed instructions, please refer to the CONTRIBUTING.md file. To create a new YAML file for a driver, use the provided YML-Template.

🚨 Sigma, Yara, ClamAV and Sysmon Detection

LOLDrivers provides comprehensive Sigma, Yara, ClamAV and Sysmon detection rules to help you effectively detect potential threats. To explore these rules in detail, navigate to the sigma, yara, av and sysmon directories under the detection folder. Also there is WDAC policy thanks to Florian Stosse and HotCakeX.

Happy hunting! 🕵️‍♂️

🔎 Windows Folder Scanning

The community has also created a PowerShell LOLDriver scanner courtesy of @Oddvarmoe, @M_haggis, and IISResetMe, that can help you identify potentially malicious drivers. The script, available here, allows you to scan a specified Windows folder for any suspicious files. We recommend running the script on directories such as:

C:\WINDOWS\inf
C:\WINDOWS\System32\drivers
C:\WINDOWS\System32\DriverStore\FileRepository

🏗️ Building and Testing Locally

Requirements

Steps to Build and Test Locally

  1. Clone the repository:
git clone https://github.com/magicsword-io/LOLDrivers.git
  1. Change to the project directory:
cd LOLDrivers
  1. Install dependencies:
poetry install
  1. Activate the virtual environment:
poetry shell
  1. Build the site using the files under the /yaml folder:
python bin/site.py
  1. Run the website locally:
cd loldrivers.io && hugo serve

loldrivers's People

Contributors

cbecks2 avatar cyberbuff avatar defencetech avatar dependabot[bot] avatar dru1d-foofus avatar goosvorbook avatar h4x5p4c3 avatar josehelps avatar k4otix avatar mhaggis avatar nasbench avatar neo23x0 avatar olafhartong avatar takahiroharuyama avatar whanos avatar zwclose avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

loldrivers's Issues

Add how to load untrusted code

Hi!

For a lot of the drivers listed, most of the commands for these drivers are:

sc.exe create ATSZIO64.sys binPath=C:\windows\temp\ATSZIO64.sys type=kernel && sc.exe start ATSZIO64.sys

This doesn't really explain why the driver is vulnerable and what is the issue with it.

For instance, one thing that would be super helpful for red teamers is a link to a what the actual issue with the driver is and how to get it to run attacker/untrusted code in Kernel (if that's the actual reason it's listed as vulnerable)

Some of these drivers are on 🔥

Hi,
I was introduced to this project yesterday and began some tests to see how they perform against Windows Defender Application Control policies and Microsoft Defender, here are my findings:

Part 1: Malicious files

One of the main problems is using the phrase Living Off The Land, which are supposed to be legitimate non-malicious files that can be misused to circumvent security solutions, but what I'm seeing is straight up malware that Microsoft Defender already detects and blocks.

So, to prevent redundancy, I suggest removing those files from the driver package and instead let default security solution take care of them.
For the rest of the files, there is automatic sample submission and the global MAPS and ISG networks that get notified about these files every time they are run.

Part 2: Non-Malicious files

These are another story. I couldn't find a clear reason for each file as to why it's labeled as LOLDriver.

The questions I'd have in mind (and most likely businesses/enterprises too) about each file is:

  • What role does it play in circumventing security measures?
  • Does it help bypass WDAC? (If so, it should be reported to Microsoft as well to be added to the official recommended block rules)
  • Is there a PoC for it bypassing security measures?
  • Does Smart App Control (that uses Intelligent Secure Graph) block them?
  • Are some of these drivers also included in Microsoft recommended driver block rules? (to prevent duplication when merging with a WDAC policy)

Microsoft Defender results after running all of the driver files, these are the ones I was referring to that are redundant:

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 27
DidThreatExecute : False
IsActive         : True
Resources        : 
RollupStatus     : 1
SchemaVersion    : 1.0.0.0
SeverityID       : 1
ThreatID         : 226944
ThreatName       : PUA:Win32/Kuping
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 27
DidThreatExecute : False
IsActive         : True
Resources        : 
RollupStatus     : 1
SchemaVersion    : 1.0.0.0
SeverityID       : 1
ThreatID         : 227008
ThreatName       : PUA:Win32/GameBox
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 27
DidThreatExecute : False
IsActive         : True
Resources        : 
RollupStatus     : 1
SchemaVersion    : 1.0.0.0
SeverityID       : 1
ThreatID         : 242420
ThreatName       : PUA:Win32/Presenoker
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 27
DidThreatExecute : False
IsActive         : True
Resources        : 
RollupStatus     : 1
SchemaVersion    : 1.0.0.0
SeverityID       : 1
ThreatID         : 311991
ThreatName       : PUADlManager:Win32/InstallCore
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 34
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147635777
ThreatName       : VirTool:WinNT/Rootkitdrv.HK
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 34
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147668298
ThreatName       : VirTool:WinNT/Exforel.A
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147722997
ThreatName       : Trojan:Win32/Ditertag.A
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 34
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 4
ThreatID         : 2147723443
ThreatName       : HackTool:Win64/CapRoot.A
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147735505
ThreatName       : Trojan:Win32/Wacatac.B!ml
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147750647
ThreatName       : Trojan:Win32/RootkitDrv!MSR
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147753900
ThreatName       : Trojan:Win32/Rootkit!MSR
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 97
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147754624
ThreatName       : Trojan:Win32/Tnega!MSR
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147762521
ThreatName       : Trojan:Win64/Tnega!MSR
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 97
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147805432
ThreatName       : Trojan:Win64/RootkitDrv!MSR
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147805996
ThreatName       : Trojan:Win64/Rootkit!MSR
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 97
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147814523
ThreatName       : Trojan:Win32/Wacatac.H!ml
TypeID           : 0

RunspaceId       : bca4d8af-c8df-4bf6-b486-9cfc82918041
CategoryID       : 8
DidThreatExecute : True
IsActive         : False
Resources        : 
RollupStatus     : 65
SchemaVersion    : 1.0.0.0
SeverityID       : 5
ThreatID         : 2147842086
ThreatName       : Trojan:Win64/BlackLotus!MSR
TypeID           : 0

The following drivers are blocked when Default Windows WDAC policy is deployed, A total of 431 drivers:

Download file: 👇👇

Blocked by Default Windows Policy.md


The script i used to automate the tests

Execution

$i = 0
(Get-ChildItem "C:\Users\Admin\Desktop\drivers").FullName | ForEach-Object {
New-Service -BinaryPathName $_ -Name "DriverTest$i" -Description $_ -StartupType Manual
Start-Service -Name "DriverTest$i" -ErrorAction SilentlyContinue
$i++
}

Increase Code Integrity Operational log size

$logName = 'Microsoft-Windows-CodeIntegrity/Operational'
$log = New-Object System.Diagnostics.Eventing.Reader.EventLogConfiguration $logName
$log.MaximumSizeInBytes = '50000000'
$log.IsEnabled = $true
$log.SaveChanges()

Logs gathering

$ScriptBlock = {
# Event Viewer Code Integrity logs scan
foreach ($event in Get-WinEvent -FilterHashtable @{LogName = 'Microsoft-Windows-CodeIntegrity/Operational'; ID = 3077 } -ErrorAction SilentlyContinue ) {
    $xml = [xml]$event.toxml()
    $xml.event.eventdata.data | ForEach-Object { $hash = @{} } { $hash[$_.name] = $_.'#text' } { [pscustomobject]$hash } |
    Select-Object -Property 'SHA256 Hash' , 'File Name', 'OriginalFileName', 'ProductName', 'InternalName', 'FileDescription', 'FileVersion', 'SHA1 Hash', 'USN'
}        
}
$Results = Invoke-Command -ScriptBlock $ScriptBlock
$Results
$Results | clip
Write-Host "A total of $($results.count) drivers have been blocked"

error with hugo serve

Hi, thank you for this amazing project, i'm trying to build a docker image and i've encountered an error during execution of "hugo serve":

(loldrivers-py3.11) root@7f85c1b3f792:/LOLDrivers/loldrivers.io# hugo serve
Start building sites … 
hugo v0.111.3+extended linux/amd64 BuildDate=2023-03-16T08:41:31Z VendorInfo=debian:0.111.3-1
Error: Error building site: "/LOLDrivers/loldrivers.io/content/_index.md:31:1": failed to extract shortcode: template for shortcode "block" not found
Built in 109 ms`

Any idea? Thanks

loldrivers.io is 404'ing on clicking through to individual search results

As a test, I'm trying: https://www.loldrivers.io/drivers/?query=amifldrv64.sys
which as you'll realize doesn't automatically apply the filter of amifldrv64.sys to the search results, which I suppose is a whole other issue altogether.

But the problem here is that if you click through on the file name (ID) or on the Category values, you'll get a 404'ing page:
https://www.loldrivers.io/drivers/drivers/6d4b0025-7910-483a-ba73-03970995edc3/
https://www.loldrivers.io/drivers/drivers/34fa6ba4-dc7c-4fd6-b947-8a0bb8ebd031/

Privileges spelled wrong

When you click on a driver from the home page, the table that lists it's use cases spells the word privileges incorrectly

Screenshot_20230406-133011.png

ClamAV hashes

In case this is useful to generate ClamAV hashes:

sigtool > LOLDrivers.hdb --sha256 *.bin

Example will look like:

LOLDrivers.hdb
06508aacb4ed0a1398a2b0da5fa2dbf7da435b56da76fd83c759a50a51c75caf:23744:0067c788e1cb174f008c325ebde56c22.bin

Format:
sha256_hash:filesize:signature_name

VersionInfo and utf-16le vs utf-16be

Hello,

While working on those LOL drivers, I noticed a few things:

  • several documentation files state that the VersionInfo strings come from the PE header, that is incorrect, as they come from a string table in the resources section
  • the yara-generator.py uses utf-16be instead of utf-16le to generate the hex encoded strings. This works because there usually is a zero byte before the string from the previous one, but should be fixed
  • a few rules only contain a FileVersion or ProductVersion from that string table. These might be too broad and could result in FPs

I can submit a PR for the first two points if desired, for the third point I guess it's up to you, but at least a sentence about it would be helpful.

Add Blackcat Drivers

https://www.trendmicro.com/en_us/research/23/e/blackcat-ransomware-deploys-new-signed-kernel-driver.html

https://www.virustotal.com/gui/file/56066ed07bad3b5c1474e8fae5ee2543d17d7977369b34450bd0775517e3b25c

https://www.trendmicro.com/content/dam/trendmicro/global/en/research/23/e/blackcat-ransomware-deploys-new-signed-kernel-driver/indicators-blackcat-ransomware-deploys-new-signed-kernel-driver.txt < for some reason doesn't contain all hashes

dkrtk.sys 91568d7a82cc7677f6b13f11bea5c40cf12d281b Trojan.Win64.VMPROTECT.R002C0RA
https://www.virustotal.com/gui/file/52d5c35325ce701516f8b04380c9fbdb78ec6bcc13b444f758fdb03d545b0677

fgme.sys 0bec69c1b22603e9a385495fbe94700ac36b28e5 Troj.Win32.TRX.XXPE50F13019
ktes.sys 5ed22c0033aed380aa154e672e8db3a2d4c195c4 Troj.Win32.TRX.XXPE50F13019
kt2.sys cb25a5125fb353496b59b910263209f273f3552d Troj.Win32.TRX.XXPE50F13019
ktgn.sys 994e3f5dd082f5d82f9cc84108a60d359910ba79 Rootkit.Win64.POORTRY.A

Vulnerable vs Malicious

hey guys! :)

it is more a question than anything else:
which criteria are you guys using to classify a driver as vulnerable or malicious?

in the recently talk by @MHaggis to the SANS DFIR Summit (great one btw 👌) he said "...malicious is something that the adversary created..."
in the same presentation, we can see 2 drivers being mentioned as an example:

Driver Category
zamguard64.sys/zam64.sys vulnerable
gmer64.sys malicious

but both could do the same nefarious thing (EDR/AV terminator) and the gmer64.sys wasn't created by an adversary, it actually belongs to a tool to detect rootkits (@MHaggis also explained this in the talk)

another odd example that I've recently seen being detected as malicious was wfshbr64.sys 🤔

Add SHA384 TBS hash

In some cases the Microsoft HVCI block list contains SHA384 of signature TBS issuer, would be useful to add that as well in the next version: 41d88e2

Add mEfEk.sys

https://news.sophos.com/en-us/2022/12/13/signed-driver-malware-moves-up-the-software-trust-chain/

9b1b15a3aacb0e786a608726c3abfc94968915cedcbd239ddf903c4a54bfcf0c 2022-07-27 21:05:11 Zhuhai liancheng Technology Co., Ltd.
42b22faa489b5de936db33f12184f6233198bdf851a18264d31210207827ba25 2022-08-09 14:07:45 Windows Hardware Compatibility Publisher
6839fcae985774427c65fe38e773aa96ec451a412caa5354ad9e2b9b54ffe6c1 2022-08-21 15:30:50 Windows Hardware Compatibility Publisher
7f4555a940ce1156c9bcea9a2a0b801f9a5e44ec9400b61b14a7b1a6404ffdf6 2022-08-22 15:38:20 Windows Hardware Compatibility Publisher
d7c81b0f3c14844f6424e8bdd31a128e773cb96cccef6d05cbff473f0ccb9f9c 2022-09-20 02:36:50 NVIDIA Corporation
5f6fec8f7890d032461b127332759c88a1b7360aa10c6bd38482572f59d2ba8b 2022-09-24 06:42:44 Beijing JoinHope Image Technology Ltd.
0440ef40c46fdd2b5d86e7feef8577a8591de862cfd7928cdbcc8f47b8fa3ffc 2022-09-30 16:50:19 Zhuhai liancheng Technology Co., Ltd.
274340f7185a0cc047d82ecfb2cce5bd18764ee558b5227894565c2f9fe9f6ab 2022-10-21 02:45:30 Windows Hardware Compatibility Publisher
0d10c4b2f56364b475b60bd2933273c8b1ed2176353e59e65f968c61e93b7d99 2022-10-21 02:47:56 Windows Hardware Compatibility Publisher
c8f9e1ad7b8cce62fba349a00bc168c849d42cfb2ca5b2c6cc4b51d054e0c497 2022-10-21 20:45:56 Windows Hardware Compatibility Publisher
8e035beb02a411f8a9e92d4cf184ad34f52bbd0a81a50c222cdd4706e4e45104 2022-10-27 01:19:05 Windows Hardware Compatibility Publisher

Duplicates within the data

While investigating the repository, I found a few things that need to be cleaned up.
Based on the data displayed on loldrivers.io:

Duplicate hashes

Tag SHA256 Category
ATSZIO.sys 01e024cb14b34b6d525c642a710bfa14497ea20fd287c39ba404b10a8b143ece Vulnerable driver
ATSZIO64.sys 01e024cb14b34b6d525c642a710bfa14497ea20fd287c39ba404b10a8b143ece Vulnerable driver
iqvw64e.sys 4429f32db1cc70567919d7d47b844a91cf1329a6cd116f582305f3b7b60cd60b Vulnerable driver
NalDrv.sys 4429f32db1cc70567919d7d47b844a91cf1329a6cd116f582305f3b7b60cd60b Vulnerable driver
mhyprot.sys 509628b6d16d2428031311d7bd2add8d5f5160e9ecc0cd909f1e82bbbb3234d6 Vulnerable driver
Mhyprot2.sys 509628b6d16d2428031311d7bd2add8d5f5160e9ecc0cd909f1e82bbbb3234d6 Vulnerable driver
BS_I2c64.sys 55fee54c0d0d873724864dc0b2a10b38b7f40300ee9cae4d9baaf8a202c4049a Vulnerable driver
BS_I2cIo.sys 55fee54c0d0d873724864dc0b2a10b38b7f40300ee9cae4d9baaf8a202c4049a Vulnerable driver
viragt64.sys 58a74dceb2022cd8a358b92acd1b48a5e01c524c3b0195d7033e4bd55eff4495 Vulnerable driver
viraglt64.sys 58a74dceb2022cd8a358b92acd1b48a5e01c524c3b0195d7033e4bd55eff4495 Vulnerable driver
BSMI.sys 59626cac380d8fe0b80a6d4c4406d62ba0683a2f0f68d50ad506ca1b1cf25347 Vulnerable driver
BSMIXP64.sys 59626cac380d8fe0b80a6d4c4406d62ba0683a2f0f68d50ad506ca1b1cf25347 Vulnerable driver
iscflashx64.sys ce0a4430d090ba2f1b46abeaae0cb5fd176ac39a236888fa363bf6f9fd6036d9 Vulnerable driver
iscflashx64.sys ce0a4430d090ba2f1b46abeaae0cb5fd176ac39a236888fa363bf6f9fd6036d9 Vulnerable driver

The listed drivers have the same hash.
In the case of Mhyprot2.sys, the driver is from mhyprot.sys. I have not checked the other examples.

Duplicate tags

In some cases, I found tags that were duplicated, and upon examination, found that they should be listed under "Known Vulnerable Samples" rather than as a single entry. This does not account for all the drivers listed, but I found that sharing them all might be more useful.

Tag SHA256
amifldrv64.sys 20f11a64bc4548f4edb47e3d3418da0f6d54a83158224b71662a6292bf45b5fb
amifldrv64.sys 5e238d351e16d4909ca394f1db0326a60d33c9ac7b4d78aefcf17a6d9cc72be9
asio.sys 0ee5067ce48883701824c5b1ad91695998916a3702cf8086962fbe58af74b2d6
AsIO.sys 2da330a2088409efc351118445a824f11edbe51cf3d653b298053785097fe40e
asio64.sys 2d36642135166bbb296624dca878925963c7da785e42e940f02d01beb7c477d5
AsIO64.sys b48a309ee0960da3caaaaf1e794e8c409993aeb3a2b64809f36b97aac8a1e62a
AsUpIO.sys 8f23313adb35782adb0ba97fefbfbb8bbc5fc40ae272e07f6d4629a5305a3fa2
AsUpIO.sys b9a4e40a5d80fedd1037eaed958f9f9efed41eb01ada73d51b5dcd86e27e0cbf
aswArPot.sys 0b2ad05939b0aabbdc011082fad7960baa0c459ec16a2b29f37c1fa31795a46d
aswArPot.sys 4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1
atillk64.sys 38bb9751a3a1f072d518afe6921a66ee6d5cf6d25bc50af49e1925f20d75d4d7
atillk64.sys 5c04c274a708c9a7d993e33be3ea9e6119dc29527a767410dbaf93996f87369a
ATSZIO.sys 01e024cb14b34b6d525c642a710bfa14497ea20fd287c39ba404b10a8b143ece
ATSZIO.sys 0da746e49fd662be910d0e366934a7e02898714eaaa577e261ab40eb44222b5c
BS_HWMIo64.sys 60c6f4f34c7319cb3f9ca682e59d92711a05a2688badbae4891b1303cd384813
bs_hwmio64.sys 6dafd15ee2fbce87fef1279312660fc399c4168f55b6e6d463bf680f1979adcf
BS_I2cIo.sys 42e170a7ab1d2c160d60abfc906872f9cfd0c2ee169ed76f6acb3f83b3eeefdb
BS_I2cIo.sys 55fee54c0d0d873724864dc0b2a10b38b7f40300ee9cae4d9baaf8a202c4049a
bs_rcio64.sys 73327429c505d8c5fd690a8ec019ed4fd5a726b607cabe71509111c7bfe9fc7e
BS_RCIO64.sys d205286bffdf09bc033c09e95c519c1c267b40c2ee8bab703c6a2d86741ccd3e
CorsairLLAccess64.sys 000547560fea0dd4b477eb28bf781ea67bf83c748945ce8923f90fdd14eb7a4b
CorsairLLAccess64.sys 29a90ae1dcee66335ece4287a06482716530509912be863c85a2a03a6450a5b6
cpuz.sys 0d3790af5f8e5c945410929e31d06144a471ac82f828afe89a4758a5bbeb7f9f
cpuz.sys eaa5dae373553024d7294105e4e07d996f3a8bd47c770cdf8df79bf57619a8cd
DirectIo.sys 2b186926ed815d87eaf72759a69095a11274f5d13c33b8cc2b8700a1f020be1d
DirectIo.sys 4422851a0a102f654e95d3b79c357ae3af1b096d7d1576663c027cfbc04abaf9
directio.sys e6a7a497010579fde69cd52bed8de28db610c33bbc5ce0774459dcf64657b802
directio64.sys 092349aebdac28294dbad1656759d8461f362d1a36b01054dccf861d97beadf0
directio64.sys d84e3e250a86227c64a96f6d5ac2b447674ba93d399160850acb2339da43eae5
ElbyCDIO.sys 238046cfe126a1f8ab96d8b62f6aa5ec97bab830e2bae5b1b6ab2d31894c79e4
elbycdio.sys eea53103e7a5a55dc1df79797395a2a3e96123ebd71cdd2db4b1be80e7b3f02b
eneio64.sys 38c18db050b0b2b07f657c03db1c9595febae0319c746c3eede677e21cd238b0
EneIo64.sys 9fc29480407e5179aa8ea41682409b4ea33f1a42026277613d6484e5419de374
GameTerSafe.sys 3e9b62d2ea2be50a2da670746c4dbe807db9601980af3a1014bcd72d0248d84c
gametersafe.sys e2ec3b2a93c473d88bfdf2deb1969d15ab61737acc1ee8e08234bc5513ee87ea
gdrv.sys 092d04284fdeb6762e65e6ac5b813920d6c69a5e99d110769c5c1a78e11c5ba0
gdrv.sys 31f4cfb4c71da44120752721103a16512444c13c2ac2d857a7e6f13cb679b427
GLCKIO2.sys 3a5ec83fe670e5e23aef3afa0a7241053f5b6be5e6ca01766d6b5f9177183c25
GLCKIO2.sys e5b0772be02e2bc807804874cf669e97aa36f5aff1f12fa0a631a3c7b4dd0dc8
GVCIDrv64.sys 42f0b036687cbd7717c9efed6991c00d4e3e7b032dc965a2556c02177dfdad0f
gvcidrv64.sys a2353030d4ea3ad9e874a0f7ff35bbfa10562c98c949d88cabab27102bbb8e48
HpPortIox64.sys a4680fabf606d6580893434e81c130ff7ec9467a15e6534692443465f264d3c9
HpPortIox64.sys c5050a2017490fff7aa53c73755982b339ddb0fd7cef2cde32c81bc9834331c5
hw.sys 4880f40f2e557cff38100620b9aa1a3a753cb693af16cd3d95841583edcb57a8
HW.sys fd388cf1df06d419b14dedbeb24c6f4dff37bea26018775f09d56b3067f0de2c
iobitunlocker.sys 7a1feb8649a5c0679e1073e6d8a02c8a6ebc5825f02999f16c9459284f1b198b
IObitUnlocker.sys f85cca4badff17d1aa90752153ccec77a68ad282b69e3985fdc4743eaea85004
iscflashx64.sys ce0a4430d090ba2f1b46abeaae0cb5fd176ac39a236888fa363bf6f9fd6036d9
iscflashx64.sys ce0a4430d090ba2f1b46abeaae0cb5fd176ac39a236888fa363bf6f9fd6036d9
kEvP64.sys 09b0e07af8b17db1d896b78da4dd3f55db76738ee1f4ced083a97d737334a184
kEvP64.sys 7462b7ae48ae9469474222d4df2f0c4f72cdef7f3a69a524d4fccc5ed0fd343f
LHA.sys 23ba19352b1e71a965260bf4d5120f0200709ee8657ed381043bec9a938a1ade
LHA.sys e75714f8e0ff45605f6fc7689a1a89c7dcd34aab66c6131c63fefaca584539cf
libnicm.sys 00c02901472d74e8276743c847b8148be3799b0e3037c1dfdca21fa81ad4b922
libnicm.sys ab0925398f3fa69a67eacee2bbb7b34ac395bb309df7fc7a9a9b8103ef41ed7a
mhyprot.sys 0c512b615eac374d4d494e3c36838d8e788b3dc2691bf27916f7f42694b14467
mhyprot.sys 509628b6d16d2428031311d7bd2add8d5f5160e9ecc0cd909f1e82bbbb3234d6
mhyprot2.sys 342cf884840fc2b48c96398f690a1801ed8ac1ea59305af9e3d070d13ef85601
Mhyprot2.sys 509628b6d16d2428031311d7bd2add8d5f5160e9ecc0cd909f1e82bbbb3234d6
mhyprotrpg.sys 8bf84bed9b5fa4576182c84d2f31679dc472acd0f83c9813498e9f71ed9fef3e
mhyprotrpg.Sys f7d72d22cd4ad3e44fd617bdb4c90b9a884f4eb045688c0e3fb64dd33e033eaa
MsIo32.sys 525d9b51a80ca0cd4c5889a96f857e73f3a80da1ffbae59851e0f51bdfb0b6cd
msio32.sys c7d4943ddac34e1a38692c624d799e634ad4c4e3ae7e3bb2ae4cf0d8eb8985bc
MsIo64.sys 0f035948848432bc243704041739e49b528f35c82a5be922d9e3b8a4c44398ff
MsIo64.sys 43ba8d96d5e8e54cab59d82d495eeca730eeb16e4743ed134cdd495c51a4fc89
netflt.sys cf16a2218fc8a3b6fa5aa4a0bc6205792798078c380ccc7e5041476e0f1bc53d
NetFlt.sys f8886a9c759e0426e08d55e410b02c5b05af3c287b15970175e4874316ffaf13
NICM.SYS 3a65d14fd3b1b5981084cdbd293dc6f4558911ea18dd80177d1e5b54d85bcaa0
nicm.sys 7a2cd1dc110d014165c001ce65578da0c0c8d7d41cc1fa44f974e8a82296fc25
NICM.sys dd4fedd5662122cbfe046a12e2137294ef1cb7822238d9e24eacc78f22f8e93d
nscm.sys 28999af32b55ddb7dcfc26376a244aa2fe297233ce7abe4919a1aef2f7e2cee7
nscm.sys 76660e91f1ff3cb89630df5af4fe09de6098d09baa66b1a130c89c3c5edd5b22
NTIOLib.sys 09bedbf7a41e0f8dabe4f41d331db58373ce15b2e9204540873a1884f38bdde1
NTIOLib.sys 18776682fcc0c6863147143759a8d4050a4115a8ede0136e49a7cf885c8a4805
nvflash.sys 9368e51ec98e2ad20893a5fc21e6a8b20c5bee158d5c49ca58649cff84db9d68
nvflash.sys afdd66562dea51001c3a9de300f91fc3eb965d6848dfce92ccb9b75853e02508
PCHunter.sys 1b7fb154a7b7903a3c81f12f4b094f24a3c60a6a8cffca894c67c264ab7545fa
pchunter.sys 3f20ac5dac9171857fc5791865458fdb6eac4fab837d7eabc42cb0a83cb522fc
RTCore64.sys 01aa278b07b58dc46c84bd0b1b5c8e9ee4e62ea0bf7a695862444af32e87f1fd
RTCore64.sys 03e0581432f5c8cc727a8aa387f5b69ff84d38d0df6f1226c19c6e960a81e1e9
RwDrv.sys 1e0eb0811a7cf1bdaf29d3d2cab373ca51eb8d8b58889ab7728e2d3aed244abe
rwdrv.sys ea0b9eecf4ad5ec8c14aec13de7d661e7615018b1a3c65464bf5eca9bbf6ded3
sandra.sys 1aaf4c1e3cb6774857e2eef27c17e68dc1ae577112e4769665f516c2e8c4e27b
SANDRA.sys 3e274df646f191d2705c0beaa35eeea84808593c3b333809f13632782e27ad75
sfdrvx32.sys 1e94d4e6d903e98f60c240dc841dcace5f9e8bbb0802e6648a49ab80c23318cb
sfdrvx32.sys ad23d77a38655acb71216824e363df8ac41a48a1a0080f35a0d23aa14b54460b
TmComm.sys 0909005d625866ef8ccd8ae8af5745a469f4f70561b644d6e38b80bccb53eb06
TmComm.sys cc687fe3741bbde1dd142eac0ef59fd1d4457daee43cdde23bb162ef28d04e64
VBoxDrv.sys 26f41e4268be59f5de07552b51fa52d18d88be94f8895eb4a16de0f3940cf712
vboxdrv.sys 78827fa00ea48d96ac9af8d1c1e317d02ce11793e7f7f6e4c7aac7b5d7dd490f
VBoxUSB.Sys 6071db01b50c658cf78665c24f1d21f21b4a12d16bfcfaa6813bf6bbc4d0a1e8
VBoxUSB.Sys c509935f3812ad9b363754216561e0a529fc2d5b8e86bfa7302b8d149b7d04aa
viragt64.sys 18deed37f60b6aa8634dda2565a0485452487d7bce88afb49301a7352db4e506
viragt64.sys 58a74dceb2022cd8a358b92acd1b48a5e01c524c3b0195d7033e4bd55eff4495
vmdrv.sys 32cccc4f249499061c0afa18f534c825d01034a1f6815f5506bf4c4ff55d1351
vmdrv.sys 5c0b429e5935814457934fa9c10ac7a88e19068fa1bd152879e4e9b89c103921
windbg.sys 139f8412a7c6fdc43dcfbbcdba256ee55654eb36a40f338249d5162a1f69b988
windbg.sys e1cb86386757b947b39086cc8639da988f6e8018ca9995dd669bdc03c8d39d7d
WinFlash64.sys 316a27e2bdb86222bc7c8af4e5472166b02aec7f3f526901ce939094e5861f6d
WinFlash64.sys 677c0b1add3990fad51f492553d3533115c50a242a919437ccb145943011d2bf
winio64.sys 15fb486b6b8c2a2f1b067f48fba10c2f164638fe5e6cee618fb84463578ecac9
winio64.sys e1980c6592e6d2d92c1a65acad8f1071b6a404097bb6fcce494f3c8ac31385cf

Tags

The last thing to mention is the "Category" column.
Here drivers are marked as either: "Malicious, Vulnerable driver, Vulnerable driver". In some cases the singular displays multiple known vulnerable samples, while in other cases the plural contains only one known vulnerable sample.

Question

As for this issue, I'd like to submit some of these changes, but being new to this, the question is where to start.
Would it be enough to edit the corresponding .yml files, or would it be necessary to edit the .md as well? Or what would be the recommended way (besides forking and so on)?

Windows Client

In addition to your Sigma and Sysmon detection rules, I made a client that scans the default Windows driver directories (or a specified one), against the checksums of your JSON API. I would appreciate some feedback.

Non-Standard CSV Format

hey guys! :)

I am currently having some troubles to use/import the CSV file obtained from https://www.loldrivers.io/api/drivers.csv because the values are not enclosed within double quotes.

checking other APIs like hijacklibs, abuse.ch and urlhaus I realized that the "standard" is using double quotes.

has anyone faced the same issue?

Collection of vulnerable Windows drivers

Two years ago, I started a private repository containing a lot of vulnerable Windows drivers. It was meant to be a side project of mine and never became something similar to LOLDrivers. I thought I could help you with your project by making it publicly accessible https://github.com/VoidSec/VulnerableWindowsDrivers
Most drivers have a corresponding (SHA256) hash, signer, and brief description. Drivers that don’t have a hash appended to their name were “new” and never categorized (e.g. the notorious DELL dbutil_2_3.sys - CVE-2021-21551)

Let me know if there's anything I can help you with :)

blacklotus driver shouldn't be on this list (in this form)

the bootkit loads the driver into memory itself, the driver is unsigned and never touches disk as plaintext. (3 of the samples listed were uploaded to VT by me after dumping and decrypting them from the blacklotus bootloader samples)

if you really meant to specify "windows boot applications vulnerable to baton drop", you'll be searching for a long time, especially considering MS removed all bootmgr.efi/bootmgfw.efi/hvloader.efi binaries from the symbol server after it was found out that blacklotus installers downloaded them.

procexp152.sys

shimano32.sys/shimano64.sys

samples:
https://www.virustotal.com/gui/file/e8b1a0ddc7a4404eb3c46217e07b5ed91723f44464a6ef589634aeb4fb8f5666
https://www.virustotal.com/gui/file/e3a1f0d967335c8a080a5b1e7e3a06a61f6cea39739cda3ebab11d2908713d80

Seems to be related to capcom.sys (device name is obfuscated, and is Htsysm4EFB)

Opus info says the responsible vendor is "株式会社DNPハイパーテック" so is probably related to HyperTech DNP CrackProof DRM/PE protector/anti-cheat/anti-tamper solution.

Malicious functionality is a few IOCTLs that give 32-bit read, 32-bit OR, 32-bit bitmask unset (&= ~Value) on an arbitrary (checked to be less than 0x1000) offset of current process EPROCESS object from usermode.

The functionality is gated on also providing 32-bit crypted value (custom algo), of which plaintext is the sum of current process PID and a value initialised to KUSER_SHARED_DATA::SystemTime (another IOCTL passes this value to usermode with no additional checks).

Escalating to protected process is an obvious use case. Probably other privesc is also possible if the driver is already running (not sure if attacker could craft a token object in usermode address space for example).

Idea: Add information about upgradability of drivers

In large, diverse environments, it is hard for a security team to assess which vulnerable drivers might break production if they are simply blocked or removed.

I just had a discussion with some colleagues and we thought that it would be useful to add information which drivers could be updated automatically to a non-vulnerable version through Windows update mechanisms. Or if the vendor has published a non-vulnerable driver at all.

Apparently, Microsoft has been doing some work in this area, but I don't know if there's a useful API that one could query to automatically retrieve that information.

rootkit: dcprotect.sys

WDAC Deny Policy not working

Hi, we have implemented wdac in our organization based on merging allowall.xml policy and blocking policy for a few specific vendors and products.
We encounter a problem on portableapps.com applications: the setups are indeed blocked but if the application is unpacked, it doesn't matter if I block by the publisher, the hash, the path, the file name, etc., the execution is still allowed.
On the other hand, if my policy is based on merging a scan of the workstation with the blocking policy, everything is blocked.
So the problem would come from the allowall policy?

Another problem, the execution of a specific MSP patch is blocked even if the policy applied on the workstation is only allowall

LOLDrivers

Hello,

Here is couple of suggestions, my opinion if you don’t mind.

First of all, by bringing such collaborative list you should clearly specify what you mean under term “loldrivers”. Is it legitimate drivers which have some shady functionality? Or it is legitimate driver that turns into hacking tool by a bug? Or legitimate driver that unexpectedly turned into wormhole? Or it is all from above? Your list labelling as loldrivers literally everything – from legitimate bugged drivers to legitimate drivers with shady functionality and even just pure malware drivers signed with leaked certs. You have to distinguish what you want to represent. Malware drivers for example doesn't fit into any possible category of BYOVD which is what you describe as synonim to loldrivers.

If your plan is to organize your list as table, what is a practical purpose of “author”, “created” and “command” columns? “Author” and “created” are meaningless information nobody cares.

When someone looks for list of vulnerable drivers what they want is driver name, driver hash (optionally including Authenticode hash), optionally software name and a direct download link to exact sample.

The “command” column is totally useless and I will explain you why. I do not understand purpose of it. First, there are bunch of drivers that can’t be properly initialized by just creating service entry via executing sc commands. And even more – if you create registry entry with SCM this doesn’t guarantee you that driver you want to load will be accessible after successful load by sc command. That’s because some drivers actually built using driver frameworks that expect more information for proper driver initialization compared to simple legacy WDM stuff. If not initialized they won't create any device objects/symlinks etc, meaning no communication will be available. Second, even if loaded - some drivers will not be accessible without magic tricks which are specific to each sample. For example ENE drivers require caller checks to be passed to open a handle for them, and these checks are different for various versions of the drivers. Without this they will simple sit in kernel memory doing nothing while been inaccessible for user mode requests. Asrock drivers are based on RwEverything which requires IOCTL data to be encrypted with AES, etc. The amount of work required to load and “unlock” such drivers will not fit into any kind of table column.

As of source of this list, I see it incorporates mostly MSFT blocklist, and some of the open source lists available on github, for example from namazso. Okay, but.

There is a general problem with MSFT list. It is clunky and unprofessionally maintained.

From the beginning they started adding too much trash that nobody except MS seen while ignoring popular and widely exposed samples. For example – RTCore from MSI was known to be wormhole few years and they added it into this list just recently after some mass media hysterics. Or Process Explorer driver as another example. What they are doing is constantly adding various trash no one cares from unknowncheats.me and similar game cheat-oriented forums. I understand that signed BlackBone driver used by 100-150 users of unknowncheats exposes a giant THREAT to the MSFT while publically available exploited WHQL’ed drivers from senior hardware vendors are not. Even now they ignore entire set of drivers from some pseudo-ISV companies (one of it perfectly works with HVCI on) and drivers used recently in APT attacks (that even had some CVE numbers assigned) while busy fighting with numerous BEDaisy (BattleEye anticheat) drivers – a fresh upload from lurker on unknowncheats for sure. I’m not even talking about DELL drivers which they still cannot properly insert into their blocklist. Another kind of trash in this list is vulnerable drivers that are just… bugged. They have no value from attacker perspective (exploit primitive doesn’t work in modern Windows versions and this list is not available where this driver works) or when exploiting such drivers will bring too much instability for target system. Not every vulnerable driver is worth exploiting or can be used, it is far from everything. Even CVE id is not guarantee here. For past few years too much trash and noise were created with duplicate CVE describing same bugs with same but differently named drivers (hello winring0/winio). After all of this judging on amount of resources MSFT has - their list is unprofessionally maintained and doesn't worth a cent. So by blindly incorporating everything from this blocklist in yours you are just trashing it.

I’ve no idea how you will maintain this list without doing actual check of every sample you add.

CVE support

IIUC, most of the drivers are known to be vulnerable (some are vulnerable, others are malicious), and many do not have CVE IDs. Also it may be a costly manual effort to even figure out if CVE IDs exist.

Feature request: Add an optional CVE ID field to YML-Template.yml. When populated, display the CVE ID in the Description or Resources section of the web page for the specific driver.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.