universidad de extremadura escuela politécnica grado en

75
1 UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en Ingeniería Informática en Ingeniería del Software Trabajo Fin de Grado Planteamiento de un CTF para practicar hacking ético e informática forense

Upload: others

Post on 04-Jul-2022

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

1

UNIVERSIDAD DE EXTREMADURA

Escuela Politécnica

Grado en Ingeniería Informática en Ingeniería del

Software

Trabajo Fin de Grado

Planteamiento de un CTF para practicar

hacking ético e informática forense

Page 2: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un Capture The Flag para practicar hacking ético e informática

forense

UNIVERSIDAD DE EXTREMADURA

Escuela Politécnica

Grado en Ingeniería Informática en Ingeniería del

Software

Trabajo Fin de Grado

Planteamiento de un CTF para practicar

hacking ético e informática forense

Autor: Raúl Eduardo Maguiña Becerra

Tutor: Andrés Caro Lindo

Co-tutor: José Carlos Sancho

Page 3: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

3

Índice general de contenidos Índice de Figuras ........................................................................................................ 5

Resumen ..................................................................................................................... 8

1. Introducción ....................................................................................................... 9

2. Capture The Flag, qué es ................................................................................. 10

2.1 CTF a lo largo del mundo ............................................................................... 12

2. 2 Por qué crear un CTF..................................................................................... 13

2.3 Creación de entornos CTF .............................................................................. 13

3. Objetivos .......................................................................................................... 15

4. Implementación de los entornos CTF .............................................................. 15

4.1 Soluciones ....................................................................................................... 16

5. Reto 1 ............................................................................................................... 16

4.1 Historia ........................................................................................................... 16

4.2 Herramientas ................................................................................................... 17

4.3 Implementación .............................................................................................. 17

4.3.1 Paso 1 ....................................................................................................... 17

4.3.2 Paso 2 ....................................................................................................... 20

4.3.3 Paso 3 ....................................................................................................... 21

4.4.4 Flujo de CTF ............................................................................................ 23

4.5 Solución .......................................................................................................... 23

5. Reto 2 ............................................................................................................... 34

5.1 Historia ........................................................................................................... 34

5.2 Herramientas ................................................................................................... 34

5.3 Introducción .................................................................................................... 35

5.4 Implementación .............................................................................................. 35

5.4.1 Paso 1 ....................................................................................................... 35

5.5 Solución .......................................................................................................... 41

Page 4: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

4

6. Reto 3 ............................................................................................................... 49

6.1 Historia ........................................................................................................... 50

6.2 Herramientas ................................................................................................... 50

6.3 Implementación. ............................................................................................. 50

6.3.1 Paso 1 ....................................................................................................... 50

6.3.2 Paso 2 ....................................................................................................... 53

6.3.3 Paso 3 ....................................................................................................... 53

6.4 Solución .......................................................................................................... 54

7. Reto 4 ............................................................................................................... 62

7.1 Historia ........................................................................................................... 62

7.2 Herramientas ................................................................................................... 62

7.3 Implementación .............................................................................................. 62

8. Reto 5 ............................................................................................................... 66

8.1 Historia ..................................................................................................... 66

8.2 Herramientas ............................................................................................. 66

8.3 Implementación .............................................................................................. 66

9. Reto 6 ............................................................................................................... 69

9.1 Historia ........................................................................................................... 69

9.2 Herramientas ................................................................................................... 69

9.3 Implementación .............................................................................................. 69

10. Discusión ...................................................................................................... 71

11. Conclusiones y trabajos futuros ................................................................... 73

12. Referencias ................................................................................................... 75

Page 5: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

5

Índice de Figuras

Ilustración 1. Capturar la bandera, juego .................................................................. 10

Ilustración 2. Capturar la bandera, competición ....................................................... 11

Ilustración 3. Elección de red a capturar .................................................................. 18

Ilustración 4. Captura de paquetes ............................................................................ 18

Ilustración 5. Paquete detallado ................................................................................ 19

Ilustración 6. Ruta URL............................................................................................ 20

Ilustración 7. Comando de concatenación ................................................................ 20

Ilustración 8. Conjunto de archivos corruptos .......................................................... 21

Ilustración 9. Imagen para modificar ........................................................................ 22

Ilustración 10. Hexadecimales de ilustración anterior.............................................. 22

Ilustración 11. Imagen resultante.............................................................................. 23

Ilustración 12. Flujo Reto 1 ...................................................................................... 23

Ilustración 13. Metadatos archivo ............................................................................ 24

Ilustración 14. Paquetes capturados.......................................................................... 25

Ilustración 15. Intercambio de paquetes con servidor .............................................. 26

Ilustración 16. Hexadecimales archivo ..................................................................... 27

Ilustración 17. Continuación hexadecimales archivo oculto .................................... 27

Ilustración 18. Comando para buscar archivos ocultos ............................................ 28

Ilustración 19. Siguiente paso ................................................................................... 29

Ilustración 20. Metadatos archivo zip....................................................................... 29

Ilustración 21. Metadatos archivo mp3 .................................................................... 30

Ilustración 22. Metadatos archivo pdf ...................................................................... 30

Ilustración 23. Metadatos archivo jpg ...................................................................... 30

Ilustración 24. Cabecera archivo zip ........................................................................ 31

Ilustración 25. Cabecera archivo mp3 ...................................................................... 31

Ilustración 26. Cabecera archivo pdf ........................................................................ 31

Ilustración 27. Cabecera archivo jpg ........................................................................ 31

Ilustración 28. Comando para saber el tipo de archivo ............................................ 32

Ilustración 29. Archivos corregidos.......................................................................... 32

Ilustración 30. Interior archivo comprimido............................................................. 32

Ilustración 31. Pista contraseña zip .......................................................................... 33

Ilustración 32. Obtención primera bandera .............................................................. 34

Page 6: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

6

Ilustración 33. Página inicial .................................................................................... 36

Ilustración 34. Pista siguiente ejercicio .................................................................... 38

Ilustración 35. Bandera final .................................................................................... 38

Ilustración 36. Conversión bandera a sonido............................................................ 39

Ilustración 37. Espectograma del sonido .................................................................. 39

Ilustración 38. Código QR para los archivos ............................................................ 40

Ilustración 39. Comando para dividir archivo. ......................................................... 40

Ilustración 40. Código QR dividido ......................................................................... 41

Ilustración 41. Código pista HTML ......................................................................... 42

Ilustración 42. Código visto por herramientas de desarrollador ............................... 43

Ilustración 43. Código HTML siguiente página ....................................................... 43

Ilustración 44. Extracción hash archivo comprimido ............................................... 44

Ilustración 45. Ataque por diccionario ..................................................................... 44

Ilustración 46. Ataque por diccionario ROCKYOU ................................................ 44

Ilustración 47. Ataque por diccionario phpbb .......................................................... 45

Ilustración 48. Ataque por diccionario Hotmail ....................................................... 45

Ilustración 49. Creación de diccionario .................................................................... 45

Ilustración 50. Ataque por diccionario personalizado con zip2jhon ........................ 45

Ilustración 51. Ataque por diccionario fcrackzip ..................................................... 46

Ilustración 52. Unificar archivos .............................................................................. 46

Ilustración 53. Código QR resultante ....................................................................... 47

Ilustración 54. Descodificar código QR ................................................................... 47

Ilustración 55. Hexadecimales archivo ..................................................................... 48

Ilustración 56. Audio final ........................................................................................ 48

Ilustración 57. Espectograma con bandera ............................................................... 49

Ilustración 58. Bandera Reto 3 ................................................................................. 54

Ilustración 59. Metadatos archivo con texto cifrado ................................................ 55

Ilustración 60. Hexadecimales archivo ..................................................................... 55

Ilustración 61. Verificación extensión del archivo ................................................... 55

Ilustración 62. Metadatos archivo intermedio .......................................................... 58

Ilustración 63. Hexadecimal archivo cifrado ............................................................ 59

Ilustración 64. Verificación extensión archivo cifrado ............................................ 59

Ilustración 65. Metadatos archivo final .................................................................... 60

Ilustración 66. Hexadecimales archivo final ............................................................ 60

Page 7: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

7

Ilustración 67. Verificación extensión archivo final ................................................ 61

Ilustración 68. Bandera Reto 3 ................................................................................. 62

Ilustración 69. Texto de relleno ................................................................................ 63

Ilustración 70. Caracteres imprimibles ..................................................................... 64

Ilustración 71. Cáracteres importantes ..................................................................... 64

Ilustración 72. Bandera de colores con la solución .................................................. 65

Ilustración 73. Página inicial .................................................................................... 67

Ilustración 74. Página con pista final........................................................................ 68

Ilustración 75. Enlace a la bandera ........................................................................... 68

Ilustración 76. Modificación metadatos ................................................................... 70

Ilustración 77. Resultado modificación hexadecimales ........................................... 70

Ilustración 78. Texto cifrado .................................................................................... 70

Ilustración 79. Cuadrado de Polybio ........................................................................ 70

Ilustración 80. Resultados Retos .............................................................................. 72

Ilustración 81. Tiempo máximo y mínimo de la resolución de retos ....................... 72

Ilustración 82. Datos género participantes ............................................................... 73

Page 8: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

8

Resumen

Actualmente, vivimos en un mundo repleto de aparatos tecnológicos, estamos

conectados a Internet las 24 horas del día, conocemos todo y nada a la vez. La mayoría

de las personas no son conscientes de los datos que circulan por su propia red, por lo que

desconocen todo lo que se puede introducir y transmitir con un solo archivo y que a simple

vista parece seguro. Por ello, sería importante concienciar a los usuarios y fomentar una

educación en la que se implique y enseñen, desde pequeños, todos los detalles que puede

haber con lo que se comparte por Internet.

En la línea de lo expuesto, en este Trabajo Fin de Grado se plantea la posibilidad de

crear un entorno de Capture The Flag (CTF), como principio para adentrarse en el mundo

de la informática forense y del hacking ético, de un modo autodidacta y entretenido,

enfocado sobre todo a gente con poco conocimiento en este ámbito y con muchas ganas

de aprender. Los concursos de CTF se llevan realizando muchos años, por lo que la

comunidad aficionada a estos retos también es muy amplia, así que cualquier principiante

solitario siempre tendrá la ayuda necesaria.

En este Trabajo Fin de Grado, se diseñan una serie de retos para iniciarse en este tipo

de pruebas. Los ejercicios propuestos se centran en temas muy conocidos de seguridad

informática, como es el análisis forense, la criptografía y la seguridad en web. Con ello,

también se provee información sobre el uso de herramientas muy útiles para estos ámbitos

y cómo se pueden usar tanto para resolver retos como para implementarlos.

Por último, algunos retos de los retos propuestos se compartirán en el CTF de las V

Jornadas Nacionales de Investigación en Ciberseguridad, coorganizadas por la UEx en

2019.

Page 9: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

9

1. Introducción

Los términos “hacker” y “hacking” son muy escuchados últimamente en estos

tiempos, y casi siempre no para hablar demasiado bien de ellos, ya que se relacionan con

actos ilegales o poco éticos. Hasta la Real Academia Española definía hace un tiempo el

concepto de hacker como pirata informático.

En cambio, si escuchamos a los expertos hablar sobre estos conceptos, la historia

cambia. Según ellos, la verdadera definición de hacker es “persona o comunidad que

posee conocimientos en el área de informática y que se dedica a acceder a sistemas

informáticos para realizar modificaciones en el mismo”. Si entramos en el tema de

hacking, encontramos que el “Hacking es la búsqueda permanente de conocimientos en

todo lo relacionado con sistemas informáticos, sus mecanismos de seguridad, las

