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 で期間の交差をクエリする方法

MySQLクエリ期間の交差使用シナリオデータベース テーブルには、starttime と endti...

InnoDB がシリアル化分離レベルを実装する方法

シリアル化の実装InnoDB は 2 つの方法でシリアル化を実装します。まず、SELECT 文が明示...

Web デザインのヒント: ページ レイアウトの簡単なルール

繰り返し: サイト全体で特定のページ デザイン スタイルを繰り返します。繰り返し要素としては、特定の...

SQL Server での exists と except の使用法の概要

目次1. 存在する1.1 説明1.2 例1.3 交差/2017-07-21 2. 除く2.1 説明2...

DockerでSpring Bootアプリケーションを実行する方法

ここ数日、dockerでSpring Bootアプリケーションを実行する方法を勉強してきました。以前...

LinuxでIPを表示する方法の例

ネットワークの問題のトラブルシューティング、新しい接続のセットアップ、ファイアウォールの構成を行うと...

Vueルーティングナビゲーションガードの簡単な理解

目次1. グローバルガード1. グローバル前線警備2. グローバル解像度ガード3. グローバルポスト...

React コードを共有するためのベストプラクティス

プロジェクトがある程度複雑になると、必然的にロジックの再利用の問題に直面することになります。 Rea...

HTML+CSS+JavaScript でガールフレンド版のスクラッチ カードを作成します (一度見ればすぐに覚えられます)

誰もがスクラッチ チケットで遊んだことがあると思います。子供の頃、ポケットにお金が入るとすぐに友達に...

Vue ソースコード学習でレスポンシブ性を実装する方法

目次序文1. レスポンシブシステムの重要な要素1. データの変更を監視する方法2. 依存関係を収集す...

CSS 透明ボーダー背景クリップマジック

この記事では、CSSの透明な境界線の背景クリップの素晴らしい使い方を主に紹介し、みんなと共有し、自分...

docker-machineの使い方の詳しい説明

Docker-machineはDockerが公式に提供しているDocker管理ツールです。これは d...

プロフェッショナルなMySQL開発設計仕様とSQL記述仕様

チーム開発のプロセスでは、プロジェクトの安定性、コードの効率性、管理の利便性のために、内部開発および...

ウェブページレイアウトデザインのシンプルな原則

この記事では、Web ページ レイアウト デザインのいくつかの簡単な原則をまとめ、Web ページ デ...