如何使用RDP中間人攻擊進行橫向滲透
遠程桌面協議(RDP)被管理員廣泛地用於內部網路。RDP允許系統所有者和管理員遠程管理Windows環境。然而,RDP同樣也可以給攻擊者提供各種機會進行攻擊,這些攻擊可以用於red團隊場景中的橫向滲透。下面的攻擊可以讓red團隊獲得憑證,以劫持其他用戶的RDP會話,並向遠程系統執行任意代碼,這些遠程系統將使用RDP作為被感染工作站的身份驗證機制。
RDP中間人
實現中間人攻擊通常會導致憑據捕獲。中間人在對RDP會話進行攻擊的同時,攻擊者可以獲得一個用於橫向滲透的域名帳戶的明文密碼。Seth是一種可以使RDP中間人攻擊自動化的工具,而不管網路級別的身份驗證(NLA)是否啟用。這次攻擊的實施需要四個參數:
·乙太網介面
·攻擊者的IP
·受害者工作站的IP(客戶端)
·目標RDP主機的IP(伺服器)
./seth.sh eth0 10.0.0.2 10.0.0.3 10.0.0.1
Seth-中間人
在執行時,該工具將在後台執行一系列步驟,以確保成功地實現攻擊。這些步驟是:
1.欺騙ARP應答
2.啟用IPv4流量的轉發,將來自受害者主機的流量重定向到實施攻擊的機器,然後再轉發到目標RDP伺服器。
3.配置一個iptable規則來拒絕SYN包,以防止直接RDP身份驗證。
4.捕獲目標主機的SYN包。
5.SSL證書的克隆。
6.重新配置iptables規則,將來自受害者工作站的通信路由到目標RDP主機上。
7.阻塞到埠88的通信,以將Kerberos身份驗證降級為NTLM。
步驟1-3將在受害者身份驗證之前執行。嘗試通過RDP對目標伺服器進行身份驗證的用戶將收到以下消息:
遠程桌面連接-證書錯誤。
當用戶建立連接時,憑證將以明文形式展現給攻擊者。
Seth - RDP明文密碼
RDP啟動
MDSec發現了一種技術,它允許攻擊者通過啟動時執行任意代碼,在網路中實現橫向滲透,並且該技術通過RDP連接進行傳播。為了便於攻擊,MDSec開發了一個批處理腳本,以實現概念驗證和深度攻擊腳本。在一個攻擊者已經獲得訪問的工作站中執行批處理腳本將會產生一個shell。
RDP啟動-執行BAT文件
如果一個高級用戶(管理員或域名管理員)試圖通過RDP對已經被感染的主機進行身份驗證,那麼該批處理腳本將會被複制並在其他用戶的系統上複製。
RDP啟動-管理員通過RDP連接到工作站
每次工作站啟動時,都將執行批處理腳本以實現持久性。
RDP啟動-代碼傳播
當通過RDP向被感染的主機認證的高許可權用戶重新啟動他的機器時,代碼將被執行。
RDP啟動- DC上的Meterpreter
活動的Meterpreter會話列表將驗證攻擊者在這兩個系統上是否都有訪問許可權。
RDP啟動- Meterpreter活動會話
RDP會話劫持
如果在目標系統上獲得了本地管理員訪問,攻擊者則可能會劫持另一個用戶的RDP會話。這使得攻擊者不需要再獲取該用戶的憑證。該技術最初是由Alexander Korzniko發現的,在他的博客中也有描述。
可以被利用的可用會話列表,可以從「用戶」選項卡的Windows任務管理器中檢索。
RDP會話Gui
可以從命令提示符獲得相同的信息。
query user
RDP會話終端
創建具有系統級別特權的tscon服務將劫持具有3作為ID的會話。
sc create sesshijack binpath= "cmd.exe /k tscon 3 /dest:rdp-tcp#0"
net start sesshijack
通過服務劫持的RDP會話
當服務啟動時,用戶「測試」可以在不知道密碼的情況下使用netbiosX會話。
RDP會話通過服務進行劫持——netbiosX用戶
Mimikatz也支持這種技術。第一步是檢索終端服務會話列表。
ts::sessions
Mimikatz -終端服務會話
由於Mimikatz沒有作為SYSTEM被執行,所以直接使用會話1的嘗試將失敗。因此,下面的命令將把單點登錄許可權從本地管理員提升到SYSTEM,以便在不需要知道用戶密碼的情況下使用另一個會話。
ts::remote /id:12 privilege::debug3 token::elevate
Mimikatz - RDP會話劫持
再次執行以下命令將劫持netbiosX用戶的會話。
ts::remote /id:1
Mimikatz - netbiosX的RDP會話
※JbossMiner 挖礦蠕蟲分析
※惡意軟體分析之——勒索即服務
TAG:嘶吼RoarTalk |