新聞中心
在Linux系統(tǒng)的安全機制中,一個進程是以當前用戶的身份來運行的,也就是說,一個進程只能夠擁有當前用戶所擁有的權限,如果需要進行更高級的操作,就需要獲取更高的權限。這個過程被稱為提權。

專業(yè)領域包括成都網(wǎng)站設計、網(wǎng)站制作、購物商城網(wǎng)站建設、微信營銷、系統(tǒng)平臺開發(fā), 與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,創(chuàng)新互聯(lián)的整合解決方案結合了幫做網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。
在Linux系統(tǒng)中,提權的方式有很多種,其中比較常用的是setuid提權方法。setuid是Linux中的一個系統(tǒng)調(diào)用,可以用來改變當前進程的權限。在這篇文章中,我們將對Linux系統(tǒng)下的setuid提權方法進行詳細介紹。
一、什么是setuid
在Linux中,每個進程都是屬于某個用戶的,這個用戶在登錄時會得到一些權限。這些權限包括讀取文件、寫入文件、執(zhí)行文件等。不同的用戶之間的權限不同,超級用戶的權限更高。 在Linux中,setuid是一種可以改變進程用戶ID(UID)的系統(tǒng)調(diào)用。通過setuid系統(tǒng)調(diào)用,我們可以將進程的UID改變?yōu)槠渌脩舻腢ID,從而獲得其他用戶的權限。在執(zhí)行setuid系統(tǒng)調(diào)用時,會提供一個UID作為參數(shù),該UID就是我們要改變成的用戶的UID。
二、setuid提權方法的原理
要理解setuid提權方法的原理,首先需要知道一個基本的概念:特權進程。特權進程是指那些能夠獲得超級用戶權限的進程。
在Linux系統(tǒng)中,特權進程可以通過兩種方式來獲得超級用戶權限:
1.通過setuid系統(tǒng)調(diào)用,將自身的UID改變?yōu)槌売脩鬠ID,從而獲得超級用戶權限。
2.通過SUID位,將可執(zhí)行程序的權限設置為超級用戶UID,用戶在執(zhí)行該程序時,就會以超級用戶的身份運行該程序,從而獲得超級用戶權限。
setuid提權方法的原理就是通過SUID位來獲得特權進程的權限,然后通過setuid系統(tǒng)調(diào)用將進程的UID改變?yōu)槌売脩舻腢ID,從而實現(xiàn)提權。我們通過下面的流程圖來更好地理解這個過程。
三、setuid提權方法的實現(xiàn)過程
setuid提權方法的實現(xiàn)過程可以分為以下幾步:
1.找到一個具有SUID權限的文件,例如passwd文件。
2.在passwd文件中插入一段可執(zhí)行的代碼,代碼的作用是將當前進程的UID改變?yōu)槌売脩舻腢ID,從而獲得超級用戶權限。
3.執(zhí)行passwd文件,即可實現(xiàn)提權。
下面是一個setuid提權方法的具體實現(xiàn)過程:
1.創(chuàng)建一個C程序,代碼如下:
#include
#include
#include
int mn() {
setuid(0);
system(“/bin/bash”);
return 0;
}
這個程序的作用是將進程的UID改變?yōu)槌売脩鬠ID,然后啟動一個bash shell。
2.將該程序編譯成可執(zhí)行文件,并將其所有者設置為root用戶。
gcc setuid.c -o passwd
chown root passwd
chmod 4755 passwd
這里通過chmod命令給passwd文件設置了SUID位,意味著任何用戶執(zhí)行該文件都會以root用戶的身份來運行它。
3.執(zhí)行passwd文件,從而實現(xiàn)提權。
./passwd
四、setuid提權方法的風險
盡管setuid提權方法可以幫助我們獲得超級用戶權限,但是使用該方法也存在一些風險。其中更大的風險就是文件注入攻擊(File Injection Attack)。
文件注入攻擊是指攻擊者將惡意代碼注入到具有SUID權限的文件中,當其他用戶執(zhí)行該文件時,該惡意代碼就可以獲得超級用戶權限,從而對系統(tǒng)進行攻擊。
為了防止文件注入攻擊,我們可以通過定期掃描系統(tǒng)中的SUID文件,檢查其是否被惡意代碼注入。此外,還可以將SUID位的權限限制在最小范圍內(nèi),以降低系統(tǒng)被攻擊的風險。
成都網(wǎng)站建設公司-創(chuàng)新互聯(lián)為您提供網(wǎng)站建設、網(wǎng)站制作、網(wǎng)頁設計及定制高端網(wǎng)站建設服務!
UID、EUID、SUID的區(qū)別 Linux
UID:真實的用戶ID 進程的UID就是其創(chuàng)建者的用戶ID,用于標識進程的屬主。
EUID:有效的用戶ID(我理解是文件所有者)
(1)只有進程的創(chuàng)建返盯者和root用戶才有權利耐裂對該進程進行操作。于是,記錄一個進程的創(chuàng)建者(也就是屬主)就顯得非常必要。
(2)EUID,用來確定進程對某些資源和文件的訪問權限。在大多數(shù)情況下,進程的UID和EUID是一樣的 —— 除了著名的setuid程序。
(3)什么是setuid程序? 例如:passwd命令,這個命令允許用戶修改自己的登錄口令。但是密碼保存在/etc/shadow文件中,這個文件對普通用戶是不可讀的,那么用戶怎么能夠通過修改shadow文件來修改自己的口令呢?這就是setuid的妙處了。
setuid通過使passwd在執(zhí)行階段具有文件所有者(也就是root)的權限,讓用戶臨時有了修改shadow文件的能力(當然這種能力是漏畝和受到限制的)。因此,passwd就是一個經(jīng)典的setuid程序,其UID是當前執(zhí)行這個命令的用戶ID,而EUID則是root用戶的ID(也就是0)
linux x可執(zhí)行權限怎么理解?RWX分等級嗎?還有ST權限又是什么?
x對文件來說是執(zhí)行權限,對文件夾來說是進入文件夾的權限r(nóng)wx分等級,你自己可以測試set uid ;set gid;sticky bit區(qū)別如下:每一個文件有所有者及組編號,set uid ;set gid可以改變用戶對文件具有的權限:寫和執(zhí)行.setuid: 在執(zhí)行時具有文件所有者的權知亂螞限.setgid: 設置目錄陪談. 一個目錄被標上setgid位,此目錄下創(chuàng)建的文件繼承該目錄的屬性.sticky bit: 該位可以理解為防刪除位. 設置sticky bit位后,就算用戶對目錄搭埋具有寫權限,但也只能添加文件而不能刪除文件。
關于linux setuid 提權的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
創(chuàng)新互聯(lián)-老牌IDC、云計算及IT信息化服務領域的服務供應商,業(yè)務涵蓋IDC(互聯(lián)網(wǎng)數(shù)據(jù)中心)服務、云計算服務、IT信息化、AI算力租賃平臺(智算云),軟件開發(fā),網(wǎng)站建設,咨詢熱線:028-86922220
分享題目:Linux系統(tǒng)下的setuid提權方法介紹(linuxsetuid提權)
瀏覽地址:http://www.dlmjj.cn/article/djogdcs.html


咨詢
建站咨詢
