◆葉和平
(廣東科學技術職業(yè)學院 廣東 519090)
操作系統(tǒng)、網絡體系與服務器技術
Linux特殊權限位及其在提權攻擊中的應用
◆葉和平
(廣東科學技術職業(yè)學院 廣東 519090)
Linux系統(tǒng)中的每個文件和目錄都有訪問許可權限,用以確定誰能通過何種方式對文件和目錄進行訪問和操作。但一些進程或使用者由于特定的需求而需要對文件或目錄設置特殊權限。本文介紹特殊位操作對系統(tǒng)安全帶來的危害并演示了如何從普通用戶到超級用戶的權限提升。
Linux系統(tǒng);特殊權限位;提權攻擊
Linux系統(tǒng)中的每個文件和目錄都有訪問許可權限,文件或目錄的訪問權限分為只讀(r),只寫(w)和可執(zhí)行(x)三種[1]。
只讀權限表示只允許讀其內容,而禁止對其做所有的更改操作。可執(zhí)行權限表示允許將該文件作為一個程序執(zhí)行。文件被創(chuàng)建時,文件所有者自動擁有對該文件的讀、寫和可執(zhí)行權限,以便于對文件的閱讀和修改。用戶也可根據(jù)需要把訪問權限設置為需要的權限組合。
針對這些權限,有三種不同類型的用戶可對文件或目錄進行訪問:文件所有者,同組用戶、其他用戶。所有者一般是文件的創(chuàng)建者。所有者能允許同組用戶有權訪問文件,還能將文件的訪問權限賦予系統(tǒng)中的其他用戶。在這種情況下,系統(tǒng)中每一位用戶都能訪問該用戶擁有的文件或目錄。
Linux的文件與目錄除了前面介紹的一般訪問權限外, 還有所謂的特殊權限。由于特殊權限會擁有一些“特權”,因而用戶若無特殊需求,不應該啟用這些權限,避免安全方面出現(xiàn)嚴重漏洞,以防黑客入侵。
這些特殊權限位分別是:
(1)s或S(SUID,Set UID):可執(zhí)行的文件搭配這個權限,便能得到特權,任意存取該文件的所有者能使用的全部系統(tǒng)資源。請注意具備SUID權限的文件,黑客經常利用這種權限,以SUID配上root賬號擁有者,無聲無息地在系統(tǒng)中開扇后門,供日后進出使用。
(2)s或S(SGID,Set GID):設置在文件上面,其效果與SUID相同,只不過將文件所有者換成用戶組,該文件就可以任意存取整個用戶組所能使用的系統(tǒng)資源。
(3)T或T(Sticky):/tmp和 /var/tmp目錄供所有用戶暫時存取文件,亦即每位用戶皆擁有完整的權限進入該目錄,去瀏覽、刪除和移動文件。
SUID的操作有三點:只對二進制程序有效;執(zhí)行者對于程序需要有x權限;在程序運行過程中,執(zhí)行者擁有程序擁有者的權限。
以Linux系統(tǒng)中的cat命令為例,其基本權限信息如圖1:
圖1 linux系統(tǒng)中cat基本權限信息
假定有一普通用戶 test希望查看/root下的某個數(shù)據(jù)文件(exam.txt),則正常情況下查看結果為圖2所示:
圖2 普通用戶test查看/root/exam.txt被禁止
為了使得普及用戶test能夠正常查看該文件,則如操作權限修改:即為/bin/cat設置suid權限位。如圖3所示:
圖3 /bin/cat設置了suid位
此時,當普通用戶test執(zhí)行cat命令查看文件內容時,就相當于以root身份在執(zhí)行查看命令。因而能夠正常查看文件內容。
4.1 基本場景介紹
從所周知,網絡入侵者不可能直接由服務器本地登錄,一般都以遠程連接的方式實施入侵。而系統(tǒng)通常會設置不允許超級用戶的身份進行遠程連接登錄,因此入侵者會使用常見的掃描工具探測系統(tǒng)洞,如:實施弱口令掃描等[2-3]。
假定系統(tǒng)中test用戶的口令設置過于簡單,比如為888888,且系統(tǒng)開戶了ssh服務,則會出現(xiàn)圖4的掃描結果:
圖4 x-scan對系統(tǒng)弱口令的掃描結果
4.2 提權攻擊
入侵者使用遠程連接工具如 ssh等以普通用戶登錄到系統(tǒng)中,執(zhí)行如下操作:
第一步:編輯一個輔助腳本fz.sh,內容為:
#! /bin/bash -x
echo
添加執(zhí)行權限:chmod u+x fz.sh
第二步:編輯提權文件tq.c、編譯并賦予執(zhí)行權限:
#include
int main (void) {
setuid(0);
system(“/bin/sh”);
return(0); }
編譯為tq:gcc -o tq tq.c
第三步:利用sudo本身漏洞及SUID的特殊權限位完成提權攻擊。
$setenv SHELLOPTS xtrace
$setenv PS4 '$(chown root:root ex;chmod u+s tq)'
$sudo ./fz.sh
此時可以發(fā)現(xiàn) tq 可執(zhí)行程序的屬主和組,同時為其設置suid。
最后,執(zhí)行tq,則把普通用戶的id設置成為了0,即已獲取超級用戶的權限[4-5]。如圖5所示:
圖5 普通用戶獲取了超級用戶權限
Linux特殊權限位為系統(tǒng)某些情況下的特殊需要提供了方便,但對這些權限的權限需要極其小心,否則極易為入侵者提供方便之門[6]。由于篇幅所限,文章僅對一般權限位的功能作了介紹,僅演示SUID權限位及其結合sudo漏洞完成了提權攻擊過程的用法。因此,管理人員要檢測普通用戶的弱口令設置及善于使用日志等分析是否有入侵者留下的痕跡。
[1]楊云.Linux網絡操作系統(tǒng)及應用[M].北京:人民郵電出版社,2013.
[2]張玉清.網絡攻擊與防御技術[M].北京:清華大學出版社,2011.
[3]薛向杰.Linux操作系統(tǒng)的網絡安全及其應對措施[J].電子技術與軟件工程,2015.
[4]張喜英.在網絡系統(tǒng)中Linux的安全設置與管理[J].電腦知識與技術,2007.
[5]孫悅,張姝,李京等.基于Linux操作系統(tǒng)文件權限的設置[J].計算機安全,2008.
[6]董句.基于Linux系統(tǒng)網絡安全策略的分析與研究[J].網絡空間安全,2016.