Mount

為什麼 /etc/fstab 中的“nodev”如此重要?字元設備如何用於黑客攻擊?

  • January 25, 2019

我正在學習 linux 安全性並努力理解為什麼帶有字元設備的 USB 記憶棒具有潛在危險。

如果我有一個帶有帶有 setuid root 的 bash 執行檔的 USB 記憶棒,那麼危險是顯而易見的:如果我有類似

/dev/sdb1 /media/usbstick auto defaults 0 0

在我的/etc/fstab因為defaults包括suid.

但是字元設備呢?dev如果帶有字元設備的 USB 記憶棒安裝了or ,我如何使用字元設備來獲得 root 權限或破壞東西defaults

因為對底層設備的訪問預設只受文件權限控制,所以如果你的 U 盤包含一個 POSIX 文件系統,其中有一個全域可寫設備節點對應於系統中的一個真實設備,你可以使用那個設備節點來訪問對應的設備作為“普通”使用者。想像一個設備對應一個音頻設備,你的網路攝像頭,/dev/sda(這是一個塊設備而不是一個字元設備,但參數是一樣的)……

這是一個讓事情更清楚的例子。假設您要訪問/dev/sda(然後您幾乎可以對磁碟的內容做任何您想做的事情,包括植入一個允許您成為的程序root;這是一個塊設備,但問題與字元設備相同)。在您的目標系統上,ls -l /dev/sda顯示

brw-rw----  1 root disk      8,   0 Sep  8 11:25 sda

這意味著/dev/sda是一個塊設備(b位於行首),主設備編號為 8,次設備編號為 0(8, 0位於行的中間)。該設備只能訪問root(讀/寫)和disk組成員(也讀/寫)。

現在想像在這個系統上你不能成為root但由於某種原因你可以作為沒有nodev. 在您所在的另一個系統上root,您可以在 USB 密鑰上創建相應的特殊文件:

mknod -m 666 usersda b 8 0

這將創建一個名為 的特殊文件usersda,每個人都可以讀寫。

在您的目標系統上安裝密鑰,嘿,您可以usersda以與 相同的方式使用該設備/dev/sda,但沒有訪問限制……

(這甚至適用於加密的文件系統,只要您能夠訪問解密的映射器設備:創建與相應/dev/mapper條目匹配的設備。)

引用自:https://unix.stackexchange.com/questions/188601