Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs

Schluß mit lustig Teil 3 - das Hfnetchk Tool

Geschrieben von: Christian Holm
Kategorie: Sicherheit

This printed page brought to you by AlphaSierraPapa

Im dritten Teil dieser "Wie sichere ich meinen Web Server gegen 'Se Evil Folks' ab" Serie stelle ich Ihnen das Hfnetchk Tool oder ausgeschrieben das Microsoft Network Security Hotfix Checker Tool vor. Die Vorgängerversion, das "IIS 5.0 Hotfix Checking Tool", hatte den Nachteil daß "nur" der IIS auf das Vorhandensein von Hotfixes hin überprüft wurde. Das Hfnetchk Tool hingegen kann nun einiges mehr. Dies und wie man eine Überprüfung automatisert bzw. per Email versenden kann, lesen Sie in diesem Artikel.

Im Moment arbeiten Microsoft und Shavlik Technologies an einer neueren Version des Kommandozeilentools die von der NTBugTraq Web Site downgeloadet werden kann. Diese befindet sich allerdings noch im Beta Stadium. Eine (ältere) offizielle Releaseversion können Sie direkt bei Microsoft unter diesem Link downloaden. Beginnen wir aber mit den Features der offizielle Releaseversion. Diese kann im Vergleich zum IIS 5.0 Hotfix Checking Tool eben nicht nur den IIS (jetzt auch Version 4) scannen sondern auch folgende Microsoft Produkte:

Neu ist auch die Möglichkeit daß diese Produkte sich auch auf Remote Computern, also im Netzwerk befinden können. Zusätzlich zur Netzwerkfunktionalität können Sie nun auch IP-Ranges angeben um mehrere Adressen innerhalb eines Tasks scannen zu lassen. Die Betaversion, die Sie unter der angegebenen NTBugTraq Adresse downloaden können, scannt den oder die angegebenen Computer bzw. Server zusätzlich auf das Vorhandensein einiger Dateien die mit dem Nimda Virus in Zusammenhang stehen:

Diese Dateien sucht das Kommandozeilentool in diversen Windows bzw. Web Server Standardverzeichnissen. Alle beide Versionen können kostenlos unter den genannten Links downgeloaded werden. Wie gesagt, ist es ein Kommandozeilentool, d.h. auf eine komfortable GUI müssen Sie verzichten. Dies gilt genauso für die Auswertung des Reports der wahlweise entweder einfach nur in der Kommandozeile (cmd.exe) eingesehen werden kann oder Sie lassen sich per optionalen Parameter den Report in eine Datei speichern. Wenn Ihnen das aber zuwenig ist müssen Sie sich entweder eine GUI bzw. ein Auswertungstool selber programmieren oder Sie schauen bei Shavlik Technologies vorbei und bestellen sich unter diesem Link die "Shavlik GUI" (diese ist nicht gratis).

Befassen wir uns aber mit der von Microsoft downloadbaren Version. Nach dem Download und Extrahieren in ein beliebiges Verzeichnis der hfnetchk.zip Datei können Sie auf dem Kommandozeilenprompt gleich loslegen. Wie bei (fast) jedem Kommandozeilentool können Sie mit

hfnetchk -?

den genauen Syntax des Tools und eine Auflistung der verfügbaren Parameter einsehen. Bevor wir zu einer webgestützten Ausführung bzw. einer Automatisierung des Tools mit Hilfe eines Scheduled Tasks übergehen, nur kurz die Basics und die wichtigsten Parameter.

Das Tool sucht am lokalen Computer bzw. Servern im Netzwerk nach den installierten Patches. Hierbei vergleicht es die gefundenen Patches mit einer XML-Datei namens mssecure.xml. Diese XML Datei enthält neben den aktuellen Versionsnummern der Patches auch ihre Prüfsummen um so virale Veränderungen zu erkennen.

Da die XML immer am neuesten Stand gehalten wird, ist diese im Download nicht inkludiert. Das bedeutet Sie müssen bei der erstmaligen Ausführung dieses Tools eine aktive Verbindung zum Internet haben. Ein Beispiel. Sie wechseln in das Unterverzeichnis in welches das Tool installiert wurde und geben einfach

hfnetchk

ein. Dies bewirkt daß eine digital signierte (um Fälschungen auszuschließen) Cabinet-Datei (.cab) namens mssecure.cab von einem Microsoft Server downgeloaded wird. Hierbei erhalten Sie eine Sicherheitsinformation über die digitale Signatur der Datei, die Sie falls authentisch, mit "Yes" bestätigen müssen um fortzufahren:

