
Exploit anteriormente 0day de la filtración de Hacking Team, escrito por Eugene Ching/Qavar.
Este es un exploit para CVE-2015-2426 (MS-078), un 0day de escalada de privilegios local del kernel de Windows procedente del archivo de Hacking Team (correo electrónico aquí). Fue desarrollado por Eugene Ching / Qavar security. Contenido original a continuación:
Exploit de corrupción de memoria del kernel de Windows que conduce a la escalada de privilegios.
Probado en Windows 8.1 totalmente parcheado (a fecha de 28 de enero de 2015).
También se ha probado que funciona contra:
suponiendo un RCE adecuado en Chrome (simulado mediante la inyección de un hilo en Chrome)
El exploit principal está implementado en PIC.c, que se proporciona como parte de una solución de Visual Studio 2013 Express.
Compilar la solución generaría PIC.exe.
En última instancia, queremos inyectar el exploit en la memoria del objetivo y ejecutarlo directamente. Para ello, necesitamos inyectar solo las instrucciones relevantes (opcodes) y los datos necesarios.
Por lo tanto, extraemos el segmento de código (los opcodes) de PIC.exe y añadimos los datos necesarios (la fuente malformada, font-data.bin) a una secuencia de bytes.
Esto produce los "bytes crudos" que podemos inyectar directamente en el objetivo y sobre los que llamar a CreateRemoteThread().
Este proceso se automatiza mediante el script de Python llamado make-raw-bytes.py. La salida es raw-bytes.bin.
Para convertir los "bytes crudos" en un .exe que realmente inyecte los "bytes crudos" en un objetivo, necesitamos llamar a WriteProcessMemory() y CreateRemoteThread().
Este proceso lo gestiona make-injector-cpp.py. La salida es injector.cpp, un fragmento de código que, al compilarse, toma un PID de destino y ejecuta el exploit.
Como conveniencia, make.bat producirá injector.exe directamente al realizar los pasos descritos anteriormente.
En otras palabras, make.bat hará lo siguiente: