DIESER SERVICE KANN ÜBERSETZUNGEN VON GOOGLE ENTHALTEN. GOOGLE ÜBERNIMMT KEINERLEI VERANTWORTUNG FÜR DIE ÜBERSETZUNGEN. DARUNTER FÄLLT JEGLICHE VERANTWORTUNG IN BEZUG AUF RICHTIGKEIT UND ZUVERLÄSSIGKEIT SOWIE JEGLICHE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, NICHT-VERLETZUNG VON RECHTEN DRITTER ODER DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK.

Die Website von Kaspersky Lab wurde für Ihre Bequemlichkeit mithilfe einer Übersetzungssoftware von Google Translate übersetzt. Es wurden angemessene Bemühungen für die Bereitstellung einer akkuraten Übersetzung unternommen. Bitte beachten Sie, dass automatisierte Übersetzungen nicht perfekt sind und menschliche Übersetzer in keinem Fall ersetzen sollen. Übersetzungen werden den Nutzern der Kaspersky-Lab-Website als Service und "wie sie sind" zur Verfügung gestellt. Die Richtigkeit, Zuverlässigkeit oder Korrektheit jeglicher Übersetzungen aus dem Englischen in eine andere Sprache wird weder ausdrücklich noch stillschweigend garantiert. Einige Inhalte (z. B. Bilder, Videos, Flash, usw.) können aufgrund der Einschränkungen der Übersetzungssoftware möglicherweise nicht inhaltsgetreu übersetzt werden.

Trojan-Banker.Win9x.Libertine

Kategorie Trojan-Banker
Plattform Win9x
Beschreibung

Technische Details

Dieser Virus ist ein plattformübergreifender und polymorpher Infektor, der sowohl DOS- als auch Win32-Dateien betrifft. Es wurde nach den Textzeichenfolgen in seinem Code benannt:


[Win32.Libertine v1.07b]
Copyright 1998-xxxx durch
Das Virus kann in drei verschiedenen Formen gefunden werden:
  • infizierte Win32 PE-Dateien
  • infizierte DOS-COM-Dateien
  • Win32 PE Dropper (31672 Bytes pure Virus Code)
Aufgrund von Fehlern können die infizierten COM- und EXE-Dateien nicht unter Windows NT ausgeführt werden, sie werden mit der Standard-NT- oder DrWatson-Fehlermeldung beendet. Trotzdem nenne ich den Virus Win32, nicht Win95, weil der Virus-Dropper den Virus auf NT-Computern ohne Probleme verbreiten kann.

Beim Infizieren sowohl von Win32- als auch von DOS-Dateien schreibt der Virus seinen vollständigen 32 KB-Code an das Ende der Dateien und ändert die Dateiheader, um die Kontrolle an die Virenroutine zu übergeben. Die Adressen der Eintrittsroutinen sind in allen drei Infektionsfällen unterschiedlich. Der Virus in beiden infizierten Win32- und DOS-Programmen, wenn die Steuerung die Win32-Pipette (die C: MYLENE.EXE-Datei) sucht, führt sie aus und gibt die Kontrolle an das Host-Programm zurück. Wenn sich im Stammverzeichnis auf dem Laufwerk C: kein Dropper befindet, erstellt der Virus ihn zuerst und führt ihn dann aus.

Diese Dropperaktivierungsroutinen sind in infizierten Dateien ziemlich kurz. Im Falle von DOS-COM-Dateien ist es nur etwa 200-Byte-einfach zu erstellen, zu schreiben, zu schließen, zu laufen Routine. Im Fall von Win32-Dateien ist es anspruchsvoller, aber auch ziemlich dumm und kurz.

Also erstellt der Virus in infizierten Dateien den Dropper und führt ihn aus – nicht mehr, und alle Infizierungs- und Nutzlast-Virus-Funktionen fallen auf den Win32-Virus-Dropper.

Den Dropper laufen lassen

Wenn der Dropper ausgeführt wird, führt der Virus zunächst einige Tricks aus, um seine Anwesenheit im System zu verbergen. Um Zugriffsverletzungs-Systemmeldungen zu verhindern, deaktiviert der Virus mithilfe der Funktion SetErrorMode KERNEL32 die allgemeine Schutzfehlermeldung. Windows fährt dann fort, Anwendung ohne Bericht über Schutzverletzung auszuführen.

