<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

    從外網 Weblogic 打進內網接管域控

    VSole2022-03-14 09:17:59

    逛公眾號的時候看到了大佬提供的靶場,閑來無事正好拿來練練手學習一下, 感謝大佬的無私分享。感興趣的同學可以去原文章中找一下環境地址,這里就不外放了,尊重作者版權。

    目標設定

    一臺出網主機,三臺域內機器,獲取域控桌面下的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 打進內網,再到約束委派接管域控

    https://mp.weixin.qq.com/s/dcYbIfLwN-Aw0Z9XxQSGkQ

    weblogicgpp
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    Freebuf的這篇文章http://www.freebuf.com/vuls/92016.html講了GPP的應用場景和與之對應的安全問題。
    一個內網安全攻防的知識倉庫
    信息搜集:開源情報信息收集、創建企業密碼字典進入內網:基于企業弱賬號漏洞、基于系統漏洞進入、網站應用程序滲透隱匿攻擊:Command and Control、代理內網跨邊界應用:內網跨邊界轉發、內網跨邊界代理穿透、shell反彈等
    去年weblogic出白名單時研究了下怎么繞過,總結出了下面的思路,本想再找找有無新的攻擊面的思路,但是找了幾次都沒找到,后來就擱置了。readMsgAbbrevs函數就會對流中的序列化數據進行反序列化,調用的是InboundMsgAbbrev類的readObject方法,并存儲在棧中。這里也就是之前weblogic的漏洞會觸發的readObject的地方。但是在21年4月的補丁中,Weblogic使用了白名單,只有以下七種類可以被反序列化,因此所有Weblogic原本的漏洞都無法使用。
    驗證環境weblogic/wsee/jaxws/WLSServletAdapter.class的handle方法打上斷點訪問http://127.0.0.1:7001/wls-wsat/CoordinatorPortType關于T3協議T3協議是Weblogic用于通信的獨有的一個協議,Weblogic Server的RMI通信使用它在其他區的Java程序傳輸數據。T3協議的組成這里借一張圖解釋一下關于 T3協議的組成ac ed 00 05是反序列化標志,而在 T3 協議中每個序列化數據包前面都有fe 01 00 00,所以 T3 的序列化標志為fe 01 00 00 ac ed 00 05并且在發送T3協議的時候 還可以發送多個序列化數據 ,可以替換其中一個的序列化數據 實現反序列化攻擊。
    weblogic T3 attack&cve
    2023-03-29 10:07:32
    定義了固定的t3header和反序列化標志頭fe010000。RFC1700規定使用“大端”字節序為網絡字節序,所以對生成的payload使用>大端模式打包,I表示unsigned int。CVE-2016-0638復現需要打補丁,找不到懶得打了,簡單說一下繞過,不寫poc了黑名單列表為:+org.apache.c
    java -jar weblogic.jar -jndistart -Jport 8888 -jndirmi -codeurl http://127.0.0.1/
    通過common-collection相關gadget,想辦法調用org.mozilla.classfile.DefiningClassLoader這個類去加載字節碼。然后通過T3協議的反序列化漏洞發送給待攻擊weblogic服務器。
    后續經過掃描探測發現T3、IIOP協議同時關閉了,僅限HTTP訪問。需要用戶名密碼,打補丁后,可以判斷用戶名密碼是否存在,但是無法上傳文件成功。
    我記得大概是15年年底時,冰蝎作者rebeyond第一個公布出Weblogic T3反序列化回顯方法,而且給出了相關的代碼。早期的Weblogic反序列化利用工具,為了實現T3協議回顯,都會向服務器上寫入一個臨時文件。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类