Autor: Vos sabes quien soy
2009-03-31 00:28: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).