Este proyecto es una demostración de técnicas avanzadas de secuestro de DLL. Fue lanzado junto con la publicación de blog "Adaptive DLL Hijacking". Te recomiendo que empieces por ahí para contextualizar este código.

Este proyecto se compone de los siguientes elementos:

  • Harness.exe: la aplicación "víctima" que es vulnerable al secuestro (estática / dinámica)
  • Functions.dll: la biblioteca "real" que expone una funcionalidad válida al arnés
  • Theif.dll: la biblioteca "malvada" que intenta obtener ejecución
  • NetClone.exe: una aplicación C # que clonará las exportaciones de una DLL a otra
  • PyClone.py: un script de Python 3 que imita la funcionalidad NetClone

La solución VS en sí admite 4 configuraciones de compilación que se asignan a 4 métodos diferentes de funcionalidad de proxy. Esto debería proporcionar una buena forma escalable de demostrar más técnicas en el futuro.

  • Stc-Forward: reenvía los nombres de exportación durante el proceso de compilación utilizando comentarios del vinculador
  • Dyn-NetClone: ​​Clona la tabla de exportación de functions.dll en theif.dll post-build usando NetClone
  • Dyn-PyClone: ​​Clona la tabla de exportación de functions.dll en theif.dll post-build usando PyClone
  • Dyn-Rebuild: reconstruye la tabla de exportación y aplica parches a las tablas de importación vinculadas después de la carga para prepararlas dinámicamente para la función de proxy.

El objetivo de cada técnica es capturar con éxito la ejecución del código mientras se transfiere la funcionalidad a la DLL legítima. Cada técnica se prueba para garantizar que se manejen situaciones de sumidero estáticas y dinámicas. Esta no es ni mucho menos todas las variaciones primitivas o técnicas. La publicación anterior entra en más detalles.

Fuente: https://github.com/monoxgas/Koppeling