Explotación en Windows

  • Posted on: 1 December 2020
  • By: ReYDeS

El sistema operativo Windows es algo complejo, y requiere un profundo nivel de familiaridad con las especificaciones Windows, como TIB (Thread Information Block) “Bloque para Información de los Hilos”, PEB (Process Environment Block) “Bloque para el Entorno del Proceso”, SEH (Structured Exception Handling) “Manejo Estructurado de Excepción”, y la metodología global detrás del API (Application Programming Interface) “Interfaz para Programación de Aplicación”. La explotación de la pila funciona en una manera similar al sistema operativo Linux; sin embargo existen métodos específicos utilizados los cuales permiten a los “exploits” en Windows ser portátiles.

El sistema operativo Windows es muy dinámico y constantemente cambiante, esto fuerza a los atacantes deban entender las técnicas no se basan en localizaciones estáticas de ubicaciones interesantes de la memoria. Los controles modernos deben ser derrotados sobre los nuevos sistemas, y el profesional debe conocer cuando los controles no son factibles de ser derrotados, o cuando una condición es tan retadora, con lo cual la probabilidad de una explotación exitosa es baja.

Un profesional en pruebas de penetración experimentado debe ser capaz de enfrentar los controles para mitigar la explotación, como DEP (Data Execution Prevention) “Prevención para la Ejecución de Datos” y ASLR (Address Space Layout Randomization) “Aleatorización para la Disposición del Espacio de Direcciones”, utilizando técnicas como ROP (Return Oriented Programming) “Programación Orientada a Retorno”, para derrotar o evadirlos según sea necesario.

Las shellcodes de Windows son también algo complejas y deben ser bien entendidas. Incluso si un profesional no escribe una shellcode personalizada, frecuentemente necesitará analizar el código para realizar potenciales cambios. Algunos shellcodes no son tan estables y consistentes como otros, incrementando potencialmente la probabilidad de una caída o mal funcionamiento del servicio o sistema.

Fuentes:

https://docs.microsoft.com/en-us/windows/win32/debug/thread-environment-...
https://docs.microsoft.com/en-us/windows/win32/api/winternl/ns-winternl-peb
https://docs.microsoft.com/en-us/windows/win32/debug/structured-exceptio...
https://docs.microsoft.com/en-us/windows/win32/memory/data-execution-pre...
https://msrc-blog.microsoft.com/2017/11/21/clarifying-the-behavior-of-ma...

Sobre el Autor


Alonso Eduardo Caballero Quezada - ReYDeS
Instructor y Consultor en Hacking Ético, Forense Digital & GNU/Linux
Correo Electrónico: ReYDeS@gmail.com
Twitter: https://twitter.com/Alonso_ReYDeS
LinkedIn: https://pe.linkedin.com/in/alonsocaballeroquezada/
Facebook: https://www.facebook.com/alonsoreydes
Youtube: https://www.youtube.com/c/AlonsoCaballero
Resumen de mi CV: https://www.reydes.com/d/?q=node/1