作者:阿布@墨云科技VLab Team
原文鏈接:https://mp.weixin.qq.com/s/91g9szVMDyXC17u6Vx453A

RDP協議(Remote desktop protocol)

RDP(remote desktop protocol)桌面遠程傳輸協議,是一個多通道的協議,可以讓用戶連接上提供微軟終端機服務的電腦。RDP協議大部分被應用在Windows操作系統中,當然也包括linux,freebsc,mac os x在內的其他系統。公司員工在出差或者居家辦公期間,可以使用遠程桌面軟件訪問其辦公計算機,這樣一來提高了辦公效率,但也帶來了很多安全風險隱患。如果攻擊者通過RDP協議獲取到目標主機的操作系統版本、用戶名多維度信息,便可以直接搜索操作系統版本相應的漏洞并利用其實施密碼爆破,大大提高了黑客獲取目標主機操控權限的概率。

基于RDP協議的識別方法

識別方法概述

當前最普遍的操作系統識別方法主要是基于規則匹配的方法。例如:利用Nmap掃描目標主機,通過獲取網絡中傳輸和接收的數據包信息與它已經創建的規則庫進行特征匹配,進行快速識別。但目標主機所處的網絡環境會影響數據包信息質量,導致操作系統版本識別準確率較低;另外,單靠Nmap等掃描工具探測維度不夠,獲取信息有限,無法獲取目標主機用戶名信息。

解決思路

以虛擬的攻,促真實的防。站在攻擊者的角度,解決問題的思路如下:通過RDP協議獲取到目標主機的遠程桌面登錄截圖,利用目標檢測算法獲取目標主機的操作系統版本和用戶名位置。考慮到用戶名字符存在多種多樣的形式,我們將識別到的用戶名位置在寬、高上分別設置一定的像素偏差,然后將其裁剪出來,利用ocr模型識別出具體的字符。最后,匯總每個主機的操作系統版本與用戶名信息進行返回。

圖片

圖1 基于RDP協議獲取操作系統版本和用戶名流程

實現方法

1.數據準備

我們主要針對Windows操作系統編寫腳本,獲取開啟RDP服務的Windows主機的登錄截圖,目前主要支持的操作系統版本包括Windows7_Profession、Windows7_Enterprise、Windows7_ulimate、Windows_Server_2008_Standard、Windows_Server_2008_Enterprise、Windows_Server_2008_Datacenter、Windows_Server_2012、Windows_Server_2008_R2_Standard、Windows_Server_2008_R2_Enterprise、Windows_Server_2008_R2_Datacenter、Windows_Server_2008_R2_Foundation、Windows_Server_2008_R2_Web_Service、Windows_Server_2012_R2、Windows10/Windows11/Windows_Server_2016/2019一共14個類別。其中Windows_Server_2016和Windows_Server_2019都是基于Windows 10內核開發的,所以我們將它們歸為一類。同時,訓練數據為經過人工挑選大量具有代表性的圖片,使得模型的泛化能力得以保證。下圖是我們基于RDP協議獲取到的Windows7_Enterprise的截圖,從圖中可以看到目標主機的操作系統版本和用戶名。

圖片

圖2 基于RDP協議獲取到的用戶登錄界面

2.目標檢測算法

提到目標檢測算法,就不得不說Yolo系列,目前Yolo系列已經更新至V7版本,但考慮到算法穩定性問題,我們采用Yolo V5算法對RDP截圖進行識別訓練。Yolo系列算法的本質相同,主要原理如下:

圖片

圖3 yolo算法案例圖

將輸入圖片分割成SxS網格,每個單元格(grid cell)負責去檢測中心點落在該格子內的目標,如上圖中的紅色grid cell就負責預測“狗”這個對象。其次在不同的算法中每個grid cell又會生成多個bounding box,簡稱bbox,每個bbox又有置信度計算方法,其置信度大小一共包含兩個部分具體計算公式如下:

其中,表示邊界框含有目標的可能性大小,如果該邊界框是背景時為0,當邊界框包含目標時為1;表示預測框和真實框的交并比。表示第個bbox的置信度,取值范圍從0到1,表征邊界框匹配目標的好壞程度

每個grid cell最終的預測值為大小的張量,其中B表示bbox的個數,每個bbox預測值包括它的中心坐標(x,y)和(w,h),也就是邊界框相對于整個圖片的寬高比例,以及該bbox的邊框置信度c;C表示每個bbox預測包含所有類別的概率值。其總的損失函數如下:

圖片

整個公式由三部分組成,第一部分為綠色方框中的內容,表示第i個網格中的第j個bbox是否負責這個Object,稱為坐標預測;第二部分為紅色方框中的內容,分別是含有Object的bbox的置信度預測與不含Object的bbox的置信度預測,統稱置信度預測;第三部分為藍色方框中的內容,表示是否有Object中心落在網格i中,稱為類別預測。分別為權重系數。

跟常見的機器學習任務一樣,訓練模型的最終目的是為了使上述的損失函數不斷減小,讓目標檢測任務從預測方框預測類別兩個維度不斷逼近真實的標簽數據,從而達到訓練效果。經過實驗,最終的預測結果如下圖所示。

圖片

圖4 基于rdp方法識別結果圖

3.OCR識別

在得到用戶名位置后,根據經驗判斷,將預測框的位置在圖片寬度基礎上誤差設置為0-5個像素值,在高度基礎上誤差設置為0-3個像素值,然后將其裁剪下來,利用我們已有的ocr模型進行識別,得到最終的操作系統版本類別和用戶名信息。同時,支持多個用戶名識別。

4.實驗結果

為保證測試結果準確性,實驗分別對每個類別的600-1000張圖片進行測試,最后進行人工核查,得到實驗結果如下表所示。在用戶名方面,測試的準確率為98%左右。

類別 準確率
Windows7_Profession 99.8%
Windows7_Enterprise 99.6%
Windows7_ulimate 99.8%
Windows_Server_2008_R2_Standard 94.5%
Windows_Server_2008_R2_Enterprise 98.7%
Windows_Server_2008_R2_Datacenter 99%
Windows_Server_2008_R2_Foundation 100%
Windows_Server_2008_R2_Web_Service 100%
Windows_Server_2012_R2 98.2%
Windows_Server_2008_Standard 100%
Windows_Server_2008_Enterprise 100%
Windows_Server_2008_Datacenter 100%
Windows_Server_2012 100%
Windows10/Windows11/Windows_Server_2016/2019 98%

基于rdp方法實驗結果

總結

目前,網絡安全風險驗證過于依賴人工方式,多以白帽黑客進行人工滲透測試為主,交付方式、工作效率、標準化程度、行為及數據可控性存在多方面不足。同時,網絡安全缺乏有效驗證手段,盡管企業投入了大量資金購買各類安全系統及設備,也很難科學、準確地驗證自身安全控制的有效性及安全投入的合理性。

網絡安全攻防技術必將愈發體現出人工智能及機器學習介入的影響,未來的網絡安全將會越來越多地出現AI vs AI的攻防局面,墨云將一直專注人工智能在攻防安全領域的應用研究,打造智能化產品體系,為用戶提供全方位的信息安全服務。


Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1954/