ハッカーはlbdでロードバランサーが設置されているかどうかを確認する(Kali Linuxツール説明)

ホワイトハッカーの知識DNS,Kali Linuxツール,lbd,座学

アクセスを複数のサーバーに分散する「ロードバランサー」が設置されているかを理解するためにまとめてみました。
このFierceの動作確認は自分のドメインでテストを行っています。

lbd(load balancing detector)とは

lbd(load balancing detector)は、ロードバランサーの有無を判断するツールです。
ロードバランサーはサーバーへのアクセスを集約し、リソースに余裕があるサーバーを接続先として選択するなど、事前に設定されたルールに従って各サーバーへアクセスを振り分け、アクセス速度と信頼性を向上させます。

なぜlbdのツールがあるかというと、ロードバランサーが設置されているとペネトレーションテストで問題となるためです。よって、ロードバランサーが設置されているかどうかを確認して設置されている場合には、そのことを考慮してペネトレーションテストを行う必要があります。

機能

  • 指定されたドメインが DNSや HTTPのロードバランシングを使用しているかどうかを、サーバー経由および日付、ヘッダーとサーバーの回答の差分を介して検出します。
  • DNSロードバランシング
    システムはリクエストに応答できるIPのリストを持っています。リソースをリクエストするとこれらのIPのいずれかにヒットします。正確なターゲットを特定するには、さらにテストを行う必要があります。ターゲットが example.comで、3つのIPがそれを提供している場合、脆弱性を発見したときには、これらのアドレスのうちどれが脆弱性であるか(またはすべてが脆弱性であるか)を判断する必要があります。
  • HTTPロードバランシング
    HTTP負荷分散を実現する方法の1つとして、Cookieがあります。これは、クライアントを識別して同じ特定のリソースに送信する必要があるオンラインストアなどのウェブアプリケーションで便利です。

ツールの場所

[Applications]→[01-Information Gathering]→[DNS/IPS Identification]→[ldb]

ツールと使用方法

/usr/bin/lbd domain [port] {https}

例 /usr/bin/lbd domain https://www.yahoo.co.jp

【実行イメージ】少し端折って整形しています。

┌──(kali__kali)-[~]
└─$ /usr/bin/lbd domain https:****.com

lbd - load balancing detector 0.4 - Checks if a given domain uses load-balancing.
Written by Stefan Behte (http://ge.mine.nu)
Proof-of-concept! Might give false positives.

Checking for DNS-Loadbalancing: NOT FOUND
Checking for HTTP-Loadbalancing [Server]:

NOT FOUND

Checking for HTTP-Loadbalancing [Date]: , No date header found, skipping.

Checking for HTTP-Loadbalancing [Diff]: NOT FOUND

domain does NOT use Load-balancing.

[word_balloon id="1″ size="M" position="L" name_position="under_avatar" radius="true" balloon="talk" balloon_shadow="true"]個人のドメインで私はサーバーにロードバランサーは設置していないのでNOT FOUNDになっているのだと思います。ロードバランサーを設置しているのはトラフィックの多いサイトなのでしょう。[/word_balloon]

lbdツールのまとめ

トラフィックの大きなサイトには一つのサーバーにアクセスが集中してサーバーの能力低下、ダウンを防止するためにロードバランサーを設置して複数のサーバーにアクセスを分散させているのです。

ブラックハットハッカーは、ロードバランサーを設置されているサーバーを攻撃する場合、構成されているサーバーの台数を事前に把握して攻撃する必要があるということでしょうか。

たいへん奥が深いですね。(^^;