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.

Descargar PeStudio

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.

Descargar AppCrashView

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!

05 diciembre, 2014

Habilitar "solicitud echo entrante ICMP" para PING en Windows XP, 7/8.1

Por norma general, por defecto Windows tiene habilitado esta función pero en el caso de que esté deshabilitada y queramos habilitarla. Tendremos que hacer una serie de configuraciones que varían un poco si se trata de OS Windows XP o Windows 7/8.1.

Para poder habilitar la conocida respuesta de un host a host u otro dispositivo en una solicitud del protocolo ICMP (Internet Control Message Protocol) basado en el programa de comandos ping.exe. Lo que se conoce como "solicitud de echo ICMP entrante".

Esto se hace mediante el uso de Firewalls, como ya sabremos desde la versión de Microsoft Windows XP SP2, Windows incorpora por defecto el Firewall. 
- En el caso de XP llamado por Microsoft: ICF (Internet configuration Firewall).
- En el caso de Windows Vista/7 llamado: WFAS (Windows Firewall Advanced Security).

Para habilitar o deshabilitar la solicitud de echo ICMP entrante en Windows XP.

[1] - Simplmente nos vamos a un: Panel de control > Firewall de Windows > nos vamos a la pestaña de, Opciones avanzadas > en la sección ICMP > pulsamos en el botón, Configuración > marcmos el checkbox "Permitir solicitud de eco entrante" > aceptamos todas las ventanas y listo.

Habilitar la solicitud de echo ICMP entrante en el Firewall de Windows XP (ICF)
Figura 1: Habilitar la solicitud de echo ICMP entrante en el Firewall de Windows XP (ICF).

Para habilitar la solicitud el echo ICMP entrante Windows 7.

[1] - Abrimos el Firewall de Windows 7, desde: Inicio > Panel de control > Sistema y Seguridad > Firewall de Windows.
Una vez en el Firewall nos vamos a "Configuración avanzada" (opción que se encuentra en la parte inferior del panel azul ubicado a la izquierda).
Se nos abrirá la configuración avanza del Firewall de Widnows > Nos colocamos sobre, Reglas de entrada > Botón derecho, Nueva regla.

Creamos una nueva regla en la configuración avanza del Firewall de Windows 7
Figura 2: Creamos una nueva regla en la configuración avanza del Firewall de Windows 7.

[2] - En el Tipo de regla, "Personalizada" > En Programas, "Todos los programas" > Protocolos y puertos, en el tipo de protocolo seleccionamos: ICMPv4 (en el caso de querer habilitarlo para la versión 4 IP, caso de usar IPv6, pues obviamente ICMPv6).

Seleccionar ICMPv4 como tipo de protocolo
Figura 3: Seleccionar ICMPv4 como tipo de protocolo.

[3] - Ámbito, seleccionamos en ambos casos tanto para IP locales como IP remotas "Cualquier dirección IP" > Acción, "Permitir la conexión" > Perfil, dejamos marcado en que perfil queremos que funcione esta regla, por defecto se podría dejar como está que serían para cualquier tipo de perfiles (Dominio, privado y público), aunque quizás, pero no necesario, por poner un "punto" de seguridad solo lo dejaría para Dominio y privado > Nombre, aquí pondremos algo que haga referencia a esta acción, en mi caso, como ejemplo puse: "Solicitud echo ICMPv4 entrante".

Regla habilita de solicitud de echo entrante para ICMPv4 en Windows 7 bajo Firewall (WFAS)
Figura 4: Regla habilita de solicitud de echo entrante para ICMPv4 en Windows 7 bajo Firewall (WFAS).

Y con esto queda configurado el Firewall para poder recibir peticiones de PING a una dirección IP de un host a otro dispositivo.

Saludos!
Entradas Relacionadas