Logo Studenta

Entregable Final - Javier Mendoza (7)

¡Este material tiene más páginas!

Vista previa del material en texto

Índice.
1. Resumen…………………………………………………………………………………………………..2
2. Introducción……………………………………………………………………………………………..3
3. Desarrollo…………………………………………………………………………………………………5
4. Conclusiones…………………………………………………………………………………………..13
5. Referencias…………………………………………………………………………………………….14
1. Resumen.
Este proyecto final se realizó con el objetivo de poner en práctica los conocimientos aprendidos en la asignatura de Hacking Ético y Análisis Forense impartida por el docente Alejandro Gómez Ramos perteneciente a la Maestría en Seguridad de Tecnologías de la Información, durante el transcurso de este documento se abordará primeramente una introducción sobre los conceptos y herramientas usadas durante el proyecto, así como otras que igualmente pudieron haber sido usadas.
Al finalizar la introducción teórica que se requiere conocer para la ejecución de este proyecto, se continua con la presentación de los pasos que se siguieron para el cumplimiento del ejercicio el cual consta de una máquina virtual vulnerable extraída del repositorio Vulnhub, esta máquina es nombrada Mr. Robot, en referencia al programa de televisión del mismo nombre.
Para finalizar se presentan las conclusiones del proyecto y el curso, además de la inclusión de todas las fuentes bibliografías que fueron usadas para la elaboración del documento.
Abstract
This final project was carried out with the objective of putting into practice the knowledge learned in the subject of Ethical Hacking and Forensic Analysis taught by the teacher Alejandro Gómez Ramos belonging to the Master's Degree in Information Technology Security, during the course of this document It will first address an introduction to the concepts and tools used during the project, as well as others that could also have been used.
At the end of the theoretical introduction that is required to know for the execution of this project, the presentation of the steps that were followed to complete the exercise continues, which consists of a vulnerable virtual machine extracted from the Vulnhub repository, this machine is named Mr. Robot, in reference to the TV show of the same name.
Finally, the conclusions of the project and the course are presented, in addition to the inclusion of all the bibliographic sources that were used for the preparation of the document.
Keywords
Pentesting
Vulnhub
Mr. Robot
CTF
Nmap
Metasploit
2. Introducción
Con el presente trabajo se pondrán en práctica conceptos, técnica y herramientas de hacking con las que se completara un reto de CTF en una máquina virtual inspirada en el programa de televisión Mr. Robot, antes de iniciar esta práctica primero necesitamos conocer los fundamentos, conceptos, herramientas y técnicas que se podrán usar para resolver este ejercicio, por lo que a continuación se presenta una breve investigación que realice para contar con un mayor contexto al realizar este ejercicio.
Comenzando por el sistema en el que se correrán las máquinas virtuales, en mi caso use Virtual Box, esta es una aplicación para implementar máquinas virtuales sin importar el sistema operativo incorpore tu equipo ya sea Windows, Linux o Mac Os, con lo que podrás tener múltiples sistemas operativos corriendo en un mismo dispositivo. Esto es de gran utilidad para probar aplicaciones de otro sistema operativo sin tener que hacer particiones o el proceso de instalar Linux junto a Windows 10, teniendo la posibilidad de instalar el mismo sistema operativo del equipo, pero en una máquina virtual especialmente útil si se desea hacer algún cambio importante en la configuración o instalar alguna aplicación peligrosa, al ejecutarlo en un ámbito controlado de máquina virtual se evita que cualquier cambio repercuta en el sistema principal.
Para esta práctica se hará uso de la distribución Kali Linux que está basada en Debian fue diseñada principalmente enfocada en la seguridad, en esta se pueden realizar análisis de redes, análisis forenses, ataques inalámbricos, lo que la hace un sistema muy completo, tanto para defensores, que buscan un sistema más seguro, como para atacantes en busca de datos de valor. Este sistema incorpora herramientas para realizar pruebas de seguridad y análisis tanto de forma gráfica como mediante comandos como Foremost, Wireshark, Maltigo as-Aircrack-ng, Kismet, etc.
A continuación, se presentaran herramientas que fueron usadas para completar esta práctica, así como también otras que igualmente pueden cumplir con ese objetivo, Netdiscover “es una herramienta activa/pasiva para el reconocimiento de direcciones, desarrollada principalmente para redes inalámbricas sin servidor dhcp, aunque también puede ser utilizada en redes con hub o switch, fue construido sobre libnet y libcap, este puede detectar de manera pasiva hosts en funcionamiento, o buscarlos enviando solicitudes ARP, igualmente se puede emplear esta herramienta para inspeccionar el tráfico de red ARP o encontrar direcciones de red con el modo de auto escaneo” como se menciona en el artículo Sondeo de la Red con Netdiscover por ReYDeS.
Nikto es un escáner de vulnerabilidades de servidor web de código abierto, está escrito en Perl, que ofrece la posibilidad de buscar más de 6,400 verificaciones sobre fallas potencialmente peligrosas del servidor web.
Hydra es una herramienta de auditoría de inicio de sesión que trabaja con múltiples tareas en paralelo, soporta una gran variedad de protocolos, es muy rápido y flexible, esta herramienta permite obtener acceso no autorizado a un sistema de forma remota, se puede usar ataques de fuerza bruta o ataques de diccionario contra sistemas de inicio de sesión. 
WPScan es una herramienta de código abierto que nos permite analizar la seguridad de cualquier sitio web con WordPress, podemos proteger el sitio analizado al atender los avisos y la información obtenida a partir de esta herramienta, ya que esta herramienta es la que usan muchos intrusos para analizar y encontrar posibles vulnerabilidades en el sitio. La herramienta es posible usarla desde la terminal de comando en Kali Linux en donde recoge las vulnerabilidades del sitio y estas son fácilmente detectables.
Lo que nos lleva a nuestro siguiente punto WordPress, este es un sistema de gestión de contenidos web de código abierto para publicar contenido en la web de forma sencilla, debido a que hace que la creación de contenido web no dependa sólo de programadores y de personas de alto conocimiento técnico, permitiendo que cualquier persona puede crear una web.
Volviendo a las herramientas, la siguiente es Metasploit “es una herramienta para desarrollar y ejecutar exploits además de realizar auditorías de seguridad. Creado originalmente en lenguaje de programación Perl, el Metasploit Framework ha sido completamente reescrito en lenguaje Ruby. Principalmente utilizado por administradores de sistemas para probar las vulnerabilidades del sistema informático que protegen, o por hackers con fines de piratería informática” como menciona en el artículo publicado en la página web PcHardwarePro. 
Netcat es una herramienta que sirve para escribir y leer datos en la red, para la transmisión de datos usa los protocolos de red TCP/IP y UDP, que puede operar en modo servidor y cliente, esta herramienta puede utilizarse para diagnosticar errores y problemas que afecten a la funcionalidad y la seguridad de una red, también puede escanear puertos, transferir datos, configurar servidores de chat y de web e iniciar consultas por correo. 
John The Ripper “es una herramienta de crackeo de contraseñas escrita en C, utilizada por analistas de seguridad para comprobar la robustez de una clave frente a ataques de fuerza bruta. Este programa es capaz de romper los hashes MD5, SHA-1, además de detectar de forma automática el tipo de hash que estamos crackeando, está optimizado para muchos modelos de procesadores, arquitecturas y sistemas operativos. Este programa permite definir la longitud a testear de una contraseña, para generar todas las combinaciones posibles y lograr el objetivo de crackear el hash. También permiteconfigurar qué rango de letras, números o símbolos podemos probar para descifrar la contraseña” como lo explica Sergio De Luz en su artículo sobre John The Ripper.
Por último, Nmap es una herramienta de código abierto utilizada para el escaneo de redes, puertos y vulnerabilidades de servicios en auditorías de seguridad y monitoreo de redes. Con esta herramienta se puede identificar los dispositivos conectados a la red, conocer los puertos abiertos, el sistema operativo o aplicación en ejecución y su versión, además de encontrar servicios vulnerables en la red. Estos escaneos pueden ser de tipo activo o pasivo, en los activos los resultados son más precisos, pero dejamos huellas detectables por firewalls y en los pasivos obtenemos resultados no tan precisos, pero es más difícil que seamos detectados.
Con la anterior investigación cubrimos los principales conceptos y herramientas necesarias para realizar ejercicios como el que se presentara a continuación, los autores de la información presentada anteriormente se encuentran al final del documento en el área de referencias.
3. Desarrollo
Para comenzar con esta práctica primeramente me dirigí al repositorio de máquinas virtuales Vulnhub en donde encontré una maquina relacionada al programa de televisión Mr. Robot, esta máquina es un ejercicio de CTF que tiene como objetivo que el usuario consiga él acceso root y durante este proceso además encuentre tres llaves escondidas, este ejercicio se recomienda para principiantes debido a que no se requiere de técnicas avanzadas de explotación o ingeniería reversa como lo indica el creador.
Previamente a esto debemos tener descargado el software de Virtual Box y Kali para poder proseguir con este ejercicio, una vez teniendo los tres archivos anteriormente mencionados procedemos a iniciar la máquina virtual Mr. Robot, esta nos mostrara la siguiente interfaz en donde nos solicita un usuario y una contraseña.
Imagen 1. Interfaz VM Mr. Robot
A continuación, abrimos la máquina virtual de Kali en donde realizaremos el ejercicio y desplegamos la terminal de comandos, lo primero que tenemos que realizar es un escaneo de la red para encontrar las direcciones IP abiertas y así saber con certeza la dirección perteneciente a la maquina objetivo. En mi caso fue la dirección 192.168.3.16 (realice este ejercicio varias veces olvide tomar la captura de pantalla del primero es por ello que la dirección es diferente) posteriormente ejecute un escaneo de tipo SYN con la herramienta nmap para identificar que puertos están abiertos como se puede observar en la imagen 3.
Imagen 2. Escaneo de redes
Imagen 3. Escaneo SYN
Teniendo esta información procedí a ingresar la dirección en un navegador web y se desplego una animación seguida del texto mostrado en la siguiente imagen. 
Imagen 4. Página web misteriosa
Después de ingresar a la anterior página al no encontrar nada relevante procedí a realizar una enumeración usando con la herramienta nmap, con esto encontré que la dirección hace referencia a un sitio web creado con WordPress, además de encontrar un archivo llamado “Robots.txt”. 
Imagen 5. Enumeración.
Al incluir la ruta a la dirección IP, pude acceder a una interfaz de login de WordPress como se presuponía (192.168.3.16/wp-login.php), posteriormente ingrese con la misma dirección únicamente sustituyendo “/wp-login.php” por “/robots.txt” en donde encontré la primera llave, lo que nos indica que vamos en la dirección correcta, en esta página también se encontró un archivo titulado “fsocity.dic” lo que nos hace pensar que es un diccionario para poder ingresar a la página de WordPress anteriormente encontrada.
Imagen 6. Primera llave
Imagen 7. Extracción de Primera llave y diccionario.
Al ingresar al diccionario nos damos cuenta de que es muy extenso, ejecutamos un comando para contar las palabras que contiene y nos indica que cuenta con más de 850 000 palabras, por lo que usar este diccionario para realizar un ataque el cual nos perita conocer usuario y contraseña, llevaría mucho tiempo, por lo tanto se ejecutó un comando con el cual solo agrupe las palabras diferentes, con esta acción el diccionario se redujo a 11 451 lo que es considerablemente menor aunque sigue siendo un diccionario extenso.
En otro caso procederíamos a ejecutar una comparación de cada una de las 11 451 palabras para obtener el usuario y después nuevamente otra comparación para obtener la contraseña, pero debido a que esta máquina hace referencia al programa de televisión Mr. Robot podemos intuir que algunos de los nombres de los personajes principales estarán en el diccionario, primero localice el nombre del personaje principal Elliot en el diccionario y posteriormente use este nombre como usuario y escribí una contraseña aleatoria con el objetivo de conocer si este nombre cuenta con una cuenta en la página encontrada de WordPress.
Al momento de ingresar el usuario “elliot” y una contraseña aleatoria la página de login envió un aviso indicando que la contraseña estaba equivocada por lo que se pudo obtener de forma sencilla un usuario, por lo que ahora es necesario obtener la contraseña, para esta parte utiliza la herramienta WPScan para realizar un ataque de diccionario, reduciendo considerablemente la carga y el tiempo de ejecución de esta tarea al ya conocer un usuario valido.
Imagen 8. Obtención de contraseña WP.
Imagen 9. Acceso a cuenta WP.
Al finalizar la ejecución de la herramienta WPScan se obtuvo la contraseña del usuario “elliot” lo me permitió ingresar con su cuenta a la página de WordPress, ya con el acceso el siguiente paso fue insertar código que nos genere una Shell inversa para poder tener acceso al sistema operativo, para esta tarea utilice un módulo de Metasploit llamado “/wp_admin_shell_upload” en donde se realizó la configuración que requiere la herramienta como usuario, contraseña y dirección IP, para poder ser ejecutada correctamente.
Imagen 10. Uso de Metasploit.
Cuando termino la ejecución de esta herramienta procedí a añadir una línea de código que me permitiera obtener una Shell con mayores privilegios debido que la Shell que genera la herramienta Metasploit es algo limitada y no cumple con lo que necesitamos para seguir escalando privilegios y llegar a la última llave. Este comando es: python –c ‘import pty;pty.spawn(“/bin/bash”)’
Imagen 11. Segunda llave.
Con el anterior comando accedimos al usuario daemon con el que pudimos encontrar la segunda llave y un archivo nombrado “password.raw-md5”, como se muestra en la anterior imagen. Cuando se intenta extraer la segunda llave la consola nos indica que no tenemos permiso para realizar esta acción por lo que nuevamente debemos de cambiar de usuario a uno que cuente con mayores privilegios, al intentar abrir el segundo archivo nos devuelve la contraseña encriptada del usuario robot. 
El siguiente paso es crackear la contraseña, esta tarea la podemos realzar con “Hashcat” o “John the Ripper”, así como también podemos emplear una página web en donde puedes obtener la contraseña siempre y cuando está ya haya sido crackeada por alguien más, esta es una buena práctica ya que nos ahorra tiempo y en el caso de que nadie más haya crackeado el código que buscamos, siempre podemos volver a la terminal de comandos y usar otra herramienta.
Imagen 12. Crackeo de hash.
En este caso si se pudo obtener la contraseña por medio de la página web CrackStation por lo que procedí a ingresar al usuario robot con la contraseña obtenida, ya con este usuario volví a intentar extraer la Segunda llave en la cual anteriormente no tenía un usuario autorizado y en esta ocasión si se logró obtener la llave.
Imagen 13. Extracción de Segunda llave.
Hasta el momento he obtenido las primeras dos llaves e ingresado al usuario robot por lo que se tiene que seguir enumerando el sistema, el siguiente paso es buscar archivos con permiso suid, mediante el siguiente comando “ find / -perm -4000 -type f 2>/dev/null “. Tras esta búsqueda el comando arrojo los archivos mostrados en la siguiente imagen, en donde podemosobservar que existe una versión de nmap con permisos suid en la carpeta “/usr/local/bin/nmap”.
Imagen 14. Búsqueda de archivos suid.
Con la información recabada se identificamos que podemos acceder a una Shell con permisos suid mediante el uso de la herramienta nmap en su modo interactivo como se presenta en la siguiente imagen. Con esta herramienta podemos identificar que el carácter “!” nos permite lograr este objetivo.
Imagen 15. Nmap Interactive.
Ya con el usuario root finalmente encontramos la tercera y última llave, además de poder extraer el código gracias a que la maquina me reconoce como usuario root y me permite obtener el ultimo código, como se presenta en la siguiente imagen.
Imagen 16. Obtención y Extracción de Tercera llave.
Con el anterior paso se da por finalizado el ejercicio de CTF de la maquina Mr. Robot, durante el cual se obtuvieron los siguientes resultados:
· key-1-of-3.txt
073403c8a58alf80d943455fb30724b9
· key-2-of-3.txt
822c73956184f694993bede3eb39f959
· key-3-of-3.txt
04787ddef27c3dee1ee161b21670b4e4
WP_User: elliot
WP_Pass: ER28-0652
Username: robot
Password: abcdefghijklmnopqrstuvwxyz
En la presente máquina virtual se pudo obtener los mismos resultados siguiendo diferentes caminos, en mi caso empleé las herramientas: netdiscovery, nmap, WPScan, Metasploit, CrackStation y nmap (en su versión interactiva), con las que pude completar satisfactoriamente el reto CTF de esta máquina virtual al obtener las tres llaves y el usuario root, espero poder aprender más técnicas y completar más retos como este, además de elevar progresivamente el nivel de la dificultad puesto que me parecieron ejercicios interesantes en donde se aprende mucho y con los que puedes poner en práctica la parte teórica aprendida durante las sesiones presenciales.
4. Conclusiones
Con la realización de este proyecto pude poner en práctica los conocimientos adquiridos durante la asignatura de Hacking Ético y Análisis Forense, en mi caso elegí hacer el proyecto enfocado en el área de hacking ético porque me pareció más interesante que realizar una práctica de análisis forense, esto porque durante la primera sesión el profesor nos enseñó un ejemplo de una práctica de hacking ético y me intereso mucho todas las posibilidades que existen para llegar a un mismo objetivo.
En el curso también aprendí que la ética es una parte fundamental durante la enseñanza del hacking debido a las grandes implicaciones que tiene el uso mal intencionado de estos conocimientos, aunque el tema de la enseñanza de hacking de mera formal en universidades pueda ser algo polémico puesto que muchas personas piensan que representa un gran peligro el que prácticamente cualquiera pueda aprender cómo realizar ataques cibernéticos, esto en mi opinión tiene sentido hasta cierto punto, puesto que actualmente se pude acceder al conocimiento de forma muy sencilla desde prácticamente cualquier dispositivo con acceso a internet, de forma autodidacta ya sea con libros o videos de YouTube, por lo tanto la enseñanza en universidades es considerablemente mejor porque en la instituciones educativas durante el proceso de enseñanza se hace especial énfasis en el uso ético de los conocimiento impartidos, a diferencia de aprenderlo por cuenta propia, claro esto depende totalmente de cada individuo, no porque adquieras estos conocimientos de manera informal significa que son con el objetivo de dañar a alguien o realizar algún acto ilícito, es por ello que pienso que la enseñanza del hacking ético es algo bueno porque le da más herramientas a los futuros profesionales de la seguridad de la información con las que puedan implementar mejores controles de seguridad para salvaguardar el activo más importante de toda organización, la información.
Con respecto al Análisis Forense puedo concluir que es una herramienta muy importante porque nos permite conocer cómo es que fue atacado el sistema analizado, con lo que se podrán identificar otras posibles vulnerabilidades existentes en el sistema y así evitar más incidentes en el futuro, en el sentido práctico del análisis forense me pareció interesante pera a la vez tedioso, puesto que es interesante saber cómo es que el atacante pudo entrar en el sistema, así como conocer las técnicas que empleo y de cierta forma conocer cuál fue el pensamiento del atacante cuando ingreso al sistema, aunque parte negativa o aburrida de esto es que para realizar un análisis forense de calidad es necesario dedicarle mucho tiempo en revisar cada parte del sistema y encontrar las vulnerabilidades que fueron explotadas, a diferencia de la parte del hacking en donde nosotros somos los que estamos del lado de la acción por decirlo de alguna forma.
Para finalizar con este curso concluyo que es muy importante que un profesional de la seguridad de la información tenga estos conocimientos y en lo personal me pareció muy interesante este curso tanto la parte teórica como las practicas compartidas por el profesor, y espero poder aplicar todos los conocimientos adquiridos en un futuro próximo.
5. Referencias
Fernández, Y. (2020, 1 junio). VirtualBox: qué es y cómo usarlo para crear una máquina virtual con Windows u otro sistema operativo. Xataka. https://www.xataka.com/basics/virtualbox-que-como-usarlo-para-crear-maquina-virtual-windows-u-otro-sistema-operativo
Altube, R. (2021, 5 noviembre). Kali Linux: Qué es y características principales. OpenWebinars.net. https://openwebinars.net/blog/kali-linux-que-es-y-caracteristicas-principales/
Caballero, A. (2014, 14 febrero). Sondeo de la Red con Netdiscover | Alonso Caballero / ReYDeS. Reydes.Com. http://www.reydes.com/d/?q=Sondeo_de_la_Red_con_Netdiscover
Caballero, A. (2018, 30 agosto). Escanear un Servidor Web utilizando Nikto | Alonso Caballero / ReYDeS. Reydes.Com. http://www.reydes.com/d/?q=Escanear_un_Servidor_Web_utilizando_Nikto
Flores, J. (2021, 4 junio). Hydra - Herramienta de Fuerza Bruta. Kolibërs Group. https://www.kolibers.com/blog/hydra-herramienta-de-fuerza-bruta.html
Casares, J. (2022, 10 enero). Seguridad WordPress con WPScan. Administración de Sistemas WordPress. https://www.wpsysadmin.com/extra/wpscan/
Cajasol, I. E. (2020, 11 septiembre). ¿Qué es WordPress, Para Qué Sirve y Cómo Funciona? Instituto de Estudios Cajasol | Escuela de Negocios en Sevilla. https://institutocajasol.com/que-es-wordpress-y-como-funciona/
PcHardwarePro. (2019, 24 marzo). ¿Qué es Metasploit y cómo utilizarlo correctamente? https://www.pchardwarepro.com/que-es-metasploit-y-como-utilizarlo-correctamente/
Johnson, L. (2016, 28 junio). Mr-Robot: 1. Vulnhub.Com. https://www.vulnhub.com/entry/mr-robot-1,151/
Ionos. (2021, 4 octubre). ¿Qué es Netcat y cómo funciona? IONOS Digitalguide. https://www.ionos.mx/digitalguide/servidores/herramientas/netcat/
De Luz, S. (2021, 9 septiembre). Crackea contraseñas rápidamente usando John the Ripper. RedesZone. https://www.redeszone.net/tutoriales/seguridad/crackear-contrasenas-john-the-ripper/
Gomez, V. (2019, 12 mayo). Qué es Nmap (Network Mapper) – DOJOConf Panamá 2021. dojoconfpa.org. https://dojoconfpa.org/nmap-network-mapper/
2

Otros materiales