AntiMW VBS Tools Versión v0.01

Sin más, le dejo el código:
ZIP: AntiMW VBS Tools
7-ZIP: AntiMW VBS Tools
el código online: html (se ve mal hasta que solucione el temita de los .htaccess... )
y un copy and past de readme.txt:


AntiMW VBS Tools
----------------
	
-Software Libre (GPLv2.0)
-v0.01 (7 de Octubre del 2008)
-Autores: por ahora solo yo, Ader Javier

Descripción 
-----------
-----------
AntiMW VBS Tools es un conjunto de herramientas escritas en 
VBS (Visual Basic Script) con fines administrativos y/o de seguridad
(específicamente antimalware). Tiene funciones como listar/logear
procesos, eliminar archivos lockeados, y modificar y listar valores importantes
del registro (tipicamente las utilizadas por malwares).

Razones de su uso:
- nuevos mws no son detectados por soft antivirus o anti-loquesea. En estas situaciones
  a uno solo le queda monitorear que es lo que esta pasando y ver si pasan cosas
  inusuales.
   
Razones del uso de VBS:
- muchos mws modifican privilegios de los mismos usuarios/administradores, 
 típicamente seteando claves del registro que restringen el uso de herramientas
 administrativas o antimw. Un ejemplo típico es el siguiente:
 se setean 
 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableRegistryTools
 a 1
 y
 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\DisableTaskMgr
 a 1

 De esta manera el usuario no puede ni usar regedit para restaurar los valores
 correcto ni el taskmanager para detener a mws(Ctrl+Alt+Del no sirve) aun teniendo 
 privilegios de administrador. Una de las formas de resetar a valores defaults 
 es usar soft externo.

- muchos mws pueden evitar la ejecución de programas ejecutables disparados
 desde el explorer (por ej modificando HKEY_CLASSES_ROOT\.exe\); adicionalmente
 deshabilitando el acceso a cmd evitando la ejecución de programas también desde
 consola. De esta manera tienen completo control de que se ejecuta o que no.
 Desde VBS se pueden by-pasear estas limitaciones (ok, si también se modifica
 HKEY_CLASSES_ROOT\.vbs\ estamos en la misma.... )

- VBS es un texto plano; así que uno sabe que es lo que realmente se hace el soft.
 Probablemente este sea el punto mas importante. 

Razones para no usar este soft:
- si uno puede usar soft administrativo la utilidad de este soft es mínima;
  en particular los programas de Sysinternals (*1) hacen mucho (y mucho mejor)
  de lo que hace este soft.

*1- http://technet.microsoft.com/en-us/sysinternals/default.aspx ; excelentes softs (seguros)
 para Windows; gentiliza de Mark Russinovich y Bryce Cogswell, gurús de Windows (probablemente
 los únicos ;) ). 


Breve Descripción de Scripts
----------------------------
----------------------------
NOTAS PREVIAS:
-------------
-muchos de los scripts (los que en el nombre tienen psexec o system) requieren 
el uso del programa psexec del paquete pstools disponible gratuitamente desde 
Microsoft ( nota *1 anterior). En estos programas también es muy probable que se 
deba setear las variable pathPsexec al path absoluto al directorio conteniendo 
a psexec. Estos scripts también requieren privilegios de administrador (ya que 
psexec se usa para correr bajo la cuenta Local System; para esto necesita instalar 
dinámicamente un driver en modo kernel).
-muchos requieren ser modificados manualmente para setear paths. Futuras versiones
 probablemente solucionen esto pidiendo interactivamente los parámetros al usuario.

Grupos de scrips
----------------
-filesystem: acceso y modificación de archivos/directorios. Actualmente
 solo dos daemons de eliminación y uno de existencia de archivo:
	del-file.vbs
	del-file-psexec.vbs (bajo Local System; sobrevive a logouts)
	existe.vbs
-logueadores de eventos de procesos (proc-event-loggers): eventos
 relativos a procesos/threads. Actualmente solo se loguea la
 creación de procesos.
	
	event-process.vbs : logea la creación de procesos con privilegios
	del usuario ejecutándolo. Pensado para se ubicado en directorio 
	"Inicio" (tip. C:\Documents and Settings\<NOMBRE DE USUARIO>\Menú Inicio\Programas\Inicio ).
	Otro posible lugar es en HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
	pero en este caso la entrada debería ser seteada a "wscript.exe <path al script>".
	
	pararEventUsuario: detiene indirectamente al logger anterior.
	
	event-process-system.vbs : loguea la creación de procesos corriendo
	con privilegio de Local System (por ej, puede ver las lineas de comando
	de procesos adueñados por servicios y usuarios). Se puede ejecutar
	en cualquier momento (solo una instancia) y sobrevive a logins y
	logouts. Especial para ver cuales son los procesos que se cargan en login
	y de los cuales no quedan rastros. Ej: un mw en login ejecuta a otro
	mw y finaliza; al segundo se lo puede detener y/o eliminar; del primero
	no se sabe nada luego del login; con este script se puede rastrear ya que
	esta ejecutando en todo momento.
	
	pararEventSystem: detiene indirectamente al logger anterior.
	
