
Herramienta de prueba de concepto multipropósito basada en CPU-Z CVE-2017-15303
Ejemplo:
Nota: Stryker espera que tanto cpuz141.sys como procexp152.sys estén ubicados en el mismo directorio que el programa.
Lo usa bajo su propio riesgo. Algunos AV perezosos pueden marcar esta herramienta como hacktool/malware.
Utiliza el controlador interno de CPU-Z (https://www.cpuid.com/softwares/cpu-z.html) (versión 1.41 según CVE-2017-15303) para leer/escribir en la memoria física y leer los registros de control de la CPU.
Dependiendo del comando, Stryker funcionará como DSEFix/TDL o modificará los objetos de proceso del modo kernel (EPROCESS).
Cuando está en modo -load, Stryker utilizará un controlador firmado de terceros del software SysInternals Process Explorer (versión del controlador 1.52) para colocar un pequeño shellcode cargador dentro de su manejador IRP_MJ_DEVICE_CONTROL/IRP_MJ_CREATE/IRP_MJ_CLOSE. Esto se logra sobrescribiendo la memoria física donde se encuentra el manejador de despacho de Process Explorer y activándolo llamando al controlador IRP_MJ_CREATE (llamada CreateFile). El shellcode activado mapeará el controlador de entrada como búfer de código al modo kernel y lo ejecutará; el IRQL actual será PASSIVE_LEVEL.
Además, con una ligera modificación, el shellcode se puede usar para ejecutar simplemente un pequeño fragmento de código en modo kernel (no implementado en esta herramienta).
Stryker viene con el código fuente completo. Para compilar desde el código fuente, necesita Microsoft Visual Studio 2015 U1 y versiones posteriores. Para compilaciones de controladores, necesita Microsoft Windows Driver Kit 8.1 y/o superior.
No hay soporte, excepto correcciones críticas de errores para el propio Stryker. No hay absolutamente NINGUNA garantía de que funcione. El uso de este programa podría provocar una pantalla azul (BSOD) en su computadora. El binario compilado y el código fuente se proporcionan TAL CUAL con la esperanza de que sean útiles, PERO SIN GARANTÍA DE NINGÚN TIPO.
EL USO DEL SOFTWARE ES BAJO SU PROPIO RIESGO.
P: ¿Se puede usar algo más que el controlador de Process Explorer para ejecutar shellcode?
R: Sí, pero debe examinar cuidadosamente al candidato para asegurarse de que pueda almacenar y ejecutar shellcode.
P: ¿Qué hay de las versiones más nuevas de CPU-Z? ¿Se pueden usar para leer/escribir memoria física, registros de control de la CPU?
R: El controlador de CPU-Z fue rediseñado para abordar CVE-2017-15303 y algunas funcionalidades ya no están disponibles. Sin embargo, las versiones antiguas de CPU-Z pueden tener la misma funcionalidad.
P: ¿Hay otros controladores similares con la misma funcionalidad que CPU-Z?
R: Sí, muchos de ellos, por ejemplo, WinIO.sys, AsIO64.sys, Asmmap64.sys. Todos ellos generalmente proporcionan acceso de lectura/escritura a la memoria física de diferentes maneras (\Device\PhysicalMemory).
P: ¿Funciona esto en todas las versiones de Windows? ¿Incluyendo las no lanzadas aún?
R: Se probó en Windows 7 / 8.1 / 10 hasta RS3. Es poco probable que funcione en versiones futuras.
P: ¿Se agregará soporte para Windows 10 NEXT o Windows XX NEXT?
R: Poco probable.
(c) 2018 Stryker Project