本文转自 玄魂工作室成员--荣杰 的订阅号”坏代码分析日记“,欢迎关注
0x00 CVE-2018-8420脚本分析
0x01 Cve-2018-8420+Cve-2018-4878钓鱼
0x02 CVE-2018-8420的poc用java自动化生成
0x00 CVE-2018-8420脚本分析
poc下载地址:
https://github.com/Theropord/CVE-2018-8420.git
涉及语言学习:
学习脚本:
http://www.w3school.com.cn/vbscript/func_createobject.asp
https://blog.csdn.net/Johnny_Timmy/article/details/80408997
http://www.runoob.com/dom/prop-document-async.html
钓鱼页面脚本分析:
一 .html代码分析
1)sub Grgtest() //vbs的子程序,没有返回值,声明Grgtest()函数 2)Set XML=CreateObject("Microsoft.XMLDOM") //将创建一个Microsoft.XMLDOM类型对象并且值赋值给变量 3)xml.sync = False
transformNode()
二 .vbs脚本分析
三 .xml脚本分析
3.1 创建一个 XMLHttpRequest 对象: 所有现代浏览器(IE7+、Firefox、Chrome、Safari 和 Opera)都有内建的 XMLHttpRequest 对象。 创建 XMLHttpRequest 对象的语法: var 变量 = new XMLHttpRequest(); 为了让poc兼容老版本ie游览器:
1)Var 变量 = new ActiveXObject("Microsoft.XMLHTTP"); 2)如何调用后门: 变量.run(“exe文件/路径/url远程下载“); 3)简化一下:var 变量 = new ActiveXObject(“Microsoft.XMLHTTP”).run(“后门”); 3.2 Microsoft发行jscript用于internet explorer,因为cve-2018-8420需要在ie上管用,ie识别jscript,其他游览器不识别: <ms:script implements-prefix="user" language="JScript"> 3.3 漏洞是因为解析器不识别解析造成的 所以需要xml关于解析器CDATA的知识点连接: http://www.w3school.com.cn/xml/xml_cdata.asp https://www.cnblogs.com/catgatp/p/6403382.html 被<![CDATA[]]>这个标记所包含的内容将表示为纯文本 使用<![CDATA[]]>来包含不被xml解析器解析的内容 构造payload: +--------------------------------------------------------------+ <![CDATA[ var 变量 = new ActiveXObject("WScript.Shell").Run("calc.exe");]]> +--------------------------------------------------------------+
3.4 jscript与javascript关系 我的理解是: 这是两种语言,语法功能一样,javascript是jscript的子集。 javascript使用所有游览器, jscript单独适用于ie 参开: https://blog.csdn.net/edwardq2266/article/details/2304564 https://blog.csdn.net/zhaoxiaoyang5156/article/details/1654776 学习jscript和javascript连接: http://www.php.cn/manual/view/14973.html
0x01 Cve-2018-8420+Cve-2018-4878钓鱼
8420的poc:
修改xml地方:
调用Microsoft Office组建C:\Microsoft Office\Office12\WINWORD.EXE
把嵌入cve-2018-4878漏洞的swf嵌入office中,通过点击html的Cve-2018-8420漏洞打开恶意office。
0x02 CVE-2018-8420的poc用java自动化生成
脚本一下篇更新,发布时发现代码需要进一步优化下。