ToDesk軟件在滲透測試中的應用
聲明:該公眾號大部分文章來自作者日常學習筆記,也有部分文章是經過作者授權和其他公眾號白名單轉載,未經授權,嚴禁轉載,如需轉載,聯系開白。 請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與文章作者和本公眾號無關。 |
之前我也分享過一篇"ToDesk軟件在權限提升中的應用",記錄的是在權限提升場景下的利用方式。
更多這類第三方遠控軟件的利用方式可參考之前發的系列文章,有向日葵、AnyDesk、TeamViewer等。
0x01 ToDesk簡介
ToDesk是一款類似向日葵的遠程控制軟件,但比向日葵、TV和AD更為流暢和穩定,它同樣具備著內網穿透、文件傳輸、云端同步和流量加密等功能。
有綠色精簡版和全功能版兩個版本,支持的系統有:
Winodws/Linux/MacOS/Android/iOS
0x02 如何實現命令行靜默安裝?
全功能版在雙擊運行、命令行執行時都會出現UAC彈窗和安裝界面,這樣非常容易被管理員發現,那么有沒有辦法能夠在命令下實現靜默安裝呢?

ToDesk文檔中看到安裝包ToDesk_Setup.exe的/S參數可以實現靜默安裝,但也會出現UAC彈窗,默認安裝在以下目錄中,安裝完成后自動運行。
C:\Program Files (x86)\ToDesk\

0x03 場景1:解密目標連接密碼
運行ToDesk后會在默認安裝目錄下生成一個config.ini配置文件,存儲的有設備代碼、臨時密碼、安全密碼以及登錄用戶和密碼等重要敏感信息,但密碼都經過ToDesk特有加密算法加密,所以不能通過解密得到明文密碼。
[ConfigInfo]localPort=35600clientId=391***073PrivateData=44492ab4e1ba3a207f0ed6ed08ebaee4688f35a3e4734c69140aabb51fe33ca8a046d8e494200fcdad17759e4aee4333ddaa63ee63289e277blanguage=936tempAuthPassEx=8d5e3b8d825e57297ea9ce36aca337cd0b592d54e26f00f311cd42207c2255d1b0a87595efd994d0efb658ce84494fa4814630817478updatePassTime=20210701authPassEx=874faa02bf500fb26bd91df9dd5af45ba7ed91568253f4cd04d6ca88c91d458707ad0879cd013dc0605ec63a3f60957e346e5a34af6a

既然ToDesk會將我們設置的安全密碼進行加密,自然也就有解密了,否則密碼將無法顯示,所以完全可以利用ToDesk進行解密。當然,有能力的老哥也可以逆向加密算法來寫解密程序。
實戰測試中只需要找到目標主機ToDesk中的tempAuthPassEx臨時密碼或authPassEx安全密碼,將它們覆蓋到我們本地ToDesk中的tempAuthPassEx,重啟ToDesk即可得到明文密碼。

0x04 場景2:獲取歷史連接記錄
ToDesk連接一臺主機后會在默認安裝目錄下生成一個json格式文件,在已登錄狀態和未登錄狀態的文件命名方式不太一樣,但內容基本都差不多。
未登錄狀態:?
C:\Program Files (x86)\ToDesk\userInfo.json
已登錄狀態:
C:\Program Files (x86)\ToDesk\devlist_493***344@qq.com.json

這個文件主要用于存儲歷史連接記錄,只需找到UserId連接ID和PassEx密碼,然后利用以上方式將PassEx解密得到明文,最后再用目標主機ToDesk的連接ID和密碼連接即可。
{ "DeviceInfo" : [ { "Height" : 723, "LastPath" : "", "PassEx" : "19f57e6b81c752cffd786df2ebfbd590237d51d5575377766e6f830170b9d5dff2e1751739bf05084dbe2af6e629b8c0a380e17ab4c315", "PrivacyScreen" : 0, "Quality" : 0, "ResolutionX" : 0, "ResolutionY" : 0, "ScreenMode" : 0, "UserId" : "391***073", "Voice" : 0, "Width" : 1368 } ]}

注:測試中發現使用同一個密碼在tempAuthPassEx、authPassEx和歷史連接記錄里的PassEx密文都不一樣,但是這幾個密文又都可以用ToDesk來解密,而且明文還都是123456,搞不太明白。
0x05 可能需要清理的痕跡
這里我們必須要先結束或停止ToDesk_Service進程/服務,否則ToDesk.exe進程會在結束后自動運行。
@echo offtaskkill /f /im ToDesk_Lite.exe /im ToDesk_Service.exe /im ToDesk.exedel /s /q C:\Windows\Prefetch\TODESK*.pfdel /s /q C:\Users\Public\Desktop\ToDesk.lnkdel /s /q "%userprofile%\AppData\Roaming\Microsoft\Windows\Recent\*TODESK*.lnk"rmdir /s /q "C:\Program Files (x86)\ToDesk"rmdir /s /q "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\ToDesk"rmdir /s /q "%userprofile%\AppData\Local\ToDesk"rmdir /s /q "C:\WINDOWS\SysWOW64\config\systemprofile\AppData\Local\ToDesk"reg delete "HKLM\SOFTWARE\ToDesk" /freg delete "HKLM\SYSTEM\CurrentControlSet\Services\ToDesk_Service" /freg delete "HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\ToDesk" /fsc delete ToDesk_Service[...SNIP...]