-administración de procesos (proc-utils): listan y finalizan procesos corriendo.
 
 run-user-kill-procesos.vbs : intenta finalizar a los procesos seteados en la
 variable pids (modificar código), preguntando previamente al usuario. Corre
 como el mismo usuario.
 
 run-user-list-procesos-todos.vbs : igual que el anterior pero pregunta por
 la finalizacion de cada uno de los procesos corriendo en el sistema.
 
 run-system-list-procesos.vbs y run-system-list-procesos-todos.vbs : iguales
 a los anteriores pero esta vez ejecutando como Local System (mas privilegios
 que Administrator)
 
 run-user-list-procesos.vbs : lista todos los procesos corriendo en el sistema
 en un archivo
 
 run-system-list-procesos.vbs : ídem que el anterior pero corriendo como Local 
 System (puede "ver mas").
 
 list-threads: lista todos los threads de todos los procesos corriendo 
 en el sistema.
 
-manejo del registro (reg-claves NO MUY TESTEADO *2): manipulan el registro. Actualmente 
 solo listan y setean los valores de claves "delicadas" (claves de políticas de restricciones)
 
 elirestr-final.vbs: basado en Elirstr; restaura a su valor por defecto claves de politicas
 de usario y de sistema (OJO no chequie que estos sean los valores defaults, pero casi 
 seguro que sí) 
 
 elirestr-leer-claves: lee y escribe las mismas claves/valores que 
 son afectadas por elirestr-final.vbs

 *2) actualmente no especifican si una clave existe o no (por ej, no
  se puede determinar si la eliminación falla por que la clave/valor
  no existe o porque no se tienen permisos de acceso)
  
Problemas conocidos
-------------------
-------------------

-los logger de procesos parecen perder algunos eventos
-los scripts de manejo de registro son bastante rudimentarias (no se puede
 saber si una realmente clave existe o no en todos los casos) 

Cosas a hacer
-------------
-------------

filesystem: loquear la creación/modificación/eliminación de directorios;
 listar directorios importantes.
logueadores de procesos: agregar logueo de nacionalización; descubrir por qué se pierden
 algunos eventos; agregar capacidad de terminar procesos
utilidades de procesos: agregar un daemon killer de proceso; listar directorios
 importantes (por ej, %windir%,%windir%\system,%windir%\system32,%windir%\system32\dirvers,
 directorios de inicio de de usuarios y directorios temporales) y ver si hay cosas raras
 (por ej ejecutables/drivers con fecha de creación/modificación reciente), daemons de 
 logeo/aviso de modificación/creaciones en estos dirs.
manejo de registro: leer/escribir/crear/borrar claves/valores arbitrarios; mostrar
las entradas "importantes" (por ej HKLM\Software\....\Run, y cada una de los \Run
 de los usuarios; SafeBot; listar procesos de inicio ,servicios y drivers)
en general: usar otras apis para el manejo de registros (en particular
 la clase StdRegProv, http://msdn.microsoft.com/en-us/library/aa393664(VS.85).aspx; 
 ver y testear la forma de correr los scripts de logeo/monitoración de manera
 mas temprana (claves del registro Run y en especial Shell o UserInit; incluso mejor y mas seguro,
 correrlos como servicios); permitir el ingreso de parámetros interactivamente (evitando
 la modificación del código de los scripts)
 
Historia
---------
---------

0.000 2/10/2008: Mi hermana miro un "foto" que le mandaban desde el messenger dentro de un
 zip.... Un día después veo mi pc accediendo mucho a Internet, sin acceso al TaskManager,
 ni al registro, con un cuantos .exe generados ejecutando, sin la posibilidad de bootear
 en modo seguro y con un pequeño driver en modo-kernel (de este me entere un poco mas tarde)
 simulando los adaptadores de red y haciendo otras cositas mas (mataba procesos que no 
 le gustase, modicafaba el registro todo el tiempo, etc)
0.001 3/10/2008: Empece a hacer y usar estos scripts 
0.01  8/10/2008: Los termine de retocar y le hice una cuenta limitada a mi hermana ;). Súbitamente
 recordé que había aprobado Seguridad En Sistemas y el principio de privilegio mínimo; por qué
 la aprobé? supongo que porque JaviZ es bondadoso jaja (ahhh y saca fotos y buenas por que lo
 que parece... yo creía que estaba jodiendo jajaja).
 
 

Comentarios

Autor: Vos sabes quien soy
2009-03-31 00:28:01
Saludos muchacho!
Autor: Anónimo
2009-02-09 22:57:03
Hola, buenos scripts!
(no requerido; no se usará ni se mostrará)
(no requerido)
Mensaje:
(necesitás tener javascript habilitido y saber un poco de mátematicas...)