linux 提權 實戰Linux下三種不同方式的提權技巧


介紹:

滲透測試或者漏洞評估的過程中,提權是非常重要的一步,在這一步,黑客安全研究人員常常通過exploit,bug,錯誤配置來提升權限。本文的例子都是在虛擬機里測試的,不同的虛擬機可以從Vulnhub下載。

 

實驗一:利用Linux內核漏洞提權

VulnOS version 2是VulHub上的一個Linux提權練習,當打開虛擬機后,可以看到

20160831091128377

獲取到低權限SHELL后我們通常做下面幾件事

1.檢測操作系統的發行版本

2.查看內核版本

3.檢測當前用戶權限

4.列舉Suid文件

5.查看已經安裝的包,程序,運行的服務,過期版本的有可能有漏洞

$ lsb_release -a

查看系統的發行版本

 

20160831091129379

 

$ uname -a

查看內核版本

 

20160831091130382

 

每次在提權的時候,我們都會一次又一次的測試,我們將搜索所有可能的提權技術,並依次應用,直到成功。我們將測試不同的內核exploit,也會暴力破解賬號。這個例子我們知道操作系統采用的是Ubuntu 14.04.4 LTS,內核版本是3.13.0-24-generic,首先我們嘗試利用overlayfs,這個exploit會工作在Ubuntu 12.04/14.04/14.10/15.04的linux內核3.19之前和3.13.0之后,我們測試一下。

我們首先移動到/tmp目錄,然后新建一個文件,粘貼exploit代碼進去

依次運行:

$ cd /tmp $ touch exploit.c $ vim exploit.c

vim保存推出后,我們編譯代碼

$ gcc exploit.c -o exploit

現在執行,如果提示沒有權限,還需

chomd 777 ./exploit

$ ./exploit

 

20160831091131384

 

通過截圖可以看到我們已經獲取到了root權限,接下來獲取交互式的shell

$ python -c ‘import pty; pty.spawn(“/bin/bash”)’

如果提權失敗了,我個人建議你測試幾個其他的exploit,新的內核版本也可以試試

Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04) – ‘overlayfs’ Local Root Shell

https://www.exploit-db.com/exploits/37292/

Linux Kernel 4.3.3 (Ubuntu 14.04/15.10) – ‘overlayfs’ Local Root Exploit

https://www.exploit-db.com/exploits/39166/

Linux Kernel 4.3.3 – ‘overlayfs’ Local Privilege Escalation

https://www.exploit-db.com/exploits/39230/

最后核心提示:內核exploit提權有風險,有可能會崩潰系統。

 

 

實驗2:利用低權限用戶目錄下可被Root權限用戶調用的腳本提權

Mr.Robot是另一個boot到root的挑戰虛擬機,我拿這個例子來告訴你為什么suid程序在提權的過程中是重要的,如果你以前對suid沒有了解,可以參考https://en.wikipedia.org/wiki/Setuid

我們首先查看下當前用戶

 

20160831091131387

 

 

通過截圖可以得知,當前用戶為”daemon”,我們接下來提權”daemon”到”root”

這台Ubuntu 14.04運行linux內核3.13.0-55-generic,我嘗試已有的exploit都失敗了。

 

20160831091131389

 

這次我們通過尋找系統里可以用的SUID文件來提權。運行:

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

得到如下列表:

 

20160831091132394

 

通過截圖,我們發現nmap居然有SUID標志位,來看看nmap版本

 

20160831091134396

 

一個非常老的nmap版本,但是這個版本的nmap如何幫我們提權呢?

nmap支持“interactive.”選項,用戶能夠通過該選項執行shell命令,通常,安全人員會使用該命令來避免他們使用nmap命令被記錄在history文件中

 

20160831091135397
因為nmap有SUID位,所以通過“!sh”我們會獲取到一個root權限的shell

 

20160831091135398

 

在你的滲透過程,如果發現Nmap 3.48 有SUID位,可以按照本文的例子做下測試。

 

 

實驗3:利用環境變量劫持高權限程序提權

PwnLad是筆者最喜歡的挑戰,一個攻擊者有幾個賬號,但是都不是root權限。

我們當前登錄的是”Kane”賬號,當前沒有有效的內核exploit,也沒有其他可以利用的suid文件

 

20160831091135399
只有在Kane的home目錄下有一個“msgmike.”文件

 

20160831091136400

 

使用file命令查看下這個文件

20160831091136401

從截圖可以看到,這是一個ELF 32位 LSB執行文件,但是當我們執行文件的時候,報錯了
20160831091137402
通過報錯信息我們可以看到msgmike調用cat命令讀取/home/mike/msg.txt文件。

針對這種情況,我們可以通過設置bash的$path環境變量來利用,通常的$PATH包含

 

20160831091137403

 

然而當我們調用cat命令的時候,cat會從以上目錄來尋找,如果我們添加.到$PATH環境變量,則會先從當前目錄來尋找cat指令

新建cat,添加執行權限

 

20160831091137404

 

這樣當我們再次運行./msgmike命令的時候,就會觸發當前目錄下的cat(/bin/sh),從而提權。完整的exploit如下

20160831091138410

 
本站內容均為原創,轉載請務必保留署名與鏈接!
linux 提權 實戰Linux下三種不同方式的提權技巧:https://www.webshell.cc/5211.html
 
標簽:  Linux ,  提權 ,  虛擬機

相關日志


免責聲明!

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



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