This custom inventory example will find all instances of dbutil_2_3.sys as noted below.
A driver (dbutil_2_3.sys) packaged with Dell Client firmware update utility packages and software tools contains an insufficient access control vulnerability which may lead to escalation of privileges, denial of service, or information disclosure. Local authenticated user access is first required before this vulnerability can be exploited.
For more information, see the Dell article "Additional Information Regarding DSA-2021-088: Dell Client Platform Security Update for an Insufficient Access Control Vulnerability in the Dell dbutil Driver"
CVE 2021-21551 - Dell's BIOS Driver Privilege Escalation Flaws
'********************************************************************************
' Custom inventory VBS script to scan for files anywhere with by name
' For additional values see CIM_DataFile info: https://msdn.microsoft.com/en-us/library/aa387236(v=vs.85).aspx
'********************************************************************************
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
Set wshShell = WScript.CreateObject( "WScript.Shell" )
ComputerName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
dim nse
set nse = WScript.CreateObject ("Altiris.AeXNSEvent")
nse.To = "{1592B913-72F3-4C36-91D2-D4EDA21D2F96}" ' Don't modify this GUID
nse.Priority = 1
' Custom Dataclass GUID goes here
set objDCInstance = nse.AddDataClass ("{Paste GUID you copied from Step A9 above HERE}")
set objDataClass = nse.AddDataBlock (objDCInstance)
Set objCIMObj = objWMIService.ExecQuery("SELECT Name, Version FROM CIM_DataFile where FileName = 'dbutil_2_3'")
count = 0
For each objInfo in objCIMObj
count = 1
set objDataRow = objDataClass.AddRow 'Add a new row
objDataRow.SetField 0, CStr(ComputerName)
objDataRow.SetField 1, objInfo.Name
objDataRow.SetField 2, objInfo.Version
objDataRow.SetField 3, CStr(now)
Next
if (count = 0) then
set objDataRow = objDataClass.AddRow 'Add a new row
objDataRow.SetField 0, CStr(ComputerName)
objDataRow.SetField 1, "Not Found"
objDataRow.SetField 2, cstr(now)
End If
nse.Send ' Send the NSE data to the NS server
'MsgBox nse.Xml 'Uncomment for testing on local machine
Note:
If you'd rather use a PowerShell script, please find it attached.
After created the custom data class and the custom inventory script task has ran on your client machines, you can create a Report to review the information collected. You can use the following example query for your report:
select [Paste Table Name you copied from Step A9 above HERE].[ComputerName], [Paste Table Name you copied from Step A9 above HERE].[Location], [Paste Table Name you copied from Step A9 above HERE].[InventoryDate]
from Paste Table Name you copied from Step A9 above HERE
left join vComputer on vComputer.Guid = [Paste Table Name you copied from Step A9 above HERE].[_ResourceGuid]