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 解凍版のインストールと設定方法のグラフィックチュートリアル

推薦する

mysql57サービスが突然消えた問題をすぐに解決する

1つ、 G:\MySQL\MySQL Server 5.7\bin> mysqld --ini...

MySQL ファジークエリの使用法 (通常、ワイルドカード、組み込み関数)

目次1. MySQL ワイルドカード ファジー クエリ (%,_) 1-1. ワイルドカードの分類1...

Linux lessコマンド例の詳細な説明

ファイル名が少ないファイルを表示ファイル名を少なく | grep -n コンテンツを検索内容に応じて...

Linux での Centos7 ファイアウォールの基本的な使用方法の詳細な説明

1. ファイアウォールの基本的な使い方起動する: systemctl は、firewalld を起動...

Vueは画像切り替え効果を実現

この記事の例では、画像切り替え効果を実現するためのVueの具体的なコードを参考までに共有しています。...

複数のフィールドをグループ化するMySQLグループ

日常の開発タスクでは、データ テーブル内のグループ化フィールドに基づいて統計データを取得するために、...

MySQL Group by最適化の詳細な説明

目次標準的な実行プロセス最適化並べ替えを削除並べ替え成し遂げる要約する標準の Group by ステ...

MySQL の current_timestamp の落とし穴とその解決策を共有する

目次MySQL の current_timestamp の落とし穴エラーを報告する私の解決策mysq...

フレックスレイアウトが子要素によって引き伸ばされたときに、コンテンツをコンテナ内に保持する方法

モバイル デバイスでは、フレックス レイアウトが非常に便利です。デバイスの幅に応じてコンテナーの幅を...

削除、切り捨て、ドロップの違いと選択方法

序文先週、同僚が私に尋ねました。「兄さん、MySQL にバグを見つけました。午後にディスクをクリーン...

MySQL 5.7.20 共通ダウンロード、インストール、設定方法と簡単な操作スキル(解凍版無料インストール)

早朝に MySQL 5.7.19 のインストールを終えたばかりですが、午前中に MySQL が最新バ...

角度に基づくツリー型セカンダリテーブルを実現する

まず効果を見てみましょう: コード: 1.html <div class="user...

MySQL でテーブルを作成するときの NULL と NOT NULL の使用方法の詳細な説明

MySQL の仕様によっては、テーブル作成仕様にすべてのフィールドが空であってはならないという要件を...

Tomcat の構成と最適化ソリューションの詳細な説明

サービス.xml Server.xml 構成ファイルは、コンテナー全体を構成するために使用されます。...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...