Zookeeper 不正アクセス テストの問題

Zookeeper 不正アクセス テストの問題

序文

ZooKeeper は、分散型のオープンソース分散アプリケーション調整サービスです。Google の Chubby のオープンソース実装であり、Hadoop と Hbase の重要なコンポーネントです。分散アプリケーションに一貫性サービスを提供するソフトウェアです。その機能には、構成のメンテナンス、ドメイン名サービス、分散同期、グループ サービスなどがあります。

Zookeeper への不正アクセスは、インストールと展開後にデフォルトで認証が必要ないことを意味し、Zookeeper のリモートからの悪用や、大量のサービス レベルの情報漏洩につながります。

使用されるデフォルトのポートは 2181、2182 です。

Zookeeper サービスのオープンを検出

たとえば、nmap を使用して、ターゲット アドレスで Zookeeper サービスが実行されているかどうか、およびポート 2181 が開いているかどうかを検出します。

root@kali:~# nmap -Pn -p 2181 xx.xx.xx.xx
2019-10-21 01:56 EDT に Nmap 7.80 ( https://nmap.org ) を起動
xx.xx.xx.xx.static.sz.js.chinamobile.com (xx.xx.xx.xx) の Nmap スキャン レポート
ホストは稼働しています(遅延 0.016 秒)。

港湾国サービス
2181/tcp オープン eforward

Nmap 完了: 1 つの IP アドレス (1 つのホストが稼働中) を 0.22 秒でスキャンしました

バッチ検出では、対応するターゲット アドレスを変更するだけで済みます。

情報を入手する

conf コマンド

ポート、データ パス、ログ パス、セッション タイムアウト、最大接続数など、関連するサービス構成に関する詳細情報を出力します。

root@kali:~# echo conf | nc xx.xx.xx.xx 2181
クライアントポート=2171
データディレクトリ=/opt/data/zookeeper/data/version-2
dataLogDir=/opt/data/zookeeper/data/version-2
ティックタイム=2000
最大クライアント接続数=0
最小セッションタイムアウト=4000
最大セッションタイムアウト=40000
サーバーID=0

cons コマンド

現在のサーバーに接続されているすべてのクライアント/セッションに関する詳細情報を一覧表示します。

root@kali:~# echo cons | nc xx.xx.xx.xx 2181 | その他
/10.23.46.40:11958[1](キュー=0、受信=27317、送信=27317、sid=0x1000000e029b16e、lop=PING、est=1571277639586、to=40000、lcxid=0x33、lzxid=0x286a720、lresp=2435779043、llat=0、minlat=0、avglat=0、maxlat=397)
/10.23.46.39:9688[1](キュー=0、受信=27316、送信=27316、sid=0x1000000e029b17c、lop=PING、est=1571277641790、to=40000、lcxid=0x33、lzxid=0x286a71c、lresp=2435777895、llat=0、minlat=0、avglat=0、maxlat=560)

dump コマンド

未処理のセッションと一時ノードを出力します。リーダーノードは有効です。

root@kali:~# echo dump | nc xx.xx.xx.xx 2181 | 続き
SessionTracker ダンプ:
セッションセット(21):
0 は 1970 年 1 月 29 日木曜日 12:38:08 CST に期限切れになります。
0 は 1970 年 1 月 29 日木曜日 12:38:10 CST に期限切れになります。
3 は 1970 年 1 月 29 日木曜日 12:38:12 CST に期限切れになります。
0x1000000e01f0013
0x1000000e029fdde
0x1000000e029fe05
2 は 1970 年 1 月 29 日木曜日 12:38:14 CST に期限切れになります。
0x1000000e02a4235
0x1000000e01f00e9
31 は 1970 年 1 月 29 日木曜日 12:38:16 CST に期限切れになります。
0x1000000e01f067a
0x1000000e02a423c
0x1000000e01f0008
0x1000000e029fdf4
...

リーダー以外のノードは関連情報を見ることができません。

envi コマンド

サーバーの詳細情報を出力します。

root@kali:~# echo envi | nc xx.xx.xx.xx 2181
環境:
zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03、2018/06/29 04:05 GMT に構築
ホスト名=c1b69852-ac24-11e8-88d9-a4bf01306d06
java.バージョン=1.7.0_80
java.vendor=Oracle 社
java.home=/usr/java/jdk1.7.0_80/jre
java.class.path =/opt/midware/zookeeper/bin/../ build/classes:/opt/midware/zookeeper/bin /../ build/lib/*。jar:/opt/midware/zookeeper/bin /// lib/slf4j-log4j12-1.7.7.25.jjar:/zo/zo/zoeper/ -1.7.25.jar:/opt/Midware/zookeeper/bin/../ lib/netty-3.10.6.final.jar:/opt/midware/zookeeper/bin/../ lib/log4j-1.17.jar:/opt/midware/zookeeper/bin er/bin /../ lib/aushing-annotations-0.5.0.jar:/opt/midware/zookeeper/bin /../ zookeeper-3.4.13.jar:/opt/midware/zookeeper/bin /..../ src/java/lib/*。
java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
java.io.tmpdir=/tmp
java.compiler=<NA>
os.name=Linux
os.arch=amd64
os.バージョン=3.10.0-327.36.3.el7.x86_64
ユーザー名=root
ユーザー.home=/root
ユーザー.dir=/

接続テスト

インストールツール

たとえば、Kali では、次のコマンドを使用して zookeeper ツールをインストールし、クライアント接続ツール zkCli.sh を使用できます。

# apt-get で Zookeeper をインストールします
...
#root@kali:~# cd /usr/share/zookeeper/bin/
#root@kali:/usr/share/zookeeper/bin# ls
zkCleanup.sh zkCli.sh zkEnv.sh zkServer.sh

接続先

-server パラメータを使用して、接続先のターゲットを指定します。

root@kali:/usr/share/zookeeper/bin# ./zkCli.sh -server xx.xx.xx.xx:2181
xx.xx.xx.xx:2181 に接続しています
ZooKeeper へようこそ!
JLineサポートが有効になっています
[zk: xx.xx.xx.xx:2181(接続中) 0]

...接続済み

システム関連情報を取得する

root@kali:/usr/share/zookeeper/bin# ./zkCli.sh -server xx.xx.xx.xx:2181
xx.xx.xx.xx:2181 に接続しています
ZooKeeper へようこそ!
JLineサポートが有効になっています
[zk: xx.xx.xx.xx:2181(接続中) 0]
ウォッチャー::
WatchedEvent 状態:SyncConnected タイプ:None パス:null
[zk: xx.xx.xx.xx:2181(接続済み) 0] ls /
[サービス、pms、DsMaster、リソース、monitor_lock、zookeeper]
[zk: xx.xx.xx.xx:2181(接続済み) 1] 取得 /
cZxid = 0x0
ctime = 1969 年 12 月 31 日水曜日 19:00:00 EST
mZxid = 0x0
mtime = 1969 年 12 月 31 日水曜日 19:00:00 EST
pZxid = 0x4c0
変換 = 4
データバージョン = 0
aclバージョン = 0
一時所有者 = 0x0
データ長 = 0
子供の人数 = 6
[zk: xx.xx.xx.xx:2181(接続済み) 2] /service を取得
cZxid = 0x2
ctime = 2018 年 8 月 30 日木曜日 02:58:40 EDT
mZxid = 0x2
mtime = 2018 年 8 月 30 日木曜日 02:58:40 EDT
pZxid = 0x1cb884d
変換 = 7
データバージョン = 0
aclバージョン = 0
一時所有者 = 0x0
データ長 = 0
子供の人数 = 3
[zk: xx.xx.xx.xx:2181(接続済み) 3] getAcl /
「世界」、誰でも
: cdw

修理計画

1. IPアクセスを制限するファイアウォールポリシーを設定する[この解決策が推奨されます]

2. Zookeeperを外部ネットワークに公開しない

3. ユーザー認証とACLを設定する

参照する

動物園の飼育係の不正アクセス

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

要約する

上記は編集者が紹介したZookeeper不正アクセステストの問題です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残してください。編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。
この記事が役に立ったと思われた方は、ぜひ転載していただき、出典を明記してください。ありがとうございます!

以下もご興味があるかもしれません:
  • 2020年最新IDEA SpringBoot統合Dubbo実装(zookeeperバージョン)
  • SpringBootシリーズチュートリアル: dubboとZookeeperの統合方法
  • PythonはZookeeperを通じて分散サービスコード分析を実装する
  • JavaでZookeeperを操作するためのサンプルコードの詳しい説明
  • Docker で Zookeeper をインストールする (スタンドアロンおよびクラスター)
  • Java 動物園飼育係のグラフィカル ツール ZooInspector の詳細な使用方法
  • 史上最も便利な Zookeeper サーバーの構築方法 (推奨)
  • Viper 構成フレームワークの紹介は、Zookeeper の読み取りと監視をサポートします。
  • Windows Zookeeper のインストール プロセスと起動図

<<:  Windows での MySQL 8.0.15 のインストールと設定方法のグラフィック チュートリアル

>>:  MySQL 8.0.15 winx64 解凍版のインストールと設定方法のグラフィックチュートリアル

推薦する

MySQL 8.0.21 無料インストール版 設定方法 グラフィックチュートリアル

MySQLをインストールする6つの手順(インストールパッケージのみがインストール場所を選択できます)...

Linux whatisコマンドの使い方

01. コマンドの概要whatis コマンドは、システム コマンドの簡単な説明を含むいくつかの特別な...

Raspberry Pi 4 に Ubuntu 19.10 をインストールするための詳細なチュートリアル

以前、raspbian で実行したときに opencv の一部の依存関係をパッケージ化できず、一部の...

JS で async await をエレガントに使用する方法

目次jQuery の $.ajax Webpack時代の始まり約束について深く考えるネストをなくすj...

検索エンジンのウェブサイトの入り口の無料コレクション

1: Baiduウェブサイトログイン入口ウェブサイト: http://www.baidu.com/s...

LinuxでのDockerのインストールチュートリアル

Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...

Git サーバーを使用してデバッグ ブランチを表示し、修正する方法を 1 日 1 分で学習します。

デバッグブランチプロジェクトの通常の開発中に、以前にリリースされたバージョンにバグがある場合がありま...

Prometheus+Grafanaによるnginxの監視方法を分析する

目次1. ダウンロード2. nginxとnginx-vts-exporterをインストールする3. ...

Nginx タイムアウト設定の詳細な説明

最近、プロジェクトで nginx を使用し、バックエンドで Java を使用しました。バックエンドで...

MySql におけるプロセス制御関数/統計関数/グループ化クエリの使用法の分析

これからの道のりは長く困難ですが、私は探求を続けます。また週末がやってきました。引き続き、皆さんと一...

ウェブサイトのアクセス速度を向上させるための徹底的な最適化に関するヒント

<br />ウェブサイトのアクセス速度はウェブサイトのトラフィックに直接影響を及ぼし、ウ...

MySQL マスタースレーブレプリケーションスレッドの状態遷移に関する詳細な理解

序文MySQL マスター スレーブ レプリケーションの基本原理は、スレーブ データベースがマスター ...

忘れられたボタンタグ

注:この記事は他の人によって翻訳されていますが、考えるべき点が多く、理解しにくい点もあると感じていま...

純粋な CSS で中空効果を実現するためのサンプルコード

私は最近、空洞化効果について研究しました。背景クリップ: テキスト背景はテキストの前景色にクリップさ...

個人ブログシステムを構築するためのDockerの超シンプルな実装

Dockerをインストールするyumパッケージを最新バージョンに更新します: sudo yum up...