HackMyVM - Darkside

logo

  • Brute Force Login Form
  • Password Leaking
  • Abuse Nano Binary - Sudo Privesc

Escaneo de puertos

❯ nmap -p- -T5 -n -v 192.168.1.15

PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Escaneo de servicios

❯ nmap -sVC -v -p 22,80 192.168.1.15

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
| ssh-hostkey: 
|   3072 e0:25:46:8e:b8:bb:ba:69:69:1b:a7:4d:28:34:04:dd (RSA)
|   256 60:12:04:69:5e:c4:a1:42:2d:2b:51:8a:57:fe:a8:8a (ECDSA)
|_  256 84:bb:60:b7:79:5d:09:9c:dd:24:23:a3:f2:65:89:3f (ED25519)
80/tcp open  http    Apache httpd 2.4.56 ((Debian))
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
| http-methods: 
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: The DarkSide
|_http-server-header: Apache/2.4.56 (Debian)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

HTTP TCP - 80

En el puerto 80 veo un panel de login.

http

Fuerza bruta de directorios al puerto 80.

gobuster

Con el navegador visito el directorio backup.

backup

Archivo vote.txt enumero el usuario kevin.

votetxt

Configuro owasp-zap para realizar fuerza bruta al panel de loguin con el usuario kevin.

zap

Encuentro la contraseña de kevin.

zap-password-found

Ingreso las credenciales y veo el siguiente mensaje.

helloKevin

La siguiente cadena esta codificada en base58 y base64.

decodestrings

Con el navegador visito sfqekmgncutjhbypvxda.onion

onionlink

Inspeccionando el código fuente veo lo siguiente, si la cookie side tiene el valor darkside, redirige al usuario a hwvhysntovtanj.password.

codigofuente

Sabiendo esto abro el cookie-quick-manager y cambio el valor whiteside por darkside y guardo los cambios.

cookie-manager

Refresco la página y obtengo las credenciales del usuario kevin.

creds

Accedo al sistema.

❯ ssh kevin@192.168.1.15
kevin@192.168.1.15's password: 
Linux darkside 5.10.0-26-amd64 #1 SMP Debian 5.10.197-1 (2023-09-29) x86_64
kevin@darkside:~$ ls
user.txt

Enumero usuarios mediante el fichero passwd.

kevin@darkside:~$ cat /etc/passwd | grep bash
root:x:0:0:root:/root:/bin/bash
kevin:x:1000:1000:kevin,,,:/home/kevin:/bin/bash
rijaba:x:1001:1001:,,,:/home/rijaba:/bin/bash

Al listar los archivos ocultos del home veo el archivo .history.

kevin@darkside:~$ ls -la
total 40
drwxr-xr-x 4 kevin kevin 4096 Oct 31 13:45 .
drwxr-xr-x 4 root  root  4096 Oct 15 13:19 ..
lrwxrwxrwx 1 kevin kevin    9 Oct 30 08:41 .bash_history -> /dev/null
-rw-r--r-- 1 kevin kevin  220 Oct 15 12:54 .bash_logout
-rw-r--r-- 1 kevin kevin 3526 Oct 15 12:54 .bashrc
drwx------ 3 kevin kevin 4096 Oct 31 14:06 .gnupg
-rw-r--r-- 1 kevin kevin  113 Oct 15 13:37 .history
drwxr-xr-x 3 kevin kevin 4096 Oct 15 13:37 .local
-rw-r--r-- 1 kevin kevin  807 Oct 15 12:54 .profile
-rw-r--r-- 1 kevin kevin   19 Oct 15 13:38 user.txt
-rw-r--r-- 1 kevin kevin  215 Oct 31 13:58 .wget-hsts

Con cat visualizo el contenido de .history y encuentro la contraseña del usuario rijaba.

kevin@darkside:~$ cat .history 
echo "Congratulations on the OSCP Xerosec"
top
ps -faux
su rijaba
I*********a
ls /home/rijaba

User pivoting a rijaba.

kevin@darkside:~$ su rijaba
Password: 
rijaba@darkside:/home/kevin$ id
uid=1001(rijaba) gid=1001(rijaba) groups=1001(rijaba)

Enumero permisos de sudo.

rijaba@darkside:~$ sudo -l
Matching Defaults entries for rijaba on darkside:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

User rijaba may run the following commands on darkside:
    (root) NOPASSWD: /usr/bin/nano

Con gtfobins-cli me muestra como obtener el root con nano.

gtfobinsnano

^R = ctrl+R.

ctrlR

^X = ctrl+X .

ctrlX

Al pulsar enter obtengo el root pero se ve mal la terminal, con un simple clear se soluciona.

root

Lanzo un source /etc/skel/.bashrc para dar color a mi terminal.

rootcolor

Y aquí termina la máquina Darkside.

Saludos!