« 【勉強会】サーバⅡのアクセス | メイン | 上司のお宅で懇親会 »

【勉強会】サーバⅢのアクセス

今回は、本ページ最下部【参考書】付録のサーバⅢをroot攻略のターゲットとします。
前回までの設定で、アタッカー(BackTrack)とターゲットのサーバが同一セグメント内のネットワークに属している前提とします。
また今回は、アタッカーの手元でBackTrackのGUIを操作できる前提とします。
以下IPアドレスは環境によって変わるため、各自読み替えてください。
毎度の事ですが、本記事はセキュリティ意識の向上を目的とします。悪用しないでください。

本記事で使用するファイルのサンプルを、下記URLに置いておきます。
必要に応じて参照してください。
https://docs.google.com/file/d/0BzDDoGziVgPZVWQ4UUl2M0xyTTQ/edit?usp=sharing


攻略

まずは、BackTrackにて「ifconfig」で自分のIPアドレスを調べます。
上の図の場合、「192.168.11.7」をDHCPで割り当てられていて、NWセグメントは192.168.11.0/24であることがわかります。

ターミナルで「zenmap &」と入力すると、ZENMAPが起動します。このソフトは、nmapのGUI操作画面です。
targetに「192.16811.1-254」 、 Profileは「Ping scan」とし、「SCAN」ボタンを押します。

しばらく待つと、同一NWセグメント内の端末が一覧表示されます。
上の図の場合、

・192.168.11.1 (Buffalo) --- ルータ
・192.168.11.2 (Sony) --- パソコン
・192.168.11.3 (Askhey computer) --- ???
・192.168.11.4 (Inventec) --- ???
・192.168.11.7 --- 自分自身(BackTrack)
・192.168.11.9 (Askhey computer) --- ???

なので、192.168.11.3 か 192.168.11.9 のどちらかがサーバかと思われます。

ちなみに、簡易なトポロジーも表示できます。

次に、試しにTargetを「192.168.11.9」、Profileを「Intence scan, all TCP ports」にして「SCAN」を押します。

結果の緑色文字の部分から、

・ポート199 --- SNMPサーバ
・ポート55555 --- SSHサーバ

が動いていることがわかります。
このことから、192.168.11.9がサーバであり、かつSNMPとSSHで接続可能であることがわかります。

SNMPで情報を取得してみます。
「snmpwalk 192.168.11.9 -v 1 -c public . > snmpwalk.txt」 (ピリオドを忘れない)
で、カレントディレクトリのsnmpwalk.txtへMIB情報をダウンロードします。

snmpwalk.txtの中身を確認します。
上図赤枠の部分に、メールアドレスが記載されています。このサーバに「hjuser」というユーザが登録されている可能性が推察されます。

今度はコミュニティ名を「private」にして実行してみます。

snmpwalk.txtをlessで表示し、検索(「/」キー)で「userlist」を検索すると、上図のようにユーザ一覧が見つかります。


ユーザ一覧の情報を基に、テキストエディタでユーザリストを作成します。
ユーザーリストとは、ユーザ名を1行1つずつ書いたテキストファイルのことです。
上の図の場合、user_list_sample.txtとして保存しました。


62K common passwords(http://www.isdpodcast.com/resources/62k-common-passwords/)等のサイトから、辞書アタック用パスワードリストをダウンロードして解凍します。
解凍すると1.5GBくらいあるものと思われます。

これでブルートフォース攻撃の準備ができたので、「xhydra &」でxHydraを起動します。
xHydraは、ブルートフォースツールhydraのGUI画面です。

Single targetにサーバのIPアドレス、プロトコルはsshでポートは55555とします。

Username listに、先ほど作成したユーザーリストを指定します。
Password listに、先ほど入手した辞書アタック用リストを指定します。
最後に、StartタブのStartボタンを押します。

パスワードの難易度によりますが、しばらく待つと、sshのログインIDとパスワードが判明します。
上の図の場合、ユーザ名が「hjtarget」、パスワードが「front」であることがわかります。

「ssh -p 55555 hjtarget@192.168.11.9」と入力することで、
サーバへsshでポート55555に接続します。


一般ユーザhjtargetとしてログインできました。

サーバ上で「ps aux」を実行しプロセスを見ると、VNCサーバが稼働していることがわかります。

引き続きサーバ上で「/opt/vnc/Xvnc  --version」で、VNCのバージョンを調べます。
上の図の場合、Xvnc Free Edition 4.1.1 という記載が見られます。
インターネット等で調べると、このバージョンのVNCには脆弱性があり、エクスプロイトコードが公開されていることがわかります。

「netstat -an」で、OSのネットワークの待ち受け状態を確認します。VNCのデフォルト待ち受けポートである5900は、127.0.0.1 (localhost)から待ち受けている事がわかります。
なので、外からポート5900へ直接接続はできません。

アタッカ(BackTrack)にて、

「ssh -l hjtarget -p 55555 -L5901:127.0.0.1:5900 192.168.11.9」
と入力し、パスワードを聞かれたら「front」と入力します。

これにより、BackTrackのlocalの5901ポートが、192.168.11.9の5900ポートへトンネルされました。

(BackTrackの5901ポートへ投げられたパケットは、トンネルを通じてターゲットとなるサーバのポート5900へ転送されます)


ここで普通にVNCでBackTrackの5901ポートへ接続すれば、一般ユーザとしてVNCを利用できますが、エクスプロイトを用いてroot権限を取得します。

BackTrackで新しいターミナル画面を立ち上げ「msfconsole」を実行します。
すると、プロンプトが「msf>」に代わります。


msfプロンプトの状態で、

「use auxiliary/admin/vnc/realvnc_41_bypass」 (← realvnc_41_bypassモジュールを指定)
「set RHOST 127.0.0.1」 (← localhostへ接続 (トンネルしているため))
「set RPORT 5901」 (← ポートは5901)
「run」

を順に実行します。

プロンプトは帰ってきませんが、このターミナルは閉じずにそのままとします。

新たにターミナル画面を立ち上げ、「vncviewer 127.0.0.1」で、先ほど作成したトンネルへvnc接続します。

ターゲットのサーバにVNC接続できました。
既に一つターミナルが開いた状態ですが、ここで右クリックから、もう一つ新たにTerminal emulatorを呼び出します。

新たに開いたターミナルは、root権限で実行されています。
これで、root権限を取得することができました。


【ターゲットサーバのアカウント】

念のため、勉強会時のサーバのアカウントを書いておきます。
ターゲットサーバ上でIPアドレスやネットワークへの疎通性を確認する際に使用してください。
以下いずれかの組み合わせでログインできます。

ユーザパスワード
roottest
hjtargetfront
hjtargetfront242

トラックバック

このエントリーのトラックバックURL:
http://www.ddhost.jp/mt/mt-tb.cgi/741

About

2013年05月20日 00:01に投稿されたエントリーのページです。

ひとつ前の投稿は「【勉強会】サーバⅡのアクセス」です。

次の投稿は「上司のお宅で懇親会」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。