滲透技巧——利用tscon實現未授權登錄遠程桌面
0x00 前言
Windows系統下,tscon可被用來切換遠程桌面的會話。正常情況下,切換會話時需要提供登錄密碼,但通過特殊的利用方法能夠繞過驗證,不輸入密碼實現未授權登錄。
這會造成什麼影響呢?這個方法能用在哪種條件下呢?結合利用方法又該如何防禦呢?本文將要一一介紹
註:
本文使用tscon未授權登錄的思路借鑒於如下鏈接:
https://medium.com/@networksecurity/rdp-hijacking-how-to-hijack-rds-and-remoteapp-sessions-transparently-to-move-through-an-da2a1e73a5f6
0x01 簡介
本文將要介紹以下內容:
·tscon的正常用法
·利用tscon實現未授權登錄遠程桌面的方法
·應用實例
·防禦建議
0x02 tscon的正常用法
對於開啟遠程桌面服務的Windows系統,當有多個用戶登錄該系統時,會產生多個會話,如下圖
測試系統: Server2012 R2
用戶Administrator為本地登錄
用戶b為通過遠程桌面服務(RDP)連接3389埠遠程登錄
接下來,如果用戶Administrator想要切換至用戶b的遠程桌面,可通過右鍵-Connect進行連接,接著輸入密碼即可
如下圖
tscon是命令行下使用的工具,可實現相同的功能
首先獲取用戶對應的sessionid,執行如下命令:
query user
輸出如下圖
用戶b對應的sessionid為2
通過tscon切換至用戶b的桌面,命令如下:
tscon 2 /PASSWORD:test123!
0x03 利用tscon實現未授權登錄遠程桌面的方法
在System許可權執行同樣的命令,就能夠繞過輸入密碼的過程,直接切換
從Admin許可權切換到System許可權的方法在之前的文章《滲透技巧——從Admin許可權切換到System許可權》有過詳細介紹,常用方法有如下三種:
·通過創建服務獲得System許可權
·利用MSIExec獲得System許可權
·利用token複製獲得System許可權
選取其中的一種,獲得system許可權,接著輸入如下命令:
tscon 2
成功登錄
0x04 應用實例一
對於Server2012 R2系統,默認情況下,通過mimikatz無法導出明文口令,測試環境下,通過某些方法獲得了伺服器的一個用戶名密碼,可以通過遠程桌面進行登錄
登錄後發現後台存在另一用戶
由於未導出明文口令,通過常規方法無法切換至另一用戶的桌面
這裡就可以藉助上文提到的方法,先提權至System許可權,再切換過去
特別的地方:
當用戶通過遠程桌面登錄後,直接點擊關閉斷開連接,如下圖
此時該會話並沒有結束,後台顯示Disconnected,如下圖
此時,仍能在system許可權下通過tscon實現未授權連接
0x05 應用實例二
利用輔助工具管理器後門(放大鏡後門原理相同,進程為sethc.exe)繞過系統登錄界面
進程: utilman.exe
登錄界面可通過點擊圖標對其調用,如下圖
調用輔助工具管理器的快捷鍵: Win+U
通過註冊表劫持實現後門,修改註冊表的命令如下:
REG ADD "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionsutilman.exe" /t REG_SZ /v Debugger /d "C:windowssystem32cmd.exe" /f
在登錄界面啟動輔助工具管理器,彈出cmd.exe,許可權為system,如下圖
通過tscon可直接切換至目標用戶的桌面
補充:
在登錄界面狀態下,降權方法受限,SelectMyParent和Invoke-TokenManipulation.ps1均報錯
使用incognito能夠成功降權,但是操作仍受限,如下圖
註:
SelectMyParent、Invoke-TokenManipulation.ps1和incognito的使用說明可參考文章《滲透技巧-Token竊取與利用》
無法對目標用戶桌面進行截屏,截屏的powershell代碼可參考:
https://gallery.technet.microsoft.com/scriptcenter/eeff544a-f690-4f6b-a586-11eea6fc5eb8
受限的原因:
登錄界面下,雖然是system許可權,但是此時的進程均是winlogon的子進程
如下圖
繞過思路:
利用WMI做中轉,通過WMI啟動進程,默認父進程為svchost.exe->WmiPrvSE.exe
命令如下:
wmic process call create commandline = "powershell -ep bypass -f c: estsystem4.ps1"
system4.ps1的內容來自於Invoke-TokenManipulation.ps1,以用戶win-eq8jfsr081d的許可權執行腳本,具體參數為:
Invoke-TokenManipulation -CreateProcess "c: est ask.bat" -Username "in-eq8jfsr081d"
task.bat的功能為輸出環境變數到task.txt中,具體參數為:
set >>c: est ask.txt
執行如下圖
查看task.txt的內容,判斷環境變數,成功降權,如下圖
通過這種方式,可以分別降權至High和Medium許可權,如下圖
0x06 防禦建議
建議用戶使用註銷用戶的方式斷開遠程桌面,註銷後,無法通過tscon獲得桌面會話
監控系統用戶的登錄日誌,攻擊者需要先遠程登錄系統後才能做進一步利用:未授權切換桌面會話
對於Windows系統,雖然新版本(包括server 2012等)無法在遠程登錄界面中調用放大鏡和輔助工具管理器,但需要注意攻擊者如果獲得了系統的物理訪問許可權,能夠利用放大鏡和輔助工具管理器後門實現未授權登錄
0x07 小結
本文介紹了利用tscon實現未授權登錄遠程桌面的方法,站在攻擊者的角度,分析利用思路,最後站在防禦的角度,結合攻擊方法,給出防禦建議。
本文為 3gstudent 原創稿件, 授權嘶吼獨家發布,如若轉載,請聯繫嘶吼編輯: http://www.4hou.com/penetration/10015.html 更多內容請關注「嘶吼專業版」——Pro4hou
推薦閱讀:
※越過CPS,再看IoT安全
※商業銀行使用外資廠商生產的伺服器是否能危及到金融安全?
※實用密碼學工具——KDF
※如何看待「邊防護邊敲詐,網安專家變黑客」事件?違法所得66個比特幣,判3年,罰5000,判決是否合理?
※內含POC | 又一個漏洞可以遠程控制你的電腦!
TAG:信息安全 |