
Una implementación PoC para enmascarar dinámicamente pilas de llamadas con temporizadores.
Este repositorio demuestra una técnica de prueba de concepto (PoC) para suplantar dinámicamente pilas de llamadas mediante temporizadores. Antes de que nuestro implante entre en suspensión, podemos poner en cola temporizadores para sobrescribir su pila de llamadas con una falsa y luego restaurar la original antes de reanudar la ejecución. De esta forma, al igual que podemos enmascarar la memoria perteneciente a nuestro implante durante la suspensión, también podemos enmascarar la pila de llamadas de nuestro hilo principal.
Para una guía técnica completa, consulte la publicación de blog adjunta aquí: https://www.cobaltstrike.com/blog/behind-the-mask-spoofing-call-stacks-dynamically-with-timers/.
Por defecto, la prueba de concepto imitará una pila de llamadas estática tomada de spoolsv.exe:

Si se proporciona el indicador --dynamic, CallStackMasker enumerará todos los hilos accesibles, encontrará uno en el estado deseado (WaitForSingleObjectEx) e imitará su pila de llamadas y dirección de inicio. Esto se demuestra a continuación:

Nota: como advertencia, esta prueba de concepto fue probada en la siguiente compilación de Windows:
22h2 (19045.2486)
No ha sido probada en otras versiones y podría fallar en diferentes compilaciones de Windows.