Compartir tecnología

Utilice Docker para crear un entorno vulnerable y utilice SSRF Redis para escribir las claves públicas de centos y ubuntu para lograr un inicio de sesión sin contraseña.

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Entorno experimental

kali: cree un entorno de contenedor acoplable en kali. Aquí uso principalmente el primero;

Como base de datos, redis puede escribir datos en la memoria. Usamos solicitudes ssrf para permitir que el servidor escriba su propia clave pública para experimentar con el inicio de sesión sin contraseña;

2. Proceso experimental

Preparación preliminar y pruebas.

Redis guarda datos en forma de valores clave. Aquí utilizo el entorno centos creado con Docker;

Utilice el siguiente comando para ingresar al contenedor centos;

docker exex -it 容器的编号 /bin/bash

Dado que centos ya tiene un script para ejecutar redis-server, solo necesitamos habilitar redis-cli en el contenedor;

Pruebe si se puede escribir normalmente. Como se muestra en la figura, el contenido escrito o el directorio se pueden modificar.

El nombre del archivo también se puede modificar, de modo que podamos construir una clave pública y escribirla en el servidor de destino para lograr un inicio de sesión sin contraseña;

Después de la modificación, guárdelo, como se muestra en la imagen, ¡la escritura fue exitosa!

Problemas que surgen y se resuelven.

Si el servidor no se puede conectar, podemos usar ./start.sh para ejecutar este script;

Breve introducción de la SSRF e inicio del experimento.

Falsifique solicitudes a través del servidor, use el protocolo gopher o time dict para solicitar redis y escriba archivos.

guión de generación de tuza

Carga útil generada

Para que podamos realizar una solicitud, pegue el contenido anterior y haga clic en Obtener

Problemas encontrados

Cuando realicé Fetch por primera vez, descubrí que el archivo no existía. Esto se debía a que su propia clave pública no se generó en el entorno centos, lo que hacía imposible escribirlo. Por lo tanto, debe usar ssh-keygen para generarlo. clave pública en centos por adelantado;

resultado

Se puede ver que la clave pública se escribió correctamente en el servidor de destino;

Luego puede iniciar sesión a través de ssh sin contraseña. ¡Se puede ver que el inicio de sesión se realizó correctamente!

Problemas encontrados

Hay algunos problemas en el entorno Dockerfile, lo que impide que se inicie el puerto 22 en la imagen de la ventana acoplable, por lo que el archivo se modifica y ejecuta /usr/sbin/sshd para iniciar sshd.

Cuando encontramos el error de descarga mencionado anteriormente, podemos simplemente inicializar el archivo, como se muestra en la siguiente figura;

3. Resumen

Los pasos para centos y ubuntu son casi los mismos, excepto que debido al mecanismo de protección de redis, habrá los siguientes errores, lo que provocará que algunos atributos no se puedan modificar. La solución es desactivar el modo protegido y utilizar lo siguiente. dominio;

config set protected-mode no

Debido a las restricciones de la versión de Redis, la seguridad de 7.2.5 es demasiado alta, lo que provocará que falle el inicio de sesión ssh sin contraseña, así que lo saqué aquí.

Versión 5.0.5

Luego utilice la misma operación para lograr un inicio de sesión sin contraseña;