Der Virus überprüft dann das System, auf dem er ausgeführt wird (Windows95 / 98 oder Windows NT), und im Falle von Windows9x patcht das System undokumentierte Prozessdatenbank und setzt zwei Flags darin – NukeProcess und ServiceProcess. Diese Flags werden für mindestens zwei Zwecke gesetzt: a) Der Prozess ist in der Aufgabenliste Strg-Alt-Entf nicht sichtbar. b) Der Prozess wird nicht beendet, wenn sich der Benutzer abmeldet. Um diese Flags zu aktivieren, führt der Virus seinen Dropper erneut mit dem Argument "sexy" ID aus.

Unter einer gepatchten Systemumgebung ausgeführt, springt der Virus zu seinen anderen Routinen: Anti-Anti-Virus-Routine, Nutzlast und Infektion.

Anti-Virenschutz

Um den Antivirenschutz zu deaktivieren, hat der Virus nur ein einziges Antivirusprogramm, nämlich APVI – den AVP Inspector Integrity Checker (CRC Scanner). Der Virus sucht nach der AVPI-Datei, öffnet sie und sucht nach spezifischem Code. Wenn ein solcher Code gefunden wird, ersetzt der Virus ihn durch NOP-Anweisungen. Abhängig von verschiedenen AVPI-Versionen, die unterschiedliche Effekte verursacht haben: AVPI erkennt keine Änderungen im System oder es stoppt sofort den Scanvorgang und zeigt den Statistikdialog an.

Der Virus erhält den AVPI-Dateinamen unter Verwendung der Systemregistrierung. Es öffnet den Schlüssel HKEY_USERSDefaultSoftwareKasperskyLabAVPI, ruft das Verzeichnis Path to AVPI auf, öffnet die AVPICHCK.DLL, scannt und patcht es. Um ein doppeltes Patchen zu verhindern, speichert der Virus die ID "kcah" ("hack" rückwärts geschrieben) im Dateiheader im Offset 0030h.

Der Virus beendet auch AVPI, wenn es aktiv ist. Um dies zu tun, findet der Virus das AVPI32-Fenster, erhält seine Thread-ID, öffnet und beendet den Prozess.

Infektion

Wenn die Infektionsroutine die Kontrolle erlangt, durchsucht der Virus alle Unterverzeichnisbäume auf allen installierten Festplatten ab C: nach allen Dateien, wenn sich in der Sequenz (CD-ROM, Remote oder andere) nicht fixierte Festplatten befinden, beendet sich der Virus selbst.

Wenn eine Datei gefunden wird, überprüft der Virus sie auf COM- oder EXE-Dateinamenerweiterung. Der Virus infiziert nur solche Dateien und sucht ansonsten nach der nächsten Datei oder dem Unterverzeichniseintrag. Wenn die Datei eine ausführbare Erweiterung hat, springt der Virus mit der Wahrscheinlichkeit 7/8 in Abhängigkeit vom Systemtimer zur Infektionsroutine, andernfalls wird die Suche fortgesetzt, ebenso wie im Falle einer nicht ausführbaren Namenserweiterung.

Zunächst trennt der Virus COM- und EXE-Dateien, indem er die ersten beiden Bytes mit dem magischen MZ-Stempel vergleicht. Im Falle einer EXE-Datei überprüft der Virus dann die Portable Executable und die Viren-ID-Stempeln – doppelte Wörter "PE" am Anfang der Kopfzeile und "IM!" im Feld PE CheckSum. Beim Hinzufügen des Codes zum Ende der portablen ausführbaren Datei erstellt der Virus einen neuen Abschnitt mit dem Namen _Mylen_, ändert die Adresse des Einstiegspunkts und einige andere erforderliche Felder. Anschließend wird die polymorphe Engine ausgeführt, ihre Kopie verschlüsselt und an das Ende der PE-Datei in den neu erstellten Abschnitt geschrieben.

Im Falle einer COM-Datei schreibt sich der Virus selbst ans Ende der Datei, konvertiert aber auch das Dateiformat in EXE, indem er den EXE-Header am Anfang der Datei anfügt. Der Virus infiziert DOS-Dateien nicht zweimal – er überprüft das interne Dateiformat und wirkt sich nur auf COM-Dateien aus. Als infiziert haben sie das EXE-Format und werden von der Virusinfektionsroutine umgangen. Der Virus infiziert auch keine Dateien mit "ENUN" -Text am Ende der Dateien. Diese ID bedeutet, dass diese COM-Dateien durch CRC geschützt sind, so dass der Virus sie nicht infiziert. Der Virus infiziert auch keine kleinen und großen COM-Dateien mit einer Länge unter 2K oder über 60K.

