Muy buenas a todos!

Después de unas merecidas vacaciones, volvemos a la rutina con un nuevo proyecto. Hoy os traigo un pequeño script escrito en PowerShell que nos facilitará el trabajo en nuestras auditorías de seguridad.

Antes de hacer las presentaciones, es necesario entender la necesidad de uso de la propia herramienta. Supongamos que estamos realizando un pentesting para un cliente y hemos conseguido las credenciales de un usuario, que casualmente tiene privilegios de administrador en uno de los equipos de la organización.

El equipo en cuestión, tiene una seguridad bastante alta. Debido a las premisas acordadas previamente, tenemos que hacer el menor ruido posible, por lo que uso de meterpreter queda descartado. Dependiendo del auditor, podríamos hacer un movimiento lateral o seguir recolectando más información para aumentar al máximo el impacto de nuestro ataque.

Si has elegido la segunda opción, estás de enhorabuena. Hoy nos convertiremos en auténticos ninjas gracias al Shadow Attack.

Pero, qué es eso del Shadow Attack? Es una técnica que consiste en utilizar una feature de Windows, que permite visualizar la sesión de otro usuario sin su consentimiento. Para ello, es necesario configurar algunos parámetros de seguridad en el equipo, entre otras muchas cosas. Normalmente, esta función se limita a las versiones Server, pero hoy veremos cómo utilizarlo también en las versiones Desktop.

Antes de comenzar, es necesario que tengamos claros los prerrequisitos para que la herramienta funcione correctamente:

• El equipo atacado deberá tener habilitado el recurso administrativo ADMIN$
• Necesitaremos las credenciales de un usuario con privilegios de administrador
• Nuestro equipo deberá encontrarse dentro de la misma red LAN que la víctima

En nuestro ejemplo vamos a utilizar como víctima a un Windows 10 Home versión 1709, recién instalado:

Ahora que ya conocemos la teoría, vamos a descargar la herramienta desde el siguiente enlace: https://github.com/JoelGMSec/AutoRDPwn

Una vez descargada, la ejecutaremos y nos encontraremos con la pantalla de bienvenida:

Debido a la sencillez de la herramienta, os explicaré su funcionamiento sobre la marcha. Primero lanzaremos el ataque utilizando la primera opción, que descargará la herramienta PsExec de Sysinternals para conectarse al equipo remoto:

En función de la versión del sistema operativo (32 o 64 bits) el script descargará la versión adecuada para que el ataque funcione correctamente. Si no sabéis la versión de la víctima no pasa nada, al utilizar la versión de 64 bits dará error y podréis volver a intentarlo con la versión de 32 bits.

En este paso, el script configurará el equipo para que pase a estar en una red privada y acepte las futuras conexiones a través del firewall de Windows. Después, el programa configurará el servicio de WinRM en nuestro equipo y permitirá las conexiones salientes añadiendo a la víctima a la lista de trustedhosts.

Llegados a este punto, el script eliminará registros del sistema y escribirá otros nuevos, que habilitarán el acceso a través del protocolo de escritorio remoto. También desactivará la autenticación a nivel de red, permitirá conectarse a las sesiones sin consentimiento del usuario y algunas cosas más. Si sale algún error en pantalla no os preocupéis, no todas las versiones de Windows tienen los mismos registros. En ningún momento afectará a la funcionalidad del programa.

Si la versión del equipo se trata de una versión Desktop, el script descargará la herramienta RDP Wrap de Stas’M Corp, permitiendo así conexiones concurrentes en el equipo. Una vez instalada, se crearán más excepciones en el firewall de Windows y se eliminará el fichero de instalación para no dejar rastro.

Si todo ha salido como debería, os aparecerá la siguiente ventana en vuestro escritorio:

Por último, solo tenemos que volver a introducir nuevamente las credenciales del equipo y voilà! Se nos abrirá una ventana en la que veremos todo lo que hace el usuario de forma totalmente indetectable y sin que al usuario le aparezca ningún mensaje de advertencia.

Si lanzáis el ataque contra una versión Server, os aparecerá un mensaje preguntando a qué sesión os queréis conectar, con una lista de todos los usuarios activos actualmente en el equipo:

A tener en cuenta:
• La herramienta funciona únicamente en versiones en Español de España
• El ataque a través de WMI solo funciona si está habilitado en la víctima
• El script funciona a partir de Windows 7 y Windows Server 2008 R2
• A veces es necesario que la víctima esté en red privada para que funcione

Próximas mejoras:
• Detección automática de arquitectura del sistema operativo
• Ataque de forma masiva a través de la red
• Añadir la opción de controlar el equipo o solo visualizarlo
• Elevación de privilegios para utilizar credenciales sin permisos

Si tenéis cualquier idea, comentario o crítica al respecto no dudéis en dejar vuestros comentarios 🙂

Espero que os haya gustado y os resulte útil en vuestras próximas auditorías.

Nos vemos en la próxima!