Herramienta de descubrimiento de escalada de privilegios Crassus para Windows
Inicio rápido
- En Process Monitor, selecciona la opción
Enable Boot Logging.

- Reinicia.
- Una vez que hayas iniciado sesión y Windows se haya estabilizado, ejecuta Process Monitor nuevamente.
- Cuando se te solicite, guarda el registro de arranque, por ejemplo, en
raw.PML.
- Restablece el filtro predeterminado de Process Monitor usando
Ctrl-R.
- Guarda este archivo de registro, por ejemplo, en
boot.PML.
- Ejecuta
Crassus.exe boot.PML.
- Investiga cualquier resultado resaltado en verde y las entradas correspondientes en
results.csv.
Índice
¿Por qué "Crassus"?
Accenture creó una herramienta llamada Spartacus, que encuentra oportunidades de secuestro de DLL en Windows. Usando Spartacus como punto de partida, creamos Crassus para ampliar las capacidades de descubrimiento de escalada de privilegios en Windows más allá de simplemente buscar archivos faltantes. Los ACL utilizados por los archivos y directorios de procesos privilegiados pueden encontrar más que solo buscar archivos faltantes para lograr el objetivo.
¿Realmente hiciste otra herramienta de descubrimiento de escalada de privilegios?
...pero con un giro, ya que Crassus utiliza el Monitor de procesos de SysInternals y analiza archivos de registro PML sin procesar. El uso típico es generar un registro de arranque usando Process Monitor y luego analizarlo con Crassus. También generará automáticamente código fuente para DLLs proxy con todas las exportaciones relevantes para DLLs vulnerables.
Características
- Analiza archivos PML de ProcMon de forma nativa. El analizador de registros (PML) se ha implementado portando funcionalidad parcial a C# desde https://github.com/eronnen/procmon-parser/. Puedes encontrar la especificación del formato aquí.
- Crassus creará código fuente para DLLs proxy para todas las DLLs faltantes identificadas. Por ejemplo, si una aplicación es vulnerable a secuestro de DLL a través de
version.dll, Crassus creará archivos version.cpp y version.def para ti con todas las exportaciones incluidas. Por defecto, las DLLs proxy lanzarán calc.exe. Se incluyen scripts de compilación para construir las DLLs en Visual Studio o MinGW.
- Para otros eventos de interés, como la creación de un proceso o la carga de una biblioteca, se investiga la capacidad de los usuarios no privilegiados de modificar el archivo o cualquier parte de la ruta al archivo.
- Capaz de procesar archivos PML grandes y almacenar todos los eventos de interés en un archivo CSV de salida.
Diagrama de flujo
La idea general de cómo funciona Crassus se puede resumir en este diagrama de flujo:

Capturas de pantalla
Ejecución de Crassus

Salida CSV

Exportaciones de salida

Funciones de DLL exportadas

Ordinales de DLL exportados

Obtener Crassus.exe
Compilación con Visual Studio
Crassus se desarrolló como un proyecto de Visual Studio 2019. Para compilar Crassus.exe:
- Abre
Crassus.sln
- Presiona
Ctrl+Shift+B en tu teclado
Usar Crassus.exe precompilado
Si confías en ejecutar código de otras personas sin saber qué hace, Crassus.exe se proporciona en este repositorio.
Uso
Flujo de ejecución
- En Process Monitor, selecciona la opción
Enable Boot Logging.

- Reinicia.
- Una vez que hayas iniciado sesión y Windows se haya estabilizado, opcionalmente ejecuta también tareas programadas que puedan estar configuradas para ejecutarse con privilegios.
- Ejecuta Process Monitor nuevamente.
- Cuando se te solicite, guarda el registro de arranque.
- Restablece el filtro predeterminado de Process Monitor usando
Ctrl-R.
- Guarda este archivo de registro, por ejemplo, en
boot.PML. La razón para volver a guardar el archivo de registro es doble:
- Las versiones anteriores de Process Monitor no guardan los registros de arranque como un solo archivo.
- Los registros de arranque por defecto no estarán filtrados, lo que puede contener ruido adicional, como un secuestro de DLL de usuario local en el lanzamiento del propio Process Monitor.
Argumentos de línea de comandos