[B]atch [D]efender v3.2 - Antivirus para ".bat" (by VanX)

Iniciado por VanX, 31 Julio 2011, 15:37 PM

0 Miembros y 2 Visitantes están viendo este tema.

VanX

HOla a todos de nuevo, hoy les traigo este programita que hice ya un poco mas profesional pero que aún le queda mucho por mejorar.


Es un antivirus para archivos ".bat" ya que busqué por la red pero no había ninguno así que decidí hacer uno propio :P

Características:
- AntiBatch
- Escaner ".bat"
- USB Protector
- Se minimiza en la barra de tareas para un uso más complejo


si encuentran cualquier bug o sugerencia ya saben ;)

saludos

http://www.megaupload.com/?d=XDLHYI13
http://www.mediafire.com/?t9a3jvqfcql9r9i

leogtz

Si pudiera ver el código quizá te podría dar una opinión.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

jmetin2

#2
pues la verdad no detecta codigos ofuscados

Mira ase tiempo cree un ofuscador de texto en batch tipo visual basic pero me cree un archivo .bat (virus basico)

@echo off
title Hola
:hola
start
goto hola
exit

y lo pase por mi encriptador batch

y quedo asi

@ccmd34GGJ3 j3J4OO&JJ3K20JdkIJ rgij9IJHOIHklnN&:OIJq90399U&SjeakFPIihaIHip0a&'9JE'JA'9J OIJq90399U&MMDNU204

y stub lo que ase es leerse asi mismo y busca una cadena de numeros y de ay parte la cadena para desencriptarla. Paso tu antivirus y no detecta nada, Ejecuto y me salen las miles de pantallas y nada de nada

Creo que Debes mejorar tu codigo en tiempo Real jeje.

Porsierto Debes de agregarle un poco de IA a tu antibatch,
si ay una etiqueta y no ay mas de 5 lineas dentro de la etiqueta y el ultimo comando es un goto Debes chekar cada codigo como Si en esos comandos ay una "If" y un goto con otra etiqueta, es un codigo libre.

Digo lo anterior de la IA porque con un codigo nada malware:

@echo off
title Hola
echo.>hola.exe
Del hola.exe
exit

Pues este codigo no ase nada lo mas que ase es crearte un archivo y de nuevo borrarlo.

Si quieres te ayudo a tu proyecto. Claro solo es una opcion :) esta bueno

aaaa

te preguntaras porque uando ejecute el primer codigo no detecto que se cree el archivo, bueno aqui est la razon:

set a=mofgfhh
set a="%a:mo=ty%"
set a="%a:gf=p%"
set a="%a:yp=ype%"
%a% "%~0">nul
....... descifra.......
set b=TextoDesEnCriptado
set a=ffhnmmkkjd
set a=%a:ff=S%
set a=%a:hn=T%
set a=%a:mm=A%
set a=%a:STA=start%
set a=%a:~0,5%
%a% Cmd /C %b%>nul
exit

Creo que tu codigo solo detecta las variables de este tipo:

set a=st
set b=a
set c=rt
set d=%a%%b%%c%
%d% >>start y pues deberias chekar y agregarle un chekador MD5 a los archivos que ejecuta el cmd y añadirle a tu antivirus una lista de md5 de los virus pobles a ejecutar.

Yo con mucho gusto te ayudaria y la verdad es facil.

Edito Para Agregate Otras Cositas:

con los comandos copy Debes ser un poco mas sensible y como te dije ase rato la IA

como otro ejemplo:

Copy %~0 %homepath%\Escritorio\Yo.bat

Bueno si se copia asi no creo que haga mucho daño tu lo que Debes escanear de este codigo son las rutas donde se copia, no es lo mismo homepath a Windir

Otra cosa los parametros de copy por ejemplo que sobre escriba.

Como te dije con la lista MD5 y el tiempo real modifica el registro para que pase por tu programa todo el codigo. no directamente por la shell de comandos como la Famosa SandBox de los muchos antivirus.

Es algo bastante bueno y hablando de sandbox la podrias agregar

1 Ejecutar con todos los derechos: poder manejar todos y cada uno de los archivos del sistema con total confianza
2 Derechos Limitados: poder manejar archivos sin importancia
3 Sin ningun derecho a ejecutar comando que no esten en el system32 ni comandos que afecten los archivos

y bueno esa es mi idea y vendria enlazada con la IA.

Espero que te sirva.
Empezando a programar en MASM32

VanX

Cita de: jmetin2 en  1 Agosto 2011, 04:59 AM
pues la verdad no detecta codigos ofuscados

Mira ase tiempo cree un ofuscador de texto en batch tipo visual basic pero me cree un archivo .bat (virus basico)

@echo off
title Hola
:hola
start
goto hola
exit

y lo pase por mi encriptador batch

y quedo asi

@ccmd34GGJ3 j3J4OO&JJ3K20JdkIJ rgij9IJHOIHklnN&:OIJq90399U&SjeakFPIihaIHip0a&'9JE'JA'9J OIJq90399U&MMDNU204

y stub lo que ase es leerse asi mismo y busca una cadena de numeros y de ay parte la cadena para desencriptarla. Paso tu antivirus y no detecta nada, Ejecuto y me salen las miles de pantallas y nada de nada

Creo que Debes mejorar tu codigo en tiempo Real jeje.

Porsierto Debes de agregarle un poco de IA a tu antibatch,
si ay una etiqueta y no ay mas de 5 lineas dentro de la etiqueta y el ultimo comando es un goto Debes chekar cada codigo como Si en esos comandos ay una "If" y un goto con otra etiqueta, es un codigo libre.

Digo lo anterior de la IA porque con un codigo nada malware:

