online password attackシリーズも5ツール目になりました。
今回はMetasploit Frameworkでのsshログイン時のパスワード攻撃の話です。
Metasploit Frameworkは多数のモジュールを使って様々な機能を発揮します。
で、今回は該当のモジュールを使ってsshサーバーのパスワード破りを行います。
例によって、左のラズパイ5から右のラズパイ4Bへ攻撃を仕掛けます。
他人の管理下のサーバーを攻撃することは犯罪行為となります。くれぐれも自分の管理下サーバーで行いましょう。
攻撃編
ツールの起動
kali ー 08-Exploitation Tools ー metasploit framework を選択します
msfコンソールが立ち上がります。(バージョンは6.4.5)
モジュールの検索
具体的にどのモジュールを選べばいいのかを、まずは検索します。
search 下記の検索項目:検索値
- app: 入力値(client/server)
- auther: モジュールの作者名
- type: モジュールのタイプ 入力値 [ auxiliary(侵入の準備)/ exploit(侵入)/ payload(侵入後の接続の確立)/ post(接続後のハッキング操作)/ encoder(暗号化)/ nop(何もしない)]
- name: モジュールの名前
- platform: OSやアプリケーションの種類
- bid: 脆弱性データベースのID
- cve: 脆弱性データベースのID
- edb: 脆弱性データベースのID
- osvdb: 脆弱性データベースのID
今回は、名前に ” ssh ” が含まれるモジュールを検索してみます。
search name:ssh
こんな感じで全部で96項目ヒットしました。
31番に ” ssh_login ” がありますので、このモジュールを採用します。
モジュールの搭載
モジュールの搭載は ” use ” を使います。
use モジュール名(又は番号)
今回は31番目のモジュールを搭載するので、
use 31
プロンプトが ” msf6 auxiliary(scanner/ssh/ssh_login) ” となっており、 ” ssh_login ” がモジュールとして搭載されているのが分かります。
オプションの設定
搭載したモジュール毎に異なる様々なオプションを設定しなければなりません。
設定事項の確認
まずは、どんなオプションを設定しなければならないかを見てみます。
show options
” Required ” 欄が ” yes ” の項目が必須項目です。
” yes ” の左側が空欄になっている場合は少なくとも空欄を埋めなければなりません。
設定
今回は下記を順次設定していきます。設定は ” set ” コマンドです。
設定事項 | 構文 | 今回設定する値 |
パスワードファイル | set PASS_FILE | /home/kali/rockyou100.txt |
ターゲットホスト名 又はIPアドレス | set RHOST | 192.168.11.21 |
パスワードを見つけたら停止 | set STOP_ON_SUCCESS | true |
ユーザ名 | set USERNAME | kali |
パスワードファイルの ” rockyou100.txt ” は、100番目に当たりパスワードを挿入した辞書ファイルです。
set PASS_FILE /home/kali/rockyou100.txt
set RHOST 192.168.11.21
set STOP_ON_SUCCESS true
set USERNAME kali
当たりを見つけたらストップ(STOP_ON_SUCCESS)を、 ” true (有効) ” にしておきます。
設定確認
もう一度 ” show options ” コマンドで設定の結果を確認します。
show options
こんな感じ、必須設定項目は埋まっています。
” BRUTEFORCE_SPEED ” (攻撃速度)は ” 0〜5 ” で設定出来、5が最速です。デフォルトは5となっています。
” THREADS ” (同時接続数)は、デフォルトでは1となっています。
攻撃実行
” run ” コマンドで攻撃実行されます。
run
実行結果:3行目に正しいパスワードが表示されています。攻撃成功です。
実行には6分36秒かかりました。
守備側
それでは接続される側のサーバー側のログを見てみます。
journalctl –no-pager -S “YY-MM-DD HH:MM:SS ” -U “YY-MM-DD HH:MM:SS ” | grep ‘sshd ‘
” -S ” の後に攻撃開始日時、 ” -U ” の後に攻撃終了日時を入力します。
1人1回ずつ攻撃して、失敗したら次の人(別のポート番号)に代わってまた攻撃。を繰り返しています。
100人目の40521氏(ポート番号40521)が当たりパスワードを引き当てています。
まとめ
各ツールデフォルト設定での、100試行目でパスワードが解読されるまでの速さの比較表です。
同時接続数の多いツールは速く、そうでないツールは遅いですが、この数は設定による調整が可能な場合も多いです。
また単に多ければ良いという訳ではなく、最適な数はサーバー側の最大受付数の設定に影響されると考られます。
コメント