首頁>科技>

BitLocker Windows內建現代裝置級資料加密保護功能,BitLocker與Windows核心深度整合。有大量的企業和個人使用BitLocker加密自己關鍵資料,以防止資料洩密。BitLocker作為一種安全手段其本身也常常是安全測試和滲透的目標之一,也暴露過一些問題.

最近安全研究者Jonas Lykkegård發現了BitLocker的鎖屏繞過高危漏洞CVE-2020-1398,可以繞過BitLocker的密碼安全認證過程,影響的系統包括Windows 10,windows server等多個windows作業系統。

概述

透過6個簡單的步驟繞過BitLocker。對給定未知密碼和受BitLocker保護的硬碟驅動器Windows 10系統,可以透過執行以下操作來新增管理員帳戶:

登入螢幕上,選擇"我忘記了密碼"。

繞過鎖定並啟用可移動驅動器的自動播放。

插入帶有特別製作的.exe和連線資料夾的USB記憶棒。

執行可執行檔案。

解除安裝驅動器,然後再放回去,進入主螢幕。

啟動講述人,將執行之前植入的DLL有效負載。

就會,自動添加了一個名為hax的使用者帳戶,其密碼為"hax",該使用者具有Administrators成員身份。要使用要登入的帳戶更新列表,請單擊我忘記密碼,然後返回主螢幕。

鎖定螢幕繞過

首先,選擇"我忘記了密碼/PIN"。此選項將啟動一個附加會話,可根據需要建立/刪除一個帳戶。使用者個人資料服務將其稱為預設帳戶。它的第一個可用名稱為defaultuser1,defaultuser100000,defaultuser100001等。

要繞過鎖定,必須使用講述人(Narrato),因為該上下文中設法啟動某些內容,也無法看到它,如果使用講述人,將能夠對其進行導航。

如果我們連續快速地按了5次,則會出現一個開啟設定應用程式的連結,該連結實際上可用。但是無法看到啟動的設定應用程式。對重點關注已啟動的應用程式,單擊連結,然後單擊可以在正確的時間顯示啟動的應用程式的位置。

當主頁具有焦點時,按住Caps Lock並按Enter。使用CapsLock +向右箭頭導航到裝置,然後在焦點對準CapsLock + Enter時輸入。

導航至自動播放,單擊CapsLock + Enter,然後選擇"開啟資料夾以檢視檔案(檔案資源管理器)"。

然後,插入準備好的USB驅動器,等待幾秒鐘,講述人將宣佈驅動器已開啟,並且視窗已聚焦。

選擇檔案Exploit.exe並使用CapsLock + Enter執行。這樣無需使用任何密碼,可以實現任意程式碼執,。但是,受限制為預設配置檔案。

特權提升

安裝USB記憶棒後,BitLocker將在"系統卷資訊"中建立一個名為ClientRecoveryPasswordRotation的目錄,並將許可權設定為:

NT AUTHORITY\Authenticated Users:(F)NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)

要重定向建立操作,需要在NT名稱空間中使用符號連結,利用它可以控制檔名,並且連結的存在並不會導致報錯退出。

使用USB驅動器並以\System Volume Information為\RPC Control掛載點。然後做出一個\RPC Control\ClientRecoveryPasswordRotation符號連結指向\??\C:\windows\system32\Narrator.exe.local。

如果重新插入USB記憶棒,C:\windows\system32\Narrator.exe.local則會建立具有允許建立子目錄的許可權的資料夾:

amd64_microsoft.windows.common-controls_6595b64144ccf1df_6.0.18362.657_none_e6c5b579130e3898

在該子目錄中,刪除了一個名為comctl32.dll的有效負載DLL。下次觸發講述人時,它將載入DLL。順便說一句,選擇了講述人,因為它可以實現從登入螢幕作為系統服務觸發,並且不會自動載入,因此,如果出現任何問題,仍然還可以啟動。

結合起來

ClientRecoveryPasswordRotation利用需要的符號連結到\RPC Control。USB驅動器上的可執行檔案用兩次呼叫來建立連結DefineDosDevice,從而讓該連結成為永久連結,以便它們可以在需要時登出/登入。

然後啟動一個迴圈,其中可執行檔案將執行以下操作:

嘗試建立子目錄。

將有效負載comctl32.dll植入其中。

很容易看到迴圈何時執行,因為講述人將移動其焦點框並每秒說一次"訪問被拒絕"。現在,可以使用在中建立的連結RPC Control。拔下USB記憶棒,然後重新插入。可寫目錄將在中建立System32;在下一個迴圈迭代中,將會植入有效負載,並退出exploit.exe。若要測試漏洞利用程式是否成功,請關閉講述人,然後嘗試重新啟動它。

如果講述人不起作用,那是因為DLL已植入,並且講述人執行了該DLL,但是由於它以defaultuser1啟動,因此無法新增帳戶。植入有效負載後,將需要單擊返回登入螢幕並啟動講述人。會發出3聲嗶嗶聲,並顯示一個訊息框,說明已載入DLL。帳戶已建立,但是並沒有顯示在列表中。

按"我忘記了密碼",然後單擊返回以更新列表。

應該會出現一個名為hax的新帳戶,密碼為hax。

製作利用的USB

按照以下步驟設定USB記憶棒:

C:\Users\jonas>format D: /fs:ntfs /qInsert new disk for drive D:Press ENTER when ready...-----File System: NTFS.Quick Formatting 30.0 GBVolume label (32 characters, ENTER for none)?Creating file system structures.Format complete.30.0 GB total disk space.30.0 GB are available.

接著,需要將admin提升為delete System Volume Information。

C:\Users\jonas>d:D:\>takeown /F "System Volume Information"

結果:

SUCCESS: The file (or folder): "D:\System Volume Information"

然後

D:\>icacls "System Volume Information" /grant Everyone:(F)Processed file: System Volume InformationSuccessfully processed 1 files; Failed processing 0 filesD:\>rmdir /s /q "System Volume Information"

使用James Forshaw的工具(附帶)建立安裝點。

D:\>createmountpoint "System Volume Information" "\RPC Control"

然後將附件的exploit.exe複製

D:\>copy c:\Users\jonas\source\repos\exploitKit\x64\Release\exploit.exe .1 file(s) copied.

總結:

爆鎖屏繞過和許可權提升漏洞CVE-2020-1398,被評定為一個嚴重漏洞,微軟已經提供了了,對應的升級補丁,請使用BitLocker功能的使用者及時修補。

55
  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 線上教育軟體開發的未來前景