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

tgnian 8年前發布 | 52K 次閱讀 Linux

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

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

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

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

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

2.查看內核版本

3.檢測當前用戶權限

4.列舉Suid文件

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

$ lsb_release -a

查看系統的發行版本

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

$ uname -a

查看內核版本

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

每 次在提權的時候,我們都會一次又一次的測試,我們將搜索所有可能的提權技術,并依次應用,直到成功。我們將測試不同的內核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
$ touchexploit.c
$ vimexploit.c

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

$ gccexploit.c -o exploit

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

chomd 777 ./exploit
$ ./exploit

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

通過截圖可以看到我們已經獲取到了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

我們首先查看下當前用戶

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

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

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

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

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

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

得到如下列表:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

從截圖可以看到,這是一個ELF 32位 LSB執行文件,但是當我們執行文件的時候,報錯了

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

通過報錯信息我們可以看到msgmike調用cat命令讀取/home/mike/msg.txt文件。

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

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

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

新建cat,添加執行權限

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

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

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

 

 

來自:https://www.91ri.org/16398.html

 

 本文由用戶 tgnian 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!