share

Wanderer: enumeración de procesos en Windows

Procesos en Windows

Los procesos en windows son la versión moderna de aquellos programas de MS-DOS que se llamaban programas residentes en memoria. Es decir, que era software que siempre estaban cargados en memoria RAM. Pues los procesos son eso mismo, determinados programas que se cargan normalmente al inicio y ahí siguen ejecutándose.

Un proceso en windows, es un objeto que tiene asociado un moontón de propiedades. La mejor manera de verlos es instalar «process monitor» de www.sysinternals.com

Esta herramienta es muy completa, nos dice que procesos se están ejecutando y su relación con el registro de windows.

Modos de ejecución en Windows

En Windows hay dos modos de ejecución:

Modo usuario -> Cuando un usuario ejecuta una aplicación, Windows arranca un proceso y crea un espacio de memoria separado. En este modo no se puede acceder al hardware.

Kernel mode -> Hay varios componentes del sistema operativo ejecutándose en modo núcleo. Por ejemplo los drivers. Son modos de ejecución con mas privilegios para poder comunicarse con el hardware.

En windows cualquier cosa que se ejecuta tiene que estar autenticada, son las llamadas cuentas de servicio. Cuentas cuyas passwords desconocemos. SYSTEM es la cuenta con mas privilegios en un sistema Windows

Ataque por Buffer Overflow

Este tipo de ataque nos permite saltarnos la protección general del sistema operativo. El sistema operativo funciona en modo protegido para que los procesos no escriban en áreas no permitidas de memoria. La máquina crea una LAN para que el sistema operativo controle que los procesos no sobrescriben en el espacio de memoria de otro proceso (red loopback).

Si conseguimos saltar esta protección tenemos el conocido «pantallazo azul» que hace que el ordenador se cuelgue y ese proceso ejecute un malware o una shell inversa tal que si el proceso afectado es root, esa shell inversa también será root.

Dicho de otra forma, un atacante puede explotar esta vulnerabilidad para inyectar código malicioso en el buffer,

El punto débil de Windows son las librerías DLL que pueden ser maliciosas. La arquitectura de Windows tiene determinados parámetros de seguridad que evidentemente cumplen los ejecutables, los .exe porque los construye un compilador. Pero la DLL’s las hace un programador humano y por lo tanto se puede saltar esos parámetros de seguridad. Estas DLL’s inseguras son un gran problema en Windows.

Wanderer

Y en este contexto entra la herramienta que vamos a instalar en nuestro sistema.

Es una herramienta con interface CLI, muy simple, que nos enumera los procesos en ejecución y nos da una serie de parámetros. Varios de estos parámetros se pueden encontrar en el process monitor, pero otros no. Entre ellos una de gran utilidad para la fase de enumeración en el ciclo del hacking. Es decir esta herramienta enumera procesos potencialmente vulnerables.

Wanderer es un programa de código abierto que recopila información sobre los procesos en ejecución. Esta información incluye el nivel de integridad, la presencia de AMSI (Antimalware Scan Interface) como módulo cargado, si se ejecuta como 64 bits o 32 bits, así como el nivel de privilegio del proceso actual. Esta información es extremadamente útil cuando se crean cargas útiles adaptadas al candidato ideal para la inyección de procesos.

La interfaz de exploración antimalware de Windows (AMSI) es un estándar de interfaz versátil que permite que sus aplicaciones y servicios se integren con cualquier producto antimalware que esté presente en una máquina. AMSI brinda protección mejorada contra malware para sus usuarios finales y sus datos, aplicaciones y cargas de trabajo.

Es decir, que esta utilidad nos está diciendo que si un proceso no incorporar AMSI quizá sea vulnerable.

Instalación

Wanderer es una aplicación desarrollada en C# que no es otra cosa que el java de Microsoft y por lo tanto pertenece a la familia de aplicaciones .NET.

Es pues una aplicación para Windows. Podríamos preguntarnos por qué no se usa en Linux. Y la respuesta es que no hay prácticamente estaciones de trabajo con Linux, que es básicamente un Sistema Operativo para servidores.

Si yo me he introducido en la LAN empresarial y quiero por ejemplo hackear alguna estación de trabajo para escalar privilegios vía un ataque por buffer overflow bien porque he detectado un dll maliciosa o he sido capaz de introducirla, entonces wanderer me puede ser de utilidad para identificar procesos vulnerables. Por lo tanto como estas estaciones de trabajo empresariales llevan Windows, es lógico que Wanderer esté desarrollado para Windows.

Antes de instalarlo, tenéis que saber que el antivirus va a identificar a esta herramienta como código malicioso genérico. Introducir una excepción para toda la carpeta donde va instalada y así poder ejecutarla.

Entramos en:

https://github.com/gh0x0st/wanderer

Nos vamos al botón «code» y seleccionamos «download zip»

Cuando el archivo se ha descargado, nos creamos una carpeta en la parte del disco que queramos. Antes habremos de decirle a nuestro antivirus que excluya el ZIP y la carpeta de el análisis. Descomprimimos el ZIP en la carpeta creada.

Desde el administrador de archivos vamos a la carpeta:

C:\<nuestra carpeta>\wanderer-main\wanderer\wanderer\obj\x64\Release

Y ahí podemos observar el ejecutable.

Ahora para usarlo, abrimos powershell en modo administrador

hacemos:

cd C:\<nuestra carpeta>\wanderer-main\wanderer\wanderer\obj\x64\Release

Y ya estamos en condiciones de usar el aplicativo. Propongo los ejemplos que trae el creador de esta utilidad, por ejemplo:

.\wanderer –all

Enumera todos los procesos en ejecución:

Y como todas las herramientas CLI, tenemos la potencia y flexibilidad acostumbradas y la posibilidad de construir scripts en powershell usando esta herramienta.