在滲透測試或者漏洞評估的過程當中,提權是很是重要的一步,在這一步,黑客和安全研究人員經常經過exploit,bug,錯誤配置來提高權限。本文的例子都是在虛擬機裏測試的,不一樣的虛擬機能夠從Vulnhub下載。python
VulnOS version 2是VulHub上的一個Linux提權練習,當打開虛擬機後,能夠看到
linux
獲取到低權限SHELL後咱們一般作下面幾件事web
1.檢測操做系統的發行版本shell
2.查看內核版本vim
3.檢測當前用戶權限安全
4.列舉Suid文件bash
5.查看已經安裝的包,程序,運行的服務,過時版本的有可能有漏洞post
$ lsb_release -a
查看系統的發行版本測試
$ uname -a
查看內核版本ui
每次在提權的時候,咱們都會一次又一次的測試,咱們將搜索全部可能的提權技術,並依次應用,直到成功。咱們將測試不一樣的內核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
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提權有風險,有可能會崩潰系統。
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位,能夠按照本文的例子作下測試。
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以下