Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86371812

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

0x00 前言在內網滲透中,當我們獲得了WSUS服務器的控制權限後,可以通過推送補丁的方式進行橫向移動。這個利用方法最早公開在BlackHat USA 2015。本文將要整理這個利用方法的相關資料,結合思路,得出行為檢測的方法。

0x01 簡介本文將要介紹以下內容:

環境搭建

利用思路

實現工具

行為檢測

0x02 環境搭建本節介紹WSUS服務器搭建的過程,通過配置客戶端實現補丁的推送

參考資料:

https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-r2-and-2008/dd939822(v=ws.10)

1.WSUS服務器搭建WSUS服務器需要安裝在Windows Server操作系統

(1)安裝

在添加角色和功能頁面,選擇Windows Server Update Services

需要指定補丁更新包的存放路徑,這裡可以設置為C:\WSUS

(2)配置

打開Windows Server Update Services進行配置

配置時選擇默認選項即可,在選擇Download update information from Microsoft Update時,點擊Start Connecting,如果報錯提示An HTTP error has occurred,經過我的多次測試,可以採用以下方法解決:

關閉當前頁面

進入Windows Server Update Services,選擇synchronization,點擊synchronization Now,等待同步完成,如下圖

1.png選擇Options,選擇WSUS Server Configuration Wizard,重新進入配置頁面,連接成功,如下圖

2.png配置完成後需要創建計算機組,如下圖

3.png

當同步完成後,會提示下載了多少個補丁,如下圖

4.png選擇Updates頁面,可以查看已下載的補丁,Unapproved表示未安裝的補丁,安裝後的補丁可以選擇Approved進行查看,如下圖

5.png選中一個補丁,點擊Approve.彈出的對話框可以針對指定計算機組安裝補丁,如下圖

6.png2.客戶端配置客戶端只要是Windows系統即可,需要通過組策略配置

依次選擇Computer Configuration-Administrative Templates-Windows Components-Windows Update,選擇Configure Automatic Updates,設置成Auto download and notify for install,選擇Specify intranet Microsoft update service location,設置更新服務器地址為http://192.168.1.182:8530

注:

需要指定端口8530

對於域環境,配置組策略後需要等待一段時間,這是因為組策略每90分鐘在後台更新一次,隨機偏移量為0-30分鐘,如果想立即生效,可以輸入命令:gpupdate /force

對於工作組環境,配置組策略可以立即生效

當客戶端開始補丁更新時,WSUS服務器會獲得客戶端的信息,並顯示在Computers頁面

組策略配置的操作等同於創建註冊表,具體信息如下:

(1)組策略配置自動更新後會創建註冊表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

查詢命令:REG QUERY 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU'

返回結果示例:

7.png其中AUOptions對應組策略配置中的Configure automatic updating,2代表Notify for download and notify for install,3代表Auto download and notify for install,4代表Auto download and schedule the install,5代表Allow local admin to choose setting

(2)組策略配置服務器地址後會創建註冊表HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate

查詢命令:REG QUERY 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate'

返回結果示例:

8.png3.推送補丁在WSUS服務器的Windows Server Update Services頁面,選擇指定補丁,右鍵點擊Approve.在彈出的對話框中選擇計算機組即可

等待客戶端到達補丁更新時間,即可完成補丁的推送

0x03 利用思路如果我們能夠生成一個帶有Payload的補丁,就能夠通過補丁進行橫向移動,但是在利用上需要注意補丁文件的簽名問題:Windows的補丁文件需要帶有微軟的簽名

通常的利用方法是使用帶有微軟簽名的程序,例如psexec,通過psexec執行命令或者添加一個管理員用戶

0x04 實現工具開源的工具有以下三個:

https://github.com/nettitude/SharpWSUS

https://github.com/AlsidOfficial/WSUSpendu

https://github.com/ThunderGunExpress/Thunder_Woosus

以上三個工具的實現原理基本相同,都是創建一個調用psexec執行命令的補丁,將補丁推送至指定計算機,等待目標計算機更新補丁

創建補丁的操作需要連接SQL數據庫,依次實現以下操作:

ImportUpdate

PrepareXMLtoClient

InjectURL2Download

DeploymentRevision

PrepareBundle

PrepareXMLBundletoClient

DeploymentRevision

1.創建補丁SharpWSUS在創建補丁時需要注意轉義字符,命令示例:

9.png這條命令將會在Updates的Security Updates頁面下創建WSUSDemo,如下圖

10.png2.補丁部署將補丁部署到指定計算機組,命令示例:

11.png這條命令會創建計算機組Demo Group,並且把win-iruj9k30gr7移動到該組下面,如下圖

12.png接下來需要等待客戶端安裝這個補丁

3.查看補丁狀態查看補丁是否被安裝,命令示例:

13.png補丁未安裝的輸出如下:

14.png還有一種查看方法是查看計算機的補丁更新時間,示例命令:SharpWSUS.exe inspect

輸出示例:

15.png為了便於測試,可以強制客戶端更新補丁,看到新的補丁信息,如下圖

16.png4.清除補丁信息命令示例:

17.png這條命令會刪除補丁,刪除添加的計算機組

在整個補丁更新過程中,WSUS服務器會將psexec.exe保存在WSUS服務器本地C:\wsus\wuagent.exe和C:\wsus\WsusContent\8E\FD7980D3E437F28000FA815574A326E569EB548E.exe,需要手動清除

在測試WSUSpendu時,為了便於分析細節,可以修改以下代碼:

18.png命令行執行:powershell -ep bypass -f WSUSpendu.ps1 -Verbose,將會輸出完整的信息

0x05 行為檢測客戶端的補丁歷史更新記錄會保存所有的補丁安裝信息:

如下圖

19.png

但是,攻擊者如果獲得了系統的管理員控制權限,可以通過命令行卸載補丁的方式清除歷史更新記錄,命令行卸載補丁的命令示例:

查看更新:wmic qfe list brief/format:table

卸載指定更新:wusa /uninstall /kb:976902 /quiet /norestart

0x06 小結本文介紹了通過WSUS進行橫向移動的方法和實現工具,結合利用思路,給出行為檢測的建議。

參考資料:

https://www.blackhat.com/docs/us-15/materials/us-15-Stone-WSUSpect-Compromising-Windows-Enterprise-Via-Windows-Update.pdf

https://www.gosecure.net/blog/2020/09/03/wsus-attacks-part-1-introducing-pywsus/

https://labs.nettitude.com/blog/introducing-sharpwsus/