Da wir keine zusätzlichen Parameter und auch keine Hostnamen angegeben haben, wird sogleich der lokale Computer überprüft.

Anwendungsbeispiele

Scannen mehrerer Computer durch Angabe ihrer NetBIOS Namen (getrennt durch Beistriche):

hfnetchk -h kilauea,hamunaptra,bluescreen,coruscant

Scannen von einzelnen IP-Adressen (wieder getrennt durch Beistriche) bzw. IP-Ranges:

hfnetchk -h 192.168.200.10,192.168.200.20,192.168.200.30
bzw.
hfnetchk -h 192.168.200.10-192.168.200.70

Scannen von Domains und zusätzliches Anzeigen der installierten Hotfixes (Parameter -a) sowie mit Information über die installierten und fehlenden Hotfixes (Zusatz b):

hfnetchk -d dev.sirefnicks -a b

Scannen des Servers "kilauea", Ausgabe des Reports in die MyReport.txt Datei (Parameter -o, hier zusätzlich Trennung der Einträge durch Tabulatoren) und Verwendung der bereits downgeloadeten mssecure.xml Datei (Parameter -x):

hfnetchk -h kilauea -o tab > MyReport.txt -x mssecure.xml

Da hier bei den Dateiangaben keine Pfade angegeben wurden, wird die MyReport.txt Datei in das Rootverzeichnis der lokalen C: Partition kopiert und die mssecure.xml Datei muß im gleichen Verzeichnis wie die hfnetchk.exe Datei liegen. Mit Pfadangaben können Sie natürlich auf andere Speicherorte der beiden Dateien verweisen (auch auf Netzlaufwerke):

hfnetchk -h kilauea -o tab > C:\HFnetchkTool\Reports\MyReport.txt -x http://192.168.200.10/_
	HFnetchkTool/XML/mssecure.xml

Als Abschlußbeispiele habe ich zum einen eine Ausführung in ASP und eine automatisierte Ausführung der Datei durch einen Scheduled Task vorbereitet. Sehen wir uns zunächst die ASP Datei an (HFCheck.asp):

<%
Set fso = Server.CreateObject("Scripting.FileSystemObject")

strXmlFile = "mssecure.xml"
strFileSpecs = Server.MapPath(strXmlFile)
strMyReport = "MyReport.txt"
strMyReportSpecs = Server.MapPath(strMyReport)
strMailFrom = "admin@sirefnicks.com"
strMailTo = "jsirefnicks@sirefnicks.com"
strMailSubject = "HFCheck Tool Report" & Now

If (fso.FileExists(strFileSpecs)) Then
    strCommand = Server.MapPath("hfnetchk.exe") & " -o tab > " & _
                     Server.MapPath(strMyReport) & " -x " & strXmlFile
Else
    strCommand = Server.MapPath("hfnetchk.exe") & " -o tab > " & _
                     Server.MapPath(strMyReport)
End If
Response.Write strCommand

Set objWsh = Server.CreateObject("WScript.Shell")
nRetVal = objWsh.Run(strCommand, 1, True)
Set objWsh = Nothing

If (fso.FileExists(strFileSpecs)) Then
	
    Set objCDONTS = Server.CreateObject("CDONTS.NewMail")
	
    objCDONTS.From = strMailFrom
    objCDONTS.To = strMailTo
    objCDONTS.Subject = strMailSubject
    objCDONTS.AttachFile strMyReportSpecs
    objCDONTS.Send
    Set objCDONTS = Nothing
	
    If Err.Number <> 0 Then
        Response.Write "<b>Error(s) during SendMail:</b>"
        Response.Write "Fehlercode: " & Err.Number & "<br>"
        Response.Write "Quelle: " & Err.Source & "<br>"	
        Response.Write "Beschreibung: " & Err.Description & "<br>"
    End If
Else
    Response.Write "Couldn't send Mail - No Report File"
End If		
Set fso = Nothing
%>

Nicht allzu komplex - einfach je nach Vorhandensein der mssecure.xml den Syntax für das Tool zusammengesetzt und dann mit Hilfe der Run Methode des Windows Scripting Host das Tool aufgerufen. Dabei wird gemäß der angegebenen Parameter der Report in eine Datei (MyReport.txt) geschrieben. Diese kann dann entweder im Browser selbst optisch aufbereitet werden, oder wie hier per CDONTS als Emailattachment an die genannte Adresse versandt werden.

