Incident Response, Security and Forensics"

.

jueves, 19 de marzo de 2009

Forensics WMIC: ¡¡ Este es mi Kung fu !!

Hola lectores,

En una empresa he tenido que automatizar varios servidores windows 2003 para realizar un análisis preventivo forense. El motivo no es otro más que estar prevenidos ante una intrusión en base a alertas y motorización.

Como partíamos de que la empresa quería algo rápido y no quiere productos en los que haya que invertir excesivo tiempo o dinero, les propuse utilizar Scripts con WMIC.

WMIC es un conjunto de extensiones perteneciente al modelo de drivers de Windows y que viene preinstalado en el sistema operativo. Es funcional a partir de Windows 2000 y esta presente en toda la gama superior.

Dispone de un set de utilidades en entorno gráfico, descargables desde aqui

La ventaja de WMIC es que se puede utilizar de una forma muy cómoda desde la linea de comandos o utilizando cualquier lenguaje de programación conocido. WMIC
es más intuitivo que WMI, en gran parte debido a los alias. Los alias son subcomandos que interactuan con el sistema operativo.

También es capaz de generar los resultados en distintos tipos de ficheros, entre ellos los más comunes, XLS, CSV, HTM, etc.

La base de su funcionamiento es la siguiente:

wmic [global_switch] [options] [format]

Mejor lo vemos con un ejemplo:

Si quiero sacar una lista de recursos compartidos en formato tabla pondríamos el siguiente comando:

wmic share list /format:table

Siendo este el resultado:



EMPEZAMOS

Entrando en el caso que nos ocupa, me propuse automatizar el proceso, desarrolle un simple (pero efectivo) script en BAT, que a diversas horas o en determinados eventos, el servidor ejecuta este script y que a su vez devuelve un resultado en HTML, quedando publicado en la intranet web.

La idea por supuesto es obtener información para posteriormente analizarla.

Básicamente este es el script, que por su puesto es mejorable y que también se podría haber realizado con otras utilidades como las 'pstools'.



Vamos a analizar algunas lineas de su contenido:

'Computersystem' y 'registry' muestran la información de la máquina y fecha de instalación del registro, nota muy importante para un timeline de análisis forense.

'Process' muestra los procesos y el ejecutable que lo contiene, si le añadimos 'creationdate' tendremos la fecha de creación del proceso

'Startup' enseñará las aplicaciones que se ejecutan automáticamente al inicio del sistema o inicio de sesión del usuario

'RDtoggle' indica si esta activado el acceso remoto por terminal server

'logon' y 'group' muestra los usuarios que han realizado 'login' y los grupos actualmente creados'

'job' las tareas programadas

'netlogin' y 'netuse' muestra los usuarios que han realizado login, pero le añado las fechas de incio y fin de sesión. También muy importante.

'nteventlog' me indica entre otras cosas la fecha de ultimo acceso y modificación de el fichero de eventos de seguridad, asi si esta activo o no.

'sysdriver' me permite ver que drivers están instalados, el path donde se encuentran y si estan activos o no, importante para la detección de rootkits.

Al final de todas las lineas estamos especificando que genere un fichero HTML que presenta el siguiente resultado y que se publica en la intranet










Bien, partiendo de esta información, ya podemos poner toda la imaginación al poder, ya que no solo podemos capturar información, si no que podemos interactuar con las aplicaciones que estén instaladas en los servidores, por ejemplo podemos finalizar un proceso con este comando:

wmic process where name="ashserv.exe" call terminate

O podemos iniciar una aplicación:

wmic process call create "C:\snort.exe"

O podemos especificar como queremos que se ejecute el antivirus

wmic service where caption="avast! Antivirus" call changestartmode "Disabled"

Si ademas de todo ello, lo combinamos con NETCAT o First Response de MANDIANT, podemos enviar los resultados a otro ordenador o dispositivo para su posterior análisis

CONCLUSIONES

Aunque es más práctico de utilizar scripts basados en vbscripts o Powershell y WMIC es algo complicado de comprender (y dado que no existe apenas documentación clara al respecto) a cambio, diré que es rápido y efectivo, no hay que instalar ningún producto, dado que interactua con el sistema y las aplicaciones instaladas, permite la ejecución remota y se exporta en multitud de formatos. En combinación con otras herramientas, como las de Sysinternals, se convierte en una potente utilidad.

También puede ser utilizado para auditar sistemas en los que no se nos permite instalar ningún software que no este aprobado por los administradores