文章开始前,说点题外话,接上次转发的文章(端内钓鱼,反制蚁剑)后台反馈下来的消息看,大家普遍都没整明白这波是什么操作,所以蹭着这一波的热度,再和大家先聊聊蚁剑的安全问题:
1. 有攻有防, 我们不会回避安全问题, 除了修复漏洞之外,并且每次我们还会将漏洞的详情、EXP 都会公开,方便大家能够从历史漏洞当中学到审计还未被挖掘到的漏洞。
2. 当然作为一个插件开发者,dhtmlx 文档里未提到的一些属性明明是按 html 渲染的,结果给这个属性取了一个迷惑的名字 text (比如 Tree、Grid组件),这些坑你翻文档都是翻不到的,看漏洞报告就能知道了。当然这个后期我抽空整理一下贴文档里吧。为啥dhtmlx 都 v7 了蚁剑用的还是 v4 的?收费用不起
3. 有关漏洞提交,我还是希望大家能在第一时间能与开发组联系,使用蚁剑内的「报告漏洞」功能,或者是直接给我发邮件也是OK的。
Github 的 issue 功能是公开的,不适合漏洞报告披露的准则,所以尽量还是用上面的形式吧。
4. CVE 或者 CNVD 编号申请这块,如果大家有需要,我们是积极配合的,请放心去冲
讲道理,蚁剑能跑到厂商列表里,我也是挺意外的
5. 蚁剑作为自身出现了安全问题,不会耻辱吗,还可以继续使用吗?
的确,作为一款网站管理软件,自身出现安全漏洞,确实影响我们日常维护网站的站长的心态,请务必及时更新。
没有一个系统是安全的,蚁剑的历史漏洞大多都是因为开发过程中疏忽,这也正是大部分的安全漏洞产生的通病, 欢迎更多的大佬可以参与到帮AntSword找漏洞的计划中来,蚁剑会因为你的细心变得更优秀。
本文来自 cc7v@校长 的知识星球,文章中部分内容「学蚁致用」会略做修改
学蚁致用
0x01 前言
中午在学校午休,就看了 @忍酱 的反制Goby, @暗羽师傅 的反制Burpsuite还有 @先知社区 里的反制蚁剑, @f4ltJ4y 的蚁剑复现,挑起了我想反制的心!
蚁剑版本: 2.1.12
0x02 虚假XSS
蚁剑是自带浏览器的,用的是Chrome!本想着暗羽师傅的那篇可以用得到,发现版本不对
发现它调用了dhtmlx框架,可以解析HTML
<img src=1 onerror=alert(1)>
正是因为这个虚假的XSS,更加激发了我想RCE的心!我们可以参考:
批注: 「浏览网站」模块中,创建 Window 的时候,禁止了 Node 上下文支持,并且开启了沙箱,所以即便有 XSS 也不会引发 RCE。
学蚁致用
0x03 放弃RCE
我在想既然有内置浏览器,那么Chromium浏览器版本是否存在漏洞呢? 我们先得获取Chromuim版本
# Console
如上图,谷歌浏览器的产品代号为"Mozilla"
"5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) antsword/2.1.12 Chrome/69.0.3497.106 Electron/4.0.3 Safari/537.36"
上图已知,Chrome/69.0.3497.106 Electron/4.0.3 我们查找相对应的远程代码执行的漏洞!已关闭沙箱
通过万能的百度我找到一个 Google Chrome < = 87.0.4280.88 远程代码执行
# 参考文档:
尝试后,我实在是想不明白这个DevTools怎么搞,我想尝试别的版本,高版本低版本我都试过了,都是 同一个问题!希望有师傅能够解惑,我太菜了。
0x04 「Redis管理」插件 Self-RCE
本文所述该插件的漏洞目前已经修复
峰回路转,本来我是打算放弃的,就随便点点插件里的内容。我是原先有下载一个Redis管理的插件的
<img src=1 onerror=alert(1)>
直接通过HTML的方式解析
阅读了这个插件的源代码,发现并没有过滤以及加以限制,而且dhtmlx 解析,这应该是蚁剑开发的标准要求
'use strict'
dhtmlx v4 的 Tree 组件 text 属性是支持 html 的,在插件开发过程中,设置节点内容的时候,一定需要注意 XSS 问题
学蚁致用
漏洞点:
构造 Self-RCE
结合蚁剑的以下特点:
解析HTML时,不能使用单引号或双引号,否则会出现语法混乱 HTML源码和流量中均有Payload,导致攻击方很容易被反制,在执行命令后需要删除当前HTML节 点,并对流量进行加密。
a="require('child_process').exec('calc.exe')"
使用 JavaScript Obfuscator 对payload进行混淆,为了方便我这里就不混淆了 在Console执行得到处理后的payload
<img src=1 onerror="eval(String.fromCharCode(114,101,113,117,105,114,101,40,39,99,104,105,1 08,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,40,39,99,97,108,99, 46,101,120,101,39,41))">
0x05 「LiveScan」插件 XSS
本文所述该插件的漏洞目前已经修复
这个是蚁剑判断WEBSHELL存活的一款插件
https://github.com/AntSword-Store/LiveScan/blob/master/libs/ui.js
行160-192 从开始扫描到渲染UI,每一步都没有调用JS替换函数: antSword.noxss
于是我构思,如何让他扫描后渲染出来,它扫描时shell不需要存活,于是我们shell地址开始下手 Windows对文件的命名有标准,我们没法使用尖括号 只能在链接的时候修改
XSS:
<img src=1 onerror=alert(1)>
构思
其实对于我而言这个是有实战意义的: 钓鱼
就脚本小子以及初出茅庐的攻击方来说,设置钓鱼文件,伪造内容诱导添加shell并存活检测,也可以黑 吃黑,诱导其检测shell存活~
在网站目录下创建 txt 或者 log 文件,伪造内容:
漏洞利用扫描器 结果:
0x06 结尾
在实战当中,有利用的可能!但可操作性非常低,诱导性也低,但是危害大!不算鸡肋,有用武之 地但是条件要求极其苛刻!
写在最后
校长这波对初学者满满的套路,从入门到入土,我觉得我得去下载一个 国家反诈骗中心 APP 了
不如关注一波再走?