Algunas de las técnicas vistas en las partes 1, 2 y 3 de esta serie sobre post-explotación en sistemas Windows se pueden automatizar de una forma bastante eficiente con herramientas que están disponibles para ello. En este post se hablará precisamente de algunas ellas y sus ventajas. Aunque normalmente es una buena idea automatizar, en ocasiones estas herramientas se pueden dejar detalles importantes y por ese motivo es importante seguir la metodología y no quedarse solo con lo que reportan estas herramientas, aunque sin duda son un buen apoyo.
JAWS: Just Another Windows (Enum) Script
Se trata de uno de los más conocidos y utilizados para llevar a cabo labores de enumeración. Es un script desarrollado en PowerShell que permite identificar rápidamente vectores potenciales para elevación de privilegios sobre un sistema Windows. Tal como se indica en el repositorio oficial de Github (https://github.com/411Hall/JAWS) se encuentra escrito usando Powershell 2.0 por lo tanto debería funcionar sobre cualquier sistema Windows desde la versión 7.
Algunas de las características que implementa se listan a continuación.
- Identificación de ficheros con permisos débiles (Control total o modificación).
- Unidades de red disponibles y directorios compartidos.
- Ficheros con información potencialmente sensible.
- Vulnerabilidades del tipo Unquoted Service Paths.
- Listado de tareas programas.
- Servicios que son potencialmente vulnerables.
- Documentos que se han utilizado recientemente.
- Información general del entorno de red.
El procedimiento habitual consiste en transferir el fichero PS correspondiente a la máquina comprometida y ejecutarlo, suele funcionar bastante bien.
Windows Privesc Check (windows-privesc-check)
Es otra de las herramientas clásicas que se encargan de realizar una enumeración básica de un sistema Windows. Ha sido creada hace varios años por PentesterMonkey y se encuentra desarrollada en Python, aunque se distribuye un EXE que se ha generado utilizando PyInstaller y que permite utilizar la herramienta fácilmente en cualquier sistema Windows sin Python instalado. El repositorio oficial se encuentra ubicado en https://github.com/pentestmonkey/windows-privesc-check
A diferencia de otras herramientas, dependiendo de los privilegios con los que se cuente a la hora de ejecutarla se realizaran más o menos pruebas. Por ejemplo, si se ejecuta con privilegios de administrador intentará realizar actividades que en algunos casos pueden desestabilizar el sistema tales como la configuración de servicios sensibles, manipulación del registro de Windows, Sustitución de binarios utilizados para servicios del sistema operativo, etc. Cuando se ejecuta con privilegios bajos o con una cuenta de usuario regular evidentemente las pruebas serán más simples y enfocadas a la recolección de información. Hay que tener en cuenta que es una herramienta que no se actualiza desde hace varios años aunque la mayor parte sigue funcionando sobre sistemas recientes y actualizados.
Windows Enum
Es un proyecto que ya lleva algunos años publicado y al igual que JAWS, es un script en Powershell. Su ejecución es simple ya que solamente admite un parámetro (extended) y no es obligatorio. Las pruebas que realiza también son básicas e incluyen los siguientes puntos.
- Detalles sobre el sistema operativo y nivel de parche.
- Usuarios en el sistema y sus correspondientes privilegios.
- Información sobre programas instalados, procesos actualmente en ejecución y servicios del sistema.
- Información general de la red, incluyen tabla de rutas, segmentos de red, conexiones, tablas ARP, etc.
- Ficheros con información potencialmente sensible.
El script se encuentra disponible en el siguiente repositorio de GitHub https://github.com/absolomb/WindowsEnum/
WinPEAS (Windows Privilege Escalation Awesome Scripts)
Se trata de un programa que es, probablemente, el más completo para enumeración de sistemas WIndows (también está para sistemas Linux pero de esto se hablará en otra serie). Se encuentra disponible en formato BAT y EXE, con lo cual no hace falta compilar nada o depender de un interprete como Python o similares. Sin embargo, la salida se enseña en “crudo”, sin colores ni marcas identificativas relevantes sobre las pruebas que se han llevado a cabo, por ese motivo una vez se ejecuta el programa hay que leer la salida cuidadosamente para ver cualquier detalle que pueda ser útil.
El proyecto se encuentra ubicado en el siguiente repositorio de GitHub: https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS Tal como se ha comentado anteriormente, cuenta con dos versiones (BAT y EXE), ambas funcionan bastante bien.
Windows Exploit Suggester – Next Generation (WES-NG)
Se trata de una herramienta que utiliza la información devuelta por el comando systeminfo para comprobar el nivel de parche del sistema y listar las posibles vulnerabilidades que le podrían afectar. Funciona desde Windows XP hasta Windows 10 incluyendo las versiones “server”. A diferencia de otras herramientas, no es necesario instalar WES-NG en el sistema comprometido, se puede ejecutar en el ordenador del atacante y solamente hace falta pasarle un fichero con toda la información que vuelca el comando “systeminfo” en sistemas Windows.
El proyecto se encuentra ubicado en el siguiente repositorio de GitHub https://github.com/bitsadmin/wesng y como se puede comprobar en la documentación su uso resulta muy simple.
Otras alternativas.
Para este tipo de procedimientos existen muchas más alternativas a las que se han listado en esta sección, como por ejemplo el uso de Frameworks como Empire, Metasploit o Pupy. Además de las herramientas descritas en este post existen otras más que el lector puede consultar entre las que se incluyen:
- PowerSploit: https://github.com/PowerShellMafia/PowerSploit
- Privesc: https://github.com/enjoiz/Privesc
- Lazagne: https://github.com/AlessandroZ/LaZagne
- SessionGopher: https://github.com/Arvanaghi/SessionGopher
En este post se han visto algunas utilidades que pueden venir bien en un proceso de post-explotación sobre sistemas Windows, sin embargo extraen básicamente la misma información que otros comandos y utilidades que se encuentran disponibles en el sistema operativo por lo tanto es importante seguir la metodología correctamente e identificar qué elementos pueden ser útiles para la elevación y cuales no.
Un saludo y Happy Hack!
Adastra.