404-Not-Found
Maquina 404-not-found
de DockerLabs
Autor: d1se0
Dificultad: Medio

RECONOCIMIENTO
Comenzamos haciendo un escaneo de nmap:
nmap -p- 172.17.0.2 -n --open --min-rate 5000 -Pn -sSVC -A -oN escaneo.txt
# Nmap 7.94SVN scan initiated Sat Aug 24 15:03:05 2024 as: nmap -p- -n --open --min-rate 5000 -Pn -sSVC -A -oN escaneo.txt 172.17.0.2
Nmap scan report for 172.17.0.2
Host is up (0.00012s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 59:4e:10:e2:31:bf:13:43:c9:69:9e:4f:3f:a2:95:a6 (ECDSA)
|_ 256 fb:dc:ca:6e:f5:d6:5a:41:25:2b:b2:21:f1:71:16:6c (ED25519)
80/tcp open http Apache httpd 2.4.58
|_http-title: Did not follow redirect to http://404-not-found.hl/
|_http-server-header: Apache/2.4.58 (Ubuntu)
MAC Address: 02:42:AC:11:00:02 (Unknown)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: Host: default; OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 0.12 ms 172.17.0.2
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Sat Aug 24 15:03:15 2024 -- 1 IP address (1 host up) scanned in 10.07 seconds
Al parecer hay un dominio llamado 404-not-found.hl
, por lo que lo tenemos que agregar en /etc/hosts
de la siguiente manera:
$IP 404-not-found.hl
Una vez hecho esto continuaremos por el navegador ya que el escaneo no nos dice mas nada.
PUERTO 80

Luego de revisar un rato y usar gobuster no encontrƩ nada mas que una "clave" en /participar.html
;que realmente era un mensaje en base64 que dice "Que haces?, mira en la URL.". SegĆŗn el mensaje dice que tenemos que mirar la URL, por lo que podriamos intentar buscar subdominios con wfuzz de la siguiente manera:
wfuzz --hl 9 -w <WORDLIST> -u "http://404-not-found.hl" -H "Host: FUZZ.404-not-found.hl"
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://404-not-found.hl/
Total requests: 220560
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000000085: 200 149 L 152 W 2023 Ch "info"
como vemos, hay un subdominio "info" en el cual lo agregamos al /etc/hosts
de la siguiente manera:
$IP 404-not-found.hl info.404-not-found.hl
Esto para que podamos entrar desde el navegador.
Una vez que entramos a info.404-not-found.hl
vemos lo siguiente:
Luego de revisar un poco el codigo fuente, se ve en el final lo siguiente:
<!-- I believe this login works with LDAP -->
Por lo que si buscamos LDAP injection
, podemos probar si alguno de la pÔgina funciona(en mi caso me funcionó esta pÔgina con admin*)(uid=*))(|(uid=*
). Una vez probado estaremos dentro y nos da un usuario y contraseƱa del ssh:

INTRUSION
Ahora nos conectamos mediante ssh con las credenciales que tenemos y listo. ya estamos dentro
ESCALADA DE PRIVILEGIOS
404-page
Una vez dentro podemos probar un sudo -l
y vemos lo siguiente:
(200-ok : 200-ok) /home/404-page/calculator.py
Intentamos leerlo sin exito pero al ejecutarlo tampoco se ve nada que podamos aprovechar. Ahora intentaremos buscar si hay algĆŗn mensaje en un ".txt" ejecutando:
find / -name "*.txt" 2>/dev/null
/usr/lib/python3/dist-packages/dbus_python-1.3.2.egg-info/dependency_links.txt
/usr/lib/python3/dist-packages/dbus_python-1.3.2.egg-info/top_level.txt
/usr/lib/python3/dist-packages/distro-1.9.0.dist-info/entry_points.txt
/usr/lib/python3/dist-packages/distro-1.9.0.dist-info/top_level.txt
/usr/lib/python3/dist-packages/ssh_import_id-5.11.egg-info/dependency_links.txt
/usr/lib/python3/dist-packages/ssh_import_id-5.11.egg-info/entry_points.txt
/usr/lib/python3/dist-packages/ssh_import_id-5.11.egg-info/requires.txt
/usr/lib/python3/dist-packages/ssh_import_id-5.11.egg-info/top_level.txt
/usr/lib/python3.12/LICENSE.txt
/usr/share/perl/5.38.2/Unicode/Collate/allkeys.txt
/usr/share/perl/5.38.2/Unicode/Collate/keys.txt
/usr/share/perl/5.38.2/unicore/Blocks.txt
/usr/share/perl/5.38.2/unicore/NamedSequences.txt
/usr/share/perl/5.38.2/unicore/SpecialCasing.txt
/var/www/nota.txt
Como vemos si hay una nota, y al leerla nos dice "En la calculadora no sĆ© para quĆ© se usa el sĆmbolo "!" seguido de algo mĆ”s, sólo 200-ok lo sabe.". Sabiendo esto podriamos intentar ejecutar la calculadora nuevamente con sudo -u 200-ok /home/404-page/calculator.py
pero en vez de poner numeros, ponemos !bash
y ya escalamos de usuario.
200-ok
Nuevamente intentamos ejecutar sudo -l
pero como no tenemos la contraseña descartamos la opción.
Al irnos a nuestra home vemos una flag y un archivo llamado "boss.txt" que dice "¿Qué es rooteable?", podemos intentar usar "rooteable" como contraseña para root, por lo que ejecutamos su root
y ponemos la contraseƱa y listo, ya somos root.

Adiós.
Ćltima actualización