¡Bienvenido al manual de Pentesting para principiantes en TomGhost TryHackMe! En esta guía, aprenderás los pasos básicos para realizar una prueba de penetración en la máquina TomGhost de la plataforma TryHackMe. A continuación, te explicaré los comandos y herramientas utilizadas en cada paso.

Paso 1: Comprobación de la conectividad

Para comenzar, es importante comprobar la conectividad con la máquina objetivo. Ejecuta el siguiente comando en tu terminal:

ping -c 1 <ipmaquina>

Este comando envía un paquete de solicitud de eco (ping) a la dirección IP de la máquina objetivo y espera una respuesta. Si recibes una respuesta exitosa, significa que tienes conectividad con la máquina.

Tomghost Tryhackme Ping

Paso 2: Escaneo de puertos básico

Realizaremos un escaneo de puertos básico utilizando la herramienta nmap. Ejecuta el siguiente comando:

nmap -p- <ipmaquina> -oN nmap_tomghost_nmap_basico

El comando nmap se utiliza para explorar los puertos abiertos en una máquina. En este caso, estamos escaneando todos los puertos disponibles en la máquina objetivo y guardando los resultados en el archivo «nmap_tomghost_nmap_basico».

Durante el escaneo, se identificaron los siguientes puertos abiertos y servicios correspondientes:

  • Puerto 22: Servicio SSH.
  • Puerto 53: Servicio DNS.
  • Puerto 8009: Desconocido.
  • Puerto 8080: Servicio HTTP.
Tomghost Nmap 1

Paso 3: Escaneo de puertos detallado

Ahora realizaremos un escaneo de puertos más detallado utilizando nmap. Ejecuta el siguiente comando:

nmap -p 22,53,8009,8080 -sCVS --min-rate 5000 -v -n <ipmaquina> -oN nmap_tomghost_completo

Este comando realiza un escaneo exhaustivo en los puertos específicos que hemos seleccionado y guarda los resultados en el archivo «nmap_tomghost_completo».

Durante el escaneo, se encontraron los siguientes servicios:

  • Puerto 22: OpenSSH 7.2p (Servicio SSH seguro).
  • Puerto 8080: Apache Tomcat 9.0.30 (Servidor de aplicaciones web).
Tomghost Tryhackme Nmap2

Paso 4: Búsqueda de vulnerabilidades en Apache Tomcat

En este paso, buscaremos vulnerabilidades conocidas en la versión de Apache Tomcat que hemos identificado (9.0.30). Para ello, clonaremos un repositorio de GitHub que contiene un exploit específico. Ejecuta el siguiente comando:

git clone https://github.com/dacade/CVE-2020-1938.git

Este comando clona el repositorio «CVE-2020-1938» desde GitHub. El exploit contenido en este repositorio nos ayudará a buscar vulnerabilidades en Apache Tomcat.

Paso 5: Preparación del exploit para su ejecución

Antes de ejecutar el exploit, debemos asegurarnos de que el archivo sea ejecutable. Utiliza el siguiente comando:

chmod u+x tomcat.py

Este comando otorga permisos de ejecución al archivo «tomcat.py», lo que nos permitirá ejecutarlo en el siguiente paso.

Tomghost Tryhackme Gitclone

Paso 6: Ejecución del exploit en Apache Tomcat

Ahora es el momento de ejecutar el exploit en Apache Tomcat utilizando el archivo «tomcat.py» que hemos preparado. Ejecuta el siguiente comando:

python3 tomcat.py <ipmaquina> -f /WEB-INF/web.xml -p 8009

En este comando, reemplaza <ipmaquina> con la dirección IP de la máquina objetivo. El exploit intentará aprovechar la vulnerabilidad en Apache Tomcat utilizando la ruta del archivo «/WEB-INF/web.xml» y el puerto «8009».

Durante la ejecución del exploit, se mostrarán posibles credenciales de acceso a la máquina.

Tomghost Tryhackme Exploit

Paso 7: Acceso por SSH utilizando las credenciales encontradas

Ahora que tenemos posibles credenciales de acceso, podemos intentar acceder a la máquina objetivo a través de SSH. Utiliza el siguiente comando:

ssh usuario@<ipmaquina>

Reemplaza <ipmaquina> con la dirección IP de la máquina objetivo y proporciona la contraseña correspondiente cuando se solicite.

Una vez que hayas accedido a la máquina, podrás explorar el directorio y encontrar dos archivos: uno con extensión «.pgp» y otro con extensión «.asc». Descargaremos estos archivos para trabajar con ellos y descifrarlos.

Tomghost Tryhackme Ssh1

Paso 8: Creación de un servidor HTTP en la máquina objetivo

Para descargar los archivos desde la máquina objetivo, necesitamos configurar un servidor HTTP en la máquina objetivo. Ejecuta el siguiente comando:

python3 -m http.server

Este comando utiliza el módulo http.server de Python para crear un servidor HTTP en la máquina objetivo. Esto nos permitirá descargar archivos desde la máquina objetivo a nuestro equipo atacante.

Tomghost Tryhackme Httpserver

Paso 9: Descarga de archivos desde la máquina atacante

Ahora podemos descargar los archivos necesarios desde la máquina objetivo. Utiliza el siguiente comando:

wget <ipmaquina>:8000/archivos

Reemplaza <ipmaquina> con la dirección IP de la máquina objetivo. Este comando utiliza la herramienta wget para descargar el directorio «archivos» desde el servidor HTTP en la máquina objetivo a tu equipo atacante.

Tomghost Tryhackme Wget

Paso 10: Desencriptación de archivos

