內網漫遊:通過RDP劫持向遠程系統執行任意代碼
遠程桌面協議(RDP)被廣泛應用於管理員的內部網路。該協議允許系統所有者以及管理員遠程管理其Windows環境。然而,RDP在為我們帶來方便的同時,也為虎視眈眈的攻擊者打開了一扇窗,攻擊者常會利用該協議肆意的在內部網路中漫遊。以下攻擊,可讓攻擊者獲取憑據劫持其他用戶的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
成功執行後,該工具將在後台執行一系列的步驟,以確保攻擊的成功實施。以下是執行的相關流程:
欺騙ARP回復
啟用IPv4流量轉發,將流量從受害主機重定向到攻擊者機器,然後再轉發到目標RDP伺服器。
配置一個iptable規則拒絕SYN數據包,以防止直接的RDP認證。
捕獲目標主機的SYN數據包。
克隆SSL證書。
重新配置iptables規則,以將流量從受害工作站路由到目標RDP主機。
阻止到埠88的流量,以將Kerberos身份驗證降級到NTLM。
步驟1-3將在受害者身份驗證之前執行。嘗試通過RDP向目標伺服器進行身份驗證的用戶將會收到以下消息:
當用戶建立連接時,其憑據將以明文形式顯示給攻擊者。
RDP Inception
RDPInception是MDSec發現的一種攻擊方式。其主要是基於「啟動(Startup)」程序,也就是利用大家熟知的「啟動項」目錄,強制登錄進入RDP訪客計算機執行惡意代碼。為此,MDSec還開發了RDPInception的PoC驗證程序,一個簡單的批處理腳本。在攻擊者已經獲得訪問許可權的工作站上執行批處理腳本,攻擊者將會獲取到一個shell。
如果提權用戶(管理員或域管理員)嘗試通過RDP與已感染的主機進行身份驗證,則批處理腳本將會被系統上的其他用戶複製。
批處理腳本將會在工作站每次啟動時執行,以實現後門持久化。
當通過RDP向受感染主機驗證的提權用戶重啟他的機器時,代碼將被執行。
新的Meterpreter會話將在管理員的主機上,通過RDP服務的濫用被打開,而不需要直接攻擊該系統。
active Meterpreter sessions列表,將驗證攻擊者是否可以在兩個系統上訪問。
RDP會話劫持
如果攻擊者在目標系統上獲得本地管理員訪問許可權,則可能劫持其他用戶的RDP會話。這也解決了攻擊者對該用戶的憑據需求。這項技術最初是由Alexander Korznikov發現的,在他的博客中已有描述。
可使用的可用會話列表可以在Windows任務管理器中的「
Users
「選項卡中查看。也可以從命令提示符中獲取相同的信息。
query user
創建一個使用系統級許可權執行tscon的服務,將劫持ID為3的會話。
sc create sesshijack binpath= "cmd.exe /k tscon 3 /dest:rdp-tcp#0"
net start sesshijack
當服務啟動時,用戶「
test
」可以在不知道他密碼的情況下使用netbiosX的會話。
Mimikatz也支持這種技術。 第一步是檢索終端服務會話列表。
ts::sessions
嘗試直接使用會話1將失敗,因為Mimikatz並未以SYSTEM許可權執行。因此,下列命令將會將token從本地管理員提升到SYSTEM。這樣一來,當再次使用其他會話時,將不需要提供用戶的密碼。
ts::remote /id:1
privilege::debug
token::elevate
再次執行以下命令,將成功劫持netbiosX用戶的會話。
ts::remote /id:1
*參考來源:
pentestlab,FB小編 secist 編譯,轉載請註明來自FreeBuf.COM


※ezXSS:一款功能強大的XSS盲測工具
※實現一個簡單的Burp驗證碼本地識別插件
TAG:FreeBuf |