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

推薦する

カタツムリ映画システムのDocker展開の詳細なプロセス分析

環境に関する声明ホストOS: Cetnos7.9 最小インストールdocker バージョン: 20....

ウェブページのFOUC問題によるウェブページの混乱の解決策

FOUC は Flash of Unstyled Content の略で、FOUC と略されます。簡...

jsのディープコピーを理解しましょう

目次js ディープコピーデータ保存方法浅いコピー/深いコピーとは何か一般的なディープコピーの実装1....

React Nativeはモニタリングジェスチャーの上下プル効果を実現します

React Native は、プルアップとプルダウンの監視ジェスチャを実装します。詳細なコアコードは...

HTML テーブル マークアップ チュートリアル (30): セルの暗い境界線の色属性 BORDERCOLORDARK

セルでは、暗い境界線の色を個別に定義できます。基本的な構文<TD ボーダーコロダーク=colo...

CSS の複雑なセレクターと CSS のフォントスタイルと色属性の詳細な説明

これまでに CSS の基本的なセレクターをいくつか学習しましたが、今日は CSS の複雑なセレクター...

Vue は書籍管理ケースを実装します

この記事では、書籍管理を実装するためのVueの具体的なコードを例として紹介します。具体的な内容は次の...

シンプルなログインページを実装するための HTML+jQuery

目次導入公開コード(バックエンドインターフェース)例 1: 最もシンプル (純粋な HTML)コード...

ウェブ開発者はIE7とIE8の共存を懸念している

今日、IE8 をインストールしました。ダウンロードするために Microsoft の Web サイト...

CSSカスタムプロパティの予備的な理解

現在、CSS プリプロセッサは Web 開発の標準となっています。 プリプロセッサの主な利点の 1 ...

CSS の border 属性と display 属性の使い方の簡単な分析

境界プロパティの概要borderプロパティは要素の境界を設定します。境界線の3要素は、太さ、線の種類...

タブステータスバーの切り替え効果を実現するための js と jQuery

今日は、タブ バーをクリックして切り替えるという目的を実現するために、js と jQuery を使用...

pt-heartbeat を使用して MySQL レプリケーションの遅延を監視する方法の詳細な説明

pt-ハートビートデータベースがマスターとスレーブ間で複製される場合、複製ステータスとデータ遅延は非...

CSS マルチレベルメニュー実装コード

これは、Web ページを Windows のスタート メニューなどのデスクトップ プログラムのように...