30 diciembre, 2014

PeStudio: Analizar ejecutables .exe y .dll en busca de posible malware

PeStudio, es un software de gratuito si se destina a uso personal, el que nos permitirá ver y/o analizar ficheros .exe y librerías dinámicas .dll, entre otros ficheros.

En estos análisis nos muestra diversos aspectos de un fichero en los cuales podemos investigar para saber que acciones realiza dicho fichero cuando lo ejecutamos, de este modo, podremos saber si se trata de un malware y en ese caso mirar que acciones podría o lleva cabo.

pestudio analizando malware
Figura 1: Analizando un .exe de un software de terceros reconocido apunta hacía un website como muestra en la captura.

En este ejemplo vemos como el fichero .exe de instalación en una de sus cadenas apunta hacía una website, se trata de un aplicación de terceros reconocida.

Por que redirige a dicha página web? la cual por lo que pude comprobar se trata de una web de cracking, principalmente esto fue intencionado para dar a conocer una de muchas funcionalidades de esta herramienta, dicha aplicación fue descargada de un página de software también reconocida, con esto aprovecho para comentar que es mejor SIEMPRE descargar el software, en este caso si es gratuito, desde las webs oficiales del propio autor o fabricante.

Saludos!

26 diciembre, 2014

Generar logs de aplicaciones bloqueadas/crashes ("dejó de funcionar, no responde") a través de WER [Windows Error Reporting]

En ocasiones ocurren inesperados crashes en aplicaciones o procesos del sistema que provocan a su vez comportamientos anómalos (cuelgues/congelados) en software de terceros.
Así como pueden ser los típicos: "explorer.exe dejó de responder", "iexplorer.exe dejó de funcionar", "ocurrió un error inesperado con outlook.exe, dejó de funcionar", etc.

Para este tipo de casos y poder generar un log en el que podamos analizar por que dicha aplicación se quedó bloqueada es necesario si no lo tenemos ya, habilitar el servicio Windows Error Reporting (WER) en los servicios de Windows, que por defecto suele estar habilitado.
Este servicio registra todos los eventos de errores ya sean software o hardware de nuestro OS Windows, para después enviar un reporte a Microsoft con información relevante al error ocurrido. Si es que antes el propio servicio en sus tablas de posibles causas ya registradas no lo resuelve antes.

Ahora podremos hacer esto de forma manual en el registro de Windows o simplmente copiar el código de registro que dejo a continuación y pegarlo en un documento de texto al que guardaremos y ejeutaremos posteriormente, con el nombre que queramos pero con extensión .reg.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\Explorer.exe]
"DumpFolder"="C:\\WER Dumps"
"DumpType"=dword:00000002

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\explorer.exe]
"GlobalFlag"=dword:02000100
"PageHeapFlags"=dword:00000003
Después de a ver hecho lo anterior el servicio WER escribirá un registro detallado del problema en el directorio C:\WER Dumps.

Aunque también existe, faltaría más!, una aplicación al respecto para realizar estas tareas de forma más cómoda.

AppCrashView es un software propiedad de Nirsoft con el que veremos las posibles causas de por que una aplicación/proceso quedó bloquead@ y/o no responde.

Figura 1: AppCrashView analizando un log de iexplorer.exe después de dejar de responder.

Nos mostrará las librerías dependientes al error causado, paths, alertas de mensajes, podremos guardar el log o informe, entre otras cosas.

Una vez se lanza la aplicación con privilegios administrativos, esta escanea hasta la fecha actual los errores de momentos reportados por el servicio WER, de tal modo que nos muestra dichos "bloqueos" con sus logs en la parte inferior en plaintext para poder interpretarlos con claridad.

Más información sobre WER:
http://msdn.microsoft.com/en-us/library/windows/desktop/bb513613(v=vs.85).aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/bb513638(v=vs.85).aspx

Saludos!

11 diciembre, 2014

PNPUTIL: Instalar controladores de forma nativa en el repositorio de Windows [DriverStore]

Pnputil.exe, es una pequeña herramienta que se usa mediante una command prompt de manera sencilla.

Esta utilidad nos permite principalmente; agregar y/o eliminar drivers o controladores que están preinstalados en la base de datos de nuestro MS Windows.

Lo cual esto nos puede resultar útil si necesitamos instalar equipos en producción en un entorno corporativo en el que se disponen de múltiples modelos de impresoras. Podemos prestablecer en una imágen o maqueta del sistema estos drivers ya instalados como si se trataran de forma nativa en Windows. Y de este modo ahorrarnos el buscar/copiar el driver de dichas impresoras en el equipo en cuestión.

Estos drivers se alamcenan por defecto en el repositorio de la DriveStore de Windows. Carpeta la cual se encuentra en el siguiente path:
%systemroot%\System32\DriverStore\FileRepository
Por ejemplo solo lo que son los controladores de impresoras se componen en su mayoría de ficheros .cat, .dll, .inf, etc. Incluso algunos modelos de impresoras u otros dispositivos solo necesitan un fichero de .inf para que Windows reconozca dicho dispositivo.

Los ficheros *.INF son archivos que almacenan el código de información para la instalación y funcionalidad de los controladores de cualquier tipo de dispositivo.

Para mostrar un ejemplo de todo esto. En mi equipo, Windows 7 por defecto no viene con Drivers para una determinada marca de impresora (Citizen), en este caso, voy instalar los controladores de dicha impresora para diferentes modelos de la misma marca, en los que después por defecto me aparecerán en la lista de drivers de Windows, ya que estos se guardarán en el DriverStore.

[1] - En primer lugar, mirar si disponemos del controlador ya preinstalado en el sistema.

Figura 1: No se muestran controladores Citizen.

[2] - Una vez que tengamos a mano la carpeta del controlador que queramos instalar. Abrimos una consola CMD con privilegios administrativos y escribimos:
pnputil -a Citizen.inf
Con el argumento "-a" (add) añadimos al repositorio de Windows un driver.
Podríamos ejecutar el comando situados en otra ruta, simplemente en ese caso tendríamos que hacer referencia de ella, por ejemplo: %PATH%\Fichero.inf .

En la captura  se observa como el fichero Citizen.inf alamacerá en este caso diferentes modelos de impresora para esta marca.

Añadiendo diversos modelos de controladores de Citizen con pnputil -a
Figura 2: Añadiendo diversos modelos de controladores de Citizen con pnputil -a

NOTA: En el transcurso de la copia de drivers a la DriverStore, Windows nos puede informar acerca de la firma legítima del fabricante en el controlador, si se trata o no de un controlador de confianza.
Por seguridad y para evitar posibles malwares, todo fabricante debería firmar sus controladores para todos sus modelos, pero por tema de costes muchos de ellos no llegan a cumplir esto, incluso si se trata de marcas reconocidas.

Otro caso, puede ser en el que tengamos y queramos otra estructura de drivers según marca/modelo en el existan varios ficheros .inf. Podemos agregar todos con el carácter comodín: *.
pnputil -a *.inf
[3] - Ahora volviendo al repositorio que nos ofrece Windows por defecto, vemos que se ha a añadido una nueva marca con sus respectivos modelos en la DriverStore de Windows.
Aclaro que, en este ejemplo el fichero "Citizen.inf", contenía diversos modelos de impresoras de la marca Citizen. Pero no siempre será así, en otras ocasiones solo habrá el driver específico de un modelo y marca. Eso dependerá de la construcción/programación del controlador por parte de la del fabricante.

Figura 3: Ya disponemos de una nueva marca y modelos en el repositorio DriverStore de Windows.

Saludos!
Entradas Relacionadas