Conficker-Check

Conficker ist gefährlich und kann nur durch die Installation eines Updates für Windows Systeme verhindert werden. Lassen Sie ihre Server und Workstations nicht lahmlegen. Eine Conficker Infektion stört nachhaltig den Betrieb und allein der Ausfall der Domain Controller stört jede Netzwerkfunktion. Das Skript hier verhindert nicht Conficker aber kann helfen, befallene Systeme zu finden.

VBScript und 64Bit !
Viele 32bit COM-Objekte lassen sich auf einem 64bit System nur instanziieren, wenn die 32bit Version von CSCRIPT/WSCRIPT genutzt wird, welcher unter C:\Windows\SysWOW64\cscript.exe liegt.

Patch-Faulheit ist kein Kavaliersdelikt !
Niemand sollte behaupten, er wüsste nicht von Conficker und Konsorten. Dann dürfen Sie auch nicht für ihr Netzwerk verantwortlich sein. Es ist aber die Flexibilität von Conficker, der sich per USB-Speicher oder Netzwerkverbindung und eine Lücke in Windows verbreitet, die dort auffällig wird, wo Firmen ihre Netzwerke nicht abschotten und ihre System nicht patchen. Es reicht in infizierter USB-Stick oder ein fremder Notebook, der als Gast sich in ihr LAN verbindet und per RPC an die Server kommt. Er muss weder Administrator sein noch Mitglied der Domäne. Es passiert schnell aber nicht lautlos.
Es ist nicht schwer, sich zu schützen. WSUS und MBSA sind nur zwei Ansätze. Es muss nicht gleich 802.1x Authentifizierung auf jedem Port sein, obwohl dies schon mehrere Firmen mit uns umgesetzt haben. Aber Patchen ist notwendig.  JETZT und immer wieder.

Unterstützung durch Net at Work:
Wir können Sie aktiv unterstützen. Rufen Sie einfach unter 0800-MSXFAQ (0800-638 28 96) an. Sie sind sicher nicht der erste Betreiber, der aus solch einem Grund den Kontakt zu uns sucht.

Software ist nie fehlerfrei und über eine Lücke im Windows Server Dienst konnte man mit entsprechend formatierten Paketen eigenen Code ausführen. Der Bug wurde sehr bald durch ein Windows Update (15 Oktober 2008  KB 958644) gefixt aber natürlich gibt es massenhaft Server und Clients, die natürlich nicht regelmäßig gepatched werden. Es war also nur eine Frage der Zeit, bis ein Schädling diese Lücke nutzt, um Systeme zu kapern. Und es ist dann nur eine Frage der Zeit, bis jemand ein solche infiziertes gerät in einem Firmennetzwerk einsetzt, in dem es keine Firewalls untereinander gibt.

Ausgelöst durch einige Supportcalls habe ich das Skript NAWInventory vereinfacht, um in einem LAN einen Überblick zu erhalten. Conficker hat die Eigenschaft, diverse Dienste auf deaktiviert zu stellen bzw. zu stoppen. So wird z.B. der "Windows Update Dienst" beendet, damit der PC eben keinen Updates mehr zieht.

Die Funktionsweise

Das Skript ist weder ein Conficker Remover noch ein Conficker Scanner. Es liest aber aus dem Active Directory die Liste der Computer aus und geht dann einen Computer nach dem anderen durch, pingt dieses an und versucht per WMI den Status einiger Dienste (wscsvc,lanmanserver,wuaUserv,bits,ersvc) zu erfahren. Das Ergebnis landet dann in einer CSV-Datei, welche Sie mit Excel einfach öffnen können

Download und Einrichtung

Zuerst müssen Sie das Skript natürlich herunter laden:

confickercheck.2.3.vbs.txt

Für einen Administrator sollten die nächsten Schritte nicht schwer sein:

  • Anlegen eines leeren Verzeichnisses
  • Ablegen der Anlage und die Extension .TXT entfernen
  • CMD-Shell als Domänen Admin in dem Verzeichnis starten
  • Starten mit: CSCRIPT confickercheck.1.0.vbs /AD:"dc=domain,dc=tld"

Das Skript legt im aktuellen Verzeichnis eine Textdatei ab, in der es alle Aktivitäten protokolliert und die auch heran gezogen werden kann. 

Ergebnisauswertung

Das Skript protokolliert alle Aktionen in einer LOG-Datei und schreibt die Ergebnisse in zwei CSV-Dateien

confickercheck-%datum%-%zeit%.txt

Diese Datei enthält je Server eine Zeile und kann z.B. in Excel einfach als Übersicht aufbereitet werden

Der Servername in der ersten Spalte wird vom WMI-Status gefolgt. Nur "WMIOK" garantiert korrekte Daten. Ansonsten war der Server nicht erreichbar (NoPing) oder der Benutzer hatte keine Berechtigungen (WMIError). Die fünf weiteren Spalten enthalten die Startart des jeweiligen Dienstes. Wenn der Dienst aktuell gestartet ist, ist der Text "GROSS"-Geschrieben. Interessant sind hier natürlich Systeme, bei denen BITS und Windows Update auf "deaktiviert" stehen. Die Spalte "KB958644 gibt an, ob der Patch installiert ist. Eine weitergehende Prüfung auf das Betriebssystem erfolgt aber nicht, d.h. Windows 2008 R2 und Windows 7-Systeme haben den Patch nicht und sind trotzdem "sicher". Conficker wird wahr, wenn ein Dienst "Netsvcs" gefunden wird, welcher auf eine Variante des Confickers hinweist. Die Spalte MSTask gibt an, wie viele "geplante Tasks" auf diesem Server existieren.

mstask-%datum%-%zeit%.txt

Da sich Conficker auch über "geplante Tasks" einnistet und weiter verbreitet, protokolliert das Skript auch alle Tasks in dieser Datei. Jeder Task ist in einer eigenen Zeile dokumentiert.

Das Beispiel zeigt eine CMD.EXE, die auf dem NAWSV010 einmalig gestartet wird. Eine weitergehende Konvertierung der Felder habe ich nicht vorgenommen. für die Suche nach Conficker reicht schon die Kommandozeile als Hinweis.

Das Skript ist sehr einfach gehalten und kann von ihnen natürlich in jeder Hinsicht erweitert werden, z.B. Um abgewandelte Benachrichtigungen. Denkbar wäre auch eine Kontrolle, ob der Patch installiert ist, um eine Bestätigung zu erhalten.

Umgekehrt kann man aber mit hoher Sicherheit sagen, dass ein Client mit aktivem Windows Update Dienst zumindest "noch nicht" von Conficker betroffen ist. für eine komplette Inventarisierung von Clients bezüglich der installierten und ausstehenden Updates sollten Sie sich unbedingt z.B. den WSUS-Server anschauen.

Einschränkung

Das Skript erfordert, dass Sie als Administrator sich mit den Clients verbinden können, dass die Clients angeschaltet sind und dass die Client noch auf WMI-Anfragen (RPC) reagieren. Leider ist es eine der Eigenschaften von Conficker, genau diese Funktionen auch zu blockieren. Dann können Sie nur an der Situation, dass der Client zwar Anpingbar aber nicht auslesbar ist, einen Conficker-Verdacht haben aber keine Sicherheit.

Andere Wege zur Erkennung von Conficker

Wer sich die Beschreibungen genau durchliest, wie "Conficker" arbeitet, der wird sehen, dass Conficker zuerst ein paar DNS-Abfragen an z.B. dyndns oder getmyip macht, um so heraus zu finden, ob eine Namensauflösung möglich ist. Findige Administratoren können also auf dem DNS-Server solche Anfragen entweder in die Irre leiten oder mitschneiden, um so auch "aktive Conficker-Clients" zu finden.

Conficker versucht zudem auch über Zugriffe auf MSN, GOOGLE etc. die Durchgängigkeit bezüglich HTTP zu prüfen. Das kann man aber auf einem Proxy nur sehr schwer blocken, da auch gute Zugriffe so verhindert werden würden. Das Risiko lässt sich aber verhindern, wenn der Proxy z.B.: eine Authentifizierung erfordert und die Benutzer zum Surfen ihr Kennwort eingeben müssten. Dann würde ein Zugriff scheitern oder die Dialogbox auffallen.

Conficker entfernen

Das "Entfernen" von Conficker ist insofern nicht einfach, da er natürlich sich dagegen wehrt und eine Neuinfektion verhindert werden muss. Daher gehe ich in der Regel folgende Schritte pro Server durch. In der Regel fange ich mit den DCs an, da alle anderen Server von diesen stark abhängen

  • Patchen mit KB958644
    Erst nachdem die Lücke in NETAPI.DLL gepatched ist, kann der Virus den sp�ter gereinigten PC nicht mehr �ber diesen Weg infizieren
  • Kennworte ändern
    Wenn Sie Konten haben, die eines der Kennworte verwendet, die Conficker "probiert", dann sollten Sie umgehend diese Kennworte ändern, um Neuinfektionen zu verhindern. Dies gilt insbesondere auch für lokale Konten (z. B. lokale Administratoren)
  • Gruppen kontrollieren
    Prüfen Sie in dem Zuge auch, welche Konten in der Gruppe der Domänen Administratoren und lokalen Administratoren enthalten sind. Nicht dass hier weitere "�berraschungen" lauern.
  • Conficker entfernen
    Es lohnt nicht, von Hand die Anleitungen der verschiedenen Webseiten durchzugehen. Das
  • Malicious Software Removal Tool (MRT) von http://www.microsoft.com/security/malwareremove/default.mspx arbeitet schnell und zügig und entfernt Conficker fast restlos.
  • AT-Tasks entfernen
    Ehe Sie aber den Server neu starten, sollten Sie noch schnell einen Blick auf die "geplanten Tasks" werfen. Auch hier legt Conficker entsprechende "geplante Tasks" an, um sich weiter zu verbreiten. Einfach löschen. Hinweis: Das Skript "confickercheck" legt eine TXT-Datei mit den AT-Jobs aller gescannten Server an.
  • Reboot
    Dann ist es an der Zeit, den Server schnell zu rebooten, damit der Patch auch aktiv werden kann.
  • Überprüfung
    Da es diese Lücke zwischen Installation des Patches und Neustart gibt, sollten Sie nach dem Restore einfach noch mal das System mit MRT scannen.
  • Startart der Dienste ändern
    Conficker deaktiviert die Dienste "Automatische Updates", "Bits" und "Error Reporting". Sie sollten diese Dienste nach der Entfernung von Conficker wieder auf die Standardwerte stellen, Bits = Manuell, ERSVC und WUAUSVC auf automatisch. Wer dies für alle Systeme zentral steuern will, kann dies per Gruppenrichtlinie vorgeben. Verstehen Sie die GPO aber nicht als "Ersatz" für einen Virenscanner. Conficker kann trotz GPO den Dienst natürlich beenden und bis zur erneuten Anwendung der GPO auch deaktivieren.
  • Kontrollieren
    Wenn Sie weiterhin auf den Schutz eines Virenscanners auf dem Server verzichten sollten, dann sollten sie regelmäßig ihre Server mit MRT überwachen. Speziell Conficker "verrät" sich derart, dass er Dienste stoppt und startet. Diese Meldungen erscheinen im Eventlog und könnten auch zentral erfasst und gemeldet werden.

Auch wenn Virenscanner auf Servern zusätzliche Lizenzen benötigen und Performance kosten, so ist der Betrieb eines Servers ohne Virenscanner schon länger nicht mehr zu verantworten. Machen Sie sich bitte genau deutlich, welches Risiko sie für ihre Umgebung und andere Firmen eingehen.
Auch Fragen einer Haftung kommen hier zum Tragen.

Weitere Links