Um up-to-date zu bleiben kann man auch einen Scheduled Task einrichten. Hierfür erstellt man zunächst ein Windows Script File (.wsf), welches wie oben die gleiche Aufgabe erfüllt, nur mit entsprechendem Syntax HFChk.wsf:

<package>
<Job id="HFCheck">
<script language="VBScript">

Set fso = CreateObject("Scripting.FileSystemObject")

strXmlFile = "mssecure.xml"
strFileSpecs = "C:\LocalSites\TestRoot\HFCheck" & strXmlFile
strMyReport = "MyReport.txt"
strMyReportSpecs = "C:\LocalSites\TestRoot\HFCheck" & strMyReport
strMailFrom = "jsirefnicks@holmcs.com"
strMailTo = "office@holmcs.com"
strMailSubject = "HFCheck Tool Report" & Now

If (fso.FileExists(strFileSpecs)) Then
    strCommand = "C:\LocalSites\TestRoot\HFCheck\hfnetchk.exe" & " -o tab > 
        " & "C:\LocalSites\TestRoot\HFCheck\" & strMyReport & " 
        -x " & strXmlFile
Else
    strCommand = "C:\LocalSites\TestRoot\HFCheck\hfnetchk.exe" & " -o tab > " 
        & "C:\LocalSites\TestRoot\HFCheck\" & strMyReport
End If

Set objWsh = CreateObject("WScript.Shell")

nRetVal = objWsh.Run(strCommand, 1, True)

Set objWsh = Nothing

If (fso.FileExists(strFileSpecs)) Then
	Set objCDONTS = CreateObject("CDONTS.NewMail")
    objCDONTS.From = strMailFrom
    objCDONTS.To = strMailTo
    objCDONTS.Subject = strMailSubject
    objCDONTS.AttachFile strMyReportSpecs
    objCDONTS.Send
    Set objCDONTS = Nothing
End If		
Set fso = Nothing
</script>
</Job>
</package> 

Damit diese wsf-Datei auch einfach ausgeführt werden kann, habe ich eine Batch-Datei (HFChkExec.bat) erstellt, die folgendes enthält:

cscript //Job:HFCheck HFChk.wsf

Nun muß diese Batch-Datei noch in die Scheduled Taskliste (Start|Settings|Control Panel|Scheduled Tasks| Add Scheduled Task) eingetragen und Startzeit, etc. angegeben werden. Hierbei ist aber zu beachten, daß während der Ausführung dieses Tasks (falls notwendig) eine Netzwerkverbindung vorhanden sein muß.

Schlußbemerkung

Mit dem Hfnetchk Tool haben Sie immer eine Übersicht auf die aktuellen Patches, die zur Zeit verfügbar sind. Dieses Tool läßt sich neben der einfachen Handhabung auch leicht in ASP einbauen um z.B. eine GUI für den erstellten Report zu kreieren, per Email zu versenden, etc. oder es auch automatisiert per Scheduled Task ablaufen zu lassen. Der Programmieraufwand hierfür ist relativ gering, Ihre Web Server sind immer up-to-date und daher vor "Se Evil Folks" sicher.

This printed page brought to you by AlphaSierraPapa

Download des Codes

Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20010928.zip

Verwandte Artikel

Applikationen aus ASP.NET ausführen
http:/www.aspheute.com/artikel/20010220.htm
Automation - WSH versus Wget
http:/www.aspheute.com/artikel/20000511.htm
Der Microsoft Baseline Security Analyzer (MBSA) 1.0
http:/www.aspheute.com/artikel/20020412.htm
Kommandozeilen-Programme aufrufen
http:/www.aspheute.com/artikel/20010516.htm
Schluß mit lustig - das IIS Lockdown Tool
http:/www.aspheute.com/artikel/20010926.htm
Schluß mit lustig Teil 2 - das URLScan Tool
http:/www.aspheute.com/artikel/20010927.htm
Schritt-für-Schritt Debuggen von Sicherheitsproblemen
http:/www.aspheute.com/artikel/20011119.htm
Siteüberwachung mit Scheduled Tasks
http:/www.aspheute.com/artikel/20010419.htm

Links zu anderen Sites

HFNetChk 3.2 beta build 9/20/2001
http://ntbugtraq.ntadvice.com/default.asp?sid=1&pid=55&did=37
Microsoft Network Security Hotfix Checker
http://support.microsoft.com/support/kb/articles/q303/2/15.asp?id=303215&sd=tech#Download
Shavlik Network Security Hotfix Checker
http://www.shavlik.com/nshc.htm

 

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.