滲透

介紹:

滲透測試或者漏洞評估的過程當中,提權是很是重要的一步,在這一步,黑客安全研究人員經常經過exploit,bug,錯誤配置來提高權限。本文的例子都是在虛擬機裏測試的,不一樣的虛擬機能夠從Vulnhub下載。python

 

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

VulnOS version 2是VulHub上的一個Linux提權練習,當打開虛擬機後,能夠看到
linux

20160831091128377

獲取到低權限SHELL後咱們一般作下面幾件事web

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

2.查看內核版本vim

3.檢測當前用戶權限安全

4.列舉Suid文件bash

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

$ lsb_release -a

查看系統的發行版本測試

 

20160831091129379

 

$ uname -a

查看內核版本ui

 

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

相關文章
相關標籤/搜索