Partage de technologie

Utilisez Docker pour créer un environnement de vulnérabilité et utilisez SSRF Redis pour écrire les clés publiques de Centos et Ubuntu afin d'obtenir une connexion sans mot de passe.

2024-07-12

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

1. Environnement expérimental

kali : Créer un environnement de conteneur Docker dans Kali. Ici, j'utilise principalement le premier ;

En tant que base de données, Redis peut écrire des données en mémoire. Nous utilisons des requêtes ssrf pour permettre au serveur d'écrire sa propre clé publique afin d'expérimenter une connexion sans mot de passe.

2. Processus expérimental

Préparation et tests préliminaires

Redis enregistre les données sous forme de valeurs clés. Ici, j'utilise l'environnement centos construit avec docker ;

Utilisez la commande suivante pour entrer dans le conteneur centos ;

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

Étant donné que centos dispose déjà d'un script pour exécuter redis-server, il nous suffit d'activer redis-cli dans le conteneur ;

Testez s'il peut être écrit normalement. Comme le montre la figure, le contenu écrit ou le répertoire peut être modifié.

Le nom du fichier peut également être modifié, afin que nous puissions construire une clé publique et l'écrire sur le serveur cible pour obtenir une connexion sans mot de passe ;

Après modification, enregistrez-le, comme le montre l'image, l'écriture est réussie !

Problèmes qui surviennent et résolus

Si le serveur ne peut pas être connecté, nous pouvons utiliser ./start.sh pour exécuter ce script ;

Brève introduction de SSRF et début de l'expérience

Forgez des requêtes via le serveur, utilisez le protocole Gopher ou Time dict pour demander Redis et écrivez des fichiers.

script de génération Gopher

Charge utile générée

Nous pouvons donc faire une demande, y coller le contenu ci-dessus et cliquer sur Récupérer

Les problèmes rencontrés

Lorsque j'ai exécuté Fetch pour la première fois, j'ai constaté que le fichier n'existait pas car sa propre clé publique n'était pas générée dans l'environnement centos, ce qui rendait impossible l'écriture. Par conséquent, vous devez utiliser ssh-keygen pour générer le fichier. clé publique en centos à l'avance ;

résultat

On peut voir que la clé publique a été écrite avec succès sur le serveur cible ;

Ensuite, vous pouvez vous connecter via ssh sans mot de passe. On voit que la connexion est réussie !

Les problèmes rencontrés

Il y a quelques problèmes dans l'environnement Dockerfile, qui empêchent le démarrage du port 22 dans l'image Docker, donc le fichier est modifié et exécute /usr/sbin/sshd pour démarrer sshd.

Lorsque nous rencontrons l'échec de téléchargement mentionné ci-dessus, nous pouvons simplement initialiser le fichier, comme le montre la figure ci-dessous ;

3. Résumé

Les étapes pour Centos et Ubuntu sont presque les mêmes, sauf qu'en raison du mécanisme de protection de Redis, il y aura les erreurs suivantes, entraînant certains attributs qui ne peuvent pas être modifiés. La solution consiste à désactiver le mode protégé et à utiliser ce qui suit. commande;

config set protected-mode no

En raison des restrictions de la version Redis, la sécurité de 7.2.5 est trop élevée, ce qui entraînera l'échec de la connexion SSH sans mot de passe, je l'ai donc retiré ici.

Version 5.0.5

Utilisez ensuite la même opération pour obtenir une connexion sans mot de passe ;