SlideShare une entreprise Scribd logo
1  sur  35
WHF
Windows Hooking Framework
      Pablo San Emeterio López


         1, 2 y 3 de Marzo 2012
                  Madrid
   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
●   Departamento I+D       Optenet


●   WebFilter, Antivirus, Antiphishing, AntiSPAM,
    FW, IDS/IPS

      ●   Proyecto TAP

      ●   Proyecto Atila
Índice
   ¿Qué es un Hook?
   Tipos de Hook
          Windows Hook
          Driver Hook
          API Hook
   Aplicaciones
   WHF
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)
Índice
   ¿Qué es un Hook?
   Tipos de Hook
          Windows Hook
          Driver Hook
          API Hook
   Aplicaciones
   WHF
Hook de Windows

Interceptan los mensajes del sistema operativo
Hook de Windows

Interceptan los mensajes del sistema operativo


                 Mensaje




                                   Ventana
                                   destino
Hook de Windows

Interceptan los mensajes del sistema operativo


                 Mensaje




                  Hook
                                   Ventana
                                   destino
Hook de Windows

Interceptan los mensajes del sistema operativo


                 Mensaje




                  Hook
                                   Ventana
                                   destino
DEMO SPY++
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
Índice
   ¿Qué es un Hook?
   Tipos de Hook
          Windows Hook
          Driver Hook
          API Hook
   Aplicaciones
   WHF
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
Hook con Drivers

 Algunos callbacks


PsSetCreateProcessNotifyRoutine   PoRegisterPowerSettingCallback
PsSetCreateThreadNotifyRoutine    IoRegisterShutdownNotification
PsSetLoadImageNotifyRoutine       ZwNotifyChangeKey
IoRegisterPlugPlayNotification    KeRegisterProcessorChangeCallback
Índice
   ¿Qué es un Hook?
   Tipos de Hook
          Windows Hook
          Driver Hook
          API Hook
   Aplicaciones
   WHF
API Hooking

Técnicas que permiten interceptar las llamadas
que realizan los programas al sistema operativo
API Hooking


                     FakeDLL
                       DLL
   Aplicación1                               Aplicación2
llama CreateFile                          llama CreateFile
                   FakeCreateFile
                     CreateFile



                                      Espacio de usuario


                                      Espacio de kernel



                     Operaciones en
                         kernel
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
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
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
API Hooking

 Espacio de Usuario
●PEB   David Reguera - RootedCON 2010
●IAT




 Espacio de Kernel
●SSDT

●IDT
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
API Hooking
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
API Hooking
API Hooking
Índice
   ¿Qué es un Hook?
   Tipos de Hook
         Windows Hook
         Driver Hook
         API Hook
   Aplicaciones
   WHF
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
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
Índice
   ¿Qué es un Hook?
   Tipos de Hook
          Windows Hook
          Driver Hook
          API Hook
   Aplicaciones
   WHF
Windows Hook Framework
Framework para desarrollos basados en Hooks


     Interfaz de usuario
     Instalador de hooks
     DLLs y Drivers que implementan los hooks
DEMO
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
Gracias por su atención

    psaneme@gmail.com

         psaneme

Contenu connexe

En vedette

Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"
Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"
Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"Ruiz Prieto Asesores
 
SERHS HOTELS: E-Brochure Presentación Serhs Hotels
SERHS HOTELS: E-Brochure Presentación Serhs HotelsSERHS HOTELS: E-Brochure Presentación Serhs Hotels
SERHS HOTELS: E-Brochure Presentación Serhs HotelsSerhs Hotels
 
Catalogo final
Catalogo finalCatalogo final
Catalogo finalvvuelta
 
Action learning in curriculum design
Action learning in curriculum designAction learning in curriculum design
Action learning in curriculum designesandelands
 
377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro
377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro
377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San IsidroBrest Fabian Dario
 
Como sobrevivir en un piso de estudiantes. power 1ª sesión.pptx
Como sobrevivir en un piso de estudiantes. power 1ª sesión.pptxComo sobrevivir en un piso de estudiantes. power 1ª sesión.pptx
Como sobrevivir en un piso de estudiantes. power 1ª sesión.pptxlhg94
 
Pronunciation of ' s', '-es' & 'ed'
Pronunciation of ' s', '-es'  &  'ed'Pronunciation of ' s', '-es'  &  'ed'
Pronunciation of ' s', '-es' & 'ed'Jose Canel Alvarez
 
Social media radar | Artur Karda
Social media radar | Artur KardaSocial media radar | Artur Karda
Social media radar | Artur KardaArtur Karda
 
Publicita Tu Negocio En Internet(Publicidad)
Publicita Tu Negocio En Internet(Publicidad)Publicita Tu Negocio En Internet(Publicidad)
Publicita Tu Negocio En Internet(Publicidad)JdJuan Guadalinfo
 
Duna ciencia ficcionarios
Duna ciencia ficcionariosDuna ciencia ficcionarios
Duna ciencia ficcionarioshackbo
 

En vedette (19)

Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"
Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"
Servicios de asesoría laboral y fiscal-mercanti en "Ruiz Prieto Asesores"
 
