系统版本 Debian GNU/Linux 10(Py3.7.8)使用宝塔官方的 debian 安装命令 wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh 安装了 最新的 7.4.3的 面板
云服务安全组全部开启,放通所有流量
安装官方的默认推荐 我们安装 nginx , mysql , pure-ftp , php , phpmyadmin ,安装 完成后 打开宝塔面板的安全页面,如图所示
回到数据库页面 , 尝试打开 phpmyadmin
发现 能够正常的的打开 phpmyadmin ,此时再次回到宝塔的安全页面,查看防火墙配置
发现 宝塔的防火墙里面并没有显示放行了 888 号端口 。
为了验证这一防火墙安全漏洞,我用nginx 新建了一个端口号 为 8081 的网站.(ps:此处提交另外一个BUG , 创建端口号为 8080 的 网站会提示端口号非法)
如图所示 , 访问指定的页面
再一次的打开宝塔的安全页面 ,可以看见此时 显示 放行了8081 , 点击删除这个端口 ,可以发现此时防火墙的安全策略生效 , 8081 端口不能访问
但是反过来 防火墙中不显示的 888 好端口依然可以访问 。
借下里试验 80 端口 ,按照宝塔的默认规则 ,当安装了 nginx 时,如果不设置站点 ,访问IP:80 应该得到如图的页面
此时如果从防火墙中删除 80 端口 , 再次打开安全页面
看日志已经删除了80 端口 ,但是依旧可以正常打开 nginx 没有绑定站点 的页面
接下来尝试从代码层解析问题
根据 前端抓包 , 读取防火墙的配置信息的接口 是 data?action=getData , 从 data.py 得知 宝塔获取防火墙的配置文件 依赖于 默认数据库 default.db
在此做出假设 , 假设某客户机器存在 7.4.2 的漏洞 ,被一个非常高明的黑客入侵后 通过某种手段在面板内创建了某个服务,同时为了避免用户察觉,该黑客通过篡改 default.db 文件中关于面板开放端口 和 日志文件的数据表 , 那么用户可能完全无法感知到服务器的入侵风险
故希望
1、官方立即上线入侵日志查询插件 ,帮助可能存在入侵风险的用户自查服务器风险
2、立即修复面板端口和实际防火墙策略不匹配问题
3、立即更新读取面板防火墙端口的原理和策略机制
4、通过md5, sha256 途径对数据库进行 强制数据效验 , 避免 黑客入侵后篡改宝塔的 defalut.db
衷心的希望宝塔越来越好,也提醒各位心怀鬼胎的 灰产 、 黑产 , 法网恢恢,疏而不漏
[color=rgb(32, 165, 58) !important] |
|