
DriverSentinel è uno strumento di sicurezza sviluppato in Go che rileva driver dannosi e vulnerabili sui sistemi Windows confrontandoli con il database LOLDrivers.io.
<div align="center">
# 🛡️ DriverSentinel 🛡️
### **Scanner di Driver Windows Vulnerabili**
[](https://www.microsoft.com/windows)
[](https://golang.org/)
[](LICENSE)
[](https://loldrivers.io)
**DriverSentinel** è uno strumento di sicurezza sviluppato in Go che rileva driver dannosi e vulnerabili sui sistemi Windows confrontandoli con il database [LOLDrivers.io](https://loldrivers.io).
[Caratteristiche](#-features) • [Installazione](#-installation) • [Utilizzo](#-usage) • [Come Funziona](#-how-it-works)
---
</div>
## 📋 Indice dei Contenuti
- [Caratteristiche](#-features)
- [Requisiti](#-requirements)
- [Installazione](#-installation)
- [Utilizzo](#-usage)
- [Come Funziona](#-how-it-works)
- [Esempi di Rilevamento](#-detection-examples)
- [Compilazione dal Sorgente](#-building-from-source)
- [Logica di Rilevamento](#-detection-logic)
- [Licenza](#-license)
- [Crediti](#-credits)
---
## ✨ Caratteristiche
- 🔍 **Scansione Intelligente**: Rileva driver vulnerabili tramite corrispondenza di hash SHA256 e nome file
- 🌐 **Aggiornamenti Automatici**: Sincronizzazione automatica con il database LOLDrivers.io
- ⚡ **Alte Prestazioni**: Scansione ottimizzata con indici in memoria per ricerche rapide
- 📊 **Avanzamento in Tempo Reale**: Visualizzazione live dei file scansionati
- 🎯 **Rilevamento per Categoria**: Criteri diversi in base al tipo di minaccia (dannoso vs. vulnerabile)
- 🗂️ **Modalità di Scansione Multiple**:
- Scansione di un percorso specifico (ricorsiva o non ricorsiva)
- Scansione automatica delle posizioni comuni di Windows
- 📝 **Report Dettagliati**: Informazioni complete sui driver rilevati, inclusi i comandi di sfruttamento
- 🔒 **Solo File .sys**: Filtro specifico per i driver kernel di Windows
---
## 💻 Requisiti
- **Sistema Operativo**: Windows 10/11 (x64)
- **Privilegi**: Amministratore (richiesto per scansionare le posizioni di sistema)
- **Spazio**: ~10 MB per eseguibile e database
---
## 📥 Installazione
### Download Diretto (Consigliato)
1. Scarica l'ultima versione da [Releases](https://github.com/bI8d0/DriverSentinel/releases)
2. Estrai il file `.zip`
3. Esegui `driversentinel.exe` da un terminale con privilegi di amministratore
### Dal Sorgente
```bash
git clone https://github.com/bI8d0/DriverSentinel.git
cd DriverSentinel
go run .\build.go
```
---
## 🚀 Utilizzo
### Sintassi di Base
```cmd
driversentinel.exe [options]
```
### Opzioni
| Opzione | Descrizione |
|--------|-------------|
| `-common` | Scansiona le posizioni comuni dei driver di Windows (richiede Admin) |
| `-path <path>` | Scansiona una directory specifica |
| `-r` | Modalità ricorsiva (scansiona le sottodirectory) |
### Esempi
#### 1. Scansione delle posizioni di sistema comuni (Consigliato)
```cmd
driversentinel.exe -common
```
Scansiona automaticamente:
- `C:\Windows\System32\drivers`
- `C:\Windows\SysWOW64\drivers`
- `C:\Windows\System32\DriverStore\FileRepository`
- E altre posizioni critiche
#### 2. Scansione di una directory specifica
```cmd
driversentinel.exe -path C:\MyFolder
```
#### 3. Scansione ricorsiva
```cmd
driversentinel.exe -path C:\MyFolder -r
```
#### 4. Scansione di un intero drive (⚠️ potrebbe richiedere tempo)
```cmd
driversentinel.exe -path C:\ -r
```
---
## 🔬 Come Funziona
### 1️⃣ Sincronizzazione del Database
All'avvio, DriverSentinel:
- Controlla il database LOLDrivers.io utilizzando **ETag** o **SHA256**
- Scarica automaticamente gli aggiornamenti se disponibili
- Utilizza una copia locale se non c'è connessione internet
### 2️⃣ Indicizzazione in Memoria
Costruisce indici ottimizzati per una ricerca rapida:
- **Indice Hash**: SHA256 dei campioni noti
- **Indice Nome File**: OriginalFilename dei campioni noti
### 3️⃣ Scansione dei File
Per ogni file `.sys` trovato:
1. Confronta il nome file (ricerca rapida)
2. Se c'è una corrispondenza, calcola lo SHA256
3. Applica la logica di rilevamento in base alla categoria
4. Segnala le corrispondenze trovate
### 4️⃣ Report dei Risultati
Mostra informazioni dettagliate:
- Percorso del file
- Hash SHA256
- Tipo di corrispondenza (nome file, hash, o entrambi)
- Dettagli del driver vulnerabile
- Comandi di sfruttamento noti (se applicabile)
---
## 📊 Esempi di Rilevamento
### Output del Programma
```
=== DriverSentinel - Vulnerable Driver Scanner by bI8d0 ===
[repository] Local copy is up to date
[repository] Loaded 1337 drivers
Total drivers loaded: 1337
[scanner] Indices built: 5432 hashes, 5432 filenames
[scanner] Valid extension: .sys
[scanner] Starting scan of: C:\Windows\System32\drivers
[scanner] Scanning (523 files): C:\Windows\System32\drivers\some_driver.sys
⚠ DETECTED: C:\Windows\System32\drivers\vulnerable.sys (Type: both, Category: malicious)
[scanner] Scan completed in 2.34s
[scanner] Files scanned: 523
[scanner] Vulnerabilities found: 1
⚠ ALERT: Found 1 vulnerable driver(s)
================================================================================
[1] VULNERABLE FILE DETECTED
--------------------------------------------------------------------------------
Path: C:\Windows\System32\drivers\vulnerable.sys
SHA256: abc123def456...
Match Type: both
Driver ID: vulnerable-driver-id
Category: malicious
Vulnerable Driver Details:
Original: vulnerable.sys
Company: Malicious Corp
Product: Malicious Product
Version: 1.0.0
Description: Known vulnerable driver
HVCI: False
Exploitation Commands:
─── Command 1 ───
Use Case: Privilege Escalation
Privileges: Administrator
OS: Windows 10/11
Description: Known exploit method
Command: sc.exe create vuln binPath= ...
Resources: https://example.com/advisory
================================================================================
⚡ REMEDIATION GUIDE (Requires Administrator)
================================================================================
Generic commands to remove detected vulnerable drivers:
1. Stop the driver/service (if running):
sc.exe stop <service_name>
2. Disable the driver/service:
sc.exe config <service_name> start= disabled
3. Delete the service:
sc.exe delete <service_name>
4. Backup and delete the file:
move "C:\Path\To\driver.sys" "C:\Path\To\driver.sys.malz"
5. Or delete directly (use with caution):
del /F "C:\Path\To\driver.sys"
⚠ WARNING:
- Removing system drivers may cause system instability or prevent boot.
- Always create a System Restore Point before taking action.
- Replace <service_name> with the actual service name (use 'sc.exe query' to find it).
- Use the full path from the detection results above.
================================================================================
```
---
## 🔨 Compilazione dal Sorgente
### Prerequisiti
- [Go 1.24+](https://golang.org/dl/)
- Windows 10/11
- Git
### Passaggi
```bash
# Clone the repository
git clone https://github.com/bI8d0/DriverSentinel.git
cd DriverSentinel
# Install dependencies
go mod download
# Build
go run .\build.go
# Run
.\build\driversentinel.exe -common
```
### Build Ottimizzata
```bash
go build -ldflags="-s -w" -o build/driversentinel.exe
```
---
## 🧠 Logica di Rilevamento
DriverSentinel applica **criteri diversi** in base alla categoria del driver:
### 🔴 Driver Dannosi (`category: "malicious"`)
- **Segnala se**: Corrispondenza del nome file **O** dell'hash (qualsiasi corrispondenza è critica)
- **Motivo**: I driver dannosi devono essere rilevati indipendentemente dalla rinomina
### 🟡 Driver Vulnerabili (`category: "vulnerable driver"`)
- **Segnala se**: Corrispondenza del nome file **E** dell'hash (entrambi devono corrispondere)
- **Motivo**: Evita falsi positivi da nomi generici di driver legittimi
### 🟢 Altre Categorie
- **Segnala per**: Sicurezza (precauzione per nuove categorie)
### Tipi di Corrispondenza
| Tipo di Corrispondenza | Descrizione |
|-----------|-------------|
| `filename` | Corrisponde solo il nome file |
| `sha256` | Corrisponde solo l'hash (file rinominato) |
| `both` | Corrispondono sia nome file che hash (corrispondenza perfetta) |
---
### Aree di Miglioramento
- [ ] Supporto alla scansione parallela (goroutine)
- [ ] Esportazione dei report (JSON, CSV, HTML)
- [ ] Interfaccia grafica utente (GUI)
- [ ] Modalità silenziosa per l'automazione
- [ ] Integrazione SIEM
- [ ] Quarantena automatica dei driver rilevati
---
## 📄 Licenza
Questo progetto è concesso in licenza sotto la MIT License. Consulta il file [LICENSE](https://github.com/bi8d0/driversentinel/blob/main/LICENSE) per i dettagli.
---
## 🙏 Crediti
- **Autore**: [bI8d0](https://github.com/bI8d0/)
- **Database**: [LOLDrivers.io](https://loldrivers.io) - Un fantastico progetto della community che mantiene il database dei driver vulnerabili
- **Community**: Un ringraziamento speciale a tutti i ricercatori di sicurezza che contribuiscono a LOLDrivers
### Tecnologie Utilizzate
- [Go](https://golang.org/) - Linguaggio di programmazione
- [uilive](https://github.com/gosuri/uilive) - Barra di avanzamento in tempo reale
- [LOLDrivers API](https://loldrivers.io/api/) - Database dei driver vulnerabili
---
<div align="center">
### ⚠️ Disclaimer
Questo strumento è destinato esclusivamente a scopi educativi e di difesa della sicurezza.
**NON** utilizzarlo per attività dannose o illegali.
L'autore non è responsabile dell'uso improprio di questo strumento.
---
**Realizzato con ❤️ e Go**
Se lo trovi utile, considera di lasciare una ⭐!
</div>