SERHS HOTELS: E-Brochure Presentación Serhs Hotels
SERHS HOTELS: E-Brochure Presentación Serhs HotelsSERHS HOTELS: E-Brochure Presentación Serhs Hotels
SERHS HOTELS: E-Brochure Presentación Serhs Hotels
 
Catalogo final
Catalogo finalCatalogo final
Catalogo final
 
Briefing tisana
Briefing tisanaBriefing tisana
Briefing tisana
 
1 en un_lugar_de_la.mancha
1 en un_lugar_de_la.mancha1 en un_lugar_de_la.mancha
1 en un_lugar_de_la.mancha
 
Action learning in curriculum design
Action learning in curriculum designAction learning in curriculum design
Action learning in curriculum design
 
377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro
377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro
377-HCD-2016 Proyecto de Ordenanza: Programa Compre Local en San Isidro
 
"Qualität der Zusammenarbeit mit Eltern - Ein Leitfaden für den frühpädagogis...
"Qualität der Zusammenarbeit mit Eltern - Ein Leitfaden für den frühpädagogis..."Qualität der Zusammenarbeit mit Eltern - Ein Leitfaden für den frühpädagogis...
"Qualität der Zusammenarbeit mit Eltern - Ein Leitfaden für den frühpädagogis...
 
Como sobrevivir en un piso de estudiantes. power 1ª sesión.pptx
Como sobrevivir en un piso de estudiantes. power 1ª sesión.pptxComo sobrevivir en un piso de estudiantes. power 1ª sesión.pptx
Como sobrevivir en un piso de estudiantes. power 1ª sesión.pptx
 
carta porte
carta portecarta porte
carta porte
 
Pronunciation of ' s', '-es' & 'ed'
Pronunciation of ' s', '-es'  &  'ed'Pronunciation of ' s', '-es'  &  'ed'
Pronunciation of ' s', '-es' & 'ed'
 
Overactive bladder
Overactive bladderOveractive bladder
Overactive bladder
 
Social media radar | Artur Karda
Social media radar | Artur KardaSocial media radar | Artur Karda
Social media radar | Artur Karda
 
Comunicado
ComunicadoComunicado
Comunicado
 
Schaippach 2016
Schaippach 2016Schaippach 2016
Schaippach 2016
 
La variedad Abeliana de Kuga-Satake en el caso p-adico
La variedad Abeliana de Kuga-Satake en el caso p-adicoLa variedad Abeliana de Kuga-Satake en el caso p-adico
La variedad Abeliana de Kuga-Satake en el caso p-adico
 
Eco ciudad pdf b
Eco ciudad pdf bEco ciudad pdf b
Eco ciudad pdf b
 
Publicita Tu Negocio En Internet(Publicidad)
Publicita Tu Negocio En Internet(Publicidad)Publicita Tu Negocio En Internet(Publicidad)
Publicita Tu Negocio En Internet(Publicidad)
 
Duna ciencia ficcionarios
Duna ciencia ficcionariosDuna ciencia ficcionarios
Duna ciencia ficcionarios
 

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

Taller Android - FIT 2010
Taller Android - FIT 2010Taller Android - FIT 2010
Taller Android - FIT 2010ykro
 
Programacion .net
Programacion .netProgramacion .net
Programacion .netJohan Diaz
 
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]RootedCON
 
Desymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: BackendDesymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: BackendJavier Eguiluz
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentosredtacna
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderjezabelink
 
Lleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente NivelLleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente NivelSoftware Guru
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Juan Carbajal
 
Windows 7 Oportunidades De Desarrollo para ISV
Windows 7 Oportunidades De Desarrollo para ISVWindows 7 Oportunidades De Desarrollo para ISV
Windows 7 Oportunidades De Desarrollo para ISVMicrosoft
 
Introducción a la programación visual
Introducción a la programación visualIntroducción a la programación visual
Introducción a la programación visualmiguelangelvillelli
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Androidjezabelink
 
framework.net -Jennifer Suarez
framework.net -Jennifer  Suarezframework.net -Jennifer  Suarez
framework.net -Jennifer SuarezGinsuaC
 

Similaire à Pablo San Emeterio - WHF - Windows Hooking Framework [RootedCON 2012] (20)

Taller Android - FIT 2010
Taller Android - FIT 2010Taller Android - FIT 2010
Taller Android - FIT 2010
 
Taller de Android
Taller de AndroidTaller de Android
Taller de Android
 
Programacion .net
Programacion .netProgramacion .net
Programacion .net
 
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]
Antonio López & Javier Medina - FuckWALL - Bypassing firewalls [RootedCON 2010]
 
Desymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: BackendDesymfony 2011 - Tutorial #5: Backend
Desymfony 2011 - Tutorial #5: Backend
 
Taller deandroid
Taller deandroidTaller deandroid
Taller deandroid
 
Curso linux clase_2_2012
Curso linux clase_2_2012Curso linux clase_2_2012
Curso linux clase_2_2012
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Net capitulo I - fundamentos
Net   capitulo I - fundamentosNet   capitulo I - fundamentos
Net capitulo I - fundamentos
 
Introducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entenderIntroducción a Android: 10 cosas importantes que hay que entender
Introducción a Android: 10 cosas importantes que hay que entender
 
Lleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente NivelLleva tu Android App al Sigiente Nivel
Lleva tu Android App al Sigiente Nivel
 
Maquina virtual
Maquina virtualMaquina virtual
Maquina virtual
 
Conociendo la plataforma .Net
Conociendo la plataforma .NetConociendo la plataforma .Net
Conociendo la plataforma .Net
 
Conociendo la plataforma .Net
Conociendo la plataforma .NetConociendo la plataforma .Net
Conociendo la plataforma .Net
 
Zend Framework - MVC - 2008
Zend Framework - MVC - 2008Zend Framework - MVC - 2008
Zend Framework - MVC - 2008
 
Windows 7 Oportunidades De Desarrollo para ISV
Windows 7 Oportunidades De Desarrollo para ISVWindows 7 Oportunidades De Desarrollo para ISV
Windows 7 Oportunidades De Desarrollo para ISV
 
Ug villegas
Ug villegasUg villegas
Ug villegas
 
Introducción a la programación visual
Introducción a la programación visualIntroducción a la programación visual
Introducción a la programación visual
 
Deletreando Android
Deletreando AndroidDeletreando Android
Deletreando Android
 
framework.net -Jennifer Suarez
framework.net -Jennifer  Suarezframework.net -Jennifer  Suarez
framework.net -Jennifer Suarez
 

Plus de RootedCON

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRootedCON
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...RootedCON
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRootedCON
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_RootedCON
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...RootedCON
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...RootedCON
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...RootedCON
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRootedCON
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...RootedCON
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRootedCON
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...RootedCON
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRootedCON
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...RootedCON
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRootedCON
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRootedCON
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRootedCON
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...RootedCON
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...RootedCON
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRootedCON
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRootedCON
 

Plus de RootedCON (20)

Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro VillaverdeRooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
Rooted2020 A clockwork pentester - Jose Carlos Moral & Alvaro Villaverde
 
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
 
Rooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amadoRooted2020 hunting malware-using_process_behavior-roberto_amado
Rooted2020 hunting malware-using_process_behavior-roberto_amado
 
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
Rooted2020 compliance as-code_-_guillermo_obispo_-_jose_mariaperez_-_
 
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
Rooted2020 the day i_ruled_the_world_deceiving_software_developers_through_op...
 
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
Rooted2020 si la-empresa_ha_ocultado_el_ciberataque,_como_se_ha_enterado_el_r...
 
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
Rooted2020 wordpress-another_terror_story_-_manuel_garcia_-_jacinto_sergio_ca...
 
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguerRooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
Rooted2020 Atacando comunicaciones-de_voz_cifradas_-_jose_luis_verdeguer
 
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
rooted2020-Rootkit necurs no_es_un_bug,_es_una_feature_-_roberto_santos_-_jav...
 
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemyRooted2020 stefano maccaglia--_the_enemy_of_my_enemy
Rooted2020 stefano maccaglia--_the_enemy_of_my_enemy
 
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
Rooted2020 taller de-reversing_de_binarios_escritos_en_golang_-_mariano_palom...
 
Rooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molinaRooted2020 virtual pwned-network_-_manel_molina
Rooted2020 virtual pwned-network_-_manel_molina
 
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
Rooted2020 van a-mear_sangre_como_hacer_que_los_malos_lo_paguen_muy_caro_-_an...
 
Rooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopezRooted2020 todo a-siem_-_marta_lopez
Rooted2020 todo a-siem_-_marta_lopez
 
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valeroRooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
Rooted2020 roapt evil-mass_storage_-_tu-ya_aqui_-_david_reguera_-_abel_valero
 
Rooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jaraRooted2020 live coding--_jesus_jara
Rooted2020 live coding--_jesus_jara
 
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
Rooted2020 legalidad de-la_prueba_tecnologica_indiciaria_cuando_tu_papi_es_un...
 
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
Rooted2020 hackeando el-mundo_exterior_a_traves_de_bluetooth_low-energy_ble_-...
 
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yusteRooted2020 evading deep-learning_malware_detectors_-_javier_yuste
Rooted2020 evading deep-learning_malware_detectors_-_javier_yuste
 
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_moralesRooted2020 encontrando 0days-en_2020_-_antonio_morales
Rooted2020 encontrando 0days-en_2020_-_antonio_morales
 

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

  • 1. WHF Windows Hooking Framework Pablo San Emeterio López 1, 2 y 3 de Marzo 2012 Madrid
  • 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
  • 7. Hook de Windows Interceptan los mensajes del sistema operativo
  • 8. Hook de Windows Interceptan los mensajes del sistema operativo Mensaje Ventana destino
  • 9. Hook de Windows Interceptan los mensajes del sistema operativo Mensaje Hook Ventana destino
  • 10. Hook de Windows Interceptan los mensajes del sistema operativo Mensaje Hook Ventana destino
  • 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
  • 33. DEMO
  • 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
  • 35. Gracias por su atención psaneme@gmail.com psaneme