En el post anterior sobre los proyectos disponibles en GhostPack para post-explotación se ha explicado el funcionamiento de 2 de las herramientas disponibles, concretamente: SeatBelt y SharpDump. Ahora es el turno de hablar sobre SharpUp, SharpWmi y SafetyKatz. Si quieres leer el post anterior lo encuentras disponible en el siguiente enlace:

Post-explotación en sistemas Windows con GhostPack – Parte 1 de 3

SharpUp

Es un proyecto que porta muchas de las funciones disponibles en el script de PowerSploit llamado PowerUP el cual permite ejecutar múltiples pruebas en busca de problemas de seguridad en el sistema que permitan la elevación de privilegios local. Hay que tener en cuenta que el repositorio de PowerSloit ha sido archivado desde hace algún tiempo y aunque ya no se encuentra mantenido, sus funcionalidades se han ido trasladando a otros proyectos como Empire Framework o el propio SharpUp. Como ocurre con otros proyectos de GhostPack es necesario compilar la solución con el Visual Studio ya que no se distribuyen los binarios en el repositorio oficial de GitHub, pero es algo que no requiere mucho esfuerzo ni supone dificultad alguna.
Una vez generado el binario basta con ejecutarlo desde una terminal sin argumentos. Si se ejecuta con un nivel de integridad alto la herramienta indica que no hace falta ejecutarla dado que ya tienes permisos suficientes sobre el sistema, pero permite lanza con el argumento “audit” para forzar la ejecución de todas las pruebas disponibles en la herramienta.

Dada la gran cantidad de pruebas que realiza y el nivel de trazas que genera, es recomendable enviar dicha salida a un fichero de texto para analizarlo detenidamente cuando termine, bastaría con ejecutar “SharpUp.exe audit > salida.log“.

SharpWMI

Funciona como un envoltorio para las consultas que se pueden ejecutar utilizando la interfaz de WMI, algo que viene muy bien en procesos de post-explotación en Windows y que ya se ha mencionado antes en este blog. Cuando se ejecuta sin ningún argumento aparece la ayuda de la herramienta y se puede apreciar su uso.

Tal como se indica, es una implementación que soporta varias características interesantes como la posibilidad de ejecutar ficheros VBS maliciosos, aplicar técnicas de evasión del AMSI utilizando lo que se encuentra en el proyecto SharpMove e incluso la ejecución de ficheros MSI vía WMI.

SafetyKatz

Se trata de una utilidad que primero realiza un volcado de memoria del proceso LSASS utilizando la función MiniDumpWriteDump, de hecho, esto es algo que se ha explicado en el post anterior ya que es lo mismo que hace la hace la herramienta SharpDump cuando se ejecuta sin ningún argumento. Una vez se genera el fichero de volcado, se procede a ejecutar la utilidad Mimikatz para acceder a dicho fichero con los comandos “sekurlsa::logonpasswords” y “sekurlsa::ekeys“. Finalmente, el fichero de volcado se elimina por parte de la herramienta y finaliza su ejecución.

Como se puede apreciar la ejecución de Mimikatz se lleva a cabo sobre el volcado generado. Si bien es un procedimiento sencillo, es especialmente interesante ver el código fuente de esta herramienta, concretamente los ficheros Constants.cs y Program.cs ya que el primero de ellos contiene la versión modificada de Mimikatz codificada y comprimida utilizando el script Out-CompressedDll.ps1 y el segundo hace todo el proceso, primero genera el volcado del LSASS y luego, decodifica Mimikatz para poder recomponer todo el fichero PE con sus correspondientes cabeceras y estructura completa en memoria, todo de forma dinámica y utilizando la potencia que ofrece C#.

Desde luego ver el código fuente de esta y otras herramientas es extremadamente útil para aprender algunas técnicas que se pueden aplicar en Hacking de sistemas Windows con C#. En el siguiente post se profundizará aún más en el uso de las utilidades disponibles en Ghostpack.

Un saludo y Happy Hack!
Adastra.