關于BeRoot-Windows

BeRoot-Windows是一款功能強大的Windows安全檢測與權限提升工具,該工具專為紅隊研究人員和Windows系統安全專家設計,該工具可以檢測常見的Windows錯誤配置,并嘗試實現權限提升。

需要注意的是,該工具只能夠實現漏洞和錯誤配置的檢測,并不能直接實現漏洞利用。如果檢測到了錯誤配置或安全漏洞的存在,廣大研究人員可以使用項目templates目錄中提供的內容來嘗試進行漏洞測試。

工具技術流程與架構

工具下載

廣大研究人員可以直接訪問該項目的【Releases頁面】下載該工具的預編譯版本。

除此之外,我們也可以使用下列命令將該項目源碼克隆至本地:

git clone https://github.com/AlessandroZ/BeRoot.git

并自行構建代碼。

工具運行

工具使用

路徑包含空格且無引號

以下列文件路徑為例:

C:\Program Files\Some Test\binary.exe

如果路徑包含空格且無引號,Windows會按照下列順序嘗試定位并執行程序:

C:\Program.exe

C:\Program Files\Some.exe

C:\Program Files\Some Folder\binary.exe

如果“C:\”目錄可寫,那我們就可以再次創建一個名為Program.exe的惡意程序,如果“binary.exe”能以高級權限運行,我們就能夠實現提權了。

可寫入的目錄

以下列文件路徑為例:

C:\Program Files\Some Test\binary.exe

如果“binary.exe”的根目錄可寫入(“C:\Program Files\Some Test”),且能夠使用高級權限運行,我們同樣可以實現提權。

%PATH%變量中的可寫入目錄

這項技術將影響下列Windows版本:

6.0 => Windows Vista / Windows Server 2008
6.1 => Windows 7 / Windows Server 2008 R2
6.2 => Windows 8 / Windows Server 2012

在常見的Windows安裝中,當DLL通過二進制代碼進行加載時,Windows會嘗試使用下列方式進行文件定位:

- 代碼所在目錄
- C:\Windows\System32
- C:\Windows\System
- C:\Windows\
- 代碼啟動時所在的當前目錄
- %PATH%環境變量中的目錄

如果%PATH%變量上的目錄是可寫的,則有可能實現DLL劫持攻擊。然后,我們需要找到一個服務,加載這些路徑中不存在的DLL。這個例子是默認的“IKEEXT”服務的執行情況,它加載一個不存在的“wlbstrl.dll”。

此時,我們可以創建一個名為“wlbstrl.DLL”的惡意DLL(使用DLL模板),并將其添加到%PATH%變量上列出的可寫路徑中,然后啟動服務“IKEEXT”。

使用下列內容創建一個文件:

C:\Users\bob\Desktop>type test.txt

[IKEEXTPOC]

MEDIA=rastapi

Port=VPN2-0

Device=Wan Miniport (IKEv2)

DEVICE=vpn

PhoneNumber=127.0.0.1

使用“rasdial”代碼開啟IKEEXT服務即可:

C:\Users\bob\Desktop>rasdial IKEEXTPOC test test /PHONEBOOK:test.txt

項目地址

BeRoot-Windows:https://github.com/AlessandroZ/BeRoot/tree/master/Windows