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.
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. ● Departamento I+D Optenet
● WebFilter, Antivirus, Antiphishing, AntiSPAM,
FW, IDS/IPS
● Proyecto TAP
● Proyecto Atila
4. Índice
¿Qué es un Hook?
Tipos de Hook
Windows Hook
Driver Hook
API Hook
Aplicaciones
WHF
5. Qué es un Hook
Es un punto en el sistema de gestión de mensajes donde
se puede instalar una subrutina para monitorizar
determinados tipos de mensajes antes de que lleguen a
la ventana encargada de procesarlos (Microsoft)
Hooking son técnicas utilizadas para alterar o
incrementar el comportamiento de un sistema
operativo, aplicaciones u otros componentes software
mediante la interceptación de mensajes, eventos o
llamadas a función. (Wikipedia)
6. Índice
¿Qué es un Hook?
Tipos de Hook
Windows Hook
Driver Hook
API Hook
Aplicaciones
WHF
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. Índice
¿Qué es un Hook?
Tipos de Hook
Windows Hook
Driver Hook
API Hook
Aplicaciones
WHF
14. Hook con Drivers
Son programas que permiten el acceso dispositivos hardware
En espacio de usuario Launch and Forget
En espacio de kernel Descargables
Permiten definir callbacks
sobre eventos del sistema
15. Hook con Drivers
Algunos callbacks
PsSetCreateProcessNotifyRoutine PoRegisterPowerSettingCallback
PsSetCreateThreadNotifyRoutine IoRegisterShutdownNotification
PsSetLoadImageNotifyRoutine ZwNotifyChangeKey
IoRegisterPlugPlayNotification KeRegisterProcessorChangeCallback
16. Índice
¿Qué es un Hook?
Tipos de Hook
Windows Hook
Driver Hook
API Hook
Aplicaciones
WHF
17. API Hooking
Técnicas que permiten interceptar las llamadas
que realizan los programas al sistema operativo
18. API Hooking
FakeDLL
DLL
Aplicación1 Aplicación2
llama CreateFile llama CreateFile
FakeCreateFile
CreateFile
Espacio de usuario
Espacio de kernel
Operaciones en
kernel
19. API Hooking
a) Sustitución de
DLL
FakeDLL
Aplicación1 Aplicación2
llama CreateFile llama CreateFile
FakeCreateFile
Espacio de usuario
Espacio de kernel
Operaciones en
kernel
20. API Hooking b) Modificación de la
FakeDLL
dirección de llamada
FakeCreateFile
en espacio de usuario
DLL
Aplicación1 Aplicación2
llama CreateFile llama CreateFile
CreateFile
Espacio de usuario
Espacio de kernel
Operaciones en
kernel
21. API Hooking c) Modificación de la
dirección de llamada
en espacio de kernel
FakeDLL
DLL
Aplicación1 Aplicación2
llama CreateFile llama CreateFile
FakeCreateFile
CreateFile
Espacio de usuario
Espacio de kernel
Interceptación
Operaciones en
kernel
Operaciones en
kernel
22. API Hooking
Espacio de Usuario
●PEB David Reguera - RootedCON 2010
●IAT
Espacio de Kernel
●SSDT
●IDT
23. API Hooking
El formato PE es un formato de fichero para
ejecutables y DLLs utilizado en Windows
El fichero PE
consiste en una serie
de cabeceras y
secciones que indican
como mapear el
fichero en memoria
25. API Hooking
Métodos de inyección de DLL
● Hook de Windows
● CreateRemoteThread
● Registro de Windows
HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs
LoadAppInit_DLLs 0 disabled 1 enabled
RequireSignedAppInit_DLLs 0 disabled 1 enabled
28. Índice
¿Qué es un Hook?
Tipos de Hook
Windows Hook
Driver Hook
API Hook
Aplicaciones
WHF
29. Aplicaciones
Evitar infecciones o al menos que no sean permanentes
Borrado eficaz de ficheros temporales
Cifrado y borrado seguro de ficheros
Control parental
Firewall de conexiones
Control del software y configuracion de los equipos
Auditoría de la utilización del ordenador
30. Aplicaciones
Control de lectura y escritura sobre el registro de Windows
Control de lectura y escritura sobre el filesystem
Control sobre las conexiones entrantes y salientes de la máquina
Control sobre la visibiladad de procesos, directorios y del registro
Control sobre la creación y destrucción de procesos y threads
Control sobre la carga en memoria de ficheros binarios
Ocultar, cerrar o “colgar” ventanas no autorizadas
Control sobre dispositivos USB autorizados
Realizar capturas de pantallas periodicamente o frente a eventos
31. Índice
¿Qué es un Hook?
Tipos de Hook
Windows Hook
Driver Hook
API Hook
Aplicaciones
WHF
32. Windows Hook Framework
Framework para desarrollos basados en Hooks
Interfaz de usuario
Instalador de hooks
DLLs y Drivers que implementan los hooks
34. Conclusiones
Que es un Hook y algunos tipos
Framework que permite autorizar, denegar o
monitorizar las actividades de un ordenador de
acuerdo a una configuración editable mediante
una intefaz gráfica