Antivirus en Batch

Iniciado por Alvarito050506, 24 Febrero 2019, 22:18 PM

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

Alvarito050506

Hola a todos, este es mi segundo tema en el foro y el primero en la sección "Scripting".

Hace un tiempo -dos días para mi son "un tiempo"- que vengo trabajando en un cleaner o antivirus para memorias externas (pendrives, USBs, tarjetas SD, miniSD y microSD, etc.). Este pequeño programa escrito en Batch limpia y vacuna el dispositivo de almacenamiento externo, detecta si hay malware alojado en él y, si es así, realiza las acciones necesarias para eliminarlo.

Mi programa es muy simple, se ejecuta en la consola de Windows y ni siquiera posee interfaz gráfica. Pronto le agregaré una de estas, que permitirá que tenga más opciones de configuración.

A continuación les dejo el código fuente.
Código (dos) [Seleccionar]
@echo off
title Advanced USB Batch Antivirus
color F0

echo Bienvenido a AUBA (Advanced USB Batch Antivirus).
echo ADVERTENCIA: Este programa puede borrar contenido o información importante. Úselo bajo su propio riesgo.

set /p init=¿Desea continuar? [s/N]
if not %init% == s (
cls
goto end
) else (
cls
)

set /p unit=Ingrese a continuación la letra de la unidad que desea analizar

echo Cambiándole los atributos a los archivos...
attrib /d /s -r -h -s %unit%:\*

if exist %unit%:\*.lnk (
echo Eliminando los archivos de tipo MIME application/x-ms-shortcut...
del /f %unit%:\*.lnk
)

if exist %unit%:\autorun.inf (
echo Eliminando el archivo autorun.inf...
del /f %unit%:\autorun.inf
)

if exist %unit%:\Recycler.exe (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando el virus Win32:Folder/RECYCLER_BIN...
del /f %unit%:\Recycler.exe
)

if exist %unit%:\Desktop.ini (
echo Eliminando el archivo Desktop.ini...
del /f %unit%:\Desktop.ini
)

if exist %unit%:\mugen.vbs (
echo Virus detectado: Win32:VBS/Mugen
echo Eliminando el virus Win32:VBS/Mugen...
del /f %unit%:\mugen.vbs
)

if exist %unit%:\eicar.* (
echo Archivo de prueba detecado: DOS:Test/EICAR_Test_File
echo Eliminando el archivo de prueba DOS:Test/EICAR_Test_File...
del /f %unit%:\eicar.*
)

if exist %unit%:\*update.vbs (
echo Troyano detectado: Win32:VBS/Update_Downloader
echo Eliminando el troyano Win32:VBS/Update_Downloader...
del /f %unit%:\*update.vbs
)

if exist %unit%:\runauto\ (
echo Eliminando la carpeta runauto...
rmdir /s %unit%:\runauto\
)

if exist %unit%:\RECYCLER\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la carpeta RECYCLER...
rmdir /s %unit%:\RECYCLER\
)

if exist %unit%:\Recycler\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la carpeta Recycler...
rmdir /s %unit%:\Recycler\
)

if exist %unit%:\$RECYCLE.BIN\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la papelera de reciclaje (carpeta $RECYCLE.BIN)...
rmdir /s %unit%:\$RECYCLE.BIN\
)

if exist %AppData%\mugen.vbs (
echo Virus detectado: Win32:VBS/Mugen
echo Eliminando los procesos wscript.exe y cscript.exe...
taskkill /im wscript.exe /f
taskkill /im cscript.exe /f
echo Eliminando el virus Win32:VBS/Mugen...
del /f %AppData%\mugen.vbs
)

if exist %Temp%\conhost.exe (
echo Gusano detectado: Win32:Folder/Conhost_PE
echo Eliminando el proceso conhost.exe...
taskkill /im conhost.exe /f
echo Eliminando el gusano Win32:Folder/Conhost_PE...
del /f %Temp%\conhost.exe
echo Eliminando los archivos de tipo MIME application/x-msdownload...
del /f *.exe
)

if exist C:\$RECYCLE.BIN\ (
echo Virus detectado: Win32:Folder/RECYCLER_BIN
echo Eliminando la papelera de reciclaje (carpeta $RECYCLE.BIN)...
rmdir /s C:\$RECYCLE.BIN\
)

echo Escribiendo archivo autourun.inf preventivo...
echo 00 > %unit%:\autorun.inf
echo Cambiándole los atributos al archivo autorun.inf...
attrib +h +r +s %unit%:\autorun.inf

echo Eliminando la entrada del registro HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run...
reg delete HKCU\Software\Microsoft\Windows\CurrentVersion\Run /va /f
echo Sobrescribiendo archivo hosts a su configuración de fábrica...
echo # 127.0.0.1 localhost > C:\Windows\System32\drivers\etc\hosts

echo Limpieza completa. Considere utilizar un antivirus para asegurar su computadora y prevenir futuras infecciones.
:end
echo Ejecución terminada. Gracias por usar AUBA.
pause>nul


Espero comentarios, críticas y contribuciones pronto.
Gracias.

Eleкtro