@echo off
title Hola
echo.>hola.exe
Del hola.exe
exit

Pues este codigo no ase nada lo mas que ase es crearte un archivo y de nuevo borrarlo.

Si quieres te ayudo a tu proyecto. Claro solo es una opcion :) esta bueno

aaaa

te preguntaras porque uando ejecute el primer codigo no detecto que se cree el archivo, bueno aqui est la razon:

set a=mofgfhh
set a="%a:mo=ty%"
set a="%a:gf=p%"
set a="%a:yp=ype%"
%a% "%~0">nul
....... descifra.......
set b=TextoDesEnCriptado
set a=ffhnmmkkjd
set a=%a:ff=S%
set a=%a:hn=T%
set a=%a:mm=A%
set a=%a:STA=start%
set a=%a:~0,5%
%a% Cmd /C %b%>nul
exit

Creo que tu codigo solo detecta las variables de este tipo:

set a=st
set b=a
set c=rt
set d=%a%%b%%c%
%d% >>start y pues deberias chekar y agregarle un chekador MD5 a los archivos que ejecuta el cmd y añadirle a tu antivirus una lista de md5 de los virus pobles a ejecutar.

Yo con mucho gusto te ayudaria y la verdad es facil.

Edito Para Agregate Otras Cositas:

con los comandos copy Debes ser un poco mas sensible y como te dije ase rato la IA

como otro ejemplo:

Copy %~0 %homepath%\Escritorio\Yo.bat

Bueno si se copia asi no creo que haga mucho daño tu lo que Debes escanear de este codigo son las rutas donde se copia, no es lo mismo homepath a Windir

Otra cosa los parametros de copy por ejemplo que sobre escriba.

Como te dije con la lista MD5 y el tiempo real modifica el registro para que pase por tu programa todo el codigo. no directamente por la shell de comandos como la Famosa SandBox de los muchos antivirus.

Es algo bastante bueno y hablando de sandbox la podrias agregar

1 Ejecutar con todos los derechos: poder manejar todos y cada uno de los archivos del sistema con total confianza
2 Derechos Limitados: poder manejar archivos sin importancia
3 Sin ningun derecho a ejecutar comando que no esten en el system32 ni comandos que afecten los archivos

y bueno esa es mi idea y vendria enlazada con la IA.

Espero que te sirva.

Sabía que no detectaba ofuscados y por eso estoy trabajando en ello y también en detectar solo los  codigos malvados porque a veces detecta secuencias como la que has mencionado ;)

gracias

jmetin2

de nada amigo

a si te sirve de ayuda, para los codes ofuscados, puedes leer el archivo padre (el que llama al archivo ouscado) asi te fijas en el algoritmo.


a otra cosita informate muy bien sobre los comandos especiales

<nul set/p "=Hola mundo"

es igual a
echo Hola mundo

Bueno Adios y buenos Dias
Empezando a programar en MASM32

VanX


leogtz

Cita de: jmetin2 en  1 Agosto 2011, 12:18 PM
de nada amigo

a si te sirve de ayuda, para los codes ofuscados, puedes leer el archivo padre (el que llama al archivo ouscado) asi te fijas en el algoritmo.


a otra cosita informate muy bien sobre los comandos especiales

<nul set/p "=Hola mundo"

es igual a
echo Hola mundo

Bueno Adios y buenos Dias

Por supuesto que no, son diferentes. un echo por defecto lanza un newline, usando set /p de esa manera se inhibe.

Saludos.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

43H4FH44H45H4CH49H56H45H

Cita de: VanX en 31 Julio 2011, 15:37 PM
si encuentran cualquier bug o sugerencia ya saben ;)

Siento revivir el tema pero quería hacer una sugerencia.
Hace un par de años hice mi versión "antibatch", aunque tenía la opción de que el usuario pudiera agregar las firmas y/o comandos para la detección se hacía muy aburrido andar recolectando muestras para nuevos tipos de .bat, para hacerlo sencillo recurrí a bloquear directamente cmd.exe, así al analizar ejecutables podía saber si este contenía algún .bat sin necesidad de monitorizar los cambios en el HD o en los procesos, ya que se muestra un mensaje como este:



Solo se necesita una función en VS C++ tan sencilla como esta:

int lockFile(char *file)
{
FILE    *pFile = NULL;
char    *fileName = file;
    fopen_s(&pFile, fileName ,"r+");
    if (!pFile)
    {
return 0;
    }
    _lock_file(pFile);   
printf("\nThe %s is locked\nPress any key for Unlock %s.\n", fileName,fileName);
getchar();
    _unlock_file(pFile);   
    fclose(pFile);
    printf("\n%s is Unlocked.\n", fileName);
return 1;
}


Pero es mejor hacerla con CreateFile y C++ utilizando clases (como la que hice ese tiempo).
Para que veas cómo trabaja hice un pequeño ejemplo en C para ver su uso, lo que hace primero es listar los procesos para terminar los que correspondan al Símbolo del sistema, por cada proceso que encuentre y termine incrementa 0.5 segundos la espera para iniciar el bloqueo.



Luego intenta ejecutar un .bat o similar para ver cómo funciona, el programa esperara a que se oprima una tecla para el desbloqueo.



Este método solo funciona en Win XP, en 7 es un poco más complicado, pero sirve de ejemplo  :P

Se puede combinar con un poco de heurística para bloquear solo en determinadas ocasiones.

Espero te sirva.
Saluos.

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

43H4FH44H45H4CH49H56H45H

Me olvide el enlace de descarga:
http://www.4shared.com/file/PW7kNXcp/Lcmd_2.html
No edite el post anterior porque me salian errores en el código al previsualizar :-\

-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W

VanX