Silent Runners verfolgt den Zweck, alle Anwendungen, welche automatisch
bei Systemstart von Windows geladen werden, zu
erkennen und wenn möglich namentlich zu
bezeichnen.
Dieses Skript wurde erstmals für Mitglieder der
NTBugTrag mailing list (NTBugtraq = eine Art offene Diskussionsrunde zum
Thema "Sicherheit auf Windows-Systemen") im Rahmen eines Beitrags vom
12. Mai 2004 erstellt.
Der erste überarbeitete Entwurf von Silent Runners wurde unter der Versionsnummer 10 veröffentlicht. Die aktuellste Auflage kann
von dieser Seite herunter geladen werden. Ein Versionsvermerk ist dem Quellcode unten in Kommentarzeichen '#' angefügt. Ältere Ausgaben
sind
hier archiviert.
"Silent Runners" versteht sich NICHT als Scanner zum Aufspüren von Viren, Trojanischen Pferden oder Spyware. Dieses Skript
macht lediglich sichtbar, unter welchen Umständen bestimmte Anwendungen in den Speicher geladen werden. Das System
wird dabei NICHT gezielt nach Segmenten einer evtl. vorhandenen Malware durchsucht.
Die damit erstellte "Textdatei" darf zu Studienzwecken herangezogen, oder als Vergleichstest gespeichert werden.
Dieses Skript ist kompatibel zu
Windows 95/98/SE/ME/NT4.0/2K/XP (ebenso zu
Windows 2003 Server, allerdings wird Skriptauflösung hier nicht unterstützt).
Es ist in
VisualBasicScript (Version 5.1 oder höher) geschrieben und bedarf der Unterstützung von WMI (Windows Management Instrumentation),
um auf die Registrierungsdatenbank zugreifen zu können. WMI wird standardmäßig unter Windows ME/2K/XP mitinstalliert. Es kann
jedoch für
Windows 95/98 und
Windows NT4.0 nachgerüstet werden.
Nicht sicher, ob bereits eine Version von "
Windows Script" oder "
WMI" auf dem System installiert ist? Dies ist nicht weiter tragisch,
denn das SilentRunners wird einen - beim Versuch es ohne WMI oder WScript auszuführen - automatisch auf die entsprechende
Downloadseite von Microsoft leiten.
Dieses VBSkript nimmt zwar in keiner Weise Veränderungen am System vor, dennoch bestehen keinerlei Gewährleistungsansprüche. Wenn es angwendet wird, so auf eigene Gefahr.
SilentRunners wird durch einen simplen
Doppelklick auf das erzeugte
Icon gestartet. Es lässt sich jedoch ebenso über eine Kommandozeile
unter Eingabe von "
CScript.exe" ausführen. In diesem Fall erfolgt die Ausgabe direkt über die Konsole.
Es erstellt eine
Textdatei als Ausgabe und legt diese standardmäßig am
Speicherort des Skripts selbst ab. Um es jedoch an einem
beliebigen Ort des Systems zu speichern, muß dies über einen entsprechenden Kommandozeilen-Befehl vorgenommen werden.
Sollte der Name des Verzeichnisses der Ausgabe Leerzeichen beinhalten, so setzt man diese in Hochkommata. Will man ein solches
Verzeichnis unter Verwendung von "WScript.exe" anlegen, so muß
SilentRinners zunächst damit verknüpft werden. Anschließend
trägt man das gewünschte Ausgabe-verzeichnis unter "Zielort" ein. Fertig.
Die nach Verwendung des Skripts erstellte Datei ist vom Typ '
.txt' und trägt den Namen "
StartupPrograms". Weiterhin sind
(in runden Klammern) der
PC-Name angegeben, sowie das aktuelle
Datum und die
Uhrzeit enthalten. Sollte das Skript also bspw.
um 15:34:10 (3:34:10 p.m.) auf einem PC namens "Foo" am 10. Juni 2004 eine solche Textdatei erzeugen, trüge die Ausgabedatei
dieses Erscheinungsbild:
Startup Programs (Foo) 2004-06-10 15.34.10.txt
Befolge
diese Anleitung, um "zwei" solcher Textdateien zu erzeugen.
Die Ausgabedatei beinhaltet all das, was "sie" als "wissenswert" erachtet. Was bedeutet "
wissenswert" in diesem Fall?
"Wissenswert" impliziert, daß alle "
nicht standardmäßigen" Werte die sich auf dem durchsuchten System befinden und von
SilentRunners entdeckt werden,
ausgegeben werden. Stellt sich die Frage, was bedeutet "
standardmäßig"?
Diesen Status erhält alles, was
von Microsoft dort platziert wurde, als
Windows auf diesem System installiert wurde. So ist etwa
in jeder Windows-Installation "explorer.exe" als Standard-Kommandointerpreter (Shell) enthalten. Wenn "explorer.exe" nun als die Standard-Shell und somit "legitime" Windowskomponente erkannt wird, so fügt
SilentRunners diese Komponente NICHT der Ausgabe hinzu.
Bedeutet das, das nun alles in der Ausgabe enthaltene als "verdächtig" einzustufen ist?
Nein. Dies rührt daher, daß
SilentRunners aufgrund seines "begrenzten Codes" nur ganz bestimmte Abläufe ausführen kann. Es ist nicht darauf ausgelegt, "verdächtige" von "legitimen" Funden zu unterscheiden. Wie bereits erwähnt, werden hiermit keine Malwarespuren aufgetan, sondern nur Dinge gelistet, die nicht dem Windows-Standard entsprechen und somit zwangsläufig "hervorstechen". Darunter fallen selbstverständlich auch eine Menge legitimer und bewußt installierter Anwendungen auf dem System. Der eigentliche Staus einer "verdächtigen" Komponente müsste anschließend also selbst analysiert werden.
Unter gewissen Umständen, weist
SilentRunners auf eine "mögliche Infektion" hin. In diesen Fällen veranlasst das Skript die Erzeugung von Ausgabeeinträgen wie "
INFECTION WARNING" (etwa "Warnung - Infektion") oder "
HIJACK WARNING" (etwa "Warnung - Hijacking").
Ihnen werden dann die korrespondierenden
Registrierungsschlüssel des Systems vorangestellt.
Dies bedeutet jedoch NICHT, daß der PC jetzt infiziert ist !
Es sagt lediglich aus, daß dieser markierten Zeile etwas atypisches anhaftet und daß sie deshalb genauer in Augenschein genommen werden sollte.
So können vom Skript ebenso spezifische Segmente in Registrierungsschlüsseln gefunden werden, welche normalerweise auf Computer Betriebssystemen keine Verwendung finden. Dann wird
SilentRunners diese Worte in der Ausgabe voranstellen "
EXECUTION UNLIKELY" (etwa "ungewöhnliche Ausführung").
In der Regel dauert ein Durchlauf mit
SilenRunners nicht länger als
30 Sekunden. Zwei Suchläufe können jedoch mehr Zeit in Anspruch nehmen. Denn dabei werden sowohl sämtliche Verzeichnisse aller installierten Laufwerke nach Startpunkten in der DESKTOP.INI DLL
durchkämmt, als auch alle in der Registrierung enthaltenen CLISDs nach inaktiven Explorer Leisten durchsucht. (Diese sind über
LaunchPoints zu finden und tragen den Index "1" in der Spalte O/S).
Diese erweiterten Suchoptionen wurden dem Skript nachträglich hinzugefügt und lassen sich wie folgt aktivieren. Entweder man beantwortet die erste erscheinende Meldung in der DOS-Box mit "
Nein", oder man fügt dem Script
vor seiner Ausführung den Parameter
"-supp" (ohne Hochkommata) im entsprechenden Registrierungswert bei:
C:\directory_containing_the_script>"silent runners.vbs" -supp
Um das Skript dazu zu veranlassen,
jeden durchsuchten Bereich und
jeden Fund auszugeben, so muß es über die Kommandozeile ausgeführt werden und mit dem Parameter "-all" (ohne Hochkommata) versehen werden:
C:\directory_containing_the_script>"silent runners.vbs" -all
- Die Ausgabe zeigt nur die dem Betriebsystem zugehörigen Startpunkte an.
- Skriptparameter lassen sich auch bequem verknüpfen und via "Ziel"-Feld einfügen.
- Wichtig, die Parameter "-all" und "-supp" heben sich gegenseitig auf und können daher nicht kombiniert werden.
- Um eine Übersicht der nach Startpunkten durchsuchten Registrierungschlüssel, INI-Sektionen, Dateien und Verzeichnisse
- zu erhalten, klicke >hier<
- Um eine detaillierte und illustrierte Download-Anleitung zu einzusehen, klicke >hier<