Los archivos que hemos descargado están encriptados. Para desencriptarlos, seguiremos los siguientes pasos:

  1. Convierte el archivo «.asc» en un formato compatible con «John the Ripper» utilizando el siguiente comando:
   gpg2john tryhackme.asc > hash

Este comando convierte el archivo «tryhackme.asc» en un formato que puede ser utilizado por «John the Ripper» y guarda los resultados en el archivo «hash».

Tomghost Tryhackme Gpg2john
  1. Utiliza «John the Ripper» junto con un diccionario de contraseñas para intentar descifrar el archivo encriptado. Ejecuta el siguiente comando:
   john --wordlist=/ruta/diccionario hash

Asegúrate de reemplazar «/ruta/diccionario» con la ruta correcta de tu diccionario de contraseñas.

Tomghost Tryhackme John

Paso 11: Importación y desencriptación de archivos GPG

Una vez que hayas descifrado el archivo, importa la clave pública GPG desde el archivo «tryhackme.asc» a la lista de claves GPG utilizando el siguiente comando:

gpg --import tryhackme.asc

Luego, utiliza el siguiente comando para desencriptar el archivo «credential.pgp» utilizando la clave privada correspondiente:

gpg --decrypt credential.pgp
Tomghost Tryhackme Gpg

Paso 12: Acceso nuevamente por SSH con las nuevas credenciales

Ahora que tenemos las nuevas credenciales, podemos intentar acceder a la máquina objetivo nuevamente utilizando SSH. Ejecuta el siguiente comando:

ssh merlin@<ipmaquina>

Reemplaza <ipmaquina> con la dirección IP de la máquina objetivo y proporciona la contraseña correspondiente cuando se solicite.

Tomghost Tryhackme Ssh2

Paso 13: Captura de la primera bandera

Una vez que hayas accedido a la máquina como usuario «merlin», puedes capturar la primera bandera ejecutando el siguiente comando:

cat user.txt

Este comando muestra el contenido del archivo «bandera1.txt», que contiene la primera bandera obtenida durante el acceso como usuario «merlin».

Paso 14: Escalada de privilegios

Para realizar una escalada de privilegios, ejecuta el siguiente comando para verificar los privilegios disponibles para el usuario actual:

sudo -l

Este comando muestra los privilegios disponibles para el usuario actual y verifica si se tiene permiso para ejecutar comandos con privilegios de root. En este caso, encontramos la siguiente línea: «(root : root) NOPASSWD: /usr/bin/zip».

Tomghost Tryhackme Sudo

Paso 15: Escalada de privilegios con «zip»

Ahora que hemos identificado una posible forma de escalada de privilegios utilizando «zip», podemos aprovecharla. Seguiremos los siguientes pasos:

  1. Visita la página https://gtfobins.github.io/gtfobins/zip/#sudo para obtener información sobre cómo utilizar «zip» para obtener privilegios de root.
  2. Utiliza el siguiente comando para ejecutar la escalada de privilegios:
   TF=$(mktemp -u)
   sudo zip $TF /etc/hosts -T -TT 'sh #'

Este comando utiliza la vulnerabilidad en la configuración de «sudoers» para ejecutar el comando «zip» con privilegios de root. Crea un archivo temporal único y utiliza «sudo zip» para comprimir el archivo «/etc/hosts» y ejecutar un shell interactivo («sh») con privilegios de root.

Tomghost Tryhackme Root

Paso 17: Captura de la última bandera

Una vez que hayas obtenido privilegios de root, puedes capturar la última bandera ejecutando el siguiente comando:

cat root.txt

Este comando muestra el contenido del archivo «root.txt», que contiene la última bandera obtenida como usuario root.

Resumen TomGhost TryHackMe

En resumen, hemos realizado un proceso de pentesting en la máquina «tomghost» de TryHackMe. Los pasos seguidos fueron los siguientes:

  1. Comprobación de la conectividad con la máquina objetivo.
  2. Escaneo de puertos básico utilizando Nmap.
  3. Escaneo de puertos detallado para obtener información adicional sobre los servicios.
  4. Búsqueda de vulnerabilidades en Apache Tomcat utilizando un exploit específico.
  5. Preparación y ejecución del exploit en Apache Tomcat.
  6. Acceso por SSH utilizando las credenciales obtenidas.
  7. Descarga de archivos desde la máquina objetivo.
  8. Desencriptación de archivos utilizando GPG.
  9. Acceso nuevamente por SSH con las nuevas credenciales.
  10. Captura de la primera bandera.
  11. Escalada de privilegios utilizando la vulnerabilidad en «sudoers» y el comando «zip».
  12. Captura de la última bandera como usuario root.

Esta experiencia nos permitió adquirir conocimientos sobre el proceso de pentesting, desde la exploración y escaneo de puertos hasta la escalada de privilegios en un entorno controlado.

Recomendación de DCSeguridad

¡Te invitamos a ponerte en contacto con DCSeguridad y unirte a nuestro canal de Telegram!

DCSeguridad es una empresa líder en servicios de seguridad informática y pentesting. Nuestro equipo de expertos en seguridad puede ayudarte a proteger tu infraestructura y aplicaciones contra amenazas cibernéticas.

Te animamos a ponerte en contacto con nosotros para obtener más información sobre cómo podemos asegurar tu empresa y brindarte soluciones personalizadas. Únete a nuestro canal de Telegram para recibir las últimas actualizaciones y consejos de seguridad.

No dejes que tu empresa sea vulnerable a ataques cibernéticos. Confía en DCSeguridad para fortalecer tu seguridad y proteger tus activos digitales.

¡Contáctanos hoy mismo y mantén tu negocio seguro en el mundo digital!