2
Hay muchas herramientas disponibles para ayudarnos a enumerar sistemas Windows en busca de vectores de escalación de privilegios comunes y oscuros. A continuación, se muestra una lista de binarios y scripts útiles, muchos de los cuales cubriremos en las secciones del módulo que vienen a continuación.
Tool | Descripción |
---|---|
Seatbelt | Proyecto en C# para realizar una amplia variedad de comprobaciones de escalación de privilegios locales. |
winPEAS | winPEAS es un script que busca posibles caminos para escalar privilegios en hosts Windows. Todas las comprobaciones están explicadas aquí. |
PowerUp | Script en PowerShell para encontrar vectores comunes de escalación de privilegios en Windows que se basan en configuraciones incorrectas. También se puede usar para explotar algunos de los problemas encontrados. |
SharpUp | Versión en C# de PowerUp. |
JAWS | Script en PowerShell para enumerar vectores de escalación de privilegios escrito en PowerShell 2.0. |
SessionGopher | SessionGopher es una herramienta en PowerShell que encuentra y descifra la información de sesión guardada para herramientas de acceso remoto. Extrae información de sesiones guardadas de PuTTY, WinSCP, SuperPuTTY, FileZilla y RDP. |
Watson | Watson es una herramienta .NET diseñada para enumerar KBs faltantes y sugerir exploits para vulnerabilidades de escalación de privilegios. |
LaZagne | Herramienta utilizada para recuperar contraseñas almacenadas en una máquina local desde navegadores web, herramientas de chat, bases de datos, Git, correo electrónico, volcado de memoria, PHP, herramientas de administración de sistemas, configuraciones de redes inalámbricas, mecanismos internos de almacenamiento de contraseñas de Windows y más. |
Windows Exploit Suggester - Next Generation | WES-NG es una herramienta basada en la salida de la utilidad systeminfo de Windows que proporciona la lista de vulnerabilidades a las que el SO es vulnerable, incluidas las exploits para estas vulnerabilidades. Todos los SO de Windows entre Windows XP y Windows 10, incluidos sus equivalentes en Windows Server, son compatibles. |
Sysinternals Suite | Usaremos varias herramientas de Sysinternals en nuestra enumeración, incluyendo AccessChk, PipeList y PsService. |
También podemos encontrar binarios precompilados de Seatbelt
y SharpUp
aquí, y binarios independientes de LaZagne
aquí. Se recomienda que siempre compilemos nuestras herramientas desde la fuente si las usamos en un entorno de cliente.
Nota: Dependiendo de cómo obtengamos acceso a un sistema, es posible que no tengamos muchos directorios que sean escribibles por nuestro usuario para cargar herramientas. Siempre es seguro cargar herramientas en C:\Windows\Temp
porque el grupo BUILTIN\Users
tiene acceso de escritura.
Esta no es una lista exhaustiva de herramientas disponibles para nosotros. Además, debemos esforzarnos por aprender lo que hace cada herramienta si una no funciona como se espera o no podemos cargarlas en el sistema objetivo. Las herramientas como las enumeradas anteriormente son extremadamente útiles para reducir nuestras comprobaciones y enfocar nuestra enumeración. Enumerar un sistema Windows puede ser una tarea abrumadora con una inmensa cantidad de información para tamizar y darle sentido. Las herramientas pueden hacer que este proceso sea más rápido y también proporcionarnos más salida en un formato fácil de leer. Una desventaja de esto puede ser la sobrecarga de información, ya que algunas de estas herramientas, como winPEAS
, devuelven una cantidad increíble de información que en su mayoría no nos resulta útil. Las herramientas pueden ser una espada de doble filo. Si bien ayudan a acelerar el proceso de enumeración y nos brindan una salida altamente detallada, podríamos estar trabajando de manera menos eficiente si no sabemos cómo leer la salida o reducirla a los puntos de datos más interesantes. Las herramientas también pueden producir falsos positivos, por lo que debemos tener una comprensión profunda de muchas posibles técnicas de escalación de privilegios para solucionar problemas cuando las cosas salen mal o no son lo que parecen. Aprender las técnicas de enumeración manualmente ayudará a garantizar que no perdamos fallas obvias debido a un problema con una herramienta, como un falso negativo o un falso positivo.
A lo largo de este módulo, mostraremos técnicas de enumeración manual para los diversos ejemplos que cubrimos y la salida de las herramientas cuando sea aplicable. Además de las técnicas de enumeración, también es vital aprender cómo realizar los pasos de explotación manualmente y no depender de scripts o herramientas de "autopwn" que no podamos controlar. Está bien (¡y se recomienda!) Escribir nuestras propias herramientas/scripts para realizar tanto la enumeración como los pasos de explotación. Aún así, debemos tener la confianza suficiente en ambas fases para explicar precisamente lo que estamos haciendo a nuestro cliente en cualquier etapa del proceso. También debemos ser capaces de operar en un entorno donde no podemos cargar herramientas (como una red aislada o sistemas que no tienen acceso a Internet o no nos permiten conectar un dispositivo externo como una memoria USB).
Estas herramientas no solo son beneficiosas para los penetration testers, sino que también pueden ayudar a los administradores de sistemas con sus trabajos al ayudar a identificar problemas fáciles de solucionar antes de una evaluación, revisar periódicamente la postura de seguridad de algunas máquinas, analizar el impacto de una actualización u otros cambios, o realizar una revisión de seguridad en profundidad en una nueva imagen dorada antes de desplegarla en producción. Las herramientas y métodos mostrados en este módulo pueden beneficiar significativamente a cualquier persona a cargo de la administración de sistemas, arquitectura o seguridad interna y cumplimiento.
Como con cualquier automatización, puede haber riesgos al usar estas herramientas. Aunque es raro, realizar una enumeración excesiva podría causar inestabilidad en el sistema o problemas con un sistema (o sistemas) que ya se sabe que son frágiles. Además, estas herramientas son bien conocidas, y la mayoría (si no todas) serán detectadas y bloqueadas por soluciones antivirus comunes y, ciertamente, por productos EDR más avanzados como Cylance o Carbon Black. Echemos un vistazo a la última versión de la herramienta LaZagne
en el momento de escribir esto, versión 2.4.3. Cargar el binario precompilado en Virus Total muestra que 47/70 productos lo detectan.
Probablemente nos habrían detectado en el acto si intentáramos ejecutar esto durante una evaluación evasiva. Durante otras evaluaciones, podemos encontrar protecciones que necesitamos eludir para ejecutar nuestras herramientas. Aunque está fuera del alcance de este módulo, podemos usar una variedad de métodos para que nuestras herramientas pasen los productos AV comunes, como eliminar comentarios, cambiar nombres de funciones, cifrar el ejecutable, etc. Estas técnicas se enseñarán en un módulo posterior. Supondremos que nuestro cliente objetivo ha configurado temporalmente Windows Defender en los hosts que estamos evaluando para que no bloquee nuestras actividades para este módulo. Están buscando encontrar tantos problemas como sea posible y no están buscando probar sus defensas en esta etapa del juego.