vulnerabilidades de los mismos, la forma de aprovechar estas vulnerabilidades y los

mecanismos para protegerse de aquellos que saben hacerlo”. Después de un tiempo por

fin la RAE aceptó otro término para definir a un hacker.

Si nos fijamos en la cultura popular, lo primero que se nos viene a la cabeza a la

mayoría de las personas si se le menciona el tema de hacking es el grupo de hacker

mundialmente conocidos como Anonymous que son famosos por infiltrase en sistemas

para obtener información confidencial y realizar actividades no muy legales.

También la televisión ha tratado el tema de los hackers como algo excepcional y/o

que solo se mueven por motivos “revolucionarios” como es el caso de la serie Mr. Robot.

Hasta en el cine, el tema del hacking es algo como que solo algunas personas con una

inteligencia superior a la media pueden realizar, como es el caso de GameWars.

Se puede dictaminar que es un concepto incomprendido, y que, a lo largo de sus pocos

años de existencia, ya sea por la televisión, noticias o varias razones, no se ha sabido

explicar correctamente y no es bien visto en el público de a pie.

Page 10: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

10

La mayoría de estos “hackers” no adquieren todos sus conocimientos en unos pocos

días o semanas. Como es de esperar, tienen que “entrenar” y por ello se crearon las

competiciones del tipo Capture The Flag (CTF) que se realizan alrededor del mundo, ya

sea de forma presencial u online. En estas competiciones se realizan diversas pruebas en

las que se enseñan a las personas sobre el mundo real del hacking en un entorno amigable.

Además, con la llegada de las competiciones de capturar la bandera, este tema está

más cerca a cualquier tipo de persona con ganas de aprender o simplemente con ganas de

divertirse. Se puede realizar competiciones CTF desde un nivel muy básico hasta un nivel

profesional.

2. Capture The Flag, qué es

El mundo del “hacking” es un tema muy amplio, que se puede explorar de diversas

maneras y mirarlo desde diferentes percepciones, una de ellas son los concursos de

capturar la bandera, también conocidos como CTF (Capture The Flag). Una forma de

explicarlo es fijándose en el juego de capturar la bandera que se juega desde niños, en el

que hay dos o más equipos, cada uno con una bandera que tienen que esconder y defender,

con el objetivo de coger la bandera de los demás equipos.

Ilustración 1. Capturar la bandera, juego

En temas informáticos, el juego no difiere mucho, ya que hay un objetivo, una

bandera, que, obviamente de una forma u otra, está oculta. Los participantes, o los

equipos, tienen que superar varias pruebas para poder conseguir la ansiada bandera y

ganar la competición.

Page 11: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

11

Ilustración 2. Capturar la bandera, competición

Las competiciones normalmente tienen dos tipos de concursos:

1. Jeopardy: consiste en realizar un conjunto de pruebas, que van aumentando su

dificultad a medida que se va avanzando en la competición.

2. Equipo rojo vs equipo azul: este tipo es el que más se asemeja al juego de niños

de capturar la bandera, ya que parte son dos equipos competiendo entre sí, uno de

ellos defendiendo y el otro atacando, cambiando su posición después de un

tiempo.

Estos tipos de concursos se suelen realizar en equipo, pero también se puede participar

en solitario.

Cualquier tipo de competición aborda muchos temas, que se pueden mezclar o repetir

en cada prueba.

Los tipos de pruebas más conocidas según INCIBE [1]:

• Análisis Forense [Forensics]: Lo más común. Imágenes de memoria, de discos

duros o capturas de red, las cuales almacenan diferentes tipos de información.

• Criptografía [Crypto]: Textos cifrados mediante un criptosistema determinado.

• Esteganografía [Stego]: Imágenes, sonidos o vídeos que ocultan información en

su interior.

• Explotación [Pwn]: Descubrimiento de vulnerabilidades en un servidor.

• Ingeniería Inversa [Reversing]: Inferir en el funcionamiento del software. Lo más

común, binarios de Windows y Linux.

• Programación [PPC]: También conocidos como PPC (Professional Programming

& Coding), desafíos en los que se requiere desarrollar un programa o script que

realice una determinada tarea.

Page 12: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

12

• Web: Descubrimiento de vulnerabilidades en una aplicación Web.

• Reconocimiento [Recon]: Búsqueda de la bandera en distintos sitios de Internet.

Para resolverlo se ofrecen pistas, tal como el nombre de una persona.

• Trivial [Trivia]: Diferentes preguntas relacionadas con la seguridad informática.

• Misceláneo [Misc]: Retos aleatorios que pueden pertenecer a distintas categorías

sin especificar.

Son temas muy variados y que abarcan un amplio campo, como es el del hacking,

pero todos ellos comparten el objetivo de resolver una serie de tareas hasta llegar a la

bandera.

Una prueba consta de varios pasos antes de llegar a la bandera, en cada paso se puede

tocar un tema de los anteriores nombrados o puede tratar de un solo tema.

Como se ha mencionado, las pruebas tienen varios pasos, en estos pasos además de

llevar al siguiente paso o prueba se pueden dar pistas para seguir avanzando más fácil en

la competición.

2.1 CTF a lo largo del mundo

Con los años, el tema del hacking se ha hecho más popular y conocido, ya sea de una

forma buena o mala. Por lo que, paralelamente a este, las competiciones de capturar la

bandera se han hecho más populares y visibles a lo largo del mundo, llegando a contar

con miles de participantes en un solo evento.

En el tema online el número de participantes aumenta considerablemente, llegando a

tener miles de participantes:

• CTF365, en esta página se pueden encontrar desde retos para principiantes hasta

retos de profesionales, contando estos últimos con premios en metálico [2].

• Overthewire, página diseñada sobre todo para aprender temas de seguridad

mediante pruebas de capturar la bandera [3].

• PicoCTF, página con retos diseñados para estudiantes de instituto y universidad

[4].

Extremadura tampoco se ha querido quedar atrás en estos temas por lo que también

ha realizado sus propios concursos de capturar la bandera como son:

Page 13: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

13

• Forociber 2018, realizado en Badajoz, pero participando online, permitiendo

participar a gente entre los 18-35 años en toda España [5].

• JNIC 2019, realizado por la Cátedra Viewnext-UEx, para estudiantes

universitarios y preuniversitarios, y titulados recientes. En el cual se han utilizado

los 3 primeros retos de este TFG [6].

2. 2 Por qué crear un CTF

Si se habla de hacking o de competiciones de hacking como son los CTFs, se piensa

que es algo aislado y/o reservado para unos pocos entendidos en el tema, pero en realidad

el tema de CTF está más presente de lo que se cree.

Algunos de las competiciones mencionadas anteriormente tienen como premio, a

parte del dinero, un puesto de trabajo. En muchos trabajos relacionados con el tema de

seguridad informático se pide resolver varios tipos de CTF.

En algunas universidades, se está empezando a realizar pruebas Jeopardy para que los

alumnos de ingeniera informática puedan comprender los conceptos de seguridad

informática y así hacerlo más interactivo con la clase.

En algunos institutos, se está empezando a enseñar seguridad informática de forma

muy básica en las cuales se realizan competiciones cortas de capturar la bandera. Por

ejemplo, en Córdoba, se realizaron durante la primera semana de mayo unos retos

mientras se impartían unos talleres de seguridad informática.

2.3 Creación de entornos CTF

Para crear un CTF, primero hay que indicar el objetivo al cual estamos enfocados, ya

que no es lo mismo realizar una competición para aficionados o estudiantes que

profesionales en el tema de la seguridad informática. Además, si hay premio, indicar que

esto también puede influir en el objetivo en el que enfocarse debido a que, en el ámbito

de la empresa, sería más adecuado dar un premio en metálico y/o un puesto de trabajo.

En otros casos, como el de los estudiantes, deberíamos saber el rango edad al que estaría

destinado para saber el premio que se debería dar, pudiendo ser este material escolar y/o

becas de estudio.

También se puede añadir o debe una pequeña historia, introducción, para que los

equipos se puedan poner en contexto y tener una base de la que partir.

Page 14: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

14

Teniendo en cuenta mi conocimiento sobre la seguridad informática, adquiridos tanto

en asignaturas impartidas durante la carrera y por afición en mi tiempo libre, sobre todo

realizando este trabajo, los entornos para el Capture The Flag (CTF) propuesto en este

TFG se enfocarán, sobre todo, en estudiantes de universidad.

Una vez concretado el objetivo, se debe decidir el tipo de CTF que estamos

dispuestos a implementar. Esto va muy ligado al objetivo, ya que si los destinatarios son

aficionados es más difícil que se organicen y formen equipo, además que para gente sin

mucho conocimiento en el tema de la seguridad informática es mejor el tipo Jeopardy. En

cambio, si son profesionales ya tienen un conocimiento sobre los temas y pueden

adaptarse a cualquier tipo de CTF. Al estar enfocado el CTF en estudiantes de

universidad, se entiende que el tipo Jeopardy es el que mejor se adapta a este grupo de

potenciales participantes.

Decidido objetivo y tipo, hace falta decidir los distintos tipos de pruebas que se van

a tocar en el CTF. Al ser tan grande el abanico de posibilidades que se pueden

implementar en un CTF, sobre todo al ser de tipo de Jeopardy, se eligieron los retos con

los que se estaba más familiarizado, como son:

• Análisis forense: es la aplicación de técnicas científicas y analíticas especializadas

a infraestructura tecnológica que permiten identificar, preservar, analizar y

presentar datos que sean válidos dentro de un proceso legal.

• Criptografía: Arte y técnica de escribir con procedimientos o claves secretas o de

un modo enigmático, de tal forma que lo escrito solamente sea inteligible para

quien sepa descifrarlo

• Fuerza bruta: forma de recuperar una clave probando todas las combinaciones

posibles hasta encontrar aquella que permite el acceso.

• Hacking web: explotación de vulnerabilidades de servidores web, tanto desde la

parte del servidor como la parte del cliente.

Entre cada paso de las distintas pruebas, se dan pistas (si hicieran falta) para poder

resolver la prueba.

Como se ha mencionado antes, también es habitual dar premios en los CTF, aparte de

la reputación que se puede ganar dependiendo de la fama del concurso y de cómo esté

enfocado.

Page 15: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

15

Una vez decididos estos pasos para realizar el CTF, se pueden implementar los retos.

3. Objetivos

El objetivo principal de este Trabajo Fin de Grado consiste en el diseño,

implementación y resolución de un conjunto de retos relacionados con temas de hacking

ético e informática forense, de modo que puedan formar parte de una competición del tipo

CTF. Los destinatarios de esta competición serán estudiantes universitarios,

preuniversitarios y titulados recientes, principalmente. Y las temáticas elegidas forman

parte de un conjunto definido, acordado con los directores del TFG y coordinados con

otros posibles trabajos que se lleven en paralelo a este TFG.

Incluidos en este objetivo principal, se pueden establecer otros objetivos parciales que

merecen ser destacados, como, por ejemplo:

• Aprender conceptos, técnicas relacionadas con el hacking ético y la informática

forense, de una forma autodidacta y enfocada a la realización del CTF.

• Conocer nuevas herramientas que permitan dar solución a los problemas

planteados, extendiendo sus funcionalidades a otras posibles alternativas

parecidas o relacionadas con los retos propuestos.

• Complementar la formación universitaria de la titulación con una temática nueva

como es la orientada al hacking ético y a la informática forense, temáticas muy

demandadas por la sociedad actualmente.

4. Implementación de los entornos CTF

Se implementan seis entornos para capturar la bandera. Se sigue el estilo Jeopardy en

el cual pueden se puede participar tanto en equipo como en solitario. En los diferentes

entornos se tratan, sobre todo, los temas de Análisis Forense, Criptografía, Hacking Web

y Fuerza bruta. De esta manera, se tiene como objetivo la comprensión de los conceptos

en un entorno amigable, a la vez que entretenido.

Cada entorno está enfocado a un público joven, entre 16-18-25 años, es decir,

estudiantes de universidad (18-21 años), preuniversitarios (16-18 años) y titulados

recientes (21-25 años), por lo que se usan temas de actualidad y cultura general. Para

Page 16: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

16

hacer más creíble los retos, y que sirvan como una introducción a cada propuesta, cada

entorno cuenta con una pequeña historia ficticia y, de esta manera, los participantes se

podrán poner en contexto y así hacer el entorno más amigable.

En temas de implementación, cada uno de los entornos se compone de un bloque de

ejercicios a realizar. Cada solución, a su vez, guiará al siguiente ejercicio, ya sea por su

resolución o pistas a lo largo del mismo.

El objetivo en general de los retos es la comprensión de conceptos de hacking

mediante su realización, además de ver todas las posibilidades de las herramientas que se

disponen.

4.1 Soluciones

Al igual que la implementación de un algoritmo, un reto de capturar la bandera se

puede solucionar de varias maneras. Dos personas no piensan exactamente la misma

solución, siempre se difiere en algo.

Como se ha mencionado antes, el mundo del hacking es un mundo muy grande. Así

que establecer una “solución general” para cada ejercicio es una tarea casi imposible,

incluso para el creador del reto establecer una solución efectiva y que mantenga contentos

a todos es muy difícil. Por lo que en los posteriores apartados de soluciones se comentarán

las diversas formas con las que se solucionarían y en qué se pueden fijar los participantes

para resolverlo.

5. Reto 1

El primer entorno se basará sobre todo en ejercicios de análisis forense mediante la

utilización de varias herramientas dedicadas a ellas y que son muy conocidas en temas de

seguridad informática.

4.1 Historia

Dentro de unos días, se realiza el examen de Fundamentos y Redes de la

comunicación para los alumnos de 2º de Ingeniería Informática.

Las preguntas, como es obvio, nadie las sabe salvo el profesor, o eso se cree. Aunque

ayer el profesor recibió un soplo de que alguien tiene preguntas del año pasado y las está

compartiendo oculta en archivos .pcap por un servidor seguro para no levantar sospechas.

Page 17: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

17

Por suerte, en uno de los ordenadores de la sala donde se imparte esta asignatura se

ha encontrado un archivo un poco sospechoso con este tipo de extensión. Tú deber es

encontrar la contraseña para acceder al servidor por el cual estos alumnos están pasando

información y qué saben del examen

4.2 Herramientas

Sistema operativo, implementado en Windows 10 y Ubuntu 18.4

Wireshark, software libre, es un analizador de protocolos de red utilizado para realizar

análisis y solucionar problemas en redes de comunicaciones, para desarrollo de software

y protocolos. Cuenta con todas las características estándar de un analizador de protocolos

de forma únicamente hueca. La funcionalidad que provee es similar a la de tcpdump, pero

añade una interfaz gráfica y muchas opciones de organización y filtrado de información.

Así, permite ver todo el tráfico que pasa a través de una red estableciendo la configuración

en modo promiscuo. También incluye una versión basada en texto llamada tshark [7].

Permite examinar datos o de un archivo de captura salvado en disco. Se puede analizar la

información capturada, a través de los detalles y sumarios por cada paquete. Wireshark

incluye un completo lenguaje para filtrar lo que queremos ver y la habilidad de mostrar

el flujo reconstruido de una sesión de TCP.

Linux, la mayoría de las distribuciones de Linux nos provee de una gran cantidad de

comandos con el que se pueden manipular varios tipos de archivos y la información de

todos estos.

Hexinator, software de uso libre, que permite visualizar y manipular los datos

hexadecimales de cualquier archivo [8]. También permite la visualización y manipulación

de archivos binarios.

La visualización de los metadatos se realiza mediante los detalles de Windows o si

hicieran falta, páginas que realizan una extracción completa de los metadatos de los

archivos.

4.3 Implementación

4.3.1 Paso 1

La primera parte de este ejercicio se realiza en Windows por comodidad en el uso de

Wireshark, también se podría realizar en Linux. Se usa Wireshark para crear el archivo

Page 18: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

18

de tipo .pcap y poder capturar los intercambios de paquetes con la red elegida (ver figura

3), este es un tipo de archivo único de wireshark.

Abierto Wireshark, seleccionamos la red, así podemos capturar los paquetes salientes

y entrantes de la red de nuestra red.

Ilustración 3. Elección de red a capturar

Simulamos la conexión al servidor deseado.

Paramos la captura de paquetes en el momento que hayamos realizado la conexión

deseada y guardamos la simulación (ver figura 4). De esta manera ya tenemos nuestro

archivo .pcap con el que empieza el ejercicio y el cual se comenta en la pequeña

introductoria historia del principio.

Ilustración 4. Captura de paquetes

Page 19: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

19

En esta captura, se observa el intercambio de paquetes que se realiza desde mi

conexión hasta llegar al servidor deseado, en este caso se usará como servidor de

almacenamiento de ficheros el servidor de MEGA.

Como el servidor al que tenemos que conectarnos usa un protocolo de seguridad SSL,

en el que se basan las páginas HTTPS, los paquetes vienen con el protocolo de TCP, el

cual crea conexiones seguras y garantiza que los datos llegarán a su destino, sin errores y

en el mismo orden que se enviaron, así que si abrimos cualquier paquete que esté dentro

de la conexión podemos ver esta información:

Ilustración 5. Paquete detallado

Para descifrar la información de “Ethernet” y ver a qué páginas se accede se necesitan

claves, y como es obvio, no se dispone de sus claves públicas y privadas para poder

descifrar los paquetes y la dirección completa. Por lo que se ha optado por dar el

localizado de recuros (URL) en dos pasos, divididos en host + cadena de búsqueda.

Gracias a Wireshark completamos la primera parte de la URL simulando la conexión

al host (31.216.148.10).

Se puede seguir realizando intercambio de paquetes para hacer menos visible la

conexión al servidor, pero esto llevaría a muchas confusiones y como se está dirigido a

Page 20: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

20

un público no muy entrenado en estos temas se optará por seguir el reto de una forma

sencilla y sin muchas complicaciones.

Para dar la otra parte de la URL, se usará Linux, para así poder hacer uso de sus

comandos:

- Cat: permite concatenar archivos y mostrarlos o usarlos de salida.

- Se usa cat archivo.pcap nombrearchivo.zip > archivo2.pcap

Primero se crea un archivo .txt con la cadena de búsqueda que nuestra URL necesita.

Ilustración 6. Ruta URL

Luego este archivo se inserta en otro archivo .zip, para así poder concatenarlo con el

archivo .pcap.

Ilustración 7. Comando de concatenación

El resultado de la unión es el mismo archivo .pcap pero escondido dentro de él, el

archivo .txt en formato .zip. Así ya se puede dar la URL completa, formada con el servidor

y la búsqueda necesaria para acceder al servidor con los archivos en privado.

Una vez el usuario descubra la URL necesaria accederá a una carpeta privada en

mega, por lo que es necesario crear la carpeta en mega y subir los archivos necesarios

para el siguiente ejercicio.

En este ejercicio no se darán ninguna pista implícita en el ejercicio.

4.3.2 Paso 2

En la carpeta privada del servidor, subiremos 5 archivos con nombres sin sentido.

Page 21: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

21

Ilustración 8. Conjunto de archivos corruptos

Estos archivos dispondrán de una extensión la cual ha sido cambiada previamente.

Solo uno de estos archivos contiene la información para poder acceder al siguiente

ejercicio, por lo que para ello es imperativo acceder a todos ellos.

Archivos

1. ZIP, es en realidad un archivo de Word el que no contiene información relevante

2. MP3, es en realidad un archivo .PDF sin tampoco información relevante para la

resolución del ejercicio.

3. PDF, es en realidad un archivo .txt con el cual a primera vista solo contiene un

texto, a primera vista, no relevante para la resolución del archivo.

4. JPG, es en realidad un archivo .zip pero con contraseña, en él está el último

ejercicio.

Saber la extensión verdadera de los archivos se puede descubrir de varias formas, ya

sea por aplicaciones, hexadecimales o simples comandos de Linux, apartado que

trataremos en profundidad en la resolución del ejercicio

4.3.3 Paso 3

La implementación de esta parte se realizará en Linux también, con la herramienta

Hexinator, pero esta herramienta también está disponible en Windows. En el interior del

archivo .zip, se dispone de una imagen:

Page 22: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

22

Ilustración 9. Imagen para modificar

Esta foto ha sido manipulada con el programa Hexinator, con él se han modificado

los hexadecimales del archivo:

Ilustración 10. Hexadecimales de ilustración anterior

Para hacerlo más evidente, la posición de los hexadecimales modificados también

modifica la calidad de la imagen, por lo que la imagen también se ha visto modificada en

gran parte:

Page 23: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

23

Ilustración 11. Imagen resultante

Si el participante es capaz de darse cuenta de que la calidad de la foto ha bajado debido

a la modificación de los hexadecimales de este, lo puede resolver rápidamente y así

conseguir la bandera.

4.4.4 Flujo de CTF

4.5 Solución

Poniéndonos en la piel de cualquier participante, partiremos de una historia y de un

archivo de tipo .pcap.

De la historia no se puede sacar nada en claro, solo la extensión del archivo porque se

menciona como tal.

Antes de abrir el archivo, si analizamos los metadatos de este con la página

FLAG Archivos

Wirseha

rk

Mega

Ilustración 12. Flujo Reto 1

Page 24: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

24

Ilustración 13. Metadatos archivo

De esto no se puede sacar nada en claro ya que parece todo normal.

Sabiendo la extensión del archivo, sabemos que es un archivo del programa

Wireshark, así que se trata de un archivo de intercambio de paquetes de red.

Usando su aplicación para abrir el archivo, vemos varios paquetes y varias

conexiones. Si tenemos que analizar cada paquete individualmente, sería una tarea de

horas, así que se parte de la premisa que la mayoría de los paquetes son de relleno ya que

se ha encontrado un servidor al que conectarse y que es conocido por su sistema de

almacenamiento de archivos.

Ahora, se debe encontrar una manera de reducir el número de paquetes, para ello

disponemos de varios filtros que pone Wireshark a nuestra disposición. Hay que tener en

cuenta también que Wireshark pone varias columnas con información, estas se pueden

añadir dependiendo de la información que estemos buscando.

Como se puede observar en el archivo de Wireshark, el primer paquete sale de la IP

“192.168.1.34”, así que se aplicará el filtro IP “ip.addr==192.168.1.37” para partir de ahí.

El intercambio de paquetes se reduce considerablemente.

Page 25: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

25

Si nos fijamos en las columnas (ver figura 14), concretamente en el apartado de

“Info”, se comprueba que la mayoría de los paquetes están encriptados o son parte de otro

paquete, de esta manera deducimos que se realiza conexión a una página segura, así que

usar el protocolo TCP. Si se añade este filtro “ip.addr==192.168.1.37 and tcp” a la

búsqueda, esto hace que nos quede una traza más limpia y pequeña.

Si realizamos la conexión a esta las primeras IPs que aparece “31.216.148.10” y

“31.216.148.11” desde la consola de Windows con el comando de ping, vemos que realiza

el intercambio de paquetes ICMP con esta dirección sin ningún error, esto indica que se

trata de una dirección accesible.

Ilustración 14. Paquetes capturados

Page 26: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

26

Ilustración 15. Intercambio de paquetes con servidor

Si accedemos desde cualquier navegador a cualquiera de esta dos IPs como tal, este

nos redirige a MEGA, este se trata de un servicio de archivos en la nube.

De un archivo .pcap, ya hemos conseguido un servidor de archivos. Si seguimos

analizando el archivo, se siguen viendo archivos encriptados y conexiones al servidor,

poca información útil entonces ¿Y si el archivo tiene información oculta?

Un archivo puede contener varia información oculta, no solo en los metadatos,

también en los hexadecimales o concatenada.

Si usamos cualquier visualizador de hexadecimales, comprobamos si hay algo oculto

en él.

Page 27: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

27

El visualizador hexadecimal revela la información del archivo wireshark pero además

después de este, un espacio en memoria en blanco (relleno de 0s) y vuelve a revelar

información en hexadecimal

Gracias a esto, se comprueba que el archivo tiene información oculta. Ahora para

averiguar de qué información oculta se trata, y ya que está abierto el archivo con un

visualizador hexadecimales, lo podemos hacer gracias a las cabeceras, las cabeceras

suelen revelar la extensión del archivo, nuestro segundo archivo tiene de cabecera de

extensión “2E 67 GF 6F” así que usando una tabla de las más conocidas:

Relleno de ceros

Otro archivo

Primer archivo

.pcap

Ilustración 16. Hexadecimales archivo

Ilustración 17. Continuación hexadecimales archivo oculto

Page 28: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

28

Tipo de archivo Cabecera ASCII

.zip 50 4B 03 04 PK

.rar 52 61 72 21 Rar!

.doc D0 CF 11 E0 ÐÏ.à

.jpeg FF D8 FF E0 / FE JFIF

.png 89 50 4E 47 PNG

.mp3 49 44 33 2E /03 ID3

.exe 4D 5A 50 00 /90 00 MZP / MZ

.gif 47 49 46 38 39 61 / 37

61

GIF89a GIF87a

.pdf 25 50 44 46 %PDF

No coincide con ninguna, así que el uso de la cabecera no funcionará.

Linux, en cambio, dispone de muchos comandos que permite ver archivos incrustados

en otros archivos, uno de esos comandos es “binwalk”, este permite buscar imágenes

binarias para archivos incrustado.

Ejecutando este comando:

Ilustración 18. Comando para buscar archivos ocultos

Con esta sí se obtiene un resultado optimista, revela que en el archivo .pcap, además

de dar la dirección del servidor, también tiene oculto un archivo .zip.

Descomprimiendo el archivo .pcap y el .zip resultante, se obtiene un archivo de texto

con un mensaje y una línea de letras incomprensibles:

#F!DyYBnAyB!9fIFJiAMDxV56jLBDIuDoA

Obtenido el servidor, solo nos queda una cadena de consulta o un usuario para acceder

a los archivos que el servidor pueda tener. Así que antes de empezar a probar los

Page 29: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

29

diferentes tipos de criptografías para saber si es un mensaje oculto, por lo que, si juntamos

el servidor y la última línea del texto, obtenemos:

https://mega.nz/#F!DyYBnAyB!9fIFJiAMDxV56jLBDIuDoA

Usando este enlace en cualquier buscador nos lleva a una página con varios archivos.

Ilustración 19. Siguiente paso

Descargando estos archivos, se observa que todos ellos disponen de extensión y sus

nombres son solo números, pero si se intenta abrir cualquier de estos archivos nos da

error, por lo que o están corruptos o su extensión es otra y por eso el programa por defecto

no los abre.

Si accedemos a los metadatos de los archivos tampoco sacamos una información muy

útil para saber la información

171734.zip:

Ilustración 20. Metadatos archivo zip

172034.mp3:

Page 30: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

30

Ilustración 21. Metadatos archivo mp3

181102.pdf:

Ilustración 22. Metadatos archivo pdf

181225.jpg:

Ilustración 23. Metadatos archivo jpg

En los archivos JPG y MP3 los demás campos que se pueden completar vienen vacíos,

algo que es normal debido a que no es su extensión correcta.

Si usamos el comando “binwalk” con ellos tampoco obtenemos una información

relevante.

Usadas las soluciones sin mucho éxito para obtener las extensiones, debemos usar

soluciones diferentes.

Page 31: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

31

Como se mencionó antes, gracias a las cabeceras hexadecimales de los archivos

podemos obtener el tipo de archivo qué es.

171734.zip: nos da como extensión .zip, la incorrecta

Ilustración 24. Cabecera archivo zip

172034.mp3: nos da su verdadera extensión PDF

Ilustración 25. Cabecera archivo mp3

181102.pdf: nos da una extensión incorrecta.

Ilustración 26. Cabecera archivo pdf

181225.jpg: nos da su verdadera extensión .zip

Ilustración 27. Cabecera archivo jpg

Comprobado los primeros números, de cada archivo, nos da la extensión incorrecta

de la mitad de los archivos

Si recurrimos otra vez a comandos de Ubuntu, tenemos el comando “file” que nos

indica el tipo de archivo con el que trata, ya que, para Ubuntu, al contrario que Windows,

las extensiones son solo para el usuario y no las tiene en cuenta.

Ejecutando el comando en todos los archivos

Page 32: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

32

Ilustración 28. Comando para saber el tipo de archivo

Otra vez gracias a Ubuntu obtenemos una respuesta satisfactoria de todos los archivos.

Cambiando las extensiones a las correctas, son estos los archivos

Ilustración 29. Archivos corregidos

Abierto todos los archivos se puede deducir que el único archivo interesante de todos

estos es .zip ya que si lo abrimos se puede ver un archivo de imagen que tiene el nombre

“Final” pero se necesita una contraseña para acceder a él.

Ilustración 30. Interior archivo comprimido

Las preguntas qué tenemos que hacer son ¿Se nos ha pasado por alto la contraseña?

¿Los otros archivos son de relleno o tienen información?

Page 33: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

33

Respondiendo a la última pregunta, debemos acceder a los metadatos de estos y ver

si se puede sacar algo.

Ante nada destacable, cabe la posibilidad de que para obtener la contraseña se tenga

que usar algún ataque de diccionario, pero si obtenemos el hash del zip se obtiene un hash

demasiado extenso.

Esto puede llevar mucho tiempo, y viendo el final tan cerca. Se decide optar por la

opción más obvia y es buscar qué significa el único archivo txt.

Ilustración 31. Pista contraseña zip

Al buscarlo se obtiene que es de una serie muy conocida como es The Office.

Y si usamos esta contraseña en el .zip, se consigue entrar y obtener la imagen .jpg.

Abriendo esta imagen, vemos que se trata de una imagen de verdad, pero en una mala

calidad, lo que nos abre dos posibilidades, si está así a propósito o se han modificado sus

hexadecimales.

Viendo sus hexadecimales, con el programa, Hexinator, se comprueba que se han

modificado sus datos hexadecimales y entre ellos se encuentra la bandera que tanto

llevamos buscando.

Page 34: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

34

Ilustración 32. Obtención primera bandera

Solución: motivación

5. Reto 2

5.1 Historia

La semana que viene se estrena mundialmente la última temporada de una serie muy

famosa, y se ha comentado por foros muy conocidos, como Reddit, que el primer capítulo

de esta serie ya se encuentra disponible en su página web, pero no para todas las personas

solo para las que son capaces de ingresar al archivo. ¿A qué esperas para poder ver el

primer capítulo?

5.2 Herramientas

Como Entorno de desarrollo integrado (IDE) se usará IntelliJ por comodidad y

familiarización con la herramienta. A su vez este, se usará con Tomcat, este es un software

contenedor de servlets, que se usa como servidor web.

Audacity, es una aplicación de software libre que se usa para la edición de audio [9].

Sistema Operativo, se usará Linux por la disponibilidad de herramientas que este

sistema operativo pone a nuestra disposición.

Page 35: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

35

Herramientas GitHub:

• JhonTheRipper: software de criptografía que se basa en el ataque de fuerza bruta

para descifrar contraseñas. Muy popular en este ámbito, tanto para romper

contraseñas como para probar la seguridad de las contraseñas [10].

• FcrackZip: software encargado de ataques de diccionario [11].

• Zip2Jhon: herramienta de JhonTheRipper usada sobre todo para tratar con

archivos comprimidos como .rar, .zip y .targz.

• YOW: software especializado en hacer nuestros propios diccionarios [12].

5.3 Introducción

El segundo entorno se basará sobre todo en ejercicios de fuerza bruta, ataque de

diccionario y hacking web mediante la utilización de varias herramientas dedicadas a ellas

y que son muy conocidas en temas de seguridad informática, las cuales tienen sus propias

páginas de descarga o en github.

Los ataques de diccionario son un método de cracking que consiste en intentar

averiguar una contraseña probando todas las palabras del diccionario. Este tipo de ataque

suele ser más eficiente que un ataque de fuerza bruta, ya que muchos usuarios suelen

utilizar una palabra existente en su lengua como contraseña para que la clave sea fácil de

recordar, lo cual no es una práctica recomendable.

5.4 Implementación

5.4.1 Paso 1

El primer ejercicio se basará en una implementación de una página web basada en

una arquitectura servidor-web, la cual tendrá una sola única funcionalidad, la de realizar

el inicio de sesión.

Los navegadores como Google Chrome, Firefox y demás tienen herramientas para

desarrolladores muy potentes, con las cuales se dispone de una multitud de características

y posibilidades para la visualización y depuración de páginas web. Gracias a estas, se

puede investigar el código con el que las páginas están implementadas, esto la convierte

a su vez es un arma de doble filo, debido a que es muy enriquecedora para desarrollar

web, pero también permite visualizar los fallos de seguridad que algunas páginas

presentan.

Así que usando esta herramienta se dejarán pistas para este ejercicio y posteriores.

Page 36: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

36

La implementación de la parte del servidor se realiza con el IDE IntelliJ, simplemente

por comodidad y familiarización con la herramienta, además se usará SpringBoot como

framework para el desarrollo de la aplicación web, al tratarse de una página sencilla sin

mucha funcionalidad no es necesario explicar mucho más de esta parte. Por lo tanto, la

página quedaría así, con una única funcionalidad.

Ilustración 33. Página inicial

La parte del servidor consta de archivos JAVA, que no se pueden visualizar desde un

navegador, por lo que serán con los que se traten los datos introducidos por el usuario.

La parte del cliente consta de archivos HTML+CSS+Javascript, al poder ser vistos

por las herramientas de desarrollador de los navegadores, son archivos en los que se

dejarán pistas para continuar con el reto.

Establecidos los archivos que pueden contener información oculta, hay que decidir

qué tipo de información ocultar, al ser la única funcionalidad de la página un inicio de

sesión, se esconderá la forma de acceder a la siguiente página, la contraseña.

A mi parecer, sería muy sencillo si se esconde así en el archivo js, por lo que se usa

la herramienta para transformar el código fuente en un código más difícil de interpretar

con Obfuscator [13] para hacer menos comprensible el trozo de código.

Código sin ofuscar:

Page 37: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

37

1. $('document').ready(function(){

2. var a = 'Para acceder a la herramienta de Chrome Desarrolladores, vaya a Herramientas> Desarrolladores de

herramientas.';

3. var _0x390a = 'Avengers unidos!'; 4. 5. var [cnffjbeq] = '123456789abc' 6. }); 7.

La contraseña es 123456789abc

Código ofuscado