#1
Cita de: Alvarito050506 en 24 Febrero 2019, 22:18 PM
Espero comentarios, críticas y contribuciones pronto.

Este tipo de "limpiadores" hechos en Batch-scipt y llevados a cabo desde la completa inexperiencia y desconocimiento, nunca llevan a ninguna parte.

No se si eres consciente de que estás eliminando archivos conocidos - y que no tienen por que ser maliciosos - sin una justificación real, y llevando a cabo otras acciones por igual, con una advertencia que realmente no advierte de los peligros reales que puede ocasionar la utilización de tu script, pues para empezar modificas a tu antojo los atributos de todos los directorios y archivos, luego eliminas cualquier acceso directo (*.lnk) en el directorio raíz de la unidad especificada, además del archivo de configuración de carpeta (Desktop.ini) y el AutoRun.inf, pero lo peor de todo es que eliminas sin miramiento alguno el directorio completo de la papelera de reciclaje en la unidad C:\ ($RECYCLE.BIN), aunque al menos tal y como has especificado la sintaxis del comando rmdir este pedirá confirmación al usuario, pero ni aun así, esa "detección de virus" es falsa e innecesaria, y por si eso fuese poco además eliminas la clave de registro de configuración de inicio de programas, todo sin que nadie te haya pedido que elimines nada de eso sin una autorización previa por parte del usuario... la advertencia actual es insuficiente.

Cita de: Alvarito050506 en 24 Febrero 2019, 22:18 PM
Código (dos) [Seleccionar]
title Advanced USB Batch Antivirus

Llamar "Advanced" a este tipo de scripts es muy poco humilde, es más, por el mero hecho de ser un Batch-script esto ya es incalificable como "Advanced" ni sinónimos, mucho menos "Antivirus"; no es por desmerecer tu tiempo y esfuerzo invertido en el desarrollo del código, pero es la realidad y cuanto antes te des cuenta de ello, mejor será para ti y tus objetivos de programación.

Sinceramente, tu "limpiador" puede causar más perjuicios que sanar, sobre todo para quien no sepa exactamente lo que va a ser modificado y eliminado de su sistema al iniciar tu script y luego se encuentre con la sorpresa de que le has eliminado todo el contenido de la papelera de reciclaje que a lo mejor ese usuario luego quisiera restaurar, o que sus programas instalados dejan de iniciarse al inicio de Windows por que has eliminado cierta clave de registro que guarda esa configuración de programas, o ver que ciertos directorios y archivos ya no están ocultos por que tu script ha modificado sus atributos, etc. Yo no usaría este tipo de "vacunas" ni como último recurso.

No eres el primero ni serás el último que se pone a aprender programación Batch y ve como buena idea hacer este tipo de "vacunas USB" y lo postea en el foro también. Mi crítica constructiva se la dirijo a todas esas personas también...

Mi consejo (si es que lo llegas a querer): olvídate de seguir haciendo este tipo de scripts en batch, en serio, ya no es que sea innecesario reinventar la rueda, es que directamente no son de ninguna utilidad y de hecho su utilización puede resultar perjudicial según el desconocimiento de quien lo use, y al final haciendo esto solo perderás (sin saberlo) un preciado tiempo pudiendo estar haciendo otras cosas realmente útiles en lenguajes de programación de verdad.

PD: espero no haber sido demasiado duro / sincero.

Un saludo.








Alvarito050506

Hola Elektro, sabés que tenés razón en cada aspecto. Y me di cuenta de lo que decís al momento de investigar un poco más a cerca del malware y la seguridad informática.

Es por lo anterior que hice SHIFT+SUPR a la carpeta contenedora del "programa" y empezé a (re)escribirlo desde cero pero en un verdadero lenguaje (C) y utilizando verdaderos métodos antivirus (expresiones regulares y algo de heurística).

Gracias por ser sincero. Saludos.

Eleкtro

Estoy sorprendido, ¡me alegra escuchar tu decisión!








Serapis

Opino como Elektro...

Si quieres hacer algo en script, todavía podrías... infórmate por ejemplo sobre Yara
https://yara.readthedocs.io/en/v3.8.1/

Alvarito050506

Hola NEBIRE. Sí, conozco Yara y lo he considerado como una posibilidad, pero quiero crear mi propio motor (ya lo estoy haciendo, de hecho).

Es por los motivos ya mencionados que decidí reescribir el programa, en C y utilizando un motor de expresiones regulares y heurística propia.

De igual forma, gracias por el dato y por opinar.

**Aincrad**

Por ahi hay un antivirus en batch muy famoso, es este ; USB File Resc

yo me encargue hace un año y medio de sacarle la fuente y la publique aquí, a los 2 días el creador ya me había reclamado xd. tube que borrarla.

al final termine por ayudarle creando un ofuzcador para batch y ofuzcamos completamente la fuente.

Pero el tema de antivirus es muy complejo, yo mismo que estoy haciendo mi propio motor antivirus  en vb.net, con varios tipos de scanners, estoy usando yara, scan md5 , scan hex , scan PE. por el momento me falta el scan con yara , ya tengo una DB. xd