Post on 03-Aug-2015
1Rooted Satellite Valencia
How to protect your hot pics with WHF
Pablo San Emeterio Lopez
@psaneme
Satellite Edition
7Rooted Satellite Valencia
Whois
Ingeniero Informático (UPM)
Master en Auditoría y
Seguridad Informática (UPM)
CISA, CISM, OCA
CyberSecurity and Research
Team
8Rooted Satellite Valencia
Indice
Hook
WHF
Hooking de eventos
Hooking de mensajes
Hooking de funciones– User-Space– Kernel-Space
9Rooted Satellite Valencia
Hook
Conjunto de técnicas que permiten modificar el comportamiento de aplicaciones y sistemas operativos mediante la interceptación de:
Eventos
Mensajes
Llamadas a función
10Rooted Satellite Valencia
Indice
Hook
WHF
Hooking de eventos
Hooking de mensajes
Hooking de funciones– User-Space– Kernel-Space
11Rooted Satellite Valencia
WHF
Proyecto con fin divulgativo
Proveer de ejemplos funcionales de hooks
Facilitar la interceptación de eventos a
nivel global (sistema) o local (proceso)
http://sourceforge.net/projects/whf/
12Rooted Satellite Valencia
Indice
Hook
WHF
Hooking de eventos
Hooking de mensajes
Hooking de funciones– User-Space– Kernel-Space
13Rooted Satellite Valencia
Hooking de eventos
PsSetCreateProcessNotifyRoutine
PsSetLoadImageNotifyRoutine
PsSetCreateThreadNotifyRoutine
IoRegisterPlugPlayNotification
PoRegisterPowerSettingCallback
IoRegisterShutdownNotification
ZwNotifyChangeKey
KeRegisterProcessorChangeCallback
15Rooted Satellite Valencia
Hooking de eventos
Monitor de inicio y fin de procesos y threads.
Denegar o suspender procesos y threads
Inyectar DLLs antes de iniciar un proceso
Monitorizar el mapeo en memoria de una imagen (DLL o EXE)
Monitorizar cambios sobre claves del registro
Monitorizar o Denegar dispositivos PnP
….
16Rooted Satellite Valencia
Indice
Hook
WHF
Hooking de eventos
Hooking de mensajes
Hooking de funciones– User-Space– Kernel-Space
17Rooted Satellite Valencia
Hooking de mensajes
Punto en el sistema de gestión de mensajes donde monitorizar determinados mensajes antes de llegar a la ventana destino
18Rooted Satellite Valencia
Hooking de mensajes
WH_KEYBOARD WH_MOUSE
WH_JOURNALRECORD WH_JOURNALPLAYBACK
Mensajes hacia las ventanas
SetWindowsHook
21Rooted Satellite Valencia
Hooking de mensajes
Que podemos hacer
KeyLogger
MouseLogger
Computer Use Tracker
Hide Window
Linux C&P
22Rooted Satellite Valencia
Indice
Hook
WHF
Hooking de eventos
Hooking de mensajes
Hooking de funciones– User-Space– Kernel-Space
24Rooted Satellite Valencia
Hook
WHF
Hooking de mensajes
Hooking de eventos
Hooking de funciones– User-Space– Kernel-Space
25Rooted Satellite Valencia
Indice
Hook
WHF
Hooking de mensajes
Hooking de eventos
Hooking de funciones– User-Space– Kernel-Space
26Rooted Satellite Valencia
User-Space
IAT
EAT
Delay Laod
Inline
PEB
Kernel-Space
SSDT
IDT
Filter Drivers
27Rooted Satellite Valencia
User-Space
IAT
EAT
Delay Load
Inline
PEB
Kernel-Space
SSDT
IDT
Filter Drivers
29Rooted Satellite Valencia
Que podemos hacer
Monitorizar llamadas a función y sus
parámetros
Impedir que las llamadas progresen
Modificar los parámetros de entrada
Modificar los resultados
30Rooted Satellite Valencia
Conceptos previos
Proceso “Contenedor de Memoria” (Peter Van Eeckhoutte @corelanc0d3r)
Modulo == EXE o DLL
Un módulo importa (utiliza) elementos de otros módulos
Un módulo exporta (expone) elementos a otros módulos
32Rooted Satellite Valencia
EAT
Export Address Table
Funciones exportadas por un modulo
Offset relativo dirección de carga
DEMO
33Rooted Satellite Valencia
DELAY LOAD
MIX entre IAT y EAT
No se carga la DLL hasta que no se invoca a la función
Permite la descarga una vez terminado su uso
DEMO
34Rooted Satellite Valencia
Inline Hooking
Sobreescribir el código de una función con un jmp call hacia otra dirección
36Rooted Satellite Valencia
Using WHF
Hookear funciones ReadFile / WriteFile
IAT / EAT / DELAYLOAD
Dos objetivos:
TimeCapsule
Cripto
38Rooted Satellite Valencia
Futuro
Configuración (BD / AD)
TryIcon
Otra forma de guardar información (BD)
Generación de informes
Filter Driver (carpetas de DropBox/GoogleDrive)
Nuevas funcionalidades (Safe DeleteFile)