1. var casi = [ 2. 'Para\x20acceder\x20a\x20la\x20herramienta\x20de\x20Chrome\x

20Desarrolladores,\x20vaya\x20a\x20Herramientas>\x20Desarrollado

res\x20de\x20herramientas.',

3. 'document', 4. 'ready' 5. ]; 6. var _0x390a = ['Avengers,\x20¡unidos!']; 7. (function (a, b) { 8. var c = function (d) { 9. while (--d) { 10. a['push'](a['shift']());

11. }

12. };

13. c(++b);

14. }(casi, 0x163));

15. var _0x3c6d = function (_0x8c0337, _0x41725e) {

16. _0x8c0337 = _0x8c0337 - 0x0;

17. var sigue = casi[_0x8c0337];

18. return sigue;

19. };

20. $(_0x3c6d('0x0'))[_0x3c6d('0x1')](function () {

21. var _0x3c6021 = _0x3c6d('0x2');

22. var [cnffjbeq] = '0x75bcd15'+'abc';

23. });

La contraseña viene en la última variable, llamada “password”, formado por

‘0x75bcd15’ que significa 12345789 y ‘abc’

Con esta contraseña se puede acceder a la siguiente página, pero antes de comentar

esta parte, se esconderá otra pista en el archivo .css, que puede ser útil para los próximos

ejercicios. Esta se encontrará escondida con una propiedad de css que es la de “visibility:

hidden” para poder visualizarla solo hace falta cambiarla y ponerla “visibility: visible”

Page 38: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

38

Ilustración 34. Pista siguiente ejercicio

Sin recargar la página, así queda la página si se modifica la propiedad de css anterior.

La siguiente página, al igual que la anterior, solo permite una funcionalidad, el

descargar un enlace de descarga, lo cual nos lleva al siguiente reto.

Los siguientes ejercicios están muy ligados, por lo que se deben comentar en diferente

orden para una mayor comprensión, en cambio, en la solución mostrará en un orden

diferente.

Para crear el archivo final, es decir el archivo que contenga la bandera, se partirá de

una imagen que contenga la bandera, se puede crear con Paint

Ilustración 35. Bandera final

Page 39: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

39

Esta imagen, se caracteriza en que solo tiene las letras de la bandera en negro y en un

fondo blanco, esto se debe hacer así para poder convertirla en “audio”. Este archivo se

tiene que guardar como archivo .BMP ya que son archivos que son de formato imagen de

mapa de bits, es decir, que puede contener imágenes de 24 bits, 8 bits y menos.

Luego, con la herramienta “CoagulaLight” [14], y gracias a que se trata un archivo de

mapa de bits se puede transformar en sonido.

Ilustración 36. Conversión bandera a sonido

Luego tenemos que seleccionar la opción “Sound > Render without blue” así se

reproducirá el sonido que hace la imagen, luego “File > Save as Sound” y ya tendremos

un audio de nuestra imagen.

Si ejecutamos el archivo, el audio reproducido no es entendible, pero si usamos alguna

herramienta para poder visualizar los espectrogramas (resultado de calcular el espectro

de tramas enventanadas de una señal) como es Audacity:

Ilustración 37. Espectograma del sonido

Se puede ver la conversión de la imagen que contenía la bandera en el espectrograma

de un audio.

Page 40: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

40

Este archivo se sube a un servidor de archivos como es mega para que luego pueda

ser encontrado por los participantes. Mega nos proporciona un enlace para compartir el

archivo, el cual será el que lleve a los participantes al paso final.

Enlace:

https://mega.nz/#!fuABnASD!1NwivVaoMvN9xoUIvr5rJl8FeAa3CPOquQiX71F

S28A

Pero para poder dar el enlace, no se dará libremente, se dará de una forma diferente,

este se dará en forma de QR, se trata un código de barras bidimensional cuadrada que

puede almacenar los datos codificados.

Para ello podemos usar cualquier página encargada de ello [15], así que, con cualquier

lector, ya sea de ordenador o móvil (desde ya unos años casi todos tienen integrados lector

de QR) se puede obtener el enlace a la página

Juntando este ejercicio con el primero, se ve que el archivo que se encuentra en el

enlace de descarga de la página se trata de un archivo .zip, que en su interior se encuentran

varios archivos pequeños, sin extensión y con nombres que no significan nada.

Estos archivos se han creado con el comando “Split -b tamañoarchivos entrada

salida”, este divide un archivo en varios, dependiendo de los argumentos que

especifiquemos en “-b” y la letra “q” especifica como queremos que empiece el nombre

de los demás

Ilustración 39. Comando para dividir archivo.

Ilustración 38. Código QR para los

archivos

Page 41: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

41

Resultado

Ilustración 40. Código QR dividido

Hay varias maneras de unir estos archivos que se comentarán en la solución.

Como se ha comentado antes, el enlace de descarga de la página lleva a un archivo

.zip con varios archivos, pero antes de poder visualizar los archivos se tiene que poder

descomprimir el zip que tiene contraseña.

En la creación del archivo .zip se estableció una contraseña, esta contraseña está

relacionada con la imagen que se dejó como pista en el primer ejercicio.

Se ha procurado que la contraseña no esté en los diccionarios más conocidos como:

rockyou, phpbb, Hotmail.

Hay varias maneras de descifrar la contraseña de un archivo .zip que se comentarán

en la solución.

5.5 Solución

Si nos ponemos en la posición del concursante, partimos de una historia y de un enlace

a una página.

Entrando a la página solo se visualiza el poder iniciar sesión en ella, esto da pie a

varias ideas relacionadas con las inyecciones SQL, son métodos de infiltración de código

intruso que se vale de una vulnerabilidad informática presente en una aplicación en el

nivel de validación de las entradas para realizar operaciones sobre una base de datos.

Page 42: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

42

• 'or '1'='1

• ‘admin AND usuario=’admin’

• ‘admin AND usuario is NULL; --

• ‘admin' AND 1=(SELECT COUNT(*) FROM usuarios); --

Visto las inyecciones más famosas, se puede deducir que no se trata de una inyección

SQL, pero no se debería descartar la idea que se pueda acceder con alguna más rebuscada.

Otra de las posibilidades con una página web que solo te permite realizar el inicio de

sesión, es indagar en el código fuente de esta con las herramientas de desarrollador que

pone Google Chrome.

Si se investiga en el código HTML se puede sacar que hay una parte que no se está

visualizando:

Ilustración 41. Código pista HTML

Se trata de la etiqueta <img> es decir de una imagen, si no se está visualizando es

porque el CSS no lo permite o que el Javascript está impidiendo su visualización

Si accedemos al código CSS se observa que hay una parte extraña, “visibility: hidden”

cambiando esta instrucción, la imagen ya se puede ver la imagen.

Si buscamos esta imagen en Google, nos muestra que se trata de la película Avengers:

EndGame.

Si se prueba esto como contraseña para el inicio de sesión no se obtiene resultados

positivos y seguimos sin acceso a la página. Si usamos como contraseña el nombre de

algunos protagonistas de esta película seguimos sin poder acceder a la página, por lo que

se debe seguir analizando el código fuente de la página. Si accedemos al único .js de la

página:

Page 43: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

43

Ilustración 42. Código visto por herramientas de desarrollador

Se observa un código javascript muy raro y a su vez, sospechoso.

Analizando el código se saca que todo el código no realiza nada, son bucles que no

hacen, lo interesante de este código es la última variable, ya que si buscamos en Google

‘0x75bcd15’ significa 123456789 y si añadimos el ‘abc’, no da una variable que usamos

como contraseña. Si se usa en la página, se puede acceder a la siguiente página. En la

siguiente página, solo existe un enlace que descarga un archivo.

Una vez descargado el archivo del ejercicio anterior, se observa que se trata de un

archivo .zip, pero que no es posible abrir ya que se necesita contraseña. ¿La contraseña

estará otra vez en el código fuente de la página? ¿La imagen anterior sirve para algo o era

solo para despistar? ¿Es necesario un ataque de diccionario?

Respondiendo a la primera pregunta, accedemos a los archivos HTML, CSS y no

existe JS.

Ilustración 43. Código HTML siguiente página

Ni en el archivo HTML ni CSS se ve algo para poder descifrar la contraseña ni para

poder usar en el ataque de diccionario.

Page 44: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

44

Así que se deberá realizar un ataque de diccionario, para ello se dispone de varias

herramientas como JhonTheRipper, Fcrackzip, zip2jhon.

Si usamos la primera que es más conocida, debemos usar un diccionario y el hash del

archivo.

Sacamos el hash del archivo .zip:

Si lo intentamos solo con el hash no obtenemos resultados satisfactorios:

Ilustración 45. Ataque por diccionario

Y se intenta con los diccionarios más conocidos como:

Rockyou

Ilustración 46. Ataque por diccionario ROCKYOU

Ilustración 44. Extracción hash archivo comprimido

Page 45: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

45

phpbb

Ilustración 47. Ataque por diccionario phpbb

Hotmail

Ilustración 48. Ataque por diccionario Hotmail

Después de varios minutos sin resultados en los diferentes casos, se abre la posibilidad

de crear un diccionario propio, para ello se usa una herramienta de GitHub (YOU) YOU,

esta herramienta permite crear diccionarios a partir de palabras claves.

Como palabras claves se usarán todos los protagonistas que aparecen en la película

de Avengers: EndGame

Ilustración 49. Creación de diccionario

Usando JhonTheRipper, debemos seleccionar el hash y nuestro diccionario a usar:

En este caso sí hemos obtenido un resultado positivo, pudiendo descifrar la contraseña

del zip.

Ilustración 50. Ataque por diccionario personalizado con zip2jhon

Page 46: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

46

Contraseña: ThanosAntman

Si hubiéramos usado Fcrackzip en lugar de JhonTheRipper, en lugar el hash del

archivo, deberíamos usar la ruta global del archivo y del diccionario

Ilustración 51. Ataque por diccionario fcrackzip

En ambos casos, si se usaban los diccionarios más conocidos, los resultados después

de varios minutos eran los mismos, sin obtener la contraseña correcta, se debería usar un

diccionario propio.

Abriendo el zip, una vez descubierta la contraseña, se encuentran varios archivos con

nombres raros y sin extensión salvo el primero.

Si examinamos los metadatos de los primeros elementos, se percibe que todos ellos

tienen el mismo peso en kb, por lo que se puede tratar de un archivo divididos en varios.

Con el comando “cat” de Ubuntu y q* para indicar que queremos que concatene todos

los archivos que empiecen por la letra “q*”.

Ilustración 52. Unificar archivos

Como resultado de esta unión se obtiene un archivo único, que al abrirlo se abre una

imagen QR.

Page 47: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

47

Ilustración 53. Código QR resultante

Si esta imagen la analizamos con un lector de QR online, nos da el enlace a una página

de mega.

Ilustración 54. Descodificar código QR

En ella se encuentra un único archivo .wav, que es una extensión de audio. Si se

reproduce este archivo, se escucha un audio inteligible del cual no se puede obtener

información útil. Por lo que este puede tener información oculta en sí mismo o en el audio.

Si se analizan los metadatos del archivo no se encuentra nada fuera de lo normal.

Si se analizan los hexadecimales del archivo tampoco se encuentra nada fuera de lo

común.

Page 48: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

48

Ilustración 55. Hexadecimales archivo

También se comprueba que de verdad se trata un archivo de audio con el comando

“file”.

Por último, si se analiza el recorrido del archivo con el comando binwalk, no se

obtiene resultado.

Por lo que se deduce que en realidad la información se encuentra en el audio, para

ello se tiene que abrir con un editor de audio como Audacity.

Ilustración 56. Audio final

Page 49: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

49

Hay varias maneras de esconder información en un audio, ya sea añadiendo ruido a

la información real, cambiando la frecuencia al audio, pasando algún filtro de paso

bajo/alto o incluso oculta en el espectrograma del audio, qué es un espectrograma.

Probando todas estas posibilidades:

• Al ser un audio no muy largo, se puede descartar la posibilidad del ruido

porque ya que todo el audio es ruido como tal, por lo tanto, no hay ruido que

eliminar.

• Si cambiamos la frecuencia del audio, como por ejemplo al tamaño de los

archivos en los que estaba dividido tampoco se obtienen resultados con los

que obtener información

Si observamos el espectrograma del audio, se ve que la bandera estaba oculta en el

audio.

Ilustración 57. Espectograma con bandera

La bandera y resolución de esta solución es responsabilidad, de esta manera concluye

la implementación y solución del ejercicio 2.

6. Reto 3

Este reto tendrá como tema principal la encriptación y criptografía, estas son técnicas

que alteran la información hasta el punto de hacerla inteligible, es decir, se tratará de

ocultar información de una manera diferente a las anteriores vistas y como es un reto

enfocado a un público joven, se tratará de usar referencias sencillas y conocidas como

son referencias al mundo del cine.

Page 50: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

50

6.1 Historia

Como era de esperar tus amigos te han enviado un mensaje con un par de preguntas a

un examen que se realizara en unos días. Recuerda que es uno de los exámenes más

importantes. Y que una ayuda siempre viene bien, ¿no?. Pues vamos a ello, el texto está

encriptado, y tu amigo no te dará más pistas, ya se expone demasiado enviándote esto,

hasta usa un nombre de hacker "RainDollHacks". Tu misión es conseguir esa "pequeña"

ayuda para el examen.

6.2 Herramientas

Como Sistema Operativo se puede usar tanto Windows como Linux, ya que se basarán

la mayoría de las herramientas en online.

AES Crypt, es un software de encriptación y desencriptación de archivos, usando,

como su nombre indica, el cifrado AES-256 bytes.

Para cifrar y descifrar los textos se pueden hacer con código de github, ya que es la

criptografía es un campo muy extendido y tiene una gran comunidad o gracias a

herramientas online.

6.3 Implementación.

6.3.1 Paso 1

En este apartado se usarán diferentes tipos de cifrado para mostrar un enlace final.

Existen varios tipos de cifrado, pero para hacerlo más sencillo se usarán los más

conocidos:

El primer párrafo usará uno de los cifrados más sencillo y fáciles de aplicar, invertir

el texto.

.atropmi odot ,hA ...ed etra led y aífargotpirc al ed etra led aturfsid y asirp sagnet

on ,aífargotpirc ed oter la odinevneiB

Page 51: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

51

El segundo párrafo se cifrará con el cifrado César: Es un tipo de cifrado por sustitución

una letra en el texto original es reemplazada por otra letra que se encuentra un número

fijo de posiciones más adelante en alfabeto.

Buscando este texto descifrado en Google nos dará que pertenece a una película

llamada Pulp Fiction.

El siguiente párrafo se cifrará con el cifrado Vigenère, este se trata de un cifrado

basado en diferentes series de caracteres o letras del cifrado Cesar formando estos

caracteres una tabla, llamada tabla de Vigenère, que se usa como clave. El cifrado de

Vigenère es un cifrado de sustitución simple polialfabético.

Este cifrado requiere de una clave, esta clave será el nombre de la película anterior

“PulpFiction”

zsq mf hsksbw imw ew ké vw ewegjas q imw hsjwuw shjghasvg hsjs wkls

kalmsuaóf. wk vw wrwimawd, 25:17, q vauw: wd useafg vwd zgetjw jwulg wklá hgj

lgvgk dsvgk jgvwsvg hgj dsk afbmklauask vw dgk wygíklsk q ds lajsfís vw dgk

zgetjwk esdgk. twfvalg kws simwd hsklgj imw, wf fgetjw vw ds usjavsv q vw ds

tmwfs ngdmflsv, ksimw s dgk vétadwk vwd nsddw vw ds gkumjavsv. hgjimw wk wd

smlwflaug ymsjvaáf vw km zwjesfg q wd vwkumtjavgj vw dgk fañgk hwjvavgk. ¡q

gk skwymjg imw nwfvjé s usklaysj ugf yjsf nwfysfrs q xmjagks uódwjs s siméddgk

imw hjwlwfvsf wfnwfwfsj q vwkljmaj s eak zwjesfgk! ¡q lú kstják imw ea fgetjw wk

qsznwz, umsfvg usays ea nwfysfrs kgtjw la!

¡wuméxx dggqrb p ffrmit vwab wixqwmu eqpetm! ¡j wtudkmg yxvctx aqba! ¿ehé

wucípna ubv zvqycifl? nnkvns, s ajjlg jcs zjláth. mcíf, r dwixléth. zv vbmacd, uw

bjvql. g, oy bicxw mp ocsfilz ajkjh, lsailz sj uwvpcf pñid, ¿ct mumifínxm oxxxwxahbh

u nprjktz hbsid ata fíta rrhxp wtg jtahn thedskgl, xce jhl duwtmcbvsuo, hóqw wgi

ccdlejsqftl rr kiwkjz cjcí m zpnlg f dwxahedm pcjukzwg? cjyot vcg gwg djcets tc

oqrn, ¡eycd oioál vcf fotifzáp ei zvqycifl!

Page 52: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

52

Al igual que la anterior, este párrafo también pertenece a un fragmento de un dialogo

famosos de la película Bravehearth

El cuarto párrafo está cifrado con el algoritmo ROT47, es una variante del cifrado

Cesar utilizado para ocultar un texto sustituyendo cada letra por la letra que está 47

posiciones por delante en el alfabeto.

Siguiendo la temática de los párrafos anteriores, este párrafo pertenece a la famosa

película El Club de La Lucha.

El último párrafo, es el más corto, pero también el más importante ya que es el que

nos indica el camino al siguiente ejercicio conteniendo el enlace al servidor de archivos.

Este se cifrará con el algoritmo TripleDES, es un algoritmo de cifrado que usa una clave

de 112 bits, mucho más segura que su predecesor DES.

Para este tipo de algoritmo también se necesita de clave, y como anteriormente hecho,

se usará el título de la película Braveheart

{2 AF3=:4:525 ?@D 9246 56D62C 4@496D J C@A2D[ E6?6>@D 6>A=6@D

BF6 @5:2>@D A2C2 4@>AC2C >:6C52 BF6 ?@ ?646D:E2>@D] $@>@D =@D

9:;@D >2=5:E@D 56 =2 9:DE@C:2[ 56D2CC2:825@D J D:? @3;6E:G@D] }@

96>@D DF7C:5@ F?2 8C2? 8F6CC2[ ?: F?2 56AC6D:ó?] }F6DEC2 8F6CC2 6D

=2 8F6CC2 6DA:C:EF2=[ ?F6DEC2 8C2? 56AC6D:ó? 6D ?F6DEC2 G:52]

rC64:>@D 4@? =2 E6=6G:D:ó? BF6 ?@D 9:K@ 4C66C BF6 2=8ú? 5í2

