TryHackMe(THM):Hydra
目次
この記事は、DeepL翻訳を利用して和訳しています。
Task 1 Hydra Introduction
サイト内の英文をDeepLで訳した内容を要約すると、以下のようになります。
Hydraはブルートフォース方式のオンラインパスワードクラッキングプログラムで、システムのログインパスワードを素早くハッキングするツールです。
HydraはSSH、Web Application Form、FTP、SNMPなどのいろいろなプロトコルの認証サービスに対してパスワードリストを使ってブルートフォース攻撃でパスワードを解析することができます。
Hydraの各プロトコルのオプションの詳細については、公式のKali Hydraツールページをお読みください:https://en.kali.tools/?p=220
Task 2 Using Hydra
Hydraに渡すオプションは、どのサービス(プロトコル)を攻撃するかによって異なります。例えば、ユーザー名をuser、パスワードリストをpasslist.txtとして、FTPをブルートフォース攻撃したい場合、次のようなコマンドを使用します。
hydra -l user -P passlist.txt ftp://<$IP>
今回のデプロイ機では、SSHとWebフォーム(POST方式)でHydraを使うためのコマンドを紹介します。
hydra -l <username> -P <full path to pass> <$IP> -t 4 ssh
OPTION | DESCRIPTION |
---|---|
-l | is for the username |
-P | Use a list of passwords |
-t | specifies the number of threads to use |
Hydra を使用して Web フォームをブルートフォースすることもできますが、通常は GET または POST メソッドが使用されているので、リクエストの種類を確認する必要があります。ブラウザのネットワークタブ(開発者ツール)を使ってリクエストタイプを確認したり、ソースコードを見たりすることができます。
以下は、POSTログインフォームにブルートフォースをかけるHydraコマンドの例です。
hydra -l <username> -P <wordlist> <$IP> http-post-form "/:username=^USER^&password=^PASS^:F=incorrect" -V
OPTION | DESCRIPTION |
---|---|
-l | Single user name |
-P | indicates use the following password list |
http-post-form | indicates the type of form (post) |
/login url | the login page URL |
:username | the form field where the username is entered |
^USER^ | tells Hydra to use the username |
password | the form field where the password is entered |
^PASS^ | tells Hydra to use the password list supplied earlier |
Login | indicates to Hydra the Login failed message |
Login failed | is the login failure message that the form returns |
F=incorrent | If this word appears on the page, its incorrent |
-V | verborse output for every attempt |
ここから問題を解いていきます。
Use Hydra to bruteforce molly's web password. What is flag 1?
Hydraを使ってmollyのウェブパスワードをブルートフォースする。フラグ1とは?
まずnmapを実行
# nmap -sV -sC <$IP>
80番ポートと22番ポートが解放されていることが確認できます。
問題文にユーザ名(molly)が指定されているので、上の説明文にあるログインフォームにブルートフォースをかけるHydraコマンドを実行します。
hydra -l molly -P <wordlist> <$IP> http-post-form "/login:username=^USER^&password=^PASS^:F=incorrect" -V
何度か説明にあった構文でパスワードファイルを最後まで実行しましたが解析できませんでした。
先人の知恵を拝借すると、構文にモレ?があるのか
「/username=」の部分を「/login:username=」に変更すると解析できました。
80番ポートが解放されているのでブラウザでアクセスしてみます。
ログイン画面が表示されました。先ほど解析できたパスワードを用いてログインしてみます。
ログインが成功して画面遷移されたらフラグが表示されました。
Use Hydra to bruteforce molly's SSH password. What is flag 2?
Hydraを使ってmollyのSSHパスワードをbruteforceする。フラグ2とは?
こちらもhydoraを用いてパスワードを解析します。
パスワードが解析できました。
sshでログインします。
lsコマンドでディレクトリ内を確認すると、flag2.txtが見つかりました。
catコマンドで中身を確認します。
完了!
今回は構文を間違えたのでかなり時間がかかりました。