SlideShare una empresa de Scribd logo
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Título: Hacking con Python
Ponente: Daniel Echeverri Montoya.
Cargo o puesto: Founder at The Hacker Way.
Fecha: 25/11/2017
www.secadmin.es#secadmin2017 Security Conference 2017
Evento: SecAdmin Security Conference
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Nickname: Adastra (@jdaanial)
Blog: thehackerway.com
The Hacker Way: thehackerway.es
THW Academy: academy.thehackerway.com
Formador, consultor e Investigador de seguridad
informática y hacking.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
AGENDA
Manipulando shellcodes y malware desde Python.
- Creación de rutinas para la inyección de código malicioso con
Python.
- Inyección de código en procesos bajo sistemas Gnu/Linux.
- Inyección de código en procesos bajo sistemas Windows.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
AGENDA
Monitorizar la actividad del usuario.
- Creación de keyloggers con Python.
- Creación de screen scrapers.
- Creación de webcam scrapers.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Creación de herramientas para
monitorización y control
Let’s get evil :-)
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Creación de herramientas para
monitorización y control
- Rutinas que permitan controlar la interacción del usuario con el sistema
(dispositivos de entrada y salida).
- Comunicación bidireccional entre víctima y atacante por medio de un
canal de comunicación cifrado.
- Definición de un protocolo compartido/conocido entre ambas partes
para el intercambio de información.
- Modelo master/slave: El servidor (atacante) envía las rutinas que
debe ejecutar el cliente (víctima) utilizando un protocolo común y conocido
por ambas partes.
- Comunicación anónima entre atacante y víctima (servidor como
servicio oculto en alguna solución de anonimato existente).
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
- Una de las técnicas más comunes a la hora de desarrollar malware, consiste
en inyectar rutinas en procesos que se encuentran en ejecución en la
víctima.
- Un atacante puede seguir dos caminos que le ayudarán a reafirmar su
presencia en la víctima, el primero consiste en inyectar librerías con código
malicioso que se deberán subir al sistema comprometido y el segundo en
inyectar shellcodes directamente en el espacio de direcciones de un
proceso.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
- Independiente del enfoque empleado, en ambos casos es necesario
crear un hilo en el espacio de memoria virtual del proceso.
- En sistemas Windows dicho hilo se puede crear con la función
"CreateRemoteThread", la cual se encuentra incluida en la
librería "kernel32.dll".
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
https://msdn.microsoft.com/es-
es/library/windows/desktop/ms682437(v=vs.85).aspx
HANDLE WINAPI CreateRemoteThread(
_In_ HANDLE hProcess,
_In_ LPSECURITY_ATTRIBUTES lpThreadAttributes,
_In_ SIZE_T dwStackSize,
_In_ LPTHREAD_START_ROUTINE lpStartAddress,
_In_ LPVOID lpParameter,
_In_ DWORD dwCreationFlags,
_Out_ LPDWORD lpThreadId
);
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
- Inyectar DLLs en procesos que se encuentran en ejecución, a menudo se
asocia con una actividad maliciosa, sin embargo se trata de una técnica
utilizada por varias herramientas de seguridad para analizar el
comportamiento de los procesos activos.
- Esta técnica se basa en la creación de una librería compilada, la cual
posteriormente se carga en la memoria de un proceso determinado.
- Para cargar una librería DLL en la memoria de un proceso en
ejecución, es necesario utilizar la función "LoadLibrary" o
"LoadLibraryEx", las cuales se encuentran definidas en la
librería "kernel32.dll".
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
- Dichas funciones permiten mapear el módulo ejecutable en el espacio de
direcciones del proceso. Admiten módulos DLL y ejecutables EXE.
https://msdn.microsoft.com/es-
es/library/windows/desktop/ms684175(v=vs.85).aspx
HMODULE WINAPI LoadLibrary(
_In_ LPCTSTR lpFileName
);
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
- El procedimiento a seguir es el siguiente:
1– Generar el shellcode/librería
2– Se debe abrir el proceso objetivo con las flags adecuadas
para manipularlo. Utilizar kernel32.OpenProcess.
3– Reservar espacio en el proceso para inyectar la librería
en el proceso objetivo. Utilizar kernel32.VirtualAllocEx y
kernel32.WriteProcessMemory
4– Resolver la librería kernel32.LoadLibraryA
5– Crear un nuevo hilo en el proceso con
kernel32.CreateRemoteThread
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
Windows.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
GNU/Linux.
- Una de las formas más comunes de monitorizar y controlar el
comportamiento de los procesos en un sistema Linux, consiste en usar la
system call “ptrace” y la implementación “python-ptrace” permite interactuar
directamente con dicha función desde cualquier script escrito en lenguaje
Python.
- Con “ptrace” además que acceder a la información del proceso, también
es posible inyectar rutinas de código ejecutable directamente en la memoria
de dicho proceso y manipular el Instruction Pointer para que el shellcode
inyectado se ejecute inmediatamente.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Inyección de malware sobre
GNU/Linux.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Keylogger (Windows).
- Un keylogger básico se encarga de registrar todas las teclas pulsadas por la
víctima en un sistema comprometido.
- Es posible implementar Keyloggers en Python utilizando las librerías
PyWin (http://sourceforge.net/projects/pywin32/) y PyHook
(http://sourceforge.net/projects/pyhook/), las cuales solamente se
encuentran disponibles en sistemas Windows.
- Contienen funciones que permiten enganchar los principales eventos
de entrada en el sistema, como por ejemplo eventos del teclado o del
ratón.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Keylogger (GNU/Linux).
- Una implementación bastante habitual en sistemas Linux es Xorg, el cual
utiliza XKB (X Keyboard Extension) para configurar el mapa de caracteres
del teclado dependiendo del idioma utilizado por el usuario.
- La librería “Xlib” provee una función llamada “XqueryKeymap”, la cual
recibe como parámetro una conexión al servidor X y devuelve un
array de bytes con las teclas que se han presionado.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Screen scraper.
- Para un atacante también puede ser útil tomar capturas de pantalla y ver
gráficamente lo que el usuario esta viendo en un momento determinado.
- PIL (Python Imaging Library) sirve para éste propósito, sin embargo, la clase
“ImageGrab” que es la encargada de tomar capturas de pantalla en PIL,
solamente funciona en sistemas Windows.
- Otra alternativa se encuentra en la librería “pyscreenshot” que funciona como
un envoltorio de las funciones de “ImageGrab” que es independiente de
plataforma.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
Webcam scraper.
- Si un atacante consigue introducirse en el ordenador de su víctima, no
solamente tendrá la posibilidad de registrar los eventos producidos por el
teclado y el ratón, sino que también podrá activar la cámara y capturar lo
que ésta registra.
- La librería “opencv” incluye utilidades para el procesamiento de imágenes,
detección de objetos y permite controlar las cámaras que se encuentren
instaladas en el ordenador.
- El enfoque del atacante consistirá en primer lugar en crear un objeto del tipo
“VideoCapture” y posteriormente, iniciar un servidor web en la
máquina de la víctima, desde donde se transmitirá cada uno de los
frames generados del objeto “VideoCapture” de OpenCV.
- Se puede crear un servidor HTTP básico y emitir respuestas a los clientes
con Apache o las utilidades incluidas en Python.
www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience
¿Preguntas?.

Más contenido relacionado

PDF
H-Con 2018: Hacking con Python
PDF
Instrucciones de crypsec crypto security - encriptador
PPT
Shotput malware
PDF
ShellCon 2018: Hacking con Python
PPTX
HerramientasExplotacion-GRUPO5.pptx
PPTX
Desde el DVR hasta la cocina
PPT
Amenzas de seguridad en redes modernas - Seguridad informatica
H-Con 2018: Hacking con Python
Instrucciones de crypsec crypto security - encriptador
Shotput malware
ShellCon 2018: Hacking con Python
HerramientasExplotacion-GRUPO5.pptx
Desde el DVR hasta la cocina
Amenzas de seguridad en redes modernas - Seguridad informatica

Similar a SecAdmin 2017: Hacking con Python (20)

PDF
Webinar Gratuito: Analizar una Imagen RAM con Volatility Framework
PPT
Pruebas de intrusion mediante Metasploit Framework
PPT
Analaisis de malwatre trickbot - mp alonso
PPT
Evolución de las soluciones antimalware
PDF
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
PDF
Mitos y-realidades-linux-y-los-virus
PDF
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
PPT
Flisol2010
PDF
Resolución de concursos de la NoConName 2010 v1.0
PPTX
Análisis Forense Memoria RAM
PDF
Seguridad en los Archivos Seguridad en los Archivos Seguridad en los Archivos
PDF
Seguridad en los Archivos Seguridad en los Archivos Seguridad en los Archi...
DOCX
PDF
PDF
Cómo explotar EternalBlue en Windows Server 2012 R2
PDF
Software Libre en la Carrera de Ciencias de la Computacion
PDF
Curso linux clase_2_2012
PDF
Curso_Hacking sobre Active Directory_Aula_Virtual.pdf
DOCX
Practica 2 extraccion de contraseñas
PDF
Penetración con una Backdoor
Webinar Gratuito: Analizar una Imagen RAM con Volatility Framework
Pruebas de intrusion mediante Metasploit Framework
Analaisis de malwatre trickbot - mp alonso
Evolución de las soluciones antimalware
rooted2020 Sandbox fingerprinting -_evadiendo_entornos_de_analisis_-_victor_c...
Mitos y-realidades-linux-y-los-virus
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Flisol2010
Resolución de concursos de la NoConName 2010 v1.0
Análisis Forense Memoria RAM
Seguridad en los Archivos Seguridad en los Archivos Seguridad en los Archivos
Seguridad en los Archivos Seguridad en los Archivos Seguridad en los Archi...
Cómo explotar EternalBlue en Windows Server 2012 R2
Software Libre en la Carrera de Ciencias de la Computacion
Curso linux clase_2_2012
Curso_Hacking sobre Active Directory_Aula_Virtual.pdf
Practica 2 extraccion de contraseñas
Penetración con una Backdoor

Más de Dani Adastra (17)

PDF
IntelCon 2020: Uso avanzado de ZAP para hacking en aplicaciones web
PDF
Malt 2020: Ciberseguridad en la empresa
PDF
IntelCon 2020: OSINT en la Deep web de TOR
PDF
HoneyCon 2020: Hacking con ZAP
PDF
HackMadrid 2020: Introducción práctica al RedTeam
PDF
XIV Jornadas CCN Cert: Covert Channels en operaciones de Red Team
PDF
8dot8 SUR 2020: Introducción práctica al RedTeam
PDF
SecAdmin 2019: ZAP Proxy: Mucho más que una herramienta de "one-click hack"
PDF
Morteruelo 2019: Seguridad informática en 50 días YOUR hacker way..
PDF
HackRon 2019: Python + TOR: Descubrir, analizar y extraer información de serv...
PDF
UAH 2018: Hacking en la deep web de TOR (for fun and profit)
PDF
DragonJar 2015: Desmitificando la deep web de tor pentesting sobre instancias...
PDF
Cybercamp 2014: Tortazo: Desarrollo de un framework de auditoría para la red ...
PDF
HoneyCon 2017: Pentesting sobre instancias de TOR con Tortazo y TortazoWeb.
PDF
8dot8 2015: Desmitificando la deep web de TOR - pentesting sobre instancias d...
PDF
Cybercamp 2017: Hacking TOR & Freenet for fun, profit and stop the evil.
PDF
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...
IntelCon 2020: Uso avanzado de ZAP para hacking en aplicaciones web
Malt 2020: Ciberseguridad en la empresa
IntelCon 2020: OSINT en la Deep web de TOR
HoneyCon 2020: Hacking con ZAP
HackMadrid 2020: Introducción práctica al RedTeam
XIV Jornadas CCN Cert: Covert Channels en operaciones de Red Team
8dot8 SUR 2020: Introducción práctica al RedTeam
SecAdmin 2019: ZAP Proxy: Mucho más que una herramienta de "one-click hack"
Morteruelo 2019: Seguridad informática en 50 días YOUR hacker way..
HackRon 2019: Python + TOR: Descubrir, analizar y extraer información de serv...
UAH 2018: Hacking en la deep web de TOR (for fun and profit)
DragonJar 2015: Desmitificando la deep web de tor pentesting sobre instancias...
Cybercamp 2014: Tortazo: Desarrollo de un framework de auditoría para la red ...
HoneyCon 2017: Pentesting sobre instancias de TOR con Tortazo y TortazoWeb.
8dot8 2015: Desmitificando la deep web de TOR - pentesting sobre instancias d...
Cybercamp 2017: Hacking TOR & Freenet for fun, profit and stop the evil.
Codemotion 2017: Pentesting en aplicaciones node.js AS ALWAYS: FOR FUN AND PR...

Último (20)

PPTX
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
PDF
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
PDF
SAP Transportation Management para LSP, TM140 Col18
PPTX
Curso de generación de energía mediante sistemas solares
PPTX
Historia Inteligencia Artificial Ana Romero.pptx
PDF
Maste clas de estructura metálica y arquitectura
PDF
TRABAJO DE TECNOLOGIA.pdf...........................
PDF
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
PPTX
Presentacion de Alba Curso Auditores Internos ISO 19011
PPTX
historia_web de la creacion de un navegador_presentacion.pptx
PPT
introduccion a las_web en el 2025_mejoras.ppt
PPTX
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
PDF
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
PPTX
la-historia-de-la-medicina Edna Silva.pptx
PDF
clase auditoria informatica 2025.........
PPTX
Propuesta BKP servidores con Acronis1.pptx
PPTX
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
PPTX
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
PPTX
Sesion 1 de microsoft power point - Clase 1
PPTX
Power Point Nicolás Carrasco (disertación Roblox).pptx
COMO AYUDAN LAS TIC EN LA EDUCACION SUPERIOR.pptx
ADMINISTRACIÓN DE ARCHIVOS - TICS (SENA).pdf
SAP Transportation Management para LSP, TM140 Col18
Curso de generación de energía mediante sistemas solares
Historia Inteligencia Artificial Ana Romero.pptx
Maste clas de estructura metálica y arquitectura
TRABAJO DE TECNOLOGIA.pdf...........................
PRESENTACIÓN GENERAL MIPIG - MODELO INTEGRADO DE PLANEACIÓN
Presentacion de Alba Curso Auditores Internos ISO 19011
historia_web de la creacion de un navegador_presentacion.pptx
introduccion a las_web en el 2025_mejoras.ppt
Acronis Cyber Protect Cloud para Ciber Proteccion y Ciber Seguridad LATAM - A...
Ronmy José Cañas Zambrano - Potenciando la tecnología en Venezuela.pdf
la-historia-de-la-medicina Edna Silva.pptx
clase auditoria informatica 2025.........
Propuesta BKP servidores con Acronis1.pptx
sa-cs-82-powerpoint-hardware-y-software_ver_4.pptx
RAP02 - TECNICO SISTEMAS TELEINFORMATICOS.pptx
Sesion 1 de microsoft power point - Clase 1
Power Point Nicolás Carrasco (disertación Roblox).pptx

SecAdmin 2017: Hacking con Python

  • 1. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Título: Hacking con Python Ponente: Daniel Echeverri Montoya. Cargo o puesto: Founder at The Hacker Way. Fecha: 25/11/2017 www.secadmin.es#secadmin2017 Security Conference 2017 Evento: SecAdmin Security Conference
  • 2. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Nickname: Adastra (@jdaanial) Blog: thehackerway.com The Hacker Way: thehackerway.es THW Academy: academy.thehackerway.com Formador, consultor e Investigador de seguridad informática y hacking.
  • 3. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience AGENDA Manipulando shellcodes y malware desde Python. - Creación de rutinas para la inyección de código malicioso con Python. - Inyección de código en procesos bajo sistemas Gnu/Linux. - Inyección de código en procesos bajo sistemas Windows.
  • 4. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience AGENDA Monitorizar la actividad del usuario. - Creación de keyloggers con Python. - Creación de screen scrapers. - Creación de webcam scrapers.
  • 5. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Creación de herramientas para monitorización y control Let’s get evil :-)
  • 6. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Creación de herramientas para monitorización y control - Rutinas que permitan controlar la interacción del usuario con el sistema (dispositivos de entrada y salida). - Comunicación bidireccional entre víctima y atacante por medio de un canal de comunicación cifrado. - Definición de un protocolo compartido/conocido entre ambas partes para el intercambio de información. - Modelo master/slave: El servidor (atacante) envía las rutinas que debe ejecutar el cliente (víctima) utilizando un protocolo común y conocido por ambas partes. - Comunicación anónima entre atacante y víctima (servidor como servicio oculto en alguna solución de anonimato existente).
  • 7. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows. - Una de las técnicas más comunes a la hora de desarrollar malware, consiste en inyectar rutinas en procesos que se encuentran en ejecución en la víctima. - Un atacante puede seguir dos caminos que le ayudarán a reafirmar su presencia en la víctima, el primero consiste en inyectar librerías con código malicioso que se deberán subir al sistema comprometido y el segundo en inyectar shellcodes directamente en el espacio de direcciones de un proceso.
  • 8. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows. - Independiente del enfoque empleado, en ambos casos es necesario crear un hilo en el espacio de memoria virtual del proceso. - En sistemas Windows dicho hilo se puede crear con la función "CreateRemoteThread", la cual se encuentra incluida en la librería "kernel32.dll".
  • 9. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows. https://msdn.microsoft.com/es- es/library/windows/desktop/ms682437(v=vs.85).aspx HANDLE WINAPI CreateRemoteThread( _In_ HANDLE hProcess, _In_ LPSECURITY_ATTRIBUTES lpThreadAttributes, _In_ SIZE_T dwStackSize, _In_ LPTHREAD_START_ROUTINE lpStartAddress, _In_ LPVOID lpParameter, _In_ DWORD dwCreationFlags, _Out_ LPDWORD lpThreadId );
  • 10. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows. - Inyectar DLLs en procesos que se encuentran en ejecución, a menudo se asocia con una actividad maliciosa, sin embargo se trata de una técnica utilizada por varias herramientas de seguridad para analizar el comportamiento de los procesos activos. - Esta técnica se basa en la creación de una librería compilada, la cual posteriormente se carga en la memoria de un proceso determinado. - Para cargar una librería DLL en la memoria de un proceso en ejecución, es necesario utilizar la función "LoadLibrary" o "LoadLibraryEx", las cuales se encuentran definidas en la librería "kernel32.dll".
  • 11. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows. - Dichas funciones permiten mapear el módulo ejecutable en el espacio de direcciones del proceso. Admiten módulos DLL y ejecutables EXE. https://msdn.microsoft.com/es- es/library/windows/desktop/ms684175(v=vs.85).aspx HMODULE WINAPI LoadLibrary( _In_ LPCTSTR lpFileName );
  • 12. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows. - El procedimiento a seguir es el siguiente: 1– Generar el shellcode/librería 2– Se debe abrir el proceso objetivo con las flags adecuadas para manipularlo. Utilizar kernel32.OpenProcess. 3– Reservar espacio en el proceso para inyectar la librería en el proceso objetivo. Utilizar kernel32.VirtualAllocEx y kernel32.WriteProcessMemory 4– Resolver la librería kernel32.LoadLibraryA 5– Crear un nuevo hilo en el proceso con kernel32.CreateRemoteThread
  • 13. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre Windows.
  • 14. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre GNU/Linux. - Una de las formas más comunes de monitorizar y controlar el comportamiento de los procesos en un sistema Linux, consiste en usar la system call “ptrace” y la implementación “python-ptrace” permite interactuar directamente con dicha función desde cualquier script escrito en lenguaje Python. - Con “ptrace” además que acceder a la información del proceso, también es posible inyectar rutinas de código ejecutable directamente en la memoria de dicho proceso y manipular el Instruction Pointer para que el shellcode inyectado se ejecute inmediatamente.
  • 15. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Inyección de malware sobre GNU/Linux.
  • 16. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Keylogger (Windows). - Un keylogger básico se encarga de registrar todas las teclas pulsadas por la víctima en un sistema comprometido. - Es posible implementar Keyloggers en Python utilizando las librerías PyWin (http://sourceforge.net/projects/pywin32/) y PyHook (http://sourceforge.net/projects/pyhook/), las cuales solamente se encuentran disponibles en sistemas Windows. - Contienen funciones que permiten enganchar los principales eventos de entrada en el sistema, como por ejemplo eventos del teclado o del ratón.
  • 17. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Keylogger (GNU/Linux). - Una implementación bastante habitual en sistemas Linux es Xorg, el cual utiliza XKB (X Keyboard Extension) para configurar el mapa de caracteres del teclado dependiendo del idioma utilizado por el usuario. - La librería “Xlib” provee una función llamada “XqueryKeymap”, la cual recibe como parámetro una conexión al servidor X y devuelve un array de bytes con las teclas que se han presionado.
  • 18. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Screen scraper. - Para un atacante también puede ser útil tomar capturas de pantalla y ver gráficamente lo que el usuario esta viendo en un momento determinado. - PIL (Python Imaging Library) sirve para éste propósito, sin embargo, la clase “ImageGrab” que es la encargada de tomar capturas de pantalla en PIL, solamente funciona en sistemas Windows. - Otra alternativa se encuentra en la librería “pyscreenshot” que funciona como un envoltorio de las funciones de “ImageGrab” que es independiente de plataforma.
  • 19. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience Webcam scraper. - Si un atacante consigue introducirse en el ordenador de su víctima, no solamente tendrá la posibilidad de registrar los eventos producidos por el teclado y el ratón, sino que también podrá activar la cámara y capturar lo que ésta registra. - La librería “opencv” incluye utilidades para el procesamiento de imágenes, detección de objetos y permite controlar las cámaras que se encuentren instaladas en el ordenador. - El enfoque del atacante consistirá en primer lugar en crear un objeto del tipo “VideoCapture” y posteriormente, iniciar un servidor web en la máquina de la víctima, desde donde se transmitirá cada uno de los frames generados del objeto “VideoCapture” de OpenCV. - Se puede crear un servidor HTTP básico y emitir respuestas a los clientes con Apache o las utilidades incluidas en Python.
  • 20. www.secadmin.es#secadmin2017 Security Conference 2017 Ed. Resilience ¿Preguntas?.