Mailing List Archive

Help Converting a VB script to a Plug in
I've written a vb script to enumerate the DCOM launch permissions that I would like to convert to a Nessus Plug in. And I was wondering what woud be the best way, would it be easier to convert it if I convert the vb script to perl then rewrite it in nasl?

I've include the code, basicly the script output is written to a text file.

'Hive Constants
Const ForReading = 1
Const ForAppending = 8
Const HKEY_CLASSES_ROOT = &H80000000
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002
Const HKEY_USERS = &H80000003
Const HKEY_PERFORMANCE_DATA = &H80000004
Const HKEY_CURRENT_CONFIG = &H80000005
Const HKEY_DYN_DATA = &H80000006

'RegFormat Constants
Const REG_NONE = 0
Const REG_SZ = 1
Const REG_EXPAND_SZ = 2
Const REG_BINARY = 3
Const REG_DWORD = 4
Const REG_LINK = 5
Const REG_MULTI_SZ = 6
Const REG_RESOURCE_LIST = 7
'Well Known Sids - http://support.microsoft.com/kb/243330
'Everyone
EO = "S-1-1-0"
'Creator Owner
CO = "S-1-3-0"
'Network
Net = "S-1-5-2"
'Batch
Bat = "S-1-5-3"
'Interactive
IA = "S-1-5-4"
'Service
Ser = "S-1-5-6"
'Anonymous
Anon = "S-1-5-7"
'Authorized Users
AU = "S-1-5-11"
'Terminal User
TU = "S-1-5-13"
'Local System
LS = "S-1-5-18"
'NTAuthority
NA = "S-1-5-19"
'NTAuthority
NTA = "S-1-5-20"
'Administrators
AD = "S-1-5-32-544"
User = "S-1-5-32-545"
Guests = "S-1-5-32-546"
'Power User
PU = "S-1-5-32-547"
'Account Operators
AO = "S-1-5-32-548"
'Print Operators
PO = "S-1-5-32-550"
'Backup Operators
BO = "S-1-5-32-551"

strComputer = "."
'************************************************************************************
'ENumerates System Name
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_Processor",,48)
Set objTextFile = objFSO.OpenTextFile ("c:\dcom\dcom1.txt", ForAppending, True)
For Each objItem in colItems
objTextFile.WriteLine(objItem.SystemName)
Next
objTextFile.Close
'****************************************************************************************
'Enumerates what Operation System and Service Pack
on Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem",,48)
Set objTextFile = objFSO.OpenTextFile ("dcom1.txt", ForAppending, True)
For Each objItem in colItems
objTextFile.WriteLine(objItem.Caption & vbTab & "Service Pack: " & objItem.ServicePackMajorVersion)
Next
objTextFile.Close
'************************************************************************************************
'Enumerates the DCOM Application ID, Application Name and RunAs configuration
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DCOMApplicationSetting",,48)
Set objTextFile = objFSO.OpenTextFile ("dcom1.txt", ForAppending, True)
For Each objItem in colItems
objTextFile.WriteLine(objItem.AppID & vbTab & ObjItem.Description & vbTab & objItem.RunAsUser)
Next
objTextFile.Close
'**************************************************************************************************
'Enumerates DCOM Launch Permissions
On Error Resume Next
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * from Win32_DCOMApplicationLaunchAllowedSetting", "WQL",wbemFlagReturnImmediately + wbemFlagForwardOnly)
Set objTextFile = objFSO.OpenTextFile ("dcom1.txt", ForAppending, True)
For Each objItem in colItems
objTextFile.WriteLine(objItem.Element & vbTab & objItem.Setting)

LP = ObjItem.Setting
Next
'*******************************************************************************************************
' reads the contents of the DCOM1.txt file into an Array
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile ("dcom1.txt", ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
arrdcomList = Split(strNextLine , ",")
Wscript.Echo "dcom setting: " & arrdcomList(0)

Thank You in advance for the Help --John