BadPlugin
Maquina BadPlugin de DockerLabs
Autor: El Pingüino de Mario
Dificultad: Medio

Reconocimiento
Comenzamos con un escaneo de nmap:
(En mi caso la ip de la maquina es 192.168.1.100)
Solo vemos un puerto abierto en la maquina ubuntu:
•Puerto 80: Apache httpd 2.4.58
Fuzzing
Luego de revisar la web manualmente, no encuentro nada, por lo que me dispongo a realizar fuzzing con gobuster:
luego de revisar todo, veo que lo interesante es /wordpress/, ya que este tiene un dominio el cual es escolares.dl, por lo que lo agregamos al /etc/hosts de la siguiente manera:
Wordpress intrusion
Como sabemos, wordpress tiene algunos archivos predeterminados, así que podemos ir al panel de login entrando en http://<SINP>/wp-login.php. Luego de probar varios usuarios, veo que el correcto es admin, ya que el mensaje de error dice lo siguiente:
esto significa que el usuario admin existe, por lo que ahora simplemente debemos hacer fuerza bruta al panel usando hydra. Para esto hacemos un intento de login incorrecto teniendo abiertas las devtools de firefox en la parte de network:

como vemos en la imagen, tenemos que seleccionar la solicitud POST, ya que esta es la única que nos interesa. Una vez seleccionada vamos a la sección Solicitud y seleccionamos Sin procesar y ya tendremos la solicitud en crudo para pasársela a hydra:
Finalmente, el ataque nos quedaría asi:

ahora ya tenemos la contraseña, por lo que simplemente nos logearemos.
Intrusión
Normalmente podríamos instalar un plugin que nos permita entrar, pero como la maquina deja sin internet toda la computadora, tendremos que crear nuestro propio plugin.
Plugin creation
Para esto empezaremos creando un archivo llamado shell.php el cual contenga esto:
luego, ejecutaremos lo siguiente:
Ahí tienes que reemplazar <$IP> por la ip tuya y la salida ponerla en el script php en la parte que dice "base64prompt". Una vez tenemos el archivo php listo, lo metemos en un zip de la siguiente manera:
luego, vamos a el wordpress, y en la sección de "Añadir Plugin", tocamos donde dice "Subir plugin" y desde ahí cargamos el que acabamos de crear. Finalmente, escuchamos por el puerto 4444:
y entramos en:
Escalada de privilegios
www-data
Enumeración de binarios con SUID
Una vez dentro y con el tratamiento de la tty realizado, procedemos a buscar binarios con el SUID activado de la siguiente manera:
Binary gawk abuse
Como vemos en el resultado, gawk se encuentra en la lista, por lo cual significa que podríamos escribir archivos, ya que gawk es como awk. Para hacerlo debemos ejecutar lo siguiente:
esto eliminará la 'x' de root y podremos escalar ejecutando su root sin necesidad de contraseña.
Root

Gracias por leer ;)
Última actualización