SlideShare una empresa de Scribd logo
1 de 20
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

Similar a SecAdmin 2017: Hacking con Python

Mitos y-realidades-linux-y-los-virus
Mitos y-realidades-linux-y-los-virusMitos y-realidades-linux-y-los-virus
Mitos y-realidades-linux-y-los-virus
Gilmar Campana Quispe
 
Análisis Forense Memoria RAM
Análisis Forense Memoria RAMAnálisis Forense Memoria RAM
Análisis Forense Memoria RAM
Conferencias FIST
 
Practica 2 extraccion de contraseñas
Practica 2 extraccion de contraseñasPractica 2 extraccion de contraseñas
Practica 2 extraccion de contraseñas
Ana Olvera
 

Similar a SecAdmin 2017: Hacking con Python (20)

Webinar Gratuito: Analizar una Imagen RAM con Volatility Framework
Webinar Gratuito: Analizar una Imagen RAM con Volatility FrameworkWebinar Gratuito: Analizar una Imagen RAM con Volatility Framework
Webinar Gratuito: Analizar una Imagen RAM con Volatility Framework
 
Pruebas de intrusion mediante Metasploit Framework
Pruebas de intrusion mediante Metasploit FrameworkPruebas de intrusion mediante Metasploit Framework
Pruebas de intrusion mediante Metasploit Framework
 
Analaisis de malwatre trickbot - mp alonso
Analaisis de malwatre   trickbot - mp alonsoAnalaisis de malwatre   trickbot - mp alonso
Analaisis de malwatre trickbot - mp alonso
 
Evolución de las soluciones antimalware
Evolución de las soluciones antimalwareEvolución de las soluciones antimalware
Evolución de las soluciones antimalware
 
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...
 
Mitos y-realidades-linux-y-los-virus
Mitos y-realidades-linux-y-los-virusMitos y-realidades-linux-y-los-virus
Mitos y-realidades-linux-y-los-virus
 
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
Cómo explotar EternalRomance & EternalSynergy en Windows Server 2016
 
Flisol2010
Flisol2010Flisol2010
Flisol2010
 
Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0Resolución de concursos de la NoConName 2010 v1.0
Resolución de concursos de la NoConName 2010 v1.0
 
Análisis Forense Memoria RAM
Análisis Forense Memoria RAMAnálisis Forense Memoria RAM
Análisis Forense Memoria RAM
 
Linux
LinuxLinux
Linux
 
Hacking withinnails pdfcompleto
Hacking withinnails pdfcompletoHacking withinnails pdfcompleto
Hacking withinnails pdfcompleto
 
Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2Cómo explotar EternalBlue en Windows Server 2012 R2
Cómo explotar EternalBlue en Windows Server 2012 R2
 
Software Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la ComputacionSoftware Libre en la Carrera de Ciencias de la Computacion
Software Libre en la Carrera de Ciencias de la Computacion
 
Curso linux clase_2_2012
Curso linux clase_2_2012Curso linux clase_2_2012
Curso linux clase_2_2012
 
Practica 2 extraccion de contraseñas
Practica 2 extraccion de contraseñasPractica 2 extraccion de contraseñas
Practica 2 extraccion de contraseñas
 
Penetración con una Backdoor
Penetración con una BackdoorPenetración con una Backdoor
Penetración con una Backdoor
 
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
[Shared] ML Bootcamp - GDG Barcelona - Semana 4.pptx
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 
Amenazas lógicas
Amenazas lógicasAmenazas lógicas
Amenazas lógicas
 

Más de Dani Adastra

Más de Dani Adastra (17)

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

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
nicho110
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
Marc Liust
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
Yanitza28
 

Último (18)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
10°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-810°8 - Avances tecnologicos del siglo XXI 10-8
10°8 - Avances tecnologicos del siglo XXI 10-8
 
QUINTA SEXTA GENERACION de COMPUTADORAS
QUINTA  SEXTA GENERACION de COMPUTADORASQUINTA  SEXTA GENERACION de COMPUTADORAS
QUINTA SEXTA GENERACION de COMPUTADORAS
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdfpresentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
presentacion_desamblado_de_una_computadora_base_a_las_normas_de_seguridad.pdf
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Editorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdfEditorial. Grupo de 12B de La Salle Margarita.pdf
Editorial. Grupo de 12B de La Salle Margarita.pdf
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptxAVANCES TECNOLOGICOS  DEL SIGLO XXI. 10-08..pptx
AVANCES TECNOLOGICOS DEL SIGLO XXI. 10-08..pptx
 
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
2023 07 Casos prácticos para Realidad aumentada, metaverso y realidad extendida
 
Editorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdfEditorial. Grupo de 12B. La Salle Margarita.pdf
Editorial. Grupo de 12B. La Salle Margarita.pdf
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptxinfor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
infor expo AVANCES TECNOLOGICOS DEL SIGLO 21.pptx
 
presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...presentación del desensamble y ensamble del equipo de computo en base a las n...
presentación del desensamble y ensamble del equipo de computo en base a las n...
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
Función del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacionFunción del analizador léxico.pdf presentacion
Función del analizador léxico.pdf presentacion
 

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?.