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

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Schluß mit lustig Teil 3 - das Hfnetchk Tool

Geschrieben von: Christian Holm
Kategorie: Sicherheit

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:

  • Windows NT 4.0 and Windows 2000 Betriebssysteme
  • MS SQL Server 7/2000 (inklusive Microsoft Data Engine (MSDE)
  • Internet Explorer Versionen ab 5.01

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:

  • admin.dll
  • root.exe
  • readme.eml
  • readme.exe

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.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Applikationen aus ASP.NET ausführen
Automation - WSH versus Wget
Der Microsoft Baseline Security Analyzer (MBSA) 1.0
Kommandozeilen-Programme aufrufen
Schluß mit lustig - das IIS Lockdown Tool
Schluß mit lustig Teil 2 - das URLScan Tool
Schritt-für-Schritt Debuggen von Sicherheitsproblemen
Siteüberwachung mit Scheduled Tasks

Links zu anderen Sites

HFNetChk 3.2 beta build 9/20/2001
Microsoft Network Security Hotfix Checker
Shavlik Network Security Hotfix Checker

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©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.