Infizierte COM-Dateiausführung

Beim Infizieren von DOS-COM-Dateien konvertiert der Virus sie in das EXE-Format, dh die infizierten COM-Dateien haben einen EXE-Header: MZ-Magic-Stempel oben und alle notwendigen EXE-Header-Felder. Die sorgfältige Untersuchung des infizierten Dateiheaders zeigt sofort den Ursprung des Programms durch den Hacker: einige Felder haben Werte, die in normalen Programmen nicht gefunden werden können. Zuallererst bleiben die HeaderSize-Felder (Absätze im Header) Null, dh das bedeutet, dass es keine Bytes im EXE-Header gibt (aber es gibt mindestens zwei – "M" und "Z"). Das zweite verdächtige Feld ist "CS at entry" mit einem Wert von -100h (FFF0h). Die Verwendung dieser beiden Felder im selben EXE-Header zwingt DOS, eine solche EXE-Datei als Standard-DOS-COM-Datei zu laden: die Bytes von 0000 bis 00FFh belegt durch Segmentpräfix des Programms, Bytes von 0100h bis zum Ende des zugewiesenen Speichers sind für das Dateiabbild und das allererste Byte der Datei wird am Offset 0100h plaziert. Im Falle von DOS-COM-Dateien darf das Datei-Image ein Segment (64K) nicht überlappen, im Falle von DOS-EXE-Dateien kann ein ladbares Bild jede Größe haben, die einen freien Speicherblock füllt.

Mit dem COM-> EXE-Trick kann der Virus COM-Dateien beliebiger Größe infizieren, die nach der Konvertierung ihre Funktionalität nicht verlieren, wenn die Dateigröße während der Infektion um mehr als 64 KB steigt. Virusgröße merken – ohne Konvertierung in das EXE-Format könnte der Virus COM-Dateien mit einer Größe über 32 KB nicht infizieren. Ein weiterer wichtiger Effekt des Tricks ist der einfache Weg, die Kontrolle an das Host-Programm zurückzugeben – der Virus macht nur die ersten 4Fh Bytes des Dateiheaders wieder und springt dorthin.

Der Viruscode wird also in den Speicher geladen, beginnend mit den ersten Bytes ("MZ" -Stempel) bis zum letzten, und die Kontrolle wird an die Adresse übergeben, auf die der EXE-Header zeigt. Im Falle dieses Virus wird der Zugangscode sehr nahe der Dateioberseite – an der Adresse 0020h gelegt. Diese Routine unter Verwendung von 32-Bit-i386-Anweisungen erhält den Versatz des Hauptvirus-Codes (dieser Versatz wird an der Adresse 001Ch im Header gespeichert), wandelt ihn in das 16-Bit-Segment: Versatzformat um und springt dorthin. Die Eintragsroutine hakt auch INT 24h, um eine Standard-DOS-Fehlermeldung beim Schreiben auf schreibgeschützte Volumes zu verhindern. Ich habe keine Ahnung, warum der Autor des Virus sie hier, aber nicht im Hauptviruscode platziert hat.

Wenn der Haupt-Virencode die Kontrolle erhält, prüft er die Windows-Präsenz. Wenn Windows nicht ausgeführt wird oder die Windows-Version kleiner als 4.0 ist (Windows95), stellt der Virus die ursprünglichen Host-Programmbytes ganz oben wieder her und gibt die Steuerung dorthin zurück. Wenn Windows ausgeführt wird, erstellt der Virus die C: MYLENE.EXE-Datei, schreibt Win32-Dropper dorthin, schließt die Datei und führt sie aus. Der Dropper übernimmt die Kontrolle und der Virus kehrt auf seinem Infektionslevel zurück.

Infizierte PE-Dateiausführung

Wenn eine infizierte PE-Datei ausgeführt wird, übernimmt die polymorphe Virusroutine die Kontrolle, entschlüsselt den Viruscode und springt zur Hauptroutine. Diese Routine ist nicht dasselbe wie im Falle einer COM-Datei. Es ist 32-Bit-Programm, das mit Windows-Arbeitsspeicher und Ressourcen arbeitet, aber das Ziel dieser Routine ist das gleiche wie im Falle von COM-Datei: Es erstellt und führt den Virus Dropper.

