iT邦幫忙

2023 iThome 鐵人賽

DAY 25
1
Security

Windows Security 101系列 第 25

[Day25] Introduction to Logical Privilege Escalation on Windows (Part 2): TOCTOU

  • 分享至 

  • xImage
  •  

今天要介紹一個在 Windows 經典的 TOCTOU 的攻擊方式,希望透過此篇的分享讓更多開發者知道漏洞成因以及該類型漏洞的利用方式。

Time-of-Check to Time-of-Use (TOCTOU) 的意思是檢查和使用的時間不一致所導致的漏洞。舉例來說,一個檔案經過檢查後沒有及時被使用,因此攻擊者可以竄改已經通過檢查的檔案,使用者便會誤以為已經檢查過了就直接使用該惡意檔案。 在許多情境都能看到這類型的漏洞,像是載入 DLL、驗證簽章、載入檔案等等。

TOCTOU

根據 James Forshaw 的投影片,他提到了兩種情境:

  • Race Condition 在檢查和載入 DLL 之間
  • 要載入 DLL 的路徑的 parsing

如下圖所示,DLL 在被載入前有多個檢查,像是檢查 .dll 副檔名和開啟檔案並且檢查檔案路徑是否在 C:\Windows\System32\

https://ithelp.ithome.com.tw/upload/images/20231009/20120098vlOmRgZRaJ.png

(ref: https://archive.conference.hitb.org/hitbsecconf2017ams/sessions/hitb-lab-introduction-to-windows-logical-privilege-escalation/)

在這個案例中就存在 TOCTOU 的問題。

我們可以利用 oplock 在 LoadLibrary 時觸發我們設定的 callback,並且鎖住所有對於該檔案的操作,

Opportunistic Lock (oplock)

這個機制的濫用在今年的大型資安會議中已經出現過數次,在 Windows 的 NTFS 中,存在著 oplock 的機制可以讓多個 process 存取的檔案暫時被特定 process 鎖住而不被其他 processes 存取,包含 exxcute, read, write, delete。

而在 filesystem 中的 Lock 分為兩種:

  • Exclusive Lock
    • Lock 可以 block 任何 access type,也不能新增任何 lock
  • Shared Lock
    • Lock 可以只 allow 特定的 access type,只可以新增 shared lock

而在 MSDN 中 oplock 分成以下4種:

  • Level 1 Opportunistic Locks
    • exclusive
    • 最嚴格的 Lock
    • 如果有檔案已被開啟,則不能建立 Lock
  • Batch Opportunistic Locks
    • exclusive
    • 管理 open 和 close
    • e.g., Batch File 的執行
  • Filter Opportunistic Locks
    • exclusive
    • 管理 open 後的 write 和 delete
    • e.g., Compiler 編譯原始碼
  • Level 2 Opportunistic Locks
    • shared
    • 最寬鬆的 Lock
    • e.g., 共同編輯的檔案(?

PoC

  • 建立 junction testsystem
  • 對 system\file1.dll 設定 oplock
  • 檢查 test\file1.dll 的路徑
  • 載入 test\file1.dll
  • 觸發 oplock
  • 刪除 junction test ,並建立一般資料夾 test
  • 將 file2.dll 改名為 file1.dll 放到 test
  • 解除 oplock
  • 成功載入 file2.dll

References


上一篇
[Day24] Introduction to Logical Privilege Escalation on Windows (Part 1): Path Canonicalization
下一篇
[Day26] Introduction to Logical Privilege Escalation on Windows (Part 3): Named Pipe
系列文
Windows Security 10130
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言