lunes, 7 de mayo de 2007

Creando un troyano

Alien García Agüero

Con este artículo quiero mostrar alguna de las cosas que debe de tener todo virus para considerarse un troyano. Lo primero es saber que es un troyano y que hace.

Bien, según varios artículos, revistas y la misma web, un troyano no es mas que un programa que se mantiene residente en la maquina hasta que suceda un evento determinado, que pudiera ser la llegada de una fecha determinada, o una acción llevada a cabo por el usuario, o cualquier otra cosa que se le ocurra al creador del troyano, (eso no lo dice la web).

Bien, lo primero que debería tener nuestro programa seria una instrucción que permita conocer su ubicación, si esta en un medio de almacenamiento extraíble, que se duplique hacia la PC, y si esta en la PC, que verifique cada un determinado tiempo para comprobar la existencia de medios de almacenamiento, y si los hay, duplicarse hacia ellos. De esta forma estamos garantizando que se propague. Pero esto no para aquí…

Debemos crear una especie de virus madre, que será la que cargara la maquina desde que se prende, para esto debemos buscar una dirección que no se modifique tanto, una carpeta que sepamos que la mayoría de los usuarios temen entrar o cosas por el estilo, un ejemplo pudiera ser C:\windows\system32, ya que al tener varios ejecutables, nadie sospecharía si un día apareciera uno mas. Este virus madre debería tener un nombre especifico, para luego asegurarnos de por el registro mandar a cargar el virus desde que la víctima se despierta. ¿Como?, bien esto lo haríamos a través del registro, la mayoría de los lenguajes de programación (para no ser tan general), nos permiten trabajar con el registro, solo tendríamos que buscar algo como: HKLM\Software\Microsoft\Windows\CurrentVersion\Run, que es donde se guardan en el registro de Windows los programas que se inician al encender la maquina.

Bien, hasta aquí todo va viento en popa, pero, con un solo archivo no bastaría, después tendríamos que crear copias del mismo por toda la maquina, esto no se hace para llenar el disco duro, porque por muchos archivos que se coloquen por toda la maquina, nunca será suficiente para repletar nuestro disco (a menos que tengamos 800 Mb, y no se vayan a reír, conozco de personas que trabajan con eso), la finalidad de esto es que en caso de que se borre por cualquier motivo el archivo madre, poder desde cualquier lugar volver a reponerlo, porque recuerden que en registro la dirección que estamos mandando a ejecutar será la de la dirección de la primera copia, si esta desaparece…. Es como si nada. La idea es que cada archivo que creemos sea capaz de crear una copia en la carpeta superior a la de su ubicación, uno en la carpeta inferior, y verificar si en la carpeta madre se encuentra una copia también, si no lo esta, entonces ponerse ahí también.

Por otra parte, se puede también implementar algo para que no se quede copiando constantemente, es decir, si cada archivo que creemos le vamos a dar la opción de que se duplique, jamás se terminara de copiar, para solucionar esto se pueden hacer muchas cosas, en este momento a mi se me ocurriría crear un archivo en C:\ con la hora del momento en que se empieza a copiar, y que cada nueva copia verifique primero si esta en tiempo, si la hora a la que se va a hacer la copia nueva es 5 seg mayor que la hora en que se comenzó la primera, entonces que no se realice ninguna acción y que se borre el archivo que tiene la hora (recuerden que en 5 seg se pueden hacer muchas copias, y no queremos que el usuario vean muy lenta su maquina, por el momento. Y lo de borrar el archivo que tiene la hora es evidente, hay que borrar nuestros rastro ¿no?).

De aquí en adelante solo nos resta preparar el programa para que verifique si se esta haciendo uso del buscaminas (por ejemplo), y si es así, entonces que realice su verdadera acción, que puede ser desde borrar una serie de archivos importantes para el sistema, como mostrar un bobo “Hola Mundo” en la pantalla (cada cual se divierte con lo que quiera).

Heee!! un momento, antes que se sienten a programarlo, quisiera darle algunos consejos, no son mas que experiencias que he tenido en la creación de programas y que pienso que les pueden ser útiles.

  1. Sería bueno crear las nuevas copias con nombre distintos, si alguien ve por toda la máquina varios archivos con el mismo nombre podría sospechar, para esto deberíamos crear dentro del programa una lista de nombres (mientras mas mejor), y escoger uno de forma aleatoria.
  2. Para no copiar varias veces el mismo archivo, podríamos verificar primero si donde se va a copiar ya existe, pero como tienen nombre distintos podríamos hacerles una marca a los archivos, por ejemplo, yo al final del archivo le pondría una frase, esto se puede hacer si se abre el archivo de forma binaria, y se escribe lo que se quiera al final (En Visual Basic y en Quick Basic funciona, tendrían que probar ustedes en sus propios lenguajes). De esa forma se podría leer en ves del nombre del archivo, la ultima línea, y si coincide con nuestra frase….
  3. En el registro, se puede declarar varios archivos como madres (por si las moscas….)
  4. Tratar de copiar al menos un archivo en cada partición, casi todos tenemos la maquina particionada, y es sabido que en D:\ es donde tenemos las cosas nuestras. Así que aquí es donde mas posibilidades existen para que el usuario haga clic sobre nuestro pequeño hijito.
  5. Ponerle nombres sugerentes, algo que sepamos que a las personas les gusta, no quiero ser muy explicito, pero todos babemos que quiere decir esto: Juli_xxx.jpg.exe
  6. Sobre las extensiones, recuerden que hay muchos zonzos en el mundo que no tienen habilitada la opción de ver las extensiones en los archivos, así que el archivo anterior se vería algo como Juli_xxx.jpg, para todos, esto es una foto. Cosa que reforzaremos cambiando el icono de nuestro ejecutable.
  7. Una cosa que pudiera ayudarles también seria saber que se puede cambiar la extensión (.exe) por (.scr), por lo menos con las cosas que he probado, los efectos son los mismos.

No obstante, si quieren aprender mas sobre los virus y su funcionamiento, yo les recomiendo buscar el instalador del SAV (No, no les voy a pedir que se suiciden), y abrir el archivo que se llama…..… lo busque pero no lo recuerdo, ya le cambie el nombre, solo se que se pesa 1.17 Mb (aproximadamente), y no tiene extensión, el mismo es completamente editable (Los que hicieron el SAV son unos barbaros), lo pueden abrir con cualquier editor (No recomiendo el Notepad, se funde por gusto), dentro del mismo aparece un listado de virus y como actúa cada uno. Algo bueno tiene que tener el SAV.



Artículos relacionados


No hay comentarios: