Análisis, diseño y desarrollo la realización automática de...

62
Análisis, diseño y desarrollo de una aplicación para la realización automática de pentesting Máster Universitario en Ciberseguridad Trabajo Fin de Máster Autor: José Gaspar Cano Esquibel Tutor/es: Francisco José Mora Gimeno Junio 2019

Transcript of Análisis, diseño y desarrollo la realización automática de...

Page 1: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

Análisis, diseño y desarrollo de una aplicación para

la realización automática de pentesting

Máster Universitario en Ciberseguridad

Trabajo Fin de Máster Autor: José Gaspar Cano Esquibel Tutor/es: Francisco José Mora Gimeno Junio 2019

Page 2: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

1

UNIVERSIDAD DE ALICANTE TRABAJO DE FIN DE MÁSTER

______________________________________________________________________

Análisis, diseño y desarrollo

de una aplicación para la realización automática de pentesting

Autor: José Gaspar Cano Esquibel Tutor: Francisco José Mora Gimeno

Junio 2019

Page 3: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

2

Versión del documento 2019.06.01 Licencia Se permite la reproducción, distribución y comunicación pública de la obra, incluso con

fines comerciales siempre y cuando reconozca y cite la obra de la forma especificada por

el autor o el licenciante.

Page 4: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

3

Motivación, justificación y objetivo general

La realización de las pruebas de penetración es un tema de máxima vigencia y actualidad,

las pruebas de penetración son una exigencia diaria y primordial para garantizar la

seguridad de los sistemas de información.

Uno de los trabajos principales en el día a día de los administradores de sistemas es la

automatización de las tareas que realizan frecuentemente de manera manual. La

automatización aumenta la productividad y reduce la probabilidad de errores. Ante esto

surge la idea del presente trabajo, la necesidad de automatizar las distintas etapas de un

pentesting mediante herramientas Open Source que ya existen y son utilizadas

ampliamente de forma manual e independiente. Por lo tanto, con este trabajo se propone

el diseño y desarrollo de una aplicación que permita realizar todas las tareas de un test de

penetración una forma automática e incluso planificada de forma periódica.

La justificación de este proyecto es la utilidad y garantía de uso, basada en una necesidad

real que tienen las organizaciones, por lo que la automatización de este tipo de pruebas

de penetración les proporciona un feedback continuo sobre el estado de seguridad de sus

sistemas.

La originalidad de idea parte en unir las etapas del pentesting hasta la explotación,

utilizando herramientas de propósito general (Open Source) dentro del ámbito de la

seguridad informática y la auditoria, de forma que cada herramienta no pierde su

funcionalidad de ejecución y conserva su ciclo de actualización, al mismo tiempo que se

pueden incorporar otras herramientas, como añadir las nuevas funcionalidades que

puedan ofrecer.

Por lo tanto, el objetivo de este trabajo final de máster es el análisis, diseño y desarrollo

de una aplicación que permita la automatización de las distintas etapas presentes en las

auditorías técnicas de seguridad o pentesting. La aplicación recibirá como entrada

información relativa al objetivo, el dominio de la infraestructura, y empleará técnicas de

auditoría activa y/o pasiva, con el fin de implementar de manera automática distintas fases

del proceso de pentesting.

Page 5: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

4

Agradecimientos

Mi especial agradecimiento al director del Máster de Ciberseguridad y de este PFM

Francisco Mora, y a la entidad para la que trabajo el Banco de Sabadell

por haber apostado por este Máster junto a la UA.

Page 6: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

5

Dedicatoria

A mi Madre, Esperanza.

Page 7: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

6

.

Cada paso hace camino y cada piedra hace pared.

Jaime Cano García

Page 8: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

7

Índice de contenidos

Motivación, justificación y objetivo general ................................................................. 3 Agradecimientos ............................................................................................................. 4 Dedicatoria ...................................................................................................................... 5

Índice de figuras .............................................................................................................. 9 Índice de tablas ............................................................................................................. 10 1. Introducción ............................................................................................................ 11

2. Estado del arte. ....................................................................................................... 13

2.1. Reconocimiento .................................................................................................. 15

2.2. Descubrimiento ................................................................................................... 16

2.3. Explotación ......................................................................................................... 17

2.4. Post-Explotación ................................................................................................. 18

3. Objetivos ................................................................................................................. 19

4. Metodología ............................................................................................................ 21

4.1. Metodología de desarrollo .................................................................................. 21

5. Desarrollo e implementación .................................................................................. 22

5.1. Infraestructura tecnológica ................................................................................. 22

5.1.1. Kali ................................................................................................................. 22

5.1.2. Python ............................................................................................................. 24

5.1.3. SQLite ............................................................................................................. 25

5.1.4. Herramientas y librerías .................................................................................. 26

5.1.4.1. MessagePack .............................................................................................. 27

5.1.4.2. ReportLab ................................................................................................... 28

5.1.4.3. KaliTools .................................................................................................... 29

5.2. Implementación .................................................................................................. 31

5.2.1. Entorno de desarrollo ...................................................................................... 32

5.2.1.1. IDE Python Personal Wing ......................................................................... 32

5.2.1.2. IDE SQLite Studio ...................................................................................... 33

Page 9: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

8

5.2.2. Desarrollo ....................................................................................................... 34

5.2.2.1. Herramientas integradas ............................................................................. 34

5.2.2.1.1. The Harvester (Etapa 1) .............................................................................. 34

5.2.2.1.2. Metagoofil (Etapa 1) ................................................................................... 35

5.2.2.1.3. NMAP (Etapa 2) ......................................................................................... 35

5.2.2.1.4. Metasploit y MSGRPC Service (Etapa 3) .................................................. 36

5.2.2.2. Composición de los Módulos ..................................................................... 38

5.2.2.3. Implementación de los módulos ................................................................. 38

5.2.2.3.1. Ejecución .................................................................................................... 39

5.2.2.3.2. Interfaz ........................................................................................................ 39

5.2.2.3.3. Almacenamiento ......................................................................................... 40

5.2.2.3.4. Explotación ................................................................................................. 40

5.2.2.3.5. Informe ....................................................................................................... 40

5.2.2.4. Ejecución de AutoPenExploit ..................................................................... 41

5.2.2.5. Flujo de Ejecución ...................................................................................... 42

5.2.2.6. El Informe de AutoPenExploit ................................................................... 44

5.2.2.6.1. Portada, Manifiesto y Referencias .............................................................. 45

5.2.2.6.2. Etapa 1 ........................................................................................................ 46

5.2.2.6.3. Etapa 2 ........................................................................................................ 47

5.2.2.6.4. Etapa 3 ........................................................................................................ 48

5.2.2.6.5. Manifiesto de autorización ......................................................................... 49

5.2.2.6.6. Manifiesto de confidencialidad .................................................................. 50

6. Experimentación y casos de uso ............................................................................. 51

7. Conclusiones y trabajo futuro ................................................................................. 56

Referencias ..................................................................................................................... 58 Glosario .......................................................................................................................... 60

Apéndice: ........................................................................................................................ 61

Page 10: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

9

Índice de figuras

Figura 1. Demanda en Infojobs de especialistas Ciberseguridad .................................. 12

Figura 2. Etapas del Pentesting ....................................................................................... 13

Figura 3. Logo Kali Linux ............................................................................................. 23

Figura 4. Logo Python ................................................................................................... 24

Figura 5. Logo SQLite ................................................................................................... 25

Figura 6. Logo MessagePack ......................................................................................... 27

Figura 7. Comparación JSON vs MessagePack ............................................................ 28

Figura 8. Logo Report Lab ............................................................................................ 28

Figura 9. Logo Kali Tools ............................................................................................. 29

Figura 10. Logo IDE Wings .......................................................................................... 32

Figura 11. Logo SQLite Studio ..................................................................................... 33

Figura 12. Carga del Servicio msgrp del framework de Metasploit ............................... 37

Figura 13. Componentes fundamentales de Aplicación AutoPenExploit ...................... 38

Figura 14. Detalle de ejecución para una herramienta ................................................ 39

Figura 15. Detalle de interfaz de HTML5 ...................................................................... 39

Figura 16. Detalle de interfaz XML .............................................................................. 39

Figura 17. Detalle de almacenamiento en BBDD ......................................................... 40

Figura 18. Detalle creación cliente Msfrpc ................................................................... 40

Figura 19. Detalle creación portada informe ............................................................... 40

Figura 14. Menú Básico de AutoPenExploit .................................................................. 41

Figura 15. Menú Extendido de AutoPenExploit ............................................................ 41

Figura 16.Flujo ejecución actual .................................................................................... 42

Figura 17.Flujo de ejecución previsto con nuevas herramientas .................................... 43

Figura 18. Composición del informe de AutoPenExploit .............................................. 44

Figura 19. Detalle Portada, Manifiesto y Referencias .................................................... 45

Figura 20 Detalle de la etapa 1 del Informe ................................................................... 46

Figura 21 Detalle de la etapa 2 del Informe ................................................................... 47

Figura 22 Detalle de la etapa 3 del Informe ................................................................... 48

Figura 23 Detalle de la Autorización en el informe ....................................................... 49

Figura 24 Detalle Confidencialidad en el Informe ......................................................... 50

Page 11: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

10

Índice de tablas

Tabla 1. Detección/Intrusión de Pentesting .................................................................... 14

Tabla 2. Resumen de Kali .............................................................................................. 23

Tabla 3. Resumen de Python ......................................................................................... 24

Tabla 4. Índice TIOBE de utilización mundial de Leguajes de Programación ............. 25

Tabla 5. Resumen de SQLite ........................................................................................ 26

Tabla 6. Resumen de MessagePack ............................................................................... 27

Tabla 7. Resumen de ReportLab ................................................................................... 29

Tabla 8. Resumen de Herramientas Kali para Etapas 1,2 y 3 ....................................... 31

Tabla 9. Resumen de IDE Wing ................................................................................... 32

Tabla 10. Resumen de SQLite Studio ........................................................................... 33

Tabla 11. Resumen del herramientas integradas y interfaz utilizado ............................. 34

Tabla 12. Resumen de TheHaverter ............................................................................ 35

Tabla 13. Resumen de Metagoofil ................................................................................ 35

Tabla 14. Resumen de NMAP ........................................................................................ 36

Tabla 15. Resumen de Metasploit ................................................................................ 37

Tabla 16. Resumen de Entornos de explotación ............................................................. 51

Tabla 17. Niveles de ejecución de las etapas .................................................................. 52

Tabla 18. Tabla de elementos detectados ....................................................................... 52

Tabla 19. Tabla de grupos de amenazas ......................................................................... 52

Tabla 20. Nivel de riesgo de intrusión ............................................................................ 53

Tabla 21. Resumen de Experimentaciones ..................................................................... 55

Page 12: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

11

1. Introducción

En 1971 con este mensaje "Soy una enredadera... ¡atrápame si tú puedes!" (1), que

empezó a aparecer de repente en varios ordenadores de la red ARPANET (la antecesora

de Internet), encontramos lo que se considera el primer virus informático, al que se

denominó Creeper (enredadera). No era un programa malicioso, no pretendía causar daño

alguno, y simplemente viajaba de un nodo a otro de la red replicándose a sí mismo y

mostrando su mensaje. Escrito por Bob Thomas, infectaba ordenadores DEC PDP-10 con

sistema operativo TENEX. Esto seria el revulsivo que sirvió para la creación del primer

antivirus de la historia en 1972, apareció Reaper (segadora), su misión eliminar a Creeper

de los ordenadores por los que se había propagado, imitaba su actitud, viajando y

replicándose por los nodos de la red. Con el nacimiento de este primer antivirus, podemos

hablar de los albores de una nueva disciplina en el mundo de las Tecnologías de la

Información, la Ciberseguridad.

La seguridad informática o de las tecnologías de la información, conocida también como

Ciberseguridad, es el área relacionada con la informática focalizada en la protección de

las infraestructuras, comunicaciones y datos de los sistemas informáticos. La

ciberseguridad comprende tanto software como hardware, así como todo elemento de las

organizaciones que puesto en valor, su pérdida o compromiso, signifique una pérdida de

servicio o disminución de este.

El objetivo de la ciberseguridad es por tanto su habilidad de identificar y eliminar

vulnerabilidades existentes, y conseguir predecir futuras amenazas tratando de ser lo mas

proactivos posibles, y al mismo tiempo fijar una política de seguridad que dirija la

conveniencia y la coordinación de sus acciones para reducir los riesgos.

Según la RAE se establece Hacker como “persona experta en el manejo de

computadoras, que se ocupan de la seguridad de los sistemas y que desarrollan técnicas

de mejora”. Comúnmente este término es asociado a todo aquel experto que utiliza sus

conocimientos para superar un problema asociado a la seguridad y mejorar la seguridad

de los sistemas informáticos, empleando también el nombre de Hacker ético. Se debe

distinguir de los piratas informáticos o ciberdelincuentes.

Page 13: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

12

La siguiente figura muestra el incremento en la demanda de especialistas en

Ciberseguridad desde el año 2014, para una de las empresas lideres en contratación de IT

en España, Infojobs.

Figura 1. Demanda en Infojobs de especialistas Ciberseguridad (2)

El objetivo de los ciberdelincuentes es atacar los sistemas en la búsqueda de un beneficio

propio, por el contrario, para un Hacker ético, el ataque de los sistemas les permite

determinar las superficies de ataque y de esta forma plantear las posibles mejoras o

soluciones a esas posibles vulnerabilidades, siguiendo siempre postulados éticos y

legales. Sin embargo, los hackers y los ciberdelincuentes utilizan las mismas habilidades,

conocimientos y herramientas. Al proceso que realiza una auditoría técnica de seguridad

de los sistemas informáticos se denomina “pentesting” que una abreviatura de Prueba de

Penetración (penetration testing).

Los conceptos de hacking ético y pentesting están relacionados con el propósito de la

elaboración de informe técnico autorizado (legalmente) para descubrir y explotar

satisfactoriamente los sistemas vulnerables, cuyo propósito es determinar su exposición

ante un ataque informático real, con el objetivo final de corregir las vulnerabilidades

encontradas para hacer los sistemas más seguros.

160

1270

1790

2009 2016 2017

Page 14: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

13

2. Estado del arte.

El Pentesting, o pruebas de penetración de sistemas informáticos puede ser definido como

el estudio, autorizado por el propietario de sus sistemas y por lo tanto legal, de las

vulnerabilidades presentes en un sistema objetivo. Esta batería de pruebas que evalúen

los sistemas concluirá con un informe de la situación actual, junto con pruebas de

explotación que evalúen la exposición real de los sistemas objetivos.

El proceso de prueba de penetración (pentesting), sigue una metodología que permite

dividir el proceso en una serie de fases más pequeñas. En general, las pruebas de

penetración se dividen en las siguientes etapas:

Figura 2. Etapas del Pentesting Primera fase, reconocimiento, recogida de información, footprinting pasivo u OSINT

(Open Source Intelligence). Se le denomina reconocimiento pasivo, porque las tareas que

se realizan en ningún momento son intrusivas frente a la infraestructura de la organización

que es objetivo de la recolección de la información, por lo que no suele ser detectada por

los sistemas de seguridad de la empresa objetivo. La información que se recolecta del

objetivo proviene de fuentes públicas disponibles en internet, es decir, el footprinting

recoge información del objetivo a través de todos los directorios de información

existentes en internet. La etapa de reconocimiento tiene una gran importancia dentro del

pentesting puesto que es el punto de partida, donde más información se debe recoger y

sobre la que se realizarán los análisis posteriores.

La segunda fase o descubrimiento activo, recoge la información directamente de la

infraestructura de la empresa, por lo que sí puede ser detectado por los sistemas de

seguridad. El objetivo es una recolección y exploración de la infraestructura objetivo, así

como un análisis de vulnerabilidades.

Post-explotación Explotación

Reconocimiento Descubrimiento

Nivel de Intrusión

Page 15: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

14

La tercera fase es la explotación del sistema objetivo, esta es una etapa puramente

intrusiva y hace uso de la información obtenida en las fases anteriores, así como las

vulnerabilidades descubiertas para así realizar un ataque, y conseguir acceso al sistema

objetivo. El éxito de la explotación dependerá de la calidad de la información obtenida

en las etapas anteriores, así como de la identificación de las vulnerabilidades encontradas

en la infraestructura del objetivo.

Existe una ultima fase, post-explotación, cuyo objetivo es seguir explotando un sistema

al que ya tenemos acceso, es decir mantener la persistencia del acceso conseguido, para

lo cual necesitamos elevar los privilegios obtenidos (si no se consiguió previamente),

penetrar en una subred interna (pivoting), cubrir rastros (en la medida que sea posible

evitar que seas detectado y mantener la persistencia de acceso al sistema).

Etapa Denominación Nivel de Intrusión Detectable 1 Reconocimiento Pasivo No 2 Escaneo Activo Si 3 Explotación Activo Si 4 Post-Explotación Activo Si

Tabla 1. Detección/Intrusión de Pentesting

El grado de conocimiento del objetivo determina el tipo de pentesting a realizar, en este

sentido los podemos clasificar en tres tipos:

• Caja blanca: La información con la que se realiza el pentesting sobre el sistema

objetivo es completa, este tipo pruebas las realizan en las organizaciones los

departamentos de auditoria interna de manera regular para calibrar objetivos.

• Caja gris: La información con la que se realiza el pentesting sobre el sistema

objetivo esta limitada sobre la infraestructura. Esta prueba esta diseñada para

auditar las pruebas de penetración del personal de la empresa que tiene

conocimiento parcial del sistema objetivo

• Caja Negra: La prueba de penetración se realiza sin ningún tipo de información

sobre los sistemas objetivos, este tipo de pentesting está diseñado el punto de vista

de la auditoria externa y trata de imitar el comportamiento previsible de un

atacante externo malicioso.

Page 16: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

15

2.1. Reconocimiento

El reconocimiento es la primera etapa del pentesting, donde se persigue recoger la mayor

parte de información posible y que esta sirva de base para las siguientes etapas, mediante

técnicas no intrusivas en los sistemas objetivos, es decir, se accede a la información

publica disponible en internet, y en ningún momento se accede a los sistemas de la

empresa. De esta manera, esta etapa se considera de reconocimiento pasivo y no es

detectable por los sistemas de seguridad de la empresa objetivo del análisis.

La cuantía y el tipo de información que se puede conseguir es numerosa, podemos obtener

entre otros los siguientes datos de esta fase de reconocimiento.

De Infraestructuras

• Topología de Red, dominio y subdominios

• Servicios de red existente: web, mail, ftp

• Tecnología empleada para desplegar servicios

Organizativa

• Jerarquía de personal de la empresa: CEO, empleados, etc.

• Oficinas

• Teléfonos

• Emails corporativos

Personal

• Relación de empleados

• Aficiones de los empleados, así como donde han estudiado, amigos, etc.

• Relaciones de los empleados con terceros

En este reconocimiento pasivo se intenta conseguir, a través de herramientas OSINT, la

información descrita de fuentes públicas.

Page 17: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

16

Existen muchas formas de realizar el reconocimiento pasivo, dentro del vasto número de

herramientas en esta etapa podríamos citar:

• Información Administrativa de Infraestructuras en registro públicos,

“https://whois.ws”

• Búsquedas avanzadas en Google/Bing aplicado directivas específicas.

• Búsqueda en Base de datos de dispositivos, como Shodan (3)

• Herramientas especializadas como MALTEGO (4) que muestra la información gráficamente y Robtex, que en teoría permite realizar footprinting activo como si fuera pasivo

• Ingeniería de redes sociales (linkedin, Facebook, Twitter) a través de

buscadores

2.2. Descubrimiento

El objetivo de la etapa de descubrimiento es el análisis de todas las vulnerabilidades

presentes dentro de las infraestructuras de la empresa objetivo, esta información será

explotada posteriormente.

El origen de partida de esta etapa es la información proveniente de la fase anterior, que

era un reconocimiento pasivo, a partir de información publica. En esta etapa podemos

recopilar más información sobre las infraestructuras de la empresa objetivo como IPs

públicas, servidores activos, servicios e información sobre usuarios.

En general, los pasos a seguir para realizar la etapa de descubrimiento de la red objetivo

son los siguientes:

• Obtención de equipos activos

• Descubrimiento de puertos abiertos en dichos equipos

• Descubrimiento de los servicios en ejecución

• Obtención del sistema operativo de los equipos

• Obtención de información perimetral

• Realización de un análisis de vulnerabilidades

Page 18: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

17

Después de esta etapa, el analista de seguridad dispone de toda la información de la

empresa objetivo relativa a los equipos activos de la empresa accesibles remotamente, sus

sistemas operativos, los servicios que están ejecutando, los puertos que tienen abiertos, si

existe o no seguridad perimetral y un listado con las vulnerabilidades encontradas en la

infraestructura.

En esta etapa se emplean, principalmente, dos tipos de herramientas: un escáner de red y

un analizador de vulnerabilidades. El escáner de red por excelencia es NMAP, mientras

que OpenVAS y Nessus (5) constituyen dos ejemplos de analizadores de

vulnerabilidades.

2.3. Explotación

En función de la información obtenida en las fases anteriores, reconocimiento y

descubrimiento, habremos obtenido los objetivos y las posibles vulnerabilidades,

relacionadas básicamente con debilidades de configuración y de la tecnología empleada

(desbordamiento de buffer, errores en protocolos). Por lo que el principal vector de

entrada en la explotación de los sistemas, son estas debilidades presentes las

implementaciones del sistema operativo, aplicaciones y servicios.

La aplicación estándar como plataforma de explotación es Metasploit Framework que

permite uso no comercial (6), a diferencia de Core Impact.

Metasploit Framework permite que se ejecute un payload asociado a un ataque (5), que

en la mayoría de las ocasiones tiene acciones que tienen como objetivo la obtención de

una shell o intérprete de comandos, de manera directa o inversa. Los sistemas de defensa

cuentan con firmas muy exactas de los payloads por defecto, que los detectan con mucha

facilidad, abortando su ejecución.

Page 19: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

18

2.4. Post-Explotación

La fase de Post-explotación está formada por las tareas que se llevan acabo después de

haber explotado un sistema, y constituyen el objetivo real de los atacantes maliciosos.

Esta fase está fuera del objetivo de una prueba de penetración puesto que la obtención de

los activos concretos es objetivo del atacante, pero se realiza para mostrar el impacto

asociado a las brechas de seguridad de los sistemas de la empresa.

Meterpreter es la herramienta principal que permite pasar de la explotación a la post-

explotación de una forma casi directa. Meterpreter es un payload muy avanzado que se

puede ejecutar después de explotar un sistema (8).

Esta etapa esta fuera ámbito del proyecto, puesto que este trabajo final de máster sólo

contempla el objetivo básico de un pentesting que es la explotación o acceso a los

sistemas.

Page 20: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

19

3. Objetivos

El Pentesting puede ser definido como el estudio autorizado por el propietario, y por lo

tanto legal, de las vulnerabilidades presentes en la infraestructura informática de una

empresa. Estas pruebas de penetración de sistemas informáticos proporcionan una prueba

o evidencia de la vulnerabilidad de los sistemas informáticos, frente a un ataque real

malintencionado realizado para comprometer estos sistemas. El pentesting nos ofrece la

posibilidad de corregir las vulnerabilidades encontradas, evitando el ataque real, en la

medida de lo posible.

El principal objetivo de este proyecto es el diseño y desarrollo de una aplicación que

realice de manera automática varias etapas de un pentesting. La aplicación, a partir de

objetivos determinados, podrá ejecutar automáticamente el proceso de pentesting

completo: reconocimiento, descubrimiento y explotación. Este proyecto en todo

momento se aborda desde el punto de vista del hacking ético, de forma que el informe

elaborado nos permita realizar mitigación de las vulnerabilidades detectadas.

Este pentesting automático debe cubrir las tres primeras etapas de una evaluación técnica

de seguridad: reconocimiento, descubrimiento y explotación. La explotación es el

objetivo principal.

Dado que la consideración de partida está relacionada con el hacking ético y legal, en una

situación real se necesitaría permiso explícito y por escrito mediante contrato de la

empresa que requiere las pruebas de penetración antes de poder iniciar cualquier

actividad. El ámbito y alcance de la prueba debe quedar claro en este contrato de auditoria.

Dentro del contrato se debe especificar que acciones están permitas realizarse y cuales

no. Los métodos y estrategias deben ser los mismos que emplearía un atacante malicioso,

por lo tanto, usaremos herramientas de seguridad y análisis forense ampliamente

conocidas y utilizadas por atacantes maliciosos.

Los resultados de las pruebas de penetración, así como cualquier tipo de información

asociada, perteneciente al cliente y no podrá ser divulgada fuera de la organización del

cliente que encargo las pruebas.

Page 21: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

20

El objetivo secundario del trabajo es la generación, también de manera automática, de un

informe de auditoría con las vulnerabilidades detectadas, así como evidencias de las

explotaciones realizadas en el sistema objetivo.

Las conclusiones, así como los puntos de mejora o soluciones a las deficiencias

encontradas, que suelen forma parte del contrato estándar de unas pruebas de penetración,

quedaran fuera del ámbito de este informe automático.

Page 22: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

21

4. Metodología

El conjunto de los procedimientos para la gestión de todos los componentes de un

proyecto se constituye como la metodología empleada para su realización. En la siguiente sección describiremos la metodología de desarrollo para este proyecto que tiene como

objetivo principal, la creación de una herramienta para la automatización de las diferentes

etapas en las pruebas de penetración y explotación.

4.1. Metodología de desarrollo

La metodología de desarrollo se ha encajado en un modelo incremental de

funcionalidades, es decir, se han elegido unas pocas herramientas por cada etapa de forma

que podamos validar el modelo general de automatización, que es el propósito de este

proyecto. Con este planteamiento será sencillo ir añadiendo funcionalidades o

incrementar las ya existentes simplemente añadiendo herramientas a cada etapa y

siguiendo el modelo existente.

La metodología incremental se ha seguido tanto vertical como horizontalmente.

Incremento vertical porque se ha desarrollado primero el módulo de reconocimiento,

después se ha integrado el de descubrimiento y, finalmente, se ha añadido el módulo de

explotación. Incremento horizontal porque en cada una de las etapas o módulos anteriores

se pueden ir añadiendo nuevas herramientas, extendiendo la funcionalidad de la

aplicación.

En todo momento se ha buscado un modelo puramente funcional y que puede evolucionar

de una manera estable, que cubra plenamente el alcancé de este proyecto.

Page 23: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

22

5. Desarrollo e implementación

Para abordar la realización de este proyecto, ha sido requerido el despliegue de una

infraestructura tecnológica, necesaria tanto para el desarrollo como para la ejecución, así

como el uso de un conjunto de herramientas para la implementación y desarrollo. En las

siguientes secciones describimos el sistema operativo, el sistema gestor de BBDD, las

herramientas para cada etapa, el lenguaje y las librerías empleadas para cubrir la

penetración, la explotación y la generación del informe implementadas.

5.1. Infraestructura tecnológica

Para la realización del proyecto se ha contado con la distribución GNU Linux Kali, líder

dentro en el ámbito de la seguridad informática, tanto en el campo del pentest como en el

campo del análisis forense. A la distribución base KALI se le han añadido los elementos

necesarios para consecución del proyecto.

El lenguaje de programación empleado es Python, escogido por ser es uno de los mas

empleados para la creación de herramientas de sistemas, algo que garantiza la continuidad

del proyecto. Para el entono de desarrollo se ha utilizado el IDE de Python WinPersonal,

por su sencillez y su entono de depuración amigable, que simplifican las condiciones de

desarrollo y depuración.

A continuación, se mostrarán las características del entorno de desarrollo y ejecución en

la creación del proyecto, incluyendo: sistemas operativos, el lenguaje empleado, librerías,

herramientas, base de datos, IDE y sistemas de testeo utilizados.

5.1.1. Kali

El sistema operativo empleado es un GNU/Linux, concretamente la distribución Kali, por

ser una de distribuciones lideres en Pentest (9). Kali es la distribución sucesora de la

distribución GNU/BackTrack, pero basado en el Core Debian, esta diseñada básicamente

para la seguridad y la auditoria informática y esta mantenida por la compañía Ofensive

Security LTD.

Page 24: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

23

Figura 3. Logo Kali Linux (10)

La distribución Kali Linux trae preinstalados más de 600 programas, puede ser usada

desde un Live CD, live-usb o como sistema operativo principal. Kali se distribuye

en imágenes ISO compiladas para diferentes arquitecturas (32/64 bits y ARM), existen

imágenes compatibles con los principales hypervisores de virtualización.

Para garantizar un entorno seguro de desarrollo, el equipo de Kali, esta formado por un

reducido numero de personas que interactúan con los repositorios oficiales, todos los

paquetes estan firmados por los desarrolladores que los compilaron. Los paquetes también

serán firmados en sus repositorios utilizando GNU Privacy Guard, para garantiza su

autenticad.

Desarrollador Offensive Security kali.org

Modelo de desarrollo Código abierto

Lanzamiento inicial 13 de marzo de 2013

Última versión estable 2019.1 (Rolling) 18 de febrero de 2019 (2 meses y 10 días) Núcleo Linux, FreeBSD, Hurd

Tipo de núcleo Monolítico, Micro

Interfaz gráfica predeterminada GNOME, KDE, Xfce o LXDE

Plataformas admitidas x86, x86-64 y ARM

Sistema de gestión de paquetes dpkg

Método de actualización APT (varias interfaces disponibles)

Licencia GPL con programas y componentes LGPL, BSD, MITentre otros Estado actual En desarrollo

Idiomas Multilingüe

Predecesor: BackTrack

Tabla 2. Resumen de Kali (11)

Page 25: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

24

5.1.2. Python

Python es un lenguaje de programación interpretado, orientado a objetos, imperativo y

que soporta la programación funcional, usa tipado dinámico y es multiplataforma. Su

filosofía es su sintaxis, que tiende a facilitar que el código sea ante todo legible.

Administrado por la Python Software Foundation fue creado en 1991 por Guido Van

Rossen.

Figura 4. Logo Python (12)

La facilidad de extensión de Python es también uno de sus objetivos de diseño, permite

escribir nuevos módulos fácilmente en C o C++. Python dispone de una numerosa librería

estándar de módulos para multitud de usos de propósito general, y con un especial

atractivo para la creación de programas de Networking (13) (14) y seguridad, la tabla

siguiente muestra un resumen de características del Python.

Desarrollador Python Software Foundation www.python.org

Extensiones comunes

py, .pyc, .pyd, .pyo, .pyw, .pyz

Paradigma orientado a objetos, imperativo, funcional, reflexivo

Diseñado por Guido van Rossum (1991)

Última versión estable

3.7.3

• 25 de marzo de 2019 (1 mes y 1 día) 2.7.161

• 2 de marzo de 2019 (1 mes y 24 días)

Sistema de tipos Fuertemente tipado, dinámico

Implementaciones CPython, IronPython, Jython, PyPy, Pygame, ActivePython

Dialectos Stackless Python, RPython

Influido por ABC, ALGOL , C, Haskell, Icon, Lisp,Modula3, Perl, Smalltalk

Ha influido a

Boo, Cobra, D, Falcon, Genie, Groovy, Ruby, JavaScript, Cython

Sistema operativo Multiplataforma

Licencia Python Software Foundation License

Tabla 3. Resumen de Python (15)

Page 26: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

25

En febrero de 2009 se lanzó una nueva versión de Python la 3.0 esta nueva versión

incluye toda una serie de cambios que obligan a reescribir el código de versiones previas.

Como resumen, Python combina una sintaxis clara, multitud herramientas dentro de su

biblioteca estándar y la posibilidad de usar lenguajes de bajo nivel como C y C++, esto

nos permite interactuar con numerosas bibliotecas. Esto describe su versatilidad, potencia

y utilización como muestra la siguiente tabla, por lo que se ha convertirlo en uno de los

lenguajes mas utilizados después del Java y el C/C++.

Tabla 4. Índice TIOBE (16) de utilización mundial de Leguajes de Programación 5.1.3. SQLite

SQLite es un gestor relacional de bases de datos compatible con ACID, escrito en C ,

esta biblioteca requiere menos de 300Kb, es un proyecto de dominio público creado por

Richard Hipp.

Figura 5. Logo SQLite (20)

Page 27: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

26

Como diferencia principal con otros gestores de BBDD, SQLite no esta basado en modelo

cliente-servidor, por lo que no es un proceso independiente. Es una biblioteca que se

enlaza con el programa y forma parte de su código y su hilo de ejecución, la funcionalidad

a SQLite se obtiene a través de llamadas a su API (subrutinas y funciones). Con esto se

consigue unos tiempos de latencia muy bajos a las llamadas a la librería, así como la

eficiencia de la comunicación entre procesos, este planteamiento de trabajo es valido

cuando se requieren pocos accesos a una BBDD (simultáneos). La estructura de la base

de datos (definiciones, tablas, índices, y datos), forman parte de un único fichero en la

misma maquina donde se ejecuta la aplicación.

Este diseño tan simple se consigue mediante el bloqueo de un único fichero durante toda

la transacción. Desde la versión 3 el limite de tamaño esta en 2 Terabytes , y se admiten

campos del tipo BLOB.

Modelo de desarrollo Dominio Público

Desarrollador D. Richard Hipp

Autor D. Richard Hipp

Lanzamiento inicial agosto de 2000

Última versión estable 3.28.0 16 de abril de 2019 (16 días) Género RDBMS

Programado en C

Sistema operativo Multiplataforma

Tamaño ~275 kiB

Licencia Dominio público

Tabla 5. Resumen de SQLite (21)

5.1.4. Herramientas y librerías

Las herramientas utilizadas constituyen el núcleo generador de la información en las

diferentes etapas de las pruebas de penetración y explotación, las librerías son el nexo

para su utilización e interconexión, así como el medio para la generación del informe

final.

Page 28: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

27

5.1.4.1. MessagePack

MessagePack es un formato binario para serializarían de datos, permite serializar

estructura de datos simples como listas y diccionarios y existen implementaciones

oficiales para múltiples lenguajes y plataformas.

Figura 6. Logo MessagePack (17)

Messagepack es el formato de intercambio que emplean algunos servidores de RPC para

comunicarse con su cliente, por su velocidad y eficiencia.

Autor Sadayuki Furuhashi

Ultima versión 0.5.7

Programado en Varios lenguajes

Disponible para C, C++, C#, D, Erlang, Go, Haskell, Java, JavaScript, Lua, OCaml, Perl, PHP, Python, Ruby, Scala, Smalltalk, and Swift.

Sistema operativo Multiplataforma

Funcionalidad Intercambio de datos

Licencia Apache License

Website msgpack.org

Tabla 6. Resumen de MessagePack (18)

A diferencia de JSON que es un standard de facto en intercambio de datos, MessagePack

es mas rápido y necesita transmitir menos información, ya que para formatos numéricos

pequeños utiliza un solo byte, así como paras las cadenas pequeñas requeriré unos pocos

bytes. La siguiente figura compara la eficiencia en la transmisión de datos entre JSON y

Messagepack, para un mismo mensaje, se emplean 18 bytes en Messagepack frente a 27

en JSON.

Page 29: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

28

Figura 7. Comparación JSON vs MessagePack (17) 5.1.4.2. ReportLab

Reporlab es una Librería que permite crear documentos directamente en el formato de

documento portables de Adobe (PDF). Esta escrita utilizando el lenguaje de

programación Python. Su versatilidad le permite crear gráficos, tablas, insertar imágenes,

anotación y diferentes objetos. El formato PDF es el estándar global para documentos

electrónicos, es compatible con la impresión de alta calidad.

Figura 8. Logo Report Lab (19)

Las especificaciones de PDF son complejas (tienen mas de 600 páginas), es un binario

indexado que es imposible de escribir directamente, ya que se deben proporcionar

compensaciones de bytes precisas. Esto hace que sea más difícil de generar que HTML,

la mayoría de los documentos PDF son producidos por las herramientas como Acrobat de

Adobe, JAWS o PDF Creator, que funcionan como 'controladores de impresión', que

generaran el PDF como si se tratase de una impresión.

La biblioteca ReportLab crea directamente PDF en función de sus comandos, esto le

permite funcionar a alto nivel, con un motor completo que diseña documentos completos

con tablas, cuadros gráficos y todo tipo de objetos, a continuación, mostramos un resume

de la librería empleada.

Page 30: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

29

Python Software Foundation www.reportlab.com

Paradigma orientado objetos, imperativo, funcional, reflexivo

Apareció en 2001

Diseñado por ReportLab, Inc

Última versión estable

3.5 (2018)

• 25 de marzo de 2019 (1 mes y 1 día) 2.7.161

• 2 de marzo de 2019 (1 mes y 24 días)

Implementación Python

Sistema operativo Multiplataforma

Licencia Python Software Foundation License

Tabla 7. Resumen de ReportLab (19)

5.1.4.3. KaliTools

La distribución Kali Linux contiene una gran cantidad de herramienta pertenecientes a

diferentes ámbitos dentro de los campos de la seguridad y del análisis forense. Estas

herramientas están recogidas en la distribución de Kali, pero están soportados en los

repositorios de cada herramienta.

Figura 9. Logo Kali Tools (22) Las KaliTools constituyen la lista de herramientas y utilidades de la distribución Kali

Linux, abordan desde la recogida de la información y la explotación hasta la generación

de informes finales. Esto permite a los profesionales de la seguridad IT contar con

múltiples funcionalidades necesarias, para cubrir su desempeño, las Kali Tools cubren las

siguientes categorías.

Page 31: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

30

• Information Gathering • Sniffing & Spoofing • Vulnerability Analysis • Exploitation Tools • Password Attacks • Wireless Attacks • Forensics Tools • Maintaining Access • Hardware Hacking • Web Applications • Stress Testing • Reverse Engineering • Reporting Tools

Dentro de todas estas categorías y cubriendo las etapas que forman parte de este proyecto

se cuentan las siguientes mostradas en la siguiente tabla.

Information Gathering (Etapa 1)

• ace-voip • Amap • APT2 • arp-scan • Automater • bing-ip2hosts • braa • CaseFile • CDPSnarf • cisco-torch • copy-router-

config • DMitry • dnmap • dnsenum • dnsmap • DNSRecon • dnstracer • dnswalk • Ghost Phisher

• GoLismero • goofile • hping3

• ident-user-enum

• InSpy • InTrace • iSMTP • lbd • Maltego

Teeth • masscan • Metagoofil • DotDotPwn • enum4linux • enumIAX • EyeWitness • Faraday • Fierce

• Firewalk • fragroute • fragrouter • Miranda • nbtscan-unixwiz • Nikto • Nmap • ntop • OSRFramework • p0f • Parsero • Recon-ng • SET • SMBMap • smtp-user-enum

• snmp-check • SPARTA • sslcaudit • SSLsplit • sslstrip • SSLyze • Sublist3r • THC-IPV6 • theHarvester • TLSSLed • twofi • Unicornscan • URLCrazy • Wireshark • WOL-E • Xplico

Vulnerability Analysis (Etapa 2)

• BBQSQL • BED • cisco-auditing-

tool • cisco-global-

exploiter

• Doona • DotDotPwn • HexorBase • jSQL

Injection • Lynis

• Oscanner • Powerfuzzer • sfuzz • SidGuesser • SIPArmyKnife • sqlmap

• tnscmd10g • unix-privesc-

check • Yersinia

Page 32: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

31

• cisco-ocs • cisco-torch • copy-router-

config

• Nmap • ohrwurm • openvas

• Sqlninja • sqlsus • THC-IPV6

Exploitation Tools (Etapa 3)

• Armitage • Backdoor

Factory • BeEF • cisco-auditing-

tool • cisco-global-

exploiter

• cisco-ocs cisco-torch

• Commix • crackle • exploitdb • jboss-

autopwn

• Linux Exploit Suggester

• Maltego Teeth • Metasploit

Framework • MSFPC

• RouterExploit • SET • ShellNoob • sqlmap • THC-IPV6 • Yersinia

Tabla 8. Resumen de Herramientas Kali (22) para Etapas 1,2 y 3

5.2. Implementación

La realización de las especificaciones técnicas necesarias, sobre la infraestructura

tecnológica descrita en la sección anterior, son la base de la implementación realizada.

Los medios utilizados se describirán en la próxima sección, así como el entorno de

desarrollo que constituyen el desarrollo de la aplicación de automatización realizada en

este TFM. También describiremos las herramientas necesarias en cada etapa, los

mecanismos para poder recopilar toda la información generada en cada etapa y el medio

para realizar la explotación.

Se detallarán los módulos necesarios y desarrollados para realizar la integración con sus

interfaces para tal propósito. Se describirá el flujo de ejecución de cada etapa y su paso a

la siguiente etapa, la escalabilidad en el diseño para la inclusión de nuevos módulos y

herramientas, que permitirían añadir nuevas funcionalidades. Para finalizar detallaremos

la generación del informe desarrollado como una recopilación de la información de las

vulnerabilidades descubiertas y evidencias de la explotación, junto a su manifiesto de uso

y utilización.

Page 33: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

32

5.2.1. Entorno de desarrollo

El conjunto de procedimientos y herramientas que se utilizan para generar, probar y

depurar un programa, constituyen el entorno de desarrollo. En las siguientes secciones

describiremos los IDE (Integrated Development Environment) empleados, que

proporciona servicios que facilitan el desarrollo, edición de código fuente, y

de depuración, de una manera integrada y amigable.

5.2.1.1. IDE Python Personal Wing

Personal Wing, es un entorno integrado para desarrollo de Python amigable y con un

entorno de depuración, que facilita el desarrollo y ejecución de programas en Python.

Existen versiones de Personal Wing que se ejecutan en Windows, Mac OS X y Linux

Figura 10. Logo IDE Wings (27)

Desarrollador Wingware

Lanzamiento 2000

Ultima versión 6.1.5

Escrito en Python, Cython, C, C++

Sistema operativo Windows, OS X, Linux

Funcionalidad IDE para Python

Licencia Propietario

Website www.wingware.com

Tabla 9. Resumen de IDE Wing (27)

Page 34: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

33

5.2.1.2. IDE SQLite Studio

El IDE SQLite Studio es la herramienta de desarrollo que posibilita la interacción con el

sistema gestor de BBDD de SQLite, la consulta de los datos visualmente y la generación

de las consultas de datos utilizadas el desarrollo de este proyecto.

Figura 11. Logo SQLite Studio (28)

Este IDE es una herramienta muy amigable (grafica) y totalmente funcional para cubrir

todas las necesidades del proyecto, la siguiente tabla muestra información de SQLite

Studio.

Desarrollador SalSoft Pawel Salawa

Lanzamiento 2007

Versión estable 3.2.1

Sistema operativo Windows, OS X, Linux

Funcionalidad IDE para SQLlite

Licencia PGPLv3

Website https://sqlitestudio.pl

Tabla 10. Resumen de SQLite Studio (28)

Page 35: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

34

5.2.2. Desarrollo

La aplicación desarrollada en este Trabajo Fin de Máster, denominada AutoPenExploit,

es la suma de las abreviaturas de Automático, Penetración y Exploit. En las siguientes

secciones describiremos la estructura de la aplicación y su implementación.

5.2.2.1. Herramientas integradas

La aplicación AutoPenExploit, tal y como se ha comentado está compuesta por una serie

de módulos, que se muestran en la siguiente tabla, así como la tecnología empleada, el

tipo de enlace que se empleó desde la aplicación Python con cada herramienta y el interfaz

para su integración.

Paso Etapa Modulo Programa

Aplicación Versión Call Interfaz 1 1 Python_TheHarvester TheHarvester 3.0.6 Shell XML 2 1 Python_Metagoodfil Metagoodfil 2.2 Shell HTML 2 2 Python_NMAP NMAP 7.70 Shell XML 3 3 Python_Metasploit Metasploit 5.0.20 RPC MessagePack

Tabla 11. Resumen del herramientas integradas y interfaz utilizado

5.2.2.1.1. The Harvester (Etapa 1)

TheHarvester, tiene como objetivo descubrir información pública de múltiples

repositorios como buscadores, servidores de claves PGP, bases de datos de ordenadores

como SHODAN. Siendo la información obtenida emails, subdominios, host, nombres de

empleados, puertos abiertos, etc.

Esta herramienta está destinada a ayudar a los analistas de seguridad en la primera etapa

de las pruebas de penetración, para comprender la huella digital del cliente en Internet.

También es útil para cualquier persona que quiera saber qué puede ver un atacante sobre

su organización.

Page 36: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

35

Source https://github.com/laramies/theHarvester/

Repositorio Kali http://git.kali.org/gitweb/?p=packages/theharvester.git;a=summary

Autor Christian Martorella

Licencia GPLv2

Tabla 12. Resumen de TheHaverter (22)

5.2.2.1.2. Metagoofil (Etapa 1)

Metagoofil es una herramienta de recopilación de información diseñada para extraer

metadatos de documentos públicos (pdf, doc, xls, ppt, docx, pptx, xlsx) que pertenecen a

una empresa objetivo.

Metagoofil realizará una búsqueda en Google para identificar y descargar los documentos

en el disco local y luego extraerá los metadatos con diferentes bibliotecas como Hachoir,

PdfMiner. Con los resultados, generará un informe con nombres de usuario, versiones de

software y servidores o nombres de máquinas que ayudarán a los evaluadores de

seguridad en la primera fase de recopilación de información

Source http://www.edge-security.com/metagoofil.php

Repositorio Kali http://git.kali.org/gitweb/?p=packages/metagoofil.git;a=summary

Autor Christian Martorella

Licencia GPLv2

Tabla 13. Resumen de Metagoofil (22)

5.2.2.1.3. NMAP (Etapa 2)

Nmap (Network Mapper) es una herramienta de código abierto y con licencia gratuita

para el descubrimiento de redes, auditorías de seguridad, inventario de redes, inventarios

de actualización de servicios y la supervisión del tiempo de actividad de los equipos

informáticos. Nmap utiliza paquetes de IP sin procesarlos, para determinar qué hosts están

disponibles en la red, qué servicios (nombre de aplicación y su versión), qué sistemas

Page 37: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

36

operativos (y versiones de SO) están ejecutando, qué tipo de filtros de paquetes /

cortafuegos están en uso (15), entre otras opciones.

Fue diseñado para escanear rápidamente grandes redes, pero funciona bien contra hosts

individuales. Nmap se ejecuta en la mayoría de los sistemas operativos, y los paquetes de

binarios oficiales están disponibles para Linux, Windows y Mac OS X. Además del

ejecutable clásico de Nmap de línea de comandos, la suite Nmap incluye una GUI

avanzada y un visor de resultados (Zenmap), una herramienta flexible de transferencia de

datos, redireccionamiento y depuración (Ncat), una utilidad para comparar resultados de

escaneo (Ndiff) y una herramienta de análisis de generación y respuesta de paquetes

(Nping).

Source http://nmap.org/

Repositorio Kali http://git.kali.org/gitweb/?p=packages/nmap.git;a=summary

Autor Fyodor

Licencia GPLv2

Tabla 14. Resumen de NMAP (22)

5.2.2.1.4. Metasploit y MSGRPC Service (Etapa 3)

Metasploit es una plataforma de pruebas de penetración que permite encontrar, explotar

y validar vulnerabilidades. Proporciona la infraestructura, el contenido y las herramientas

para realizar pruebas de penetración y extensas auditorías de seguridad y, gracias a la

comunidad de código abierto y al propio equipo de contenido de Rapid7, se agregan

nuevos módulos de forma regular, lo que significa que el último exploit está disponible

tan pronto como se publique.

Page 38: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

37

Source https://Metasploit.com/

Web Site http://git.kali.org/gitweb/?p=packages/Metasploit-framework.git

Autor Rapid7

Licencia BSD-3-clause

Tabla 15. Resumen de Metasploit (22)

Metasploit Framework (16) permite que aplicaciones externas se puedan conectar e

interactuar utilizado el Plugin MSGRPC, esto posibilita el acceso a los módulos y los

exploits integrados en Metasploit. Este complemento genera una instancia de un servidor

RPC local, ofreciendo todas las funcionalidades del framework de Metasploit, su

funcionamiento se basa en serializar los mensajes del servidor RPC usando el formato

MessagePack. Desde Python será posible emplear Metasploit usando el cliente msgpack

y la biblioteca python-msfrpc, que es responsable de encapsular el intercambio de

paquetes entre el servidor MSGRPC y el programa cliente que usa msgpack. De esta

manera, es posible realizar una integración entre cualquier programa de Python y el

framework de Metasploit, mediante el interfaz msgrpc y una poderosa API (17)

La carga del plugin se hace dentro de la consola del Metasploit, tal y como se muestra

en la siguiente figura, especificado usuario, contraseña, utilización o no de SSL, y la

dirección IP del servidor RPC que atenderá las peticiones.

Figura 12. Carga del Servicio msgrp del framework de Metasploit

Este servidor nos permitirá conectarnos con el MSF y poder realizar la explotación (26),

así como ejecutar el payload a través del cual ejecutaremos un Shellcode en el sistema

objetivo, y con esto obtendremos las evidencias de explotación (7) que formaran parte

del informe como una vulnerabilidad real y evidenciada.

Page 39: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

38

5.2.2.2. Composición de los Módulos

La aplicación AutoPenExploit esta desarrolla en Python y compuesta por una serie de

módulos principales. Los módulos pertenecen a alguna de las etapas de un test de

penetración analizadas anteriormente y ofrecen distintas funcionalidades. En la siguiente

figura se pueden observar los distintos módulos y la etapa a la que pertenecen.

Figura 13. Componentes fundamentales de Aplicación AutoPenExploit 5.2.2.3. Implementación de los módulos

En las siguientes secciones describimos brevemente la implementación en Python de los

módulos descritos anteriormente: la ejecución de las herramientas, la extracción de la

información con su interfaz correspondiente, el almacenamiento en la BBDD, la

explotación y la generación del informe.

Metagoofil.py

Thehaverter.py

1.Reconocimiento

NMAP.py

2.Descubrimiento

AutoPenExploit

Menu.py

Metasploit.py

3.Explotacion

Modulos Generales

PDF_report.py SQLite Parser_xml.py

Page 40: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

39

5.2.2.3.1. Ejecución

Sección de código en Python que muestra el detalle de la ejecución para cada herramienta

en un proceso independiente esperando su finalización.

Figura 14. Detalle de ejecución para una herramienta (metagoofil.py) 5.2.2.3.2. Interfaz

Sección de código del interfaz de HTML5 que realiza la extracción para la salida de la

herramienta metagoofil y obtiene los elementos email, usuarios.

Figura 15. Detalle de interfaz de HTML5 (metagoofil.py) Sección de código del interfaz de XML que realiza la extracción para la salida de la

herramienta theharvester, para los elementos email, hostname e IP.

Figura 16. Detalle de interfaz XML (thehaverter.py)

Page 41: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

40

5.2.2.3.3. Almacenamiento

Sección de código que describe como se realiza el almacenamiento de la información

entre la interfaz de una herramienta y almacenamiento en BBDD.

Figura 17. Detalle de almacenamiento en BBDD (NMAP.py) 5.2.2.3.4. Explotación

Sección de código que describe como se realiza la creación de la consola de MSF

mediante el cliente Msfrpc de Metasploit, que permite la invocación de los comandos de

la explotación.

Figura 18. Detalle creación cliente Msfrpc (Metasploit.py) 5.2.2.3.5. Informe

Sección de código que describe como se genera la portada del informe mediante

invocación a la librería de ReportLab.

Figura 19. Detalle creación portada informe (PDF_Report.py)

Page 42: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

41

5.2.2.4. Ejecución de AutoPenExploit

La funcionalidad principal de la aplicación AutoPenExploit es la realización de las

pruebas de penetración automatizada, para lo cual emplearemos las opciones del menú,

primero introduciremos el dominio del análisis, en segundo lugar la ejecución (RUN) y

por último la generación del Informe de auditoría.

Figura 20. Menú Básico de AutoPenExploit

Existe un menú extendido, básicamente para tareas de depuración, que habilita la

generación de todas las etapas por separado, como se puede apreciar en la figura siguiente:

Figura 21. Menú Extendido de AutoPenExploit

Page 43: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

42

5.2.2.5. Flujo de Ejecución

En la próxima figura se muestra el flujo de ejecución normal, de los componentes de las

aplicaciones AutoPenExploit, y a continuación de esta se muestra como sería el flujo de

ejecución con las inclusiones de nuevos módulos en desarrollos futuros.

Figura 22.Flujo ejecución actual

Etapa 1 TheHarvester

Etapa 1

TheHarvester

Metagoofil Metagoofil

SQLite

SQLite

Etapa 2 NMAP NMAP SQLite

Etapa 3 Metasploit SQLite

Parser

Storage

Report

Ejecución

Leyenda

Menu

Etapa

SQLite

Page 44: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

43

Figura 23.Flujo de ejecución previsto con nuevas herramientas

TheHarvester Etapa 1

Etapa 1

TheHarvester

Metagoofil

SQLite

Metagoofil SQLite

Etapa 2 NMAP NMAP SQLite

Etapa 3 Metasploit SQLite

Etapa 3

Etapa 2

Etapa 1

Leyenda

Parser

Storage

Report

Ejecución

Etapa

Menu

Nuevos

Page 45: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

44

5.2.2.6. El Informe de AutoPenExploit

El informe del AutoPenExploit estaba marcado como un objetivo secundario, pero la

presentación de este informe automatizado de vulnerabilidades detectadas, así como

evidencia de las explotaciones realizadas en el sistema objetivo, permite cubrir la entrega

de un informe final con las vulnerabilidades encontradas.

Las conclusiones, así como los puntos de mejora o soluciones a las deficiencias

encontradas de estas pruebas de penetración, quedaran fuera del ámbito de este informe

automático, ya que requieren una elaboración AdHoc que está fuera del ámbito de este

proyecto. La siguiente figura describe la estructura del informe que se realiza, y en las

siguientes subsecciones se detallan brevemente cada una de ellas.

Figura 24. Composición del informe de AutoPenExploit

Portada

Etapa 1 Etapa 2 Etapa 3

Acuerdo Confidencialidad

Referencias Manifiesto

Page 46: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

45

5.2.2.6.1. Portada, Manifiesto y Referencias

La portada del informe y el manifiesto, conforman la presentación y alcance del informe

de penetración dentro de este proyecto, junto con las referencias que sirvan como

información sobre las herramientas empleadas en la elaboración de este informe, como

se muestra en detalle en la siguiente figura.

Figura 25. Detalle Portada, Manifiesto y Referencias

Page 47: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

46

5.2.2.6.2. Etapa 1

Laprimeraetapaelreconocimientoesdondesepersiguerecogerlamayorpartede

informaciónposible y que esta sirvadebasepara las siguientes etapas, siempre

mediante técnicasno intrusivas. Enel informeapareceránenmúltiplespáginas,

toda la información recopilada por las dos herramientas. En la siguiente figura

mostramosdetalledelaprimeraetapa

Figura 26 Detalle de la etapa 1 del Informe En la figura anterior, se muestra por categoría (Email) y por herramienta de

reconocimiento (metagoofil y theharvester) el detalle de la información recopilada, que

podrá ser utilizada en las siguientes etapas de AutoPenExploit, o de forma manual con

otras herramientas, o como auditoria para eliminar vulnerabilidades antes un ataque de

ingeniería social para este ejemplo.

Page 48: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

47

5.2.2.6.3. Etapa 2

Con la información proveniente de la fase anterior, que era un reconocimiento pasivo, la

herramienta utilizada en esta etapa NMAP que nos proporciona información de

infraestructura principalmente, puertos abiertos y versiones de sistemas operativo,

mediante Figerprinting activo\ pasivo.

Figura 27 Detalle de la etapa 2 del Informe

Como se muestra en la figura anterior para la categoría (Port), a partir de la herramienta

NMAP se muestra el estado de los puertos, por ejemplo, se describe el 22 como open. Al

mismo tiempo asociado al puerto tenemos las vulnerabilidades mostradas con el vector

estándar de la vulnerabilidad CVE (22), ya asociadas con la versión del sistema operativo

reconocido. Esta información será necesaria para la siguiente etapa de explotación y como

información de auditoría relevante asociada a vulnerabilidades detectadas, que deben ser

mitigadas.

Page 49: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

48

5.2.2.6.4. Etapa 3

En base a las vulnerabilidades descubiertas en la etapa anterior y en función de la

información obtenida en las fases anteriores, se puede llevar a cabo la etapa de

explotación. Metasploit Framework permite que se ejecute un payload asociado a

vulnerabilidad descubierta.

Figura 28 Detalle de la etapa 3 del Informe La figura anterior muestra el ataque asociado a la vulnerabilidad detectada, asociada al

vector de ataque, CVE-2007-2447 y sirve como evidencia real de que el exploit se puede

ejecutar con éxito.

Page 50: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

49

5.2.2.6.5. Manifiesto de autorización

La penúltima página del informe contiene la Autorización (permiso explicito) que supone

el contrato de la empresa, que dará cobertura legal a las pruebas de penetración antes de

poder iniciar cualquier actividad. En el contrato se define el ámbito y alcance de las

pruebas y se especifican las acciones que están permitas y las que no, que es un requisito

indispensable para toda prueba de hacking ético.

Figura 29 Detalle de la Autorización en el informe

Page 51: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

50

5.2.2.6.6. Manifiesto de confidencialidad

Los resultados de las pruebas de penetración, así como cualquier tipo de información

asociada a estas pruebas, pertenecen a la empresa. Por lo tanto, no podrá ser divulgada

fuera de la organización que encargo las pruebas. En la siguiente figura se muestra el

manifiesto de confidencialidad que se adjunta como última página en el informe

generado, que es un requisito indispensable para todas pruebas de penetración.

Figura 30 Detalle Confidencialidad en el Informe

Page 52: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

51

6. Experimentación y casos de uso

Una vez descrita la aplicación vamos a incluir las pruebas realizadas para la aplicación

desarrollada AutoPenExploit descrita en los apartados anteriores. El objetivo de este

apartado es validar como se resuelve el proceso de automatización descrito.

Para la experimentación se han buscado diferentes entornos (casos de uso) tanto reales

como de laboratorio, para poder realizar las validaciones de las diferentes etapas como se

detalla la siguiente tabla de entornos:

Entorno Ambiente Descripción

Test Laboratorio Test de Laboratorio Local

Test Real Test Penetración

Bank Real Site Bancario

Edu Real Site Educacional

Com Real Site Comercial

Ocio Real Site de Ocio

Trans Real Site de transporté

Tabla 16. Resumen de Entornos de explotación

La tabla siguiente describe el nivel de ejecución, es decir como se encadenan las etapas,

el objetivo principal del proyecto como ya se ha reiterado es la ejecución automática

(ligadas a la infraestructura a partir de un dominio de entrada), pero en todos los entornos

no ha sido posible realizarla para todas las etapas por limitaciones éticas al no tener

autorización expresa para poder realizar las pruebas de penetración, por lo que no

avanzamos a las siguientes etapas en algunos entornos. Otras técnicas como la fuerza

bruta para la búsqueda de contraseñas o la ingeniería social quedan fuera del alcance

inicial del proyecto, esta tendría una continuidad manual con herramienta especificas,

pero quedan expuestas como vulnerabilidades descubiertas en la tabla de resultados, los

iconos facilitan la compresión de los mecanismos de ejecución empleados.

Page 53: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

52

Ejecución Manual

Ejecución Automática (AutoPenExploit)

Sin ejecución (No existe contrato)

Tabla 17. Niveles de ejecución de las etapas

Para cada etapa se han agrupado los elementos detectados, en función de su naturaleza

como veremos en la tabla siguiente.

Elementos

email

Nombres de usuarios (metadados en DOC, PDF)

Organigrama CEO, CIO, empleados, centros)

Infraestructuras (IP, Host, DNS)

Vulnerabilidades

Exploit (asociado a vulnerabilidad)

Tabla 18. Tabla de elementos detectados

La siguiente tabla muestra las amenazas detectadas, y el grupo de posibles ataques que

podrían desencadenar un ataque.

Ingeniería email

Fuerza bruta

Ingeniería social

Búsqueda exploit

Penetración Windows

Penetración Linux

Tabla 19. Tabla de grupos de amenazas

Para cada entorno y cada etapa podrían considerarse una serie de riesgos de intrusión, en

función de los elementos descubiertos en cada etapa, representado por colores como se

muestra a continuación los riesgos y la etapa en la que aparecen.

Riesgos de intrusión Etapa

No detectado 1/2

Detectado 1

Alto 2

Page 54: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

53

Comprometido 3

No comprometido 3

Tabla 20. Nivel de riesgo de intrusión Como resumen de la experimentación realizada la ultima tabla muestra, para cada entorno

y cada etapa, los elementos que podrían ser una amenaza y si se consiguió la explotación.

Los iconos descritos en las anteriores tablas combinados con los colores de riesgo de

intrusión nos ayudan a comprender la tabla de resultados y alcance de la experimentación.

Entorno y Etapa

Elementos Detectados Amenaza Siguiente Etapa

Test 1

1

Email N/A N/A

Nombre Usuarios N/A N/A

Organigrama N/A N/A

Infraestructura

Exploit

Etapa 2

2

Infraestructura

Exploit

Manual

Vulnerabilidades

Exploit Etapa 3

3

Exploit Shellcode Penetración

Persistencia

Exploit Shellcode Penetración

Persistencia

Test 2

1

Email

Ing. Email

Manual

Nombre Usuarios N/A N/A

Organigrama

Ing. Social

Manual

Infraestructura

Exploit

Etapa 2

2

Infraestructura

Exploit

N/A

Vulnerabilidades

Exploit

N/A

3

Exploit Shellcode Penetración

Manual

Bank 1

1

Email

Ing. Email

N/A

Nombre Usuarios

Fuerza Bruta

N/A

Organigrama

Ing. Social

N/A

Infraestructura

Exploit

N/A

Page 55: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

54

Bank 2

1

Email

Ing. Email

N/A

Nombre Usuarios N/A N/A

Organigrama

Ing. Social

N/A

Infraestructura

Exploit

N/A

Com 1

1

Email

Ing. Email

Manual

Nombre Usuarios

Fuerza Bruta

Manual

Organigrama

Ing. Social

Manual

Infraestructura

Exploit

Etapa 2

2

Infraestructura

Exploit

N/A

Vulnerabilidades

Exploit

N/A

Com 1

1

Email

Ing. Email

Manual

Nombre Usuarios N/A N/A

Organigrama

Ing. Social

Manual

Infraestructura

Exploit

Etapa 2

2

Infraestructura N/A N/A

Vulnerabilidades N/A N/A

Ocio 1

1

Email

Ing. Email

Manual

Nombre Usuarios N/A N/A

Organigrama

Ing. Social

Manual

Infraestructura

Exploit

Etapa 2

2

Infraestructura

Exploit

N/A

Vulnerabilidades

Exploit

N/A

Trans 1

1

Email

Ing. Email

Manual

Nombre Usuarios

Fuerza Bruta

Manual

Organigrama

Ing. Social

Manual

Infraestructura

Exploit

Etapa 2

2

Infraestructura

Exploit

N/A

Page 56: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

55

Vulnerabilidades

Exploit

N/A

Edu 1

1

Email

Ing. Email

Manual

Nombre Usuarios

Fuerza Bruta

Manual

Organigrama

Ing. Social

Manual

Infraestructura

Exploit

Etapa 2

2

Infraestructura

Exploit

N/A

Vulnerabilidades

Exploit

N/A

Edu 2

1

Email

Ing. Email

N/A

Nombre Usuarios

Fuerza Bruta

N/A

Organigrama

Ing. Social

N/A

Infraestructura

Exploit

N/A

Tabla 21. Resumen de Experimentaciones

Page 57: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

56

7. Conclusiones y trabajo futuro

Como se indico en la motivación, la realización de las pruebas de penetración es un tema

de máxima necesidad y actualidad, el objetivo ha sido crear un sistema automatizado que

cubra las etapas de los pentesting hasta la explotación, mediante el uso de potentes

herramientas Open Source existentes (las mismas que usan los atacantes maliciosos).

Suponen una auditoria real de la exposición de vulnerabilidades, este objetivo ha sido

cubierto. Del mismo modo también se ha cubierto la generación de un informe que

conforme una auditoria que evidencie las vulnerabilidades descubiertas, así como los

indicios reales de la etapa de explotación si las hubiese.

Como resumen de las conclusiones podemos destacar el cumplimiento de las siguientes

características:

• Validación, del modelo automático desarrollado posibilita el encadenamiento

entre las diferentes etapas de las pruebas de penetración.

• Escalabilidad, se pueden incrementar las funcionalidades a través de la

introducción de nuevas herramientas en cada etapa

• Independencia, las herramientas utilizadas mantienen su ciclo de desarrollo y

actualización independientemente de la aplicación de automatización.

• Utilidad, la generación del informe desde el descubrimiento hasta la

explotación, audita la exposición real de los sistemas analizados y ayuda a su

mitigación.

Page 58: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

57

De la misma manera que se han cubierto los objetivos, como trabajo futuro quedaría la

extensibilidad de nuevas funcionalidades, mediante la incorporación de nuevas

herramientas (existen cientos de ellas disponibles y en nuevas en continuo desarrollo) que

podríamos añadir en las diferentes etapas.

Se podrían incorporar funciones de planificación, alertas y distribución de informes, de

forma que periódicamente se ejecute enviado los resultados a una o varias listas de

distribución con la información obtenida.

La incorporación de funcionalidades de IA permitiría proponer mitigaciones a las

vulnerabilidades encontradas, o que se propongan explotaciones en función de

vulnerabilidades encontradas y aprendidas en otro sistema previamente, y que no han

podido ser descubiertas en las etapas previas a la explotación en el sistema objetivo.

El perímetro de la Ciberseguridad es muy extenso, con una evolución vertiginosa por lo

que queda mucho trabajo futuro por hacer.

Page 59: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

58

Referencias

1. Thomas Chen, Jean-Marc Robert. The Evolution of Viruses and Worms. Statistical

Methods in Computer Security. s.l. : CRC Press;, 2004.

2. Infojobs. guia-trabajar-ciberseguridad . 2018. https://orientacion-

laboral.infojobs.net/guia-trabajar-ciberseguridad .

3. Shodan. www.shodan.io. https://www.shodan.io/. 2019.

4. Maltego. www.paterva.com. https://www.paterva.com/web7/. 2019.

5. Pablo González, Germán Sánchez y Jose Miguel Soriano. Pentesting con Kali

Linux. s.l. : 0xWord, 2017.

6. Sagar Rahalkar, Nipun Jaswal. Metasploit Revealed: Secrets of the Expert

Pentester. s.l. : Packt Publishing, 2017.

7. Engebretson, Patrick. Patrick Engebretson The Basics Of Hacking And Penetration

Testing, Second Edition. ELSEVIER : s.n., 2013.

8. David Kennedy, Jim O'gorman, Devon Kearns. Metasploit: The Penetration

Tester's Guide . s.l. : No Starch Press, 2011.

9. de Raphaël Hertzog, Mati Aharoni, Jim O'Gorman. Kali Linux Revealed:

Mastering the Penetration Testing Distribution. s.l. : Offsec Press, 2017.

10. Offensive Security. https://www.kali.org/. 2019.

11. Wikipedia/Kali. https://es.wikipedia.org/wiki/Kali_Linux.

12. Python Software Fundation. 2019. https://www.python.org/.

13. Washington, Sam. Learning Python Networking - Second Edition. s.l. : Packt

Publishing, 2019.

14. Brandon Rhodes, John Goerzen. Foundations of Python Network Programming.

s.l. : Apress, 2014.

15. Wikipedia / Python. https://es.wikipedia.org/wiki/Python.

16. TIOBE Index. https://www.tiobe.com/tiobe-index/. 06 2019.

17. SQLIte. https://www.sqlite.org.

18. Wikepiedia/SQLite. https://es.wikipedia.org/wiki/SQLite.

19. MsgPack. https://msgpack.org/. https://msgpack.org/.

20. https://en.wikipedia.org/wiki/MessagePack.

https://en.wikipedia.org/wiki/MessagePack. 2019.

Page 60: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

59

21. ReportLab. https://www.reportlab.com/.

2019. https://www.reportlab.com/.

22. tools.kali.org. tools.kali.org. 2019.

23. wingware. 2019. https://wingware.com/.

24. SQLite Studio. 2019. https://sqlitestudio.pl/index.rvt.

25. Lyon, Gordon “Fyodor”. Nmap network scanning. https://insecure.org/.

26. Sagar Rahalkar, Nipun Jaswal. Metasploit Revealed: Secrets of the Expert

Pentester. s.l. : Packt Publishing, 2017.

27. RAPID7. Metasploit PRO - RPC API Guide.

https://Metasploit.help.rapid7.com/docs/pro-api-methods-reference.

28. January, Furqan Khan. Hands-On Penetration Testing with Python. s.l. : Pack

Publishing, 2019.

29. Comun Vulnerabilities asn Exposures. http://cve.mitre.org/.

30. Ortega, Jose Manuel. Mastering Python for Networking an Security. s.l. : Packt

Publishing, 2018.

Page 61: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

60

Glosario

ARM Arquitectura de Microprocesadores (RISC)

BSD Distribución de Unix.

Erlang Lenguaje de programación orientado a la concurrencia.

GNOME Entorno de Modelo de Objeto de Red GNU.

GNU Proyecto de software libre (GNU is Not Unix).

Go lenguaje concurrente, compilado inspirado en C.

GPL Licencia Pública General de GNU.

JSON Notación de Objetos de JavaScript.

KDE Entorno de escritorio Linux (Kool DEsktop)

LGPL Licencia Pública General Reducida de GNU.

Lisp Lenguajes multiparadigma con notación polaca.

LXDE Entorno de escritorio X11 ligero.

Modula-3 Lenguaje de programación imperativo, estructurado y modular.

PDP-11 Computadora fabricado Digital Equipment Corp

Perl Lenguaje interpretado con características de C inferior.

Ruby lenguaje interpretado, reflexivo y orientado a objetos.

Smalltalk Lenguaje reflexivo, orientado a objetos y con tipado dinámico.

Swift Lenguaje de programación multiparadigma para iOS y macOS.

X11 Sistema de gestor de ventanas X para Unix.

Xfce Entono de escritorio Linux (XForms Common Enviroment).

Page 62: Análisis, diseño y desarrollo la realización automática de ...rua.ua.es/dspace/bitstream/10045/93292/1/Analisis... · 2 Versión del documento 2019.06.01 Licencia Se permite la

61

Apéndice:

Detalle del menú de AutoPenExploit en Python