D6C:2>@D >:==@?2C:@D[ 5:@D6D 56= 4:?6 @ 6DEC6==2D 56= C@4<[

A6C@ ?@ =@ D6C6>@D J A@4@ 2 A@4@ ?@D 96>@D 525@ 4F6?E2 J

6DE2>@D[ >FJ[ >FJ 423C625@D

DtwTC3VtBHlIWL0XbjRdQk9nqf5UQAl5aTQvmlqnTRCQORXYGia5nuqsp

XQFlvB5Wt6tC/vLXV5WyDJ3ZiomwYD00wqTva3essWzI79I2AKDw1SCbSGrg

dLWp8yzH6y/mqBHvDX2HzfXZYGn4Hi1g2eP+6aPQ6kdpEbPrFJhXylJkFrquJU1

JKlli+27wFHOP5DqbEVpcoc

Page 53: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

53

6.3.2 Paso 2

Una vez dado al participante el enlace al servidor, se encontrará un archivo. Este

archivo se encuentra encriptado mediante la herramienta de Aes Crypt, usando el

algoritmo de encriptación AES 256 bytes, que es un esquema de cifrado por

bloques adoptado como un estándar de cifrado por el gobierno de los Estados Unidos

AES fue anunciado por el Instituto Nacional de Estándares y Tecnología (NIST).

Desde 2006, el AES es uno de los algoritmos más populares usados en criptografía

simétrica [17].

En el ejercicio anterior se usaron casi todos los títulos que había, salvo uno, este será

la contraseña del archivo, ElClubDeLaLucha.

Lo más difícil del ejercicio, es acertar con el programa para desencriptar ya que

usando algún código de github o programa podemos desencriptarlo sabiendo cuál

encriptación es, con la clave obviamente. Esta se sabe de una manera “sencilla” porque,

en el texto del principio, se encuentran las palabras “Rain Doll”, si buscamos esto en

internet no nos darán resultados exitosos, pero si investigamos un poco, vemos que Rain

Doll se pronuncia igual que Rijndael (también conocido como el algoritmo AES). Aunque

parezca un poco rebuscado si buscamos en Google “Rain doll algoritmo” nos llevará a la

página de AES en Wikipedia.

Programa usado: AesCrypt. Si en el texto de la historia vemos la primera letra de cada

frase, vemos que pone “Crypt” por lo que, sabiendo el algoritmo, el programa y la

contraseña, ya se puede descifrar el archivo.

6.3.3 Paso 3

Una vez desencriptado el archivo, el participante se encontrará con un archivo de

texto, este archivo contiene varias letras sin comprensión ya que está cifrado.

Para dar la bandera se usará una imagen, previamente modificada con cualquier editor

de imágenes, como Paint para añadir la bandera.

Page 54: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

54

Ilustración 58. Bandera Reto 3

Se usará el cifrado en Base64, este es un sistema de numeración posicional que usa

64 como base. Es la mayor potencia de dos que puede ser representada usando únicamente

los caracteres imprimibles de ASCII. Esto ha propiciado su uso para codificación de PGP,

correos y otras aplicaciones [18]. Todas las variantes famosas que se conocen con el

nombre de Base64 usan el rango de caracteres A-Z, a-z y 0-9 en este orden para los

primeros 62 dígitos, pero los símbolos escogidos para los últimos dos dígitos varían

considerablemente de unas a otras. Otros métodos de codificación como UUEncode y las

últimas versiones de binhex usan un conjunto diferente de 64 caracteres para representar

6 dígitos binarios, pero estos nunca son llamados Base64.

6.4 Solución

Poniéndonos en la piel del participante, partimos de que tenemos una historia

introductoria y un archivo simple de texto

Abriendo el archivo .txt se ve un archivo con varios párrafos sin sentido alguno,

palabras que no significan nada, mezcladas con números y números con palabras.

Partiendo de aquí, hay varias posibilidades, que el archivo tenga información oculta en

sus metadatos y/o que el texto esté cifrado.

Si abrimos los metadatos del archivo

Page 55: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

55

Ilustración 59. Metadatos archivo con texto cifrado

No se ve nada útil.

Si se abre los hexadecimales tampoco se ve algo con lo que seguir el ejercicio.

Ilustración 60. Hexadecimales archivo

Por último, si realizamos algunos comandos de Linux como “file” o “binwalk” se

comprueba que no hay información oculta, a simple vista.

Ilustración 61. Verificación extensión del archivo

Al no mostrar nada sospechoso o fuera de lo nomal, se tratará de descifrar los párrafos.

Echando otro vistazo más completo a los párrafos, se percibe que el primer párrafo

solo está dado la vuelta y basta con deshacer este cambio:

Bienvenido al reto de criptografía, no tengas prisa y disfruta del arte de la

criptografía y del arte de... Ah, todo importa.

Page 56: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

56

Por lo que descifrado el primer párrafo se entiende que los demás están cifrados, para

ello se usarán los siguientes cifrados:

• Cifrado por sustitución: como Cesar, Vigenere y ROTN

• Cifrado por transposición: como Escritura inversa, columnar doble e interrumpida

• Cifrado según sus claves: como AES, DES y TripleDES

Como se ha mencionado el primer párrafo tenía un tipo de cifrado por transposición

de escritura inversa, pero los demás no parecen resolverse de la misma forma por lo que

el texto entero se dividirá en párrafos y se probarán los algoritmos con cada uno de ellos.

Los siguientes párrafos se intentarán descifrar con los algoritmos antes nombrados.

La resolución de este ejercicio se basará en prueba y error de algoritmos de cifrado,

empezando por el segundo párrafo ya que el primero está resuelto:

Para este se aplicará el cifrado Cesar, que se trata de un cifrado por sustitución.

Aplicando este cifrado se obtiene el resultado correcto del párrafo

Este párrafo parece un versículo de La Biblia, pero si buscamos a qué libro pertenece

nos encontramos que pertenece a la película Pulp Fiction.

Probando el siguiente párrafo con el algoritmo Cesar, no se obtiene los resultados

satisfactorios como en el párrafo anterior, por lo que se descarta este algoritmo.

Hay un pasaje que me sé de memoria y que parece apropiado para esta situación.

es de Ezequiel, 25:17, y dice: el camino del hombre recto está por todos lados rodeado

por las injusticias de los egoístas y la tiranía de los hombres malos. bendito sea aquel

pastor que, en nombre de la caridad y de la buena voluntad, saque a los débiles del

valle de la oscuridad. porque es el auténtico guardián de su hermano y el descubridor

de los niños perdidos. ¡y os aseguro que vendré a castigar con gran venganza y furiosa

cólera a aquéllos que pretendan envenenar y destruir a mis hermanos! ¡y tú sabrás que

mi nombre es Yahveh, cuando caiga mi venganza sobre ti!

Page 57: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

57

Se utilizará el siguiente algoritmo en la lista, el algoritmo Vigenere, otro algoritmo

por sustitución, pero para aplicar este cifrado se requiere de una contraseña, y hasta este

momento no se ha nombrado ninguna clave salvo el título de la película anterior, por lo

que probando este cifrado y como contraseña “PulpFiction” se descifra este párrafo.

Este párrafo, al igual que el anterior, pertenece a una película, en este caso se trata de

Bravehearth

Para el siguiente párrafo se usarán los algoritmos de sustitución para ver si se pueden

resolver, probando el algoritmo Cesar no se obtiene una solución correcta. Con el

algoritmo Vigenere pasa lo mismo, usando la contraseña de la película anterior

“Bravehearth” o “PulpFiction” no se descifra el código. Es necesario probar un nuevo

algoritmo de sustitución, en este caso toca con ROTN probando con los más usados casos

de ROT, como ROT13 y ROT47. Como no se necesita contraseña para estos casos, se

pueden probar libremente.

Con ROT13 no se resuelve el cifrado, en cambio con ROT47 sí se descifra el código.

¡Habéis venido a luchar como hombres libres! ¡Y hombres libres sois! ¿Qué

haríais sin libertad? Luchad, y puede que muráis. Huíd, y viviréis. Un tiempo, al

menos. Y, al morir en vuestro lecho, dentro de muchos años, ¿no estaríais dispuestos

a cambiar todos los días desde hoy hasta entonces, por una oportunidad, sólo una

oportunidad de volver aquí y matar a vuestros enemigos? Puede que nos quiten la

vida, ¡pero jamás nos quitarán la libertad!

La publicidad nos hace desear coches y ropas, tenemos empleos que odiamos para

comprar mierda que no necesitamos. Somos los hijos malditos de la historia,

desarraigados y sin objetivos. No hemos sufrido una gran guerra, ni una depresión.

Nuestra guerra es la guerra espiritual, nuestra gran depresión es nuestra vida.

Crecimos con la televisión que nos hizo creer que algún día seriamos millonarios,

dioses del cine o estrellas del rock, pero no lo seremos y poco a poco nos hemos dado

cuenta y estamos, muy, muy cabreados

Page 58: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

58

Si buscamos este trozo de texto, se descubre que pertenece a un dialogo de la película

El Club de la lucha.

Ya solo queda un párrafo por descifrar, para este párrafo seguiremos probando con

los cifrados de sustitución con los que sí se han obtenidos resultados satisfactorios.

Con el cifrado Cesar, no se obtienen resultados buenos, al igual que con el cifrado

ROT13 o ROT47. Para probar el cifrado Vigenere, se usarán como contraseña las

películas descifradas anteriormente, pero siguen sin obtenerse resultados para descifrar el

párrafo. Ninguno de los cifrado por sustitución ha conseguido descifrar el último párrafo,

por lo que se intentará con los cifrado por clave.

Empezando por el cifrado AES, usando el título de las películas anteriores como

contraseñas, ninguna de ella es la correcta, antes de pensar en otra contraseña se probarán

los diferentes cifrados nombrados anteriormente.

Con el cifrado DES y usando los títulos de las películas como contraseñas tampoco

se obtiene descifrar el último párrafo. En cambio, realizando la misma prueba con el

cifrado TripleDES sí obtenemos descifrar el último párrafo, la contraseña correcta es

Bravehearth

Descifrado el último párrafo, nos da un enlace a mega, en el cual hay un archivo. Este

archivo no tiene extensión, si repetimos los procesos anteriores como ver los metadatos:

Ilustración 62. Metadatos archivo intermedio

Ves, no era tan difícil, aquí tienes un regalo:

https://mega.nz/#!S2Yk1YJZ!1fDhdGQIJgMOm3kp9V6_yHLz0--T7h4-

NH7wfZLIrh0

Page 59: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

59

Se ve que es un tipo de archivo CRY, luego se buscará a qué tipo de archivos hace

referencia esta extensión. Por el momento, se sigue buscando información oculta en el

primer archivo.

Los hexadecimales del archivo:

Ilustración 63. Hexadecimal archivo cifrado

El recorrido y tipo del archivo:

Ilustración 64. Verificación extensión archivo cifrado

Esta vez sí obtenemos información útil gracias a los metadatos, como es el tipo de

archivo, así que lo importante debe estar dentro del archivo, pero para poder abrirlo.

Buscando el tipo de archivo, se obtiene que se tratan de archivos encriptados con el

programa AesCrypt.

Buscando este programa, se comprueba que realiza encriptaciones con algoritmos

AES.

Page 60: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

60

Buscando El algoritmo, vemos que se trata del cifrado AES256 que a su vez tiene

como apodo “Rain Doll”, que es el nombre que aparece en la historia de introducción.

Probando este algoritmo de descifrado con el título de las películas como contraseña,

obtenemos descifrar el archivo con la contraseña “ElClubDeLaLucha”.

Descifrado el archivo, se ve que es un archivo de texto con líneas incomprensibles en

su interior. Hay varias posibilidades, que la información se encuentre en sus

metadatos/hexadecimal o que haya más archivos incrustados en este o que el texto esté

cifrado.

Si vemos sus metadatos:

Ilustración 65. Metadatos archivo final

Nos dice que se trata de un archivo de texto.

Si vemos sus hexadecimales:

Ilustración 66. Hexadecimales archivo final

Page 61: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

61

No nos da una información útil con la que poder seguir.

En cambio, si vemos si hay más archivos dentro de él o si se trata de su verdadera

extensión:

Ilustración 67. Verificación extensión archivo final

Gracias a ver si tiene algún archivo oculto, se descubre que el texto se trata de una

imagen, pero ¿cómo se forma esta imagen?

Para ello se debe tratar de que la información está codificada en el texto. Se usarán

los cifrados nombrados anteriormente, por sustitución o por clave:

Con los cifrados por sustitución como Cesar o ROTN no obtenemos resultados para

descifrar el texto. Para el cifrado Vigenere, se necesita una clave, pero aparte del título de

las películas no se respuestas positivas.

Con los cifrados por clave, como su propio nombre indica, no tenemos una clave con

la que empezar, así que probando con los títulos de película seguimos recibiendo

respuestas negativas.

Ante los resultados negativos, se deberá empezar con los cifrados por transposición,

para estos no son necesarios las claves. Aun así, no se obtienen maneras de descifrar el

texto final.

¿Nos hemos pasado alguna contraseña por alto? ¿Probamos diferentes tipos de

cifrado?

Fijándonos más detalladamente en el texto, buscando cifrados de imágenes,

descubrimos el codificado en base64, que codifica también imágenes. Así que copiando

este texto en cualquier decodificador de base64 online, obtenemos esto: una imagen que

contiene la bandera. Así concluye el último reto

Page 62: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

62

Ilustración 68. Bandera Reto 3

Bandera Reto 3: cooperación

Estos retos han estados disponibles para su solución los días 27,28 y 29 de junio

mediante el campus virtual, para estudiantes de todas las universidades de España que se

pudieron matricular los días anteriores a estos.

7. Reto 4

7.1 Historia

Dentro de unos días, se realizará la celebración de la final del campeonato europeo de

fútbol y la organizadora de este evento está preocupada por la reventa de entradas que

pueda haber por internet. Por ello, te han pedido que averigües los métodos que pueden

tener los vendedores para pasar las entradas, el primer contacto que has tenido con uno

de ellos te ha pasado un archivo pdf, ¿podrás saber cómo pasan las entradas?

7.2 Herramientas

• Sistema Operativo: Linux, gracias a este SO se pueden usar comandos con el que

modificar los atributos de los archivos.

• Traductor de Hexadecimal, tanto a texto como a color

7.3 Implementación

Este será un reto basado sobre todo centrado en análisis forense.

Se partirá de un archivo de tipo pdf normal con un texto de relleno sin nada que ver

con el ejercicio.

Page 63: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

63

Ilustración 69. Texto de relleno

Page 64: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

64

A este archivo se le ha añadido una cadena, esta cadena se puede ver con el comando

“Strings archivo”, el comando muestra las cadenas de caracteres imprimibles que haya en

el archivo

Si copiamos esta parte de texto en un archivo aparte se ve que esta cadena contiene

varios caracteres “@” y entre ellos letras del abecedario

Si usamos un programa creado por nosotros, en el lenguaje de programación con el

que más cómodo nos encontremos y eliminamos las “@” se puede sacar el texto

escondido

Este texto nos lleva a un enlace de mega el cual nos permite descargar una imagen

Ilustración 70. Caracteres imprimibles

Ilustración 71. Cáracteres importantes

Page 65: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

65

Ilustración 72. Bandera de colores con la solución

Esta imagen repleta de rectángulos de colores forma la bandera. Nos ayudaremos de

que cada color se puede representar también de forma hexadecimal, por lo que, si cada

rectángulo es un color, y si ese color se extrae con algún programa que detecte los colores,

Page 66: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

66

como Photoshop, y esto se convierte a hexadecimal y, a su vez, también se convierte en

texto se puede visualizar la bandera

HEXADECIMAL: 45 73 74 61 20 65 73 20 6c 61 20 62 61 6e 64 65 72 61 20 42 41

4e 44 45 52 41

Texto: Esta es la bandera BANDERA

8. Reto 5

8.1 Historia

Una empresa famosa por sus diseños de página web está recibiendo últimamente

muchos ataques DDoS realizados por bots, por lo que están realizando entrevistas de

trabajo en busca de talento nuevo, sobre todo talento centrado en la ciberseguridad para

poder defenderse en los próximos ataques. El primer paso de la entrevista es encontrar el

enlace a la página donde se puede enviar el CV, ¿serás capaz de conseguir el puesto de

trabajo o no pasarás del primero paso?

8.2 Herramientas

• IntelliJ: IDE con el que realizar la programación del servidor y páginas con las

que interactuar.

• Framework SpringBoot, para el desarrollo de la páginas y tratamiento de los datos

que se puedan obtener con estas [20].

• Zip2Jhon: software encargado de romper contraseñas de archivos comprimidos.

8.3 Implementación

Se creará una página con solo código html, esta página no tiene nada importante, solo

es un conjunto de noticias de robo de contraseñas de Hotmail y un botón de continuar.

• https://www.elobservador.com.uy/nota/masivo-robo-de-cuentas-de-

gmail-hotmail-y-yahoo-20165510390

• https://www.troyhunt.com/the-773-million-record-collection-1-data-reach/

• https://www.tuexperto.com/2019/05/25/como-cambiar-la-contrasena-en-

gmail-hotmail-outlook-y-yahoo/

Página inicial:

Page 67: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

67

Ilustración 73. Página inicial

Si se pulsa el botón de continuar, se controlará mediante controladores implementados

con el framework SpringBoot que se han introducido correctamente las cookies, por ello,

en la historia se menciona, para también dejar como pista, que el “administrador es

perezoso”, así que introduciendo en las cookies mediante las herramientas de

desarrolladores de los navegadores los valores “admin: true” se podría continuar con el

reto, si no se establecen estas cookies, se redirigirá a la misma página.

En nuestro reto, haremos uso, aunque indebido, del fichero “robots.txt”, este fichero

se encarga de evitar que algunos bots tengan acceso a alguna parte o toda la página web,

en cambio, en nuestro reto dará paso para el paso final. Por ello, la siguiente página

contiene un texto sobre Joseph Frederick Engelberger (también conocido como el

padre de la robótica) y un gif de Robocop, película estadounidense de ciencia ficción.

Page 68: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

68

Ilustración 74. Página con pista final

Esto da a entender que la página para seguir se encuentra en el archivo “robots.txt”,

por lo que si añadimos esto a la url:

/cookies/robots.txt

Accedemos al archivo como tal de robots.txt

Ilustración 75. Enlace a la bandera

Este enlace nos redirige a un enlace de un servidor de almacenamiento en el cual se

puede descargar un archivo.zip, este se puede resolver con un diccionario de contraseñas,

Page 69: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

69

en la página de inicio se mostraban noticias de robo de contraseñas de Hotmail, por lo

que el diccionario con el que se puede romper la contraseña es con este de Hotmail.

9. Reto 6

9.1 Historia

En una semana realizaré una fiesta para celebrar el fin de exámenes y mi final de

grado, pero para invitar a mis amigos a la fiesta y en sintonía con mi trabajo final de grado

he decidido ponerles un pequeño reto, por ello les he compartido un archivo de sonido

con el que podrán saber la hora y dirección dónde asistir. ¿Podrás acceder a mi fiesta?

9.2 Herramientas

• Traductor de texto a morse y viceversa.

• Exiftool: software que permite manipular los metadatos de diversos archivos [21].

• Sistema Operativo, Linux.

9.3 Implementación

Se partirá de un video, este video estará completamente en negro, pero tendrá un audio

que estará codificado en morse. Para crear el mensaje en morse se han utilizado

herramientas online creadas con ese propósito.

Enlace:

https://mega.nz/#!SuhE3KBC!b1gzDNh3xAwntrRRIQBXjhYlka62oOJpTWiNOUh71T8

Al ser algo evidente, se puede extraer el audio del video y si se descodifica con

cualquier herramienta de traductor de morse, da la siguiente frase:

“Suelo usar mucho twitter”

Así se da a entender, o como pista, que la siguiente parte del reto se encuentra en la

red social, Twitter.

Para el siguiente paso se ha modificado uno de sus atributos con la herramienta de

exiftool, esta herramienta permite modificar el texto de algunos atributos dependiendo

del tipo de archivo que tratemos, en nuestro caso es un mp4 así que tenemos una gran

variedad de atributo, se ha elegido Author y Copyright.

Page 70: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

70

En cada uno se añadirá una frase codificada en md5 el cual nos indicará el número y

la cuenta en la que se encuentra el tweet.

Atributos modificados:

Ilustración 76. Modificación metadatos

Resultado:

Ilustración 77. Resultado modificación hexadecimales

Descodificado md5:

• notherIdiot: 2a569471436d99eef2686bb41913a976

• 1142129886603173888: 355cde95944e2f94de683104201cf32c

El tweet es un grupo de números, estos estarán cifrado con el cifrado de Polybios, se

trata de un algoritmo trivial, donde cada letra del alfabeto es reemplazada por las

coordenadas de su posición en un cuadrado. Es un caso particular de transposición mono-

alfabética. Este cifrado es relativamente fácil de descodificar.

Ilustración 78. Texto cifrado

El cuadrado de Polybio a usar es este, el general para no llevar a confusiones:

Ilustración 79. Cuadrado de Polybio

Page 71: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

71

Si se descifra da este resultado:

La bandera es BANDERASEIS

10. Discusión

Una vez concluida la implementación de los retos, se compartieron las propuestas más

completas en los temas especificados, para su solución por los posibles participantes de

los retos.

Se seleccionaron mis 3 primeros retos de este trabajo, en el cual se abarcaban los

campos de Análisis Forense, Hacking web y Criptografía, porque eran los más completos

con cierta dificultad y en los cuales se usaban varias herramientas tanto para su solución

como para su implementación, aparte de diferentes conceptos básicos necesarios para el

hacking ético. Los otros retos que se presentaron al concurso fueron de mi compañera

María Teresa, estos abarcaban diferentes campos de la seguridad informática, salvo el

tema del Análisis forense debido a que este es un campo muy grande y muy básico para

el hacking ético, por lo que se decidió elegir este mismo campo, pero con diferentes

herramientas y conceptos.

Después de anunciarse el concurso por redes sociales y correos, se registraron casi

100 participantes. Estos participantes pudieron solucionar los retos mediante un aula

virtual, donde debían poner la bandera como solución para poder puntuar. Los retos

estuvieron disponibles durante tres días (26-29) del mes de junio de 2019.

Los retos que más participación tuvieron fueron el reto de análisis forense y el de

hacking web, obviamente, llegando a solucionarse varias veces por diferentes

participantes, en cambio, el de criptografía no se llegó a solucionar, por lo que supongo

que tenía demasiada complejidad para lo esperado y si hubieras próximos CTFs donde se

use este reto se debería modificar.

Ahora se mostrarán unas gráficas con la información obtenida durante estos días:

Page 72: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

72

Ilustración 80. Resultados Retos

Según la gráfica, solo el 9.5% de participantes que intentaron el Reto 1, que trataba

sobre análisis forense, consiguieron resolverlo, en cambio, en el Reto 2, que trataba sobre

hacking web, lo intentaron menos participantes, pero en proporción lo consiguieron más

con un 33.3% de acierto. El reto de criptografía no consiguió resolverlo correctamente

nadie.

Gráfica sobre el tiempo empleado por los que han resuelto los retos

0

5

10

15

20

25

30

35

40

Reto 1 Reto 2 Reto 3

Retos

Éxito Fallo

0

10

20

30

40

50

60

Reto 1 Reto 3

Tiempo empleado

Tiempo mínimo (horas) Tiempo máximo (horas)

Ilustración 81. Tiempo máximo y mínimo de la resolución de retos

Page 73: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

73

Cómo dato curioso y a la vez importante en nuestra sociedad, se muestra una gráfica

sobre datos de los participantes. Se ve una gran diferencia entre el número de participantes

de género masculino que de género femenino, aun así es un comienzo para la igualdad de

género en el campo de la informática.

Ilustración 82. Datos género participantes

Espero que este trabajo haya contribuido para la mejor comprensión del uso que se

puede hacer del hacking ético y la informática forense, además de resultar entretenido

para los estudiantes.

11. Conclusiones y trabajos futuros

Como conclusión del Trabajo Fin de Grado, se puede decir que se ha conseguido

implementar un conjunto de ejercicios para poder incluirlos en una competición de tipo

CTF. Se han diseñado, se han implementado y se han resuelto todos los ejercicios,

cumpliendo con las expectativas planteadas en cuanto a temática (informática forense y

hacking ético), destinatarios, nivel de dificultad…

También se presentan herramientas que son de utilidad para solucionar los retos

propuestos y otros similares, lo cual es un aspecto que conviene también destacar.

Finalmente hay que indicar que cualquiera que lea este TFG aprenderá conceptos,

técnicas y herramientas relacionadas con el hacking ético y la informática forense, además

Participantes

Hombre Mujer

Page 74: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

74

de pasar (seguramente) momentos entretenidos mientras soluciona alguno de los retos

propuestos.

Como trabajos futuros, podrían indicarse que el conjunto de retos propuestos para un

CTF es fácilmente ampliable en cuanto a número y temática implicada. En este sentido,

seguramente sea fácil continuar en la línea de trabajo investigando nuevas alternativas. Y

cambiando un poco de perspectiva, aunque en este TFG se ha seguido una

implementación de propuestas de tipo jeopardy, es posible continuar en otros trabajos

futuros considerando pruebas del tipo ataque-defensa.

Page 75: UNIVERSIDAD DE EXTREMADURA Escuela Politécnica Grado en

Planteamiento de un CTF para practicar hacking ético e informática forense

75

12. Referencias

[1] Instituto Nacional de Ciberseguridad de España. Disponible en: https://www.incibe-cert.es/blog/ctf-

entrenamiento-seguridad-informatica

[2] Plataforma online para entrenamiento en seguridad informática, CTF365. Disponible en:

https://ctf365.com/

[3] Plataforma online para entrenamiento en seguridad informática, con un gran foro con el que

compartir conocimientos, OverTheWire. Disponible en: https://overthewire.org/wargames/

[4] Plataforma online para entrenamiento en seguridad informática, centrado en estudiantes, PicoCTF.

Disponible en: https://picoctf.com/

[5] Forociber, único evento de la Comunidad Autónoma de Extremadura que trata las temáticas del

Derecho Tecnológico y la Ciberseguridad con expertos de gran prestigio. Disponibles consultas en:

http://forociber.es/

[6] JNIC, Jornadas Nacionales de Investigación en Ciberseguridad, este año realizadas en Cáceres.

[7] Wireshark. Disponible descarga en: https://www.wireshark.org/

[8] Hexinator. Disponible descarga en: https://hexinator.com/

[9] Audacity. Disponible descarga en: https://audacity.es/

[10] John The Ripper. Disponible descarga en: https://www.openwall.com/john/

[11] Fcrackzip. Disponible descarga en: https://pkgs.org/download/fcrackzip

[12] YOW. Disponible descarga en: https://github.com/juanvelascogomez/YOW

[13] Obfuscator. Disponible en: https://obfuscator.io/

[14] CoagulaLight. Disponible descarga en: https://www.abc.se/~re/Coagula/Coagula.html

[15] Generador y conversor QR. Disponible en: https://www.qrcode.es/es/generador-qr-code/

[16] AES Crypt. Disponible descarga en: https://www.aescrypt.com/

[17] Estándar encriptación DES. Disponible en

https://csrc.nist.gov/csrc/media/publications/fips/46/3/archive/1999-10-25/documents/fips46-3.pdf

[18] Estándar encriptación AES. Disponible en

https://web.archive.org/web/20150407153905/http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf

[19] Codificador y descodificador de Base64: https://codebeautify.org/base64-decode

[20] SpringBoot. Disponible documentación en: https://spring.io/projects/spring-boot

[21] Exiftool: Disponible en: https://www.sno.phy.queensu.ca/~phil/exiftool/