Pablo San Emeterio - WHF - Windows Hooking Framework [RootedCON 2012]

1,521 views
1,401 views

Published on

La ponencia trata sobre algunos de los diferentes tipos de Hooks que se pueden establecer en Windows y se presenta WHF que implementa un framework para desarrollar Hooks en Windows, con ejemplos prácticos, para que la persona que este interesada pueda ir desarrollando sus propios Hooks.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,521
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Pablo San Emeterio - WHF - Windows Hooking Framework [RootedCON 2012]

  1. 1. WHFWindows Hooking Framework Pablo San Emeterio López 1, 2 y 3 de Marzo 2012 Madrid
  2. 2.  Pablo San Emeterio López Ingeniero en Informática por la Facultad de Informática de la UPM Master en Auditoría y Seguridad Informática (ALI y UPM) CISA OCA Oracle Database Administrator
  3. 3. ● Departamento I+D Optenet● WebFilter, Antivirus, Antiphishing, AntiSPAM, FW, IDS/IPS ● Proyecto TAP ● Proyecto Atila
  4. 4. Índice ¿Qué es un Hook? Tipos de Hook  Windows Hook  Driver Hook  API Hook Aplicaciones WHF
  5. 5. Qué es un HookEs un punto en el sistema de gestión de mensajes dondese puede instalar una subrutina para monitorizardeterminados tipos de mensajes antes de que lleguen ala ventana encargada de procesarlos (Microsoft)Hooking son técnicas utilizadas para alterar oincrementar el comportamiento de un sistemaoperativo, aplicaciones u otros componentes softwaremediante la interceptación de mensajes, eventos ollamadas a función. (Wikipedia)
  6. 6. Índice ¿Qué es un Hook? Tipos de Hook  Windows Hook  Driver Hook  API Hook Aplicaciones WHF
  7. 7. Hook de WindowsInterceptan los mensajes del sistema operativo
  8. 8. Hook de WindowsInterceptan los mensajes del sistema operativo Mensaje Ventana destino
  9. 9. Hook de WindowsInterceptan los mensajes del sistema operativo Mensaje Hook Ventana destino
  10. 10. Hook de WindowsInterceptan los mensajes del sistema operativo Mensaje Hook Ventana destino
  11. 11. DEMO SPY++
  12. 12. Hook de Windows● SetWindowsHookEx● Pueden ser Globales o Locales● El hook implementado en: ● Globales y Locales en aplicaciones no controladas en una DLL ● Locales a una aplicacion controlada puede estar dentro del código de la misma
  13. 13. Índice ¿Qué es un Hook? Tipos de Hook  Windows Hook  Driver Hook  API Hook Aplicaciones WHF
  14. 14. Hook con DriversSon programas que permiten el acceso dispositivos hardware En espacio de usuario Launch and Forget En espacio de kernel DescargablesPermiten definir callbackssobre eventos del sistema
  15. 15. Hook con Drivers Algunos callbacksPsSetCreateProcessNotifyRoutine PoRegisterPowerSettingCallbackPsSetCreateThreadNotifyRoutine IoRegisterShutdownNotificationPsSetLoadImageNotifyRoutine ZwNotifyChangeKeyIoRegisterPlugPlayNotification KeRegisterProcessorChangeCallback
  16. 16. Índice ¿Qué es un Hook? Tipos de Hook  Windows Hook  Driver Hook  API Hook Aplicaciones WHF
  17. 17. API HookingTécnicas que permiten interceptar las llamadasque realizan los programas al sistema operativo
  18. 18. API Hooking FakeDLL DLL Aplicación1 Aplicación2llama CreateFile llama CreateFile FakeCreateFile CreateFile Espacio de usuario Espacio de kernel Operaciones en kernel
  19. 19. API Hooking a) Sustitución de DLL FakeDLL Aplicación1 Aplicación2llama CreateFile llama CreateFile FakeCreateFile Espacio de usuario Espacio de kernel Operaciones en kernel
  20. 20. API Hooking b) Modificación de la FakeDLL dirección de llamada FakeCreateFile en espacio de usuario DLL Aplicación1 Aplicación2llama CreateFile llama CreateFile CreateFile Espacio de usuario Espacio de kernel Operaciones en kernel
  21. 21. API Hooking c) Modificación de la dirección de llamada en espacio de kernel FakeDLL DLL Aplicación1 Aplicación2llama CreateFile llama CreateFile FakeCreateFile CreateFile Espacio de usuario Espacio de kernel Interceptación Operaciones en kernel Operaciones en kernel
  22. 22. API Hooking Espacio de Usuario●PEB David Reguera - RootedCON 2010●IAT Espacio de Kernel●SSDT●IDT
  23. 23. API HookingEl formato PE es un formato de fichero paraejecutables y DLLs utilizado en WindowsEl fichero PEconsiste en una seriede cabeceras ysecciones que indicancomo mapear elfichero en memoria
  24. 24. API Hooking
  25. 25. API Hooking Métodos de inyección de DLL● Hook de Windows● CreateRemoteThread● Registro de WindowsHKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLsLoadAppInit_DLLs 0 disabled 1 enabledRequireSignedAppInit_DLLs 0 disabled 1 enabled
  26. 26. API Hooking
  27. 27. API Hooking
  28. 28. Índice ¿Qué es un Hook? Tipos de Hook  Windows Hook  Driver Hook  API Hook Aplicaciones WHF
  29. 29. AplicacionesEvitar infecciones o al menos que no sean permanentesBorrado eficaz de ficheros temporalesCifrado y borrado seguro de ficherosControl parentalFirewall de conexionesControl del software y configuracion de los equiposAuditoría de la utilización del ordenador
  30. 30. AplicacionesControl de lectura y escritura sobre el registro de WindowsControl de lectura y escritura sobre el filesystemControl sobre las conexiones entrantes y salientes de la máquinaControl sobre la visibiladad de procesos, directorios y del registroControl sobre la creación y destrucción de procesos y threadsControl sobre la carga en memoria de ficheros binariosOcultar, cerrar o “colgar” ventanas no autorizadasControl sobre dispositivos USB autorizadosRealizar capturas de pantallas periodicamente o frente a eventos
  31. 31. Índice ¿Qué es un Hook? Tipos de Hook  Windows Hook  Driver Hook  API Hook Aplicaciones WHF
  32. 32. Windows Hook FrameworkFramework para desarrollos basados en Hooks Interfaz de usuario Instalador de hooks DLLs y Drivers que implementan los hooks
  33. 33. DEMO
  34. 34. ConclusionesQue es un Hook y algunos tiposFramework que permite autorizar, denegar omonitorizar las actividades de un ordenador deacuerdo a una configuración editable medianteuna intefaz gráfica
  35. 35. Gracias por su atención psaneme@gmail.com psaneme

×