從外網 Weblogic 打進內網接管域控
逛公眾號的時候看到了大佬提供的靶場,閑來無事正好拿來練練手學習一下, 感謝大佬的無私分享。感興趣的同學可以去原文章中找一下環境地址,這里就不外放了,尊重作者版權。
目標設定
一臺出網主機,三臺域內機器,獲取域控桌面下的flag即為完成任務

weblogic反序列化,powershell上線CS
- 已知服務器地址為192.168.92.137,開放7001端口,掃描發現存在weblogic反序列化漏洞CVE_2020_2551


- tasklist無殺軟,administrator權限


- powershell上線CS

內網信息收集
- 內網信息收集,發現為雙網卡機器

- 搭frp代理進內網

- fscan掃內網10段,可以看到有一臺ms17010以及mssql弱口令sa&sa

- 工具連接mssql,服務器低權限,不出網



ipconfig /all可以看到是域內機器,ping該域名可獲得域控IP地址 10.10.10.8

利用GPP獲取域控administrator密碼
什么是 GPP
GPP是指組策略首選項(Group Policy Preference),GPP通過操作組策略對象GPO(Group Policy Object)對域中的資源進行管理。
Freebuf的這篇文章
http://www.freebuf.com/vuls/92016.html講了GPP的應用場景和與之對應的安全問題。簡單來說就是,出于想更新每臺主機上本地賬戶密碼的目的,利用GPP可以指定某個域賬戶為所有計算機的本地計算機管理賬戶。
而這個賬號信息存儲在
\[Domain Controller]\SYSVOL[Domain]\Policies中的某個Grouop.xml中
其中的cpassword為AES加密值。但在AD中的所有用戶都可以讀取Group.xml,對于AES的對稱加密,在微軟的MSDN上可以查到cpassword使用的固定秘鑰
利用過程
根據作者描述,靶場存在GPP漏洞,嘗試利用一下
使用
dir /s /a \\域控IP\SYSVOL\*.xml
構造如下語句
dir /s /a \\redteam.red\SYSVOL\redteam.red\Groups.xml

獲取到groups.xml文件,打開獲取到cpassword字段
type \\redteam.red\SYSVOL\redteam.red\Policies\{B6805F5A-614E-4D32-9C2B-7AC2B6798080}\Machine\Preferences\Groups\Groups.xml

利用gpprefdecrypt.py獲取到域控密碼“cpassword”字段,得到
administrator/Admin12345

IPC橫向訪問域控獲取flag
- IPC橫向IPC是專用管道,可以實現對遠程計算機的訪問,需要使用目標系統用戶的賬號密碼,使用139、445端口
- 回到weblogic被控主機cs執行以下命令
shell net use \\10.10.10.8\ipc$ "Admin12345" /user:redteam.red\administrator

- 至此可以接管域控,以administrator權限執行命令。
- 訪問域控上的資源,獲取 flag.txt

總結
域內提供了三臺主機,還有一臺ms17010的主機沒有用上,當然目前的環境跟實戰環境也是有一些出入,比如按個人習慣cs上線后肯定是先想辦法看能不能開3389以及如何規避殺軟,這里知道環境網絡結構直接奔著目標去了,所以一切比較順利。根據靶場描述,使用其他思路比如約束委派或者非約束委派都可接管域控,感興趣的可以嘗試下。另外再次感謝作者提供的靶場。
原文鏈接
從外網 Weblogic 打進內網,再到約束委派接管域控