Um auf die Windows-Funktion zugreifen zu können, muss der Virus sie entweder mithilfe der PE-Importtabelle importieren oder ihre Adressen durch Scannen des Windows-Kernels ermitteln. Der Virus wählt den zweiten Weg: Er achtet auf die Umgebung (Windows95 / 98 oder Windows NT – der Virus verwendet in beiden Fällen korrekte Offsets), parst KERNEL32-Importe und sucht nach den Funktionen CreateFileA, WriteFile, CloseHandle und WinExec. Die Virenprozedur in infizierten PE-Dateien ist recht einfach und benötigt nur diese vier Einträge. // Hier ist ein Fehler im Viruscode, der seine Verbreitung unter WindowsNT stoppt.

Der Virus erstellt dann ähnlich wie im Falle einer infizierten DOS-COM-Datei die C: MYLENE.EXE-Datei, schreibt den Dropper-Code dorthin, schließt und führt diese Datei aus. Der Dropper übernimmt die Kontrolle, und dieser PE-Zweig des Virusalgorithmus kehrt zum Stamm zurück.

Nutzlast

Vor dem Aufruf von Anti-Viren- und Infektionsroutinen ruft der Virus die Triggerroutine auf. Diese Routine wird je nach Systemzeitzähler mit einer Wahrscheinlichkeit von 1/8 ausgeführt und ändert das Windows-Hintergrundbild (WallPaper). Der Virus erstellt einfach die C: MYLENE.BMP-Datei, schreibt ein Bild von Mylene Farmer (?) Dorthin, konvertiert es in das BMP-Format und deklariert es als Windows WallPaper-Image:

Dabei greift der Virus über die Systemregistrierung auf den installierten JPEG-Viewer zu:


HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsGraphics FiltersImportJPEG
Der Virus lädt dann die entsprechende Bibliothek in den Speicher, ruft die Adresse ab und ruft die ImportGr-Routine auf. Der Virus führt diese Konvertierung nur durch, um seine Größe zu verringern: Das Ergebnis BMP-Bild ist 160K-Datei, so dass der Virus in seinem Code die 16K-JPEG-Variante des gleichen Bildes behält. Als ein WallPaper-Bild akzeptiert Windows95 nur das BMP-Format, so dass der Virus die JPEG-Quelle zu BMP konvertieren muss.

Das Ergebnisbild wird dann in derselben C: MYLENE.BMP-Datei gespeichert, die dann als Hintergrundbild für Windows-Desktop registriert wird:


HKEY_CURRENT_USERControl Paneldesktop
Der einzige kleine Punkt in dieser Konvertierung ist, dass ich alles Notwendige auf meinem Testcomputer habe, aber der Virus konnte mein Wallpaper nicht aktualisieren.

Direct Action, aber Speicher resident?

Vor dem Infizieren jeder Datei ruft der Virus die Standard-Windows-API-Funktion Sleep auf und verzögert seine Aktivität für 3 Sekunden. Dies ist der sehr (vielleicht der wichtigste) Block von Viruscode. Mit nur einem dieser Aufrufe wird der Virus als "resident resident" bezeichnet.

Das Ergebnis dieser schläfrigen Anweisung kann der Viruscode für lange Zeit im Systemspeicher bleiben. Auf dem Computer befinden sich 1000 COM- und EXE-Dateien. Der Virus wird 3 Sekunden lang schlafen, bevor er sie infiziert, so dass er für 50 Minuten (3000 Sekunden) im Speicher bleibt.

Der Virus ist im Speicher resident: Er bleibt für lange Zeit im Systemspeicher und andere Anwendungen können ausgeführt werden, während die Virusinfektionsroutine aktiv ist. Trotzdem ist es Direct Action Virus (wie nicht residente Viren) – es sucht nach Dateien im Unterverzeichnis Baum und infiziert sie, und keine Ereignisse süchtig.

Immer noch versuchen Virenschreiber, die gleiche konservative DOS-Methode zu verwenden: Sie erstellen Windows VxD-Hooking-IFS-API, ähnlich wie DOS-TSR-Hooking INT 21h. Dies ist die gängigste Entscheidung, um heute speicherresistente Windows-Viren zu erstellen. Vielleicht ist der Libertine-Virus der erste Virus mit semi-resident-Funktion, und in Zukunft werden wir mehr Viren dieser Art sehen – das ist viel einfacher, Windows-Anwendung als Windows VxD oder NT-Treiber zu debuggen.


Link zum Original