ゆるいぞIT

今回はブルートフォースアタック(総当たり攻撃)を用いてターゲットホストに侵入するまでの流れを見てみましょう。

※Youtubeでは動画版をご視聴いただけます。

この記事はこんな人にオススメ
  • ハッキングスキルについて知りたい
  • セキュリティの知識を学習したい
  • ITインフラの知識を学習したい

※実務や演習等を除き、インターネット上のサーバへクラッキングすることは違法行為となりますのでご注意ください。

0.使用する環境

ゆるいぞIT

本演習で使用する”ソフトウェア“や”環境構成“は下記になります。

ソフトウェア

  • 仮想環境 : Virtual Box
  • 攻撃用サーバ : Kali Linux
  • ターゲットホスト : Metasploitable2

演習環境

赤い枠線内 : 物理環境
青い枠線内 : 仮想環境
ホストOS : 物理PC(Windows11)
無線LANルータ : ルータ経由でインターネットに接続
攻撃用サーバ : Kali Linux
ターゲットホスト : Metasploitable2

1.演習の流れ

ゆるいぞIT

演習環境 ⑤Kali linix⑥ターゲットホスト へ実行します。

STEP1
ワードリストの作成

ブルートフォースアタックで使用するワードリストを作成

STEP2
ブルートフォースアタックの実行

ツールを使用してログインアカウントの解析を実施

STEP3
ターゲットホストへの接続確認

クラッキングにより判明したログインアカウントを使用してターゲットホストへログインを実施

STEP4
exploit(攻撃用プログラム)の実行

exploitを使用してログインアカウントの解析を実施

2.ブルートフォースアタックとは?

ゆるいぞIT

ブルートフォースアタック(総当たり攻撃)とは、想定される全てのパスワードのパターンを総当たりで入力し、不正にアカウント認証の突破を試みる攻撃手法になります。

例えば、3桁の数字を使ったパスワードがあったとすると、パスワードの候補は000~999までの1000通りになります

この1000通りのパスワードを当たるまで全て試す方法がブルートフォースアタックになります。

現実的に3桁のパスワードというのは無いと思いますが、イメージとしてはこのようなものになります。

3.ワードリストの作成

ゆるいぞIT

ブルートフォースアタックを実行するにあたり、総当たり攻撃用のワードリストの準備が必要になります。

ワードリスト : “ユーザID”や”パスワード”の候補となる情報をリスト化したファイル

ユーザID用(ワードリスト)の作成については「enum4linux」というコマンドがを使用します。

enum4linux : Sambaを介して情報を抽出できるツール

Samba: LinuxやUNIX系OSでWindowsネットワークの機能を実装するためのソフトウェア

出力結果から”user”、”root”などのユーザ名の候補が確認できるので、この情報をユーザID用のリストとして使用します。

パスワードのリストは”root”、”admin”、”password”、”1234567″などのパスワードで使われそうなワードを含めてワードリストを作成しました。

これで総当たり攻撃用のワードリストの準備が完了となります。

補足:ワードリストについて

ワードリスト(ユーザID、パスワード)はKali Linux内インターネット上(GitHub)にもあるので、そちらを使用してもらっても問題ありません。

Kali linix : /usr/share/metasploit-framework/data/wordlists 配下

総当たり攻撃は候補(ワード)の数が多ければ多いほどクラッキングの成功率は上がるので、攻撃者としてはこのような素材は有用なものになります。

ただ、候補数の数に比例して総当たり攻撃(スキャン)にかかる時間時間も長くなるので注意が必要です。

4.ブルートフォースアタックの実行

ゆるいぞIT

ブルートフォースアタックには「hydra」というコマンドを使用します。

hydraユーザ名やパスワードの解析が可能なツールで、幅広いサービスやプロトコルをサポートしている

▼サポート対象
FTP, HTTP(S)-FORM-GET, HTTP(S)-FORM-POST, HTTP(S)-GET, HTTP(S)-HEAD, HTTP-Proxy, ICQ, IMAP, IRC, LDAP, MS-SQL, MySQL, NNTP, PC-NFS、POP3、PostgreSQL、RDP、Rexec、Rlogin、Rsh、SIP、SMB(NT)、SMTP、SMTP Enum、SNMP v1+v2+v3、SOCKS5、SSH(v1およびv2)、SSHKEY、Subversion、Teamspeak(TS2)、Telnet
Cisco AAA, Cisco auth, Cisco enable, CVS, Oracle Listener, Oracle SID, PC-Anywhere, VMware-Auth、VNC、XMPP など…

インストールされていない場合

Kali linixではプリインストールされていますが、もしインストールされていない場合は以下のコマンドを実行してください。

今回はリモートアクセスで使用するSSHのアカウント(ユーザID、パスワード)を”hydra“で解析してみます。

2 valid passwords found」ということで、2つのアカウント情報が見つかりました。

ユーザID : User 、 パスワード : User
ユーザ名 : msfadmin 、 パスワード : msfadmin

これでSSHでのログイン可能になったので、ターゲットホストにログインしてみましょう。

ログイン後、コマンドを叩くと通常通り結果が返ってきます。

今の解析で使用したリストには、あえてヒットするワード(User、msfadmin)を入れていましたが、次は該当するワードが入っていないリストを使って試してみましょう。

そうすることで結果がどう変わるのか見てみたいと思います。

ワードリストを変えて同じように実行してみると… (※yuruizo_user2.txt、yuruizo_pass2.txt)

今回の解析では「該当するアカウント情報がありません」となりました。

この結果からリスト内に該当するワードが含まれていないと、成功しないということになります。

なので、さっきほども言ったように「総当たり攻撃は候補(ワード)の数が多ければ多いほどクラッキングの成功率は上がる」ということになります。

5.exploit(攻撃用プログラム)での解析

ゆるいぞIT

同じことがMetasploitのモジュールでも実行できるので、そちらでも試してみましょう。

Metasploit : Kali Linuxに実装されている侵入テスト用のツール

STEP1
Metasploitの起動
STEP2
SSH関連のモジュールを確認

対象のモジュールは「auxiliaary/scanner/ssh/ssh_login

SearchコマンドのRankについて

Searchコマンドで表示される”Rank”についての補足になりますが、ターゲットへの潜在的な影響に基づいてモジュール毎にランク分けがされています。

  • excelent:システムをクラッシュさせることなく実行可能
  • great:信頼できる、ターゲットを自動検出する
  • good:信頼できるがターゲットを自動検出しない
  • normal:特定のバージョンに依存
  • average:成功確立は50パーセント以上
  • low:成功確立は50パーセント未満
  • manual:基本的に使用は推奨されない

※実務等で使用する場合は、成功率が低いモジュールの実行は避けましょう。

STEP3
該当モジュールの起動
STEP4
モジュールのオプション確認
STEP5
ターゲットホスト、ワードリストの設定
STEP6
設定の確認
STEP7
“exploit”の実行

starting bruteforce」となり解析が始まります。

6.最後に

ゆるいぞIT

今回実施した内容から分かる通り”ユーザ名”と”パスワード”を使用したアカウント形式のログイン方法は比較的突破されやすいので、可能な限り生体認証(指紋認証、顔認証)や二段階認証(アプリなど)の認証方式に切り替えた方がいいでしょう。

今持っているアカウント情報の中でパスワードが推察されやすいワードを使用している場合はパスワード強度が強いもの(英数字、記号、ランダム、12文字以上)に変更することをオススメします。

所持しているアカウント情報が多すぎる場合は”金融機関“や”証券口座“のアカウントだけでも優先的に変更するといいでしょう。

ということで、今回はここまでにしたいと思います。

それではまた次回お会いしましょう!