Problem beim Testen des nicht autorisierten Zugriffs auf Zookeeper

Problem beim Testen des nicht autorisierten Zugriffs auf Zookeeper

Vorwort

ZooKeeper ist ein verteilter, Open-Source-Koordinationsdienst für verteilte Anwendungen. Es handelt sich um eine Open-Source-Implementierung von Googles Chubby und eine wichtige Komponente von Hadoop und Hbase. Es handelt sich um eine Software, die Konsistenzdienste für verteilte Anwendungen bereitstellt. Zu ihren Funktionen gehören: Konfigurationswartung, Domänennamendienste, verteilte Synchronisierung, Gruppendienste usw.

Unbefugter Zugriff auf Zookeeper bedeutet, dass nach der Installation und Bereitstellung standardmäßig keine Authentifizierung erforderlich ist, was zu einer Remote-Ausnutzung von Zookeeper und einem großen Informationsverlust auf Serviceebene führt.

Die verwendeten Standardports sind: 2181, 2182.

Erkennen des geöffneten Zookeeper-Dienstes

Verwenden Sie beispielsweise nmap, um festzustellen, ob eine Zieladresse den Zookeeper-Dienst ausführt und ob Port 2181 geöffnet ist.

root@kali:~# nmap -Pn -p 2181 xx.xx.xx.xx
Start von Nmap 7.80 ( https://nmap.org ) am 21.10.2019 01:56 EDT
Nmap-Scanbericht für xx.xx.xx.xx.static.sz.js.chinamobile.com (xx.xx.xx.xx)
Host ist aktiv (0,016 s Latenz).

Hafenstaatsdienst
2181/tcp öffnen eforward

Nmap fertig: 1 IP-Adresse (1 Host aktiv) in 0,22 Sekunden gescannt

Zur Batch-Erkennung ist lediglich eine Änderung der entsprechenden Zieladresse erforderlich.

Informationen einholen

conf-Befehl

Gibt detaillierte Informationen zu zugehörigen Dienstkonfigurationen aus, einschließlich Port, Datenpfad, Protokollpfad, Sitzungstimeout, maximaler Anzahl von Verbindungen usw.

root@kali:~# echo conf | nc xx.xx.xx.xx 2181
Client-Port = 2171
dataDir=/opt/data/zookeeper/data/version-2
dataLogDir=/opt/data/zookeeper/data/version-2
tickZeit=2000
maxClientCnxns=0
minSessionTimeout=4000
maxSessionTimeout=40000
Server-ID = 0

cons Befehl

Listet detaillierte Informationen zu allen Clients/Sitzungen auf, die mit dem aktuellen Server verbunden sind.

root@kali:~# echo cons | nc xx.xx.xx.xx 2181 | mehr
/10.23.46.40:11958[1](Warteschlange=0,Empfangen=27317,Gesendet=27317,Sid=0x1000000e029b16e,Lop=PING,Est=1571277639586,An=40000,Lcxid=0x33,Lzxid=0x286a720,Lresp=2435779043,Llat=0,Minlat=0,Avglat=0,Maxlat=397)
/10.23.46.39:9688[1](Warteschlange=0,Empfangen=27316,Gesendet=27316,Sid=0x1000000e029b17c,Lop=PING,Est=1571277641790,An=40000,Lcxid=0x33,Lzxid=0x286a71c,Lresp=2435777895,Llat=0,Minlat=0,Avglat=0,Maxlat=560)

dump-Befehl

Gibt unverarbeitete Sitzungen und temporäre Knoten aus, der Führungsknoten ist gültig.

root@kali:~# echo dump | nc xx.xx.xx.xx 2181 | mehr
SessionTracker-Dump:
Sitzungssätze (21):
0 läuft ab am Donnerstag, 29. Januar 1970, 12:38:08 CST:
0 läuft ab am Donnerstag, 29. Januar 1970, 12:38:10 CST:
3 läuft am Donnerstag, 29. Januar 1970, 12:38:12 CST ab:
0x1000000e01f0013
0x1000000e029fdde
0x1000000e029fe05
2 läuft am Donnerstag, 29. Januar 1970, 12:38:14 CST ab:
0x1000000e02a4235
0x1000000e01f00e9
31 läuft am Donnerstag, 29. Januar 1970, 12:38:16 CST ab:
0x1000000e01f067a
0x1000000e02a423c
0x1000000e01f0008
0x1000000e029fdf4
...

Nicht-führende Knoten können keine relevanten Informationen sehen.

Befehl „envi“

Druckt detaillierte Informationen über den Server.

root@kali:~# echo envi | nc xx.xx.xx.xx 2181
Umfeld:
zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, erstellt am 29.06.2018 04:05 GMT
host.name=c1b69852-ac24-11e8-88d9-a4bf01306d06
java.version=1.7.0_80
java.vendor=Oracle Corporation
java.home=/usr/java/jdk1.7.0_80/jre
java.class.path =/opt/midware/zookeeper/bin /../ bauen/klassen:/opt/midware/zookeper/bin /../ bauen/lib/* I-1.7.25.jar:/opt/midware/zookeeper/bin /../ lib/netty-3.10.6.final.jar:/opt/midware/zookeeper/bin /../ lib/log4j-1.2.17./opt/midware/zookeper/bin/... er/bin /../ lib/publication-Annotations-0.5.0.jar:/opt/midware/zookeeper/bin /../ zookeeper-3.4.13.jar:/opt/midware/zookeper/bin /../ src/java/lib/.
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<Nicht zutreffend>
os.name=Linux
os.arch=amd64
os.version=3.10.0-327.36.3.el7.x86_64
Benutzername=root
Benutzer.home=/root
Benutzer.Dir=/

Verbindungstest

Installationstools

In Kali können Sie beispielsweise den folgenden Befehl verwenden, um das Zookeeper-Tool zu installieren, und dann können Sie das Client-Verbindungstool zkCli.sh verwenden.

# apt-get installiere zookeeper
...
#root@kali:~# cd /usr/share/zookeeper/bin/
#root@kali:/usr/share/zookeeper/bin# ls
zkCleanup.sh zkCli.sh zkEnv.sh zkServer.sh

Verbindungsziel

Verwenden Sie den Parameter -server, um das Ziel anzugeben, mit dem eine Verbindung hergestellt werden soll.

root@kali:/usr/share/zookeeper/bin# ./zkCli.sh -server xx.xx.xx.xx:2181
Verbindung zu xx.xx.xx.xx:2181 wird hergestellt
Willkommen bei ZooKeeper!
JLine-Unterstützung ist aktiviert
[zk: xx.xx.xx.xx:2181(VERBINDUNG WIRD HERGESTELLT) 0]

... verbunden

Erhalten Sie systembezogene Informationen

root@kali:/usr/share/zookeeper/bin# ./zkCli.sh -server xx.xx.xx.xx:2181
Verbindung zu xx.xx.xx.xx:2181 wird hergestellt
Willkommen bei ZooKeeper!
JLine-Unterstützung ist aktiviert
[zk: xx.xx.xx.xx:2181(VERBINDUNG WIRD HERGESTELLT) 0]
BEOBACHTER::
WatchedEvent-Status: SyncConnected Typ: Keiner Pfad: null
[zk: xx.xx.xx.xx:2181(VERBUNDEN) 0] ls /
[Dienst, pms, DsMaster, Ressource, Monitorsperre, Zookeeper]
[zk: xx.xx.xx.xx:2181(VERBUNDEN) 1] erhalten /
cZxid = 0x0
ctime = Mittwoch, 31. Dezember 19:00:00 EST 1969
mZxid = 0x0
mtime = Mittwoch, 31. Dezember 19:00:00 EST 1969
pZxid = 0x4c0
cversion = 4
Datenversion = 0
aclVersion = 0
ephemeralerBesitzer = 0x0
Datenlänge = 0
Anzahl Kinder = 6
[zk: xx.xx.xx.xx:2181(VERBUNDEN) 2] get /service
cZxid = 0x2
ctime = Do., 30. August 2018, 02:58:40 EDT
mZxid = 0x2
mtime = Do., 30. August 2018, 02:58:40 EDT
pZxid = 0x1cb884d
cversion = 7
Datenversion = 0
aclVersion = 0
ephemeralerBesitzer = 0x0
Datenlänge = 0
Anzahl der Kinder = 3
[zk: xx.xx.xx.xx:2181(VERBUNDEN) 3] getAcl /
'Welt',jemand
: cdrwa

Reparaturplan

1. Richten Sie Firewall-Richtlinien ein, um den IP-Zugriff einzuschränken [Diese Lösung wird empfohlen]

2. Setzen Sie Zookeeper nicht dem externen Netzwerk aus

3. Benutzerauthentifizierung und ACL einrichten

siehe

Unbefugter Zugriff auf den Zookeeper

http://vic.pub/zookeeper-unauthorized-access/

Zusammenfassen

Oben ist das vom Herausgeber eingeführte Problem des nicht autorisierten Zugriffstests von Zookeeper beschrieben. Ich hoffe, es wird allen helfen. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Herausgeber wird Ihnen rechtzeitig antworten. Ich möchte auch allen für ihre Unterstützung der Website 123WORDPRESS.COM danken!
Wenn Sie diesen Artikel hilfreich finden, können Sie ihn gerne abdrucken und dabei bitte die Quelle angeben. Vielen Dank!

Das könnte Sie auch interessieren:
  • 2020 Neueste IDEA SpringBoot-Integration Dubbo-Implementierung (Zookeeper-Version)
  • Tutorials der SpringBoot-Reihe: Dubbo- und Zookeeper-Integrationsmethode
  • Python implementiert eine verteilte Servicecodeanalyse über Zookeeper
  • Detaillierte Erläuterung des Beispielcodes zum Betrieb von Zookeeper in Java
  • Installieren Sie Zookeeper unter Docker (Standalone und Cluster).
  • Detaillierte Verwendung des Java Zookeeper-Grafiktools ZooInspector
  • Der bequemste Weg, einen Zookeeper-Server in der Geschichte zu erstellen (empfohlen)
  • Einführung in das Viper-Konfigurationsframework unterstützt das Lesen und Überwachen von Zookeepern
  • Installationsprozess und Startdiagramm von Windows Zookeeper

<<:  Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.15 unter Windows

>>:  Grafisches Tutorial zur Installation und Konfiguration der MySQL 8.0.15 Winx64-Dekomprimierungsversion

Artikel empfehlen

js realisiert horizontale und vertikale Slider

Als ich kürzlich an einem Übungsprojekt arbeitete...

js implementiert einen einzigen Klick zum Ändern der Tabelle

Pure js implementiert eine mit einem Klick bearbe...

Mysql gibt die Methode zur Datumsbereichsextraktion an

Bei der Datenbankoperation ist der Umgang mit Dat...

Leitfaden zur effizienten Nutzung von MySQL-Indizes

Vorwort Ich glaube, die meisten Leute haben MySQL...

Implementierungsschritte zum Installieren einer Java-Umgebung in Docker

Dieser Artikel basiert auf Linux CentOS8, um Dock...

Tutorial-Diagramm zur VMware-Installation des Ubuntu 20.04-Betriebssystems

Memo: Einfach erleben. Eintrag: Nr. 209 Diese Bei...

Eine ausführliche Einführung in React-Referenzen

1. Was ist Refs wird in Computern als Resilient F...

Detaillierte Erklärung, wie zwei Node.js-Prozesse kommunizieren

Inhaltsverzeichnis Vorwort Kommunikation zwischen...