是否有(兼容)的方式來欺騙(作爲root)的Unix套接字(文件系統套接字)對等憑證其可以通過getsockopt()
獲得,選項SO_PEERCRED
?UNIX套接字:是否有可能欺騙getsockopt()SO_PEERCRED?
背景:
我需要連接到服務器應用程序(我不能修改),其檢查其經由SO_PEERCRED
連接到它的處理的UID
。我想欺騙這些信息,以便能夠將連接到應用程序作爲根,也可以。
UPDATE
爲了澄清問題:
我在尋找一種非侵入性的方式該服務器發現的特定對UID
/GID
。 解決方案是氣餒這就需要改變內核(或採取使用內核模塊的)或改變服務器進程或其裝載/以任何方式聯過程(LD_PRELOAD
,系統呼叫攔截等)。
基本上,解決方案應該在沒有任何特殊要求的任何linux(或一般unix)服務器上運行。服務器進程可能已經在運行。
如果你是'root',爲什麼不只是'setuid'?你可以從一個完全控制的子進程中做到這一點,這樣你就可以避免實際上失去權限。 – nneonneo
我不確定,但在Linux下,'/ proc//fdinfo/'中有一個八進制值前綴標誌。 –
alk
您可以控制服務器進程的啓動,即,您是否可以使用LD_PRELOAD修改庫函數/ syscall thunk來更改報告的憑據? –