"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

[PowerShell] find-vulnerable-drivers

mr.nice. 30.08.2022 - 15:58 3591 6
Posts

mr.nice.

differential image maker
Avatar
Registered: Jun 2004
Location: Wien
Posts: 6454

Dieser Artikel auf heise.de hat mich dazu bewogen einen kleinen Scanner zu basteln, der die vulnerablen Treiber vom genannten github-repository herunterlädt, entpackt, SHA-256 Hashes berechnet, die Dateien gleich wieder löscht und die Werte in XML-basierte Powershell-Objekte exportiert. Dann wird die Festplatte C:\ rekursiv nach *.sys files durchsucht, was etwas dauert, dann wird der zweite Hashtable wieder nach clixml exportiert, als nächstes werden die beiden Hash-Tabellen auf Übereinstimmungen abgeglichen und wenn welche gefunden werden, landen diese in einer hübschen HTML-Datei, die automatisch geöffnet wird und Pfade bzw. Hashwerte der gefundenen Datei(en) ausgibt. Die XML-Dateien werden gelöscht sobald sie nicht mehr benötigt werden, damit eventuelle Änderungen bei sys files berücksichtigt werden können.

Vorteil der clixml Dateien ist unter anderem die Portabilität, d.h. man kann z.B. nur auf einem Client die vulnerablen Treiber runterladen und dann auf den übrigen Clients auf die bereits vorhandene vulnerabledrivers.xml matchen.

Code:
$Header = @"
<style>
body { background-color:#FAFAFA;
		color:#00137F;
		Font-Family:Verdana;
		font-size:10pt; }
TABLE {border-width: 1px;border-style: solid;border-color: #00137F;border-collapse: collapse; margin-left:5px; margin-bottom:2px;}
TH {border-width: 1px;padding: 4px;border-style: solid;border-color: #00137F;background-color: #C1D5F8;}
TD {border-width: 1px;padding: 4px;border-style: solid;border-color: #00137F;}
</style>
"@
$date = get-date -Format "yyyy-MM-dd HH:mm:ss"
$source = 'https://github.com/namazso/physmem_drivers/archive/refs/heads/master.zip'
$destination = 'C:\temp\master.zip'
Invoke-RestMethod -Uri $source -OutFile $destination
Expand-Archive C:\temp\master.zip -DestinationPath C:\Temp\ -Force
Remove-Item -Path C:\temp\master.zip -force
Get-ChildItem -Path C:\temp\physmem_drivers-master -Recurse -Filter *.sys -File | Get-FileHash | Export-Clixml C:\temp\vulnerabledrivers.xml
Remove-Item -Path C:\temp\physmem_drivers-master -Recurse
Write-Host "Scanning for vulnerable drivers, please wait!" -ForegroundColor Yellow
Get-ChildItem -Path C:\ -Recurse -File -Filter *.sys -ErrorAction "SilentlyContinue" | Get-FileHash |  Export-Clixml C:\temp\existingdrivers.xml
Compare-Object -PassThru -IncludeEqual -ExcludeDifferent (Import-CliXml C:\temp\existingdrivers.xml) (Import-CliXml C:\temp\vulnerabledrivers.xml) -Property hash | Select-Object Path, Hash, Algorithm | ConvertTo-Html -head $Header -PreContent "<H3>$date, vulnerable drivers found on this system:</H3>" | Set-Content C:\temp\vulnerabledrivers.html
Remove-Item C:\temp\vulnerabledrivers.xml
Remove-Item C:\temp\existingdrivers.xml
Write-Host "Scanning for vulnerable drivers finished!" -ForegroundColor Green
Invoke-Item C:\temp\vulnerabledrivers.html

DAO

Si vis pacem, para bellum
Avatar
Registered: Mar 2001
Location: Austria
Posts: 4964
@mr.nice

Danke für das teilen deiner Arbeit :)

wergor

connoisseur de mimi
Avatar
Registered: Jul 2005
Location: vulkanland
Posts: 4095
+1 MHz :)

mr.nice.

differential image maker
Avatar
Registered: Jun 2004
Location: Wien
Posts: 6454
Nebenbei bemerkt, ich habe damit angreifbare Treiber auf meinem eigenen PC gefunden, zwei waren Überbleibsel von Gigabyte Mainboard Software, die nicht entfernt wurden, obwohl die Software schon längst deinstalliert war. Beim dritten, inpoutx64.sys, kann ich nicht exakt feststellen wo der herkam, vermutlich vom clock tuner for ryzen.
Bearbeitet von mr.nice. am 31.08.2022, 07:55

hynk

Super Moderator
like totally ambivalent
Avatar
Registered: Apr 2003
Location: Linz
Posts: 11032
Coole sache!

Hat bei mir bei Media Coder angeschlagen. Gleich mal weg. Die Software wurde eh schon lange ersetzt.

TOM

Super Moderator
Oldschool OC.at'ler
Avatar
Registered: Nov 2000
Location: Vienna
Posts: 7368
Danke für das Script

Bei mir hat inpoutx64.sys angeschlagen.

Wie finde ich jetzt heraus welche Software dies verwendet oder einfach YOLO delete zum BSOD?

Bei meiner Recherche im Netz find ich nichts wirklich Sinnvolles dazu.
Bearbeitet von TOM am 31.08.2022, 11:10

mr.nice.

differential image maker
Avatar
Registered: Jun 2004
Location: Wien
Posts: 6454
Der Autor von HWiNFO schreibt, dass er glaubt, dass inpoutx64.sys von CTR (Clock Tuner for Ryzen) verwendet wird. Ein anderer schreibt, dass es von ZenTimings verwendet wird:
https://www.hwinfo.com/forum/thread...7234/post-30302

Meine Vermutung, der Treiber dürfte von mehreren OC-Tools verwendet werden, um auf Hardwareressourcen zugreifen zu können.
Als problematisch dabei sehe ich auch die Tatsache, dass die Firma die den Treiber signiert hat, "Red Fox UK Limited" sich im April 2022 aufgelöst hat:
https://find-and-update.company-inf...ompany/09448631
Bearbeitet von mr.nice. am 31.08.2022, 11:57
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz