Password
目前安裝在系統上的程序是否有可能通過知道 root 的密碼來提升其權限?
讓我們假設一個類 Unix 系統(如 macOs、linux、solaris 等)從網際網路上安裝了一個由惡意行為者開發的程序的場景。
該程序不使用系統上的任何零日漏洞來提升權限。它只是在正常非管理使用者的上下文中執行,並具有所有限制。它會在後台記錄所有按鍵,直到記錄使用者在終端“su”中鍵入密碼,然後再輸入密碼。這個程序突然擷取了 root 使用者的密碼。
我的問題是,擷取此密碼後,程序是否可以從 root 使用者的上下文中重新啟動,甚至在仍在執行時升級其權限,在目前使用者沒有註意到的情況下執行所有這些操作?確實存在哪些實用程序可以允許這樣的程序做這樣的事情?我說的是一個理想的場景,其中不使用核心中的任何錯誤或漏洞。我只是在談論一個程序,它只是以已經打算使用的方式使用現有的系統實用程序。
是的。通過執行
su
.su
是一個允許使用密碼更改使用者的程序。su
具有更改使用者的能力,並且只有在您提供正確的密碼時才會這樣做。但是,唯一的方法是啟動一個新程序,或者替換現有程序的程序。然後它可以使用新的特權重新啟動它自己。
學究式註釋:程序可以通過
su
. 但是一個程序不能。但是,新程序 (su
) 可以重新啟動舊程序。
這正是
expect
程序(和類似程序)設計的那種情況。您可以在su
下執行expect
,檢測密碼提示,發送密碼(您已擷取),然後擁有可以向其發送命令的 root shell。例如
#!/usr/bin/expect -- set mypasswd "imnottellingyou" spawn "su" expect "ssword" send "$mypasswd\n" expect "#" interact