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

介紹

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

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

VulnOS version 2是VulHub上的一個Linux提權練習,當打開虛擬機後,可以看到
這裏寫圖片描述

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

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

2.查看內核版本

3.檢測當前用戶權限

4.列舉Suid文件

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

$ lsb_release -a

查看系統的發行版本
這裏寫圖片描述

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

這裏寫圖片描述
通過截圖可以看到我們已經獲取到了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

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

Linux Kernel 4.3.3 – ‘overlayfs’ Local Privilege Escalation

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

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

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

我們首先查看下當前用戶
這裏寫圖片描述
通過截圖可以得知,當前用戶爲”daemon”,我們接下來提權”daemon”到”root”

這臺Ubuntu 14.04運行linux內核3.13.0-55-generic,我嘗試已有的exploit都失敗了。
這裏寫圖片描述
這次我們通過尋找系統裏可以用的SUID文件來提權。運行:

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

得到如下列表:
這裏寫圖片描述
通過截圖,我們發現nmap居然有SUID標誌位,來看看nmap版本
這裏寫圖片描述
一個非常老的nmap版本,但是這個版本的nmap如何幫我們提權呢?

nmap支持“interactive.”選項,用戶能夠通過該選項執行shell命令,通常,安全人員會使用該命令來避免他們使用nmap命令被記錄在history文件中
這裏寫圖片描述
因爲nmap有SUID位,所以通過“!sh”我們會獲取到一個root權限的shell
這裏寫圖片描述
在你的滲透過程,如果發現Nmap 3.48 有SUID位,可以按照本文的例子做下測試。

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

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

我們當前登錄的是”Kane”賬號,當前沒有有效的內核exploit,也沒有其他可以利用的suid文件
這裏寫圖片描述
只有在Kane的home目錄下有一個“msgmike.”文件
這裏寫圖片描述
使用file命令查看下這個文件
這裏寫圖片描述
從截圖可以看到,這是一個ELF 32位 LSB執行文件,但是當我們執行文件的時候,報錯了
這裏寫圖片描述
通過報錯信息我們可以看到msgmike調用cat命令讀取/home/mike/msg.txt文件。

針對這種情況,我們可以通過設置bash的$path環境變量來利用,通常的$PATH包含
這裏寫圖片描述
然而當我們調用cat命令的時候,cat會從以上目錄來尋找,如果我們添加.到$PATH環境變量,則會先從當前目錄來尋找cat指令

新建cat,添加執行權限
這裏寫圖片描述
這樣當我們再次運行./msgmike命令的時候,就會觸發當前目錄下的cat(/bin/sh),從而提權。完整的exploit如下
這裏寫圖片描述

注:本文翻譯轉載自安全客:http://bobao.360.cn/learning/detail/2984.html
原文鏈接:http://resources.infosecinstitute.com/privilege-escalation-linux-live-examples/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章