TMT观察网_独特视角观察TMT行业

VBScript引擎中的漏洞會影響Internet Explorer運行Shellcode區塊鏈

曲速未來安全區 2018-08-30 20:01
分享到:
導讀

7月11日的時候發現了一個高風險的InternetExplorer(IE)漏洞,就在微軟7月補丁周二的第二天。

在7月11日的時候發現了一個高風險的Internet Explorer(IE)漏洞,就在微軟7月補丁周二的第二天。雖然此漏洞(現在指定為CVE-2018-8373)會影響最新版Windows中的VBScript引擎,但Internet Explorer 11并不容易受到攻擊,因為默認情況下Windows 10 Redstone 3(RS3)中的VBScript已被有效禁用。

然后發現了惡意網絡流量中的漏洞。URL如下所示:

圖1.使用的惡意URL

發現了這種漏洞之后,從而進行了更深入的分析。有趣的是,發現此漏洞利用示例使用與CVE-2018-8174相同的混淆技術,CVE-2018-8174是5月份修補的VBScript引擎遠程執行代碼漏洞。

圖2. CVE-2018-8373(左側)和CVE-2018-8174(右側)的比較

此外,這是用于運行shellcode的示例exploit的方法:

圖3. CVE-2018-8373(左側)和CVE-2018-8174(右側)如何運行shellcode的比較

經過調查懷疑這個漏洞利用樣本來自同一個創建者。因為經過分析顯示它在vbscript.dll中使用了一個新的use-after-free(UAF)漏洞。

漏洞根本原因分析

現在詳細介紹對此漏洞的分析,該漏洞已在微軟周二的八月補丁中得到解決。由于原始漏洞被嚴重混淆,就進行演示了一個概念驗證(PoC)來解釋如何利用此漏洞:

圖4. IE漏洞PoC

這個PoC定義了一個名為MyClass的類,它有一個名為array的成員變量和兩個名為Class_Initialize和Default Property Get P的成員函數。Class_Initialize是一個不推薦使用的方法,現在由New過程替換。首次實例化對象時會自動調用它。在該PoC中,Class_Initialize函數被重載,以及何時呼叫VBScriptClass::InitializeClass后,它會被分派到重載函數。

默認屬性是一個類屬性,可以在不指定的情況下訪問它。在此PoC中,Default Property Get函數重載MyClass的默認屬性。當調用訪問cls時,它將被調度到重載函數。

漏洞的觸發流程可以簡化為以下三個步驟:

1.設置cls = New MyClass

這將調用重載函數Class_Initialize。在Class_Initialize中,ReDim數組(2)將調用vbscript!RedimPreserveArray來創建一個元素的計數為3的數組:

圖5.內存中的ReDim數組

2. cls.array(2)

它將調用vbscript!AccessArray來獲取數組元素的地址。在vbscript!AccessArray中,它將首先檢查數組元素的索引是否超出邊界:

圖6.在vbscript中檢查元素索引!AccessArray

然后計算元素的地址,將其保存在堆棧中,并返回以下內容:

圖7.在堆棧上保存元素地址

3. cls.array(2)= cls

這將調用vbscript!AssignVar將MyClass默認屬性值設置為cls.array(2)。獲取MyClass默認屬性值時,調用公共默認屬性Get P并在公共默認屬性Get P中執行腳本ReDim數組(1),這將導致原始array.pvData被釋放:

圖8.釋放原始pvData

但是,如第二步所述,數組(2)的地址仍保存在堆棧中。公共默認屬性Get P的返回值將訪問釋放的內存,從而觸發vbscript中的use-after-free(UAF)漏洞!AssignVar:

圖9. vbscript中的崩潰!AssignVar

如前所述,vbscript!AccessArray檢查數組元素的索引是否超出邊界。但是當獲取類的默認屬性值時,它將觸發腳本回調函數Default Property獲取修改數組的長度,而不是在vbscript!AssignVar中訪問時再次檢查數組的元素。

剝削分析

可以通過以下三個步驟簡化利用:

  1. 使用此漏洞將二維數組的長度修改為0x0FFFFFFF。

  2. 實現讀/寫原語。

  3. 偽造CONTEXT結構并執行shellcode。

讓我們詳細談談利用:

1.修改二維數組的長度

首先,漏洞定義了兩個數組,在下圖中將其標記為array1和array2的數組1是先前在PoC中描述的陣列,且數組2是一個二維陣列,其中每個元素的值是3。

圖10. array2的定義

然后它使用腳本回調函數Default Property Get釋放原始array1.pvData并將array2設置為new array1.pvData。因為原來的大小array1.pvData,這是的0x30字節在存儲器中,相同array2.SAFEARRAY結構,一些的array2.SAFEARRAY結構將重用在原釋放的內存array1.pvData。同時,Default Property Get的返回值0x0FFFFFFFF將覆蓋array2.SAFEARRAY的SAFEARRAYBOUND結構,并將二維數組的長度修改為0x0FFFFFFF。

圖11.默認屬性Get的定義

圖12.修改數組長度的步驟

2. RW原語

這里得到一個數組,array1(index_vuln)(0x0FFFFFFE,2),其長度由UAF調節。通過搜索array1的元素,可以在以下腳本中找到index_vuln:

圖13.搜索array1(index_vuln)(0x0FFFFFFE,2)

然后它使用array1(index_vuln)(0x0FFFFFFE,2)來實現越界(OOB)并找到兩個數組元素混淆的元素。

圖14.搜索第一個數組的元素

圖15.搜索第二個數組的元素

這里漏洞獲取兩個數組的元素:array1(index_B)(0,0)和array1(index_vuln)(index_A,0),它們在內存中的距離為8字節。在內存中搜索的充分利用如下所示:

圖16.在內存中搜索方式的演示

最后,它使用兩個數組的元素來實現類型混淆的讀寫原語:

圖17. RW基元的實現

3.運行shellcode

它使用read原語來泄漏模塊的地址:

圖18.泄漏模塊的地址

通過將一些VARIANT的VarType修改為0x4d并將值修改為0,將調用vbscript!VAR :: Clear,然后將調用堆棧返回地址修改為NtContinue的地址并偽造CONTEXT結構以運行shellcode:

圖19.修改VARIANT

圖20.運行shellcode

經過一系列的分析,可以穩定地利用此漏洞。此外,由于它是今年在野外發現的第二個VB引擎漏洞利用,因此預計未來VB引擎中的其他漏洞發現并非遙不可及。

總結

作為第一道防線,區塊鏈安全公司WF曲速未來建議在可用時應用最新的安全補丁以防止漏洞利用。用戶還可以使用可以抵御可能漏洞攻擊的解決方案。主動,多層次的安全方法是利用漏洞(來自網關,端點,網絡和服務器)的威脅的關鍵。

漏洞 數組 array 使用 利用
分享到:

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


專題報道

主站蜘蛛池模板: 理化生实验室设备,吊装实验室设备,顶装实验室设备,实验室成套设备厂家,校园功能室设备,智慧书法教室方案 - 东莞市惠森教学设备有限公司 | 仓储货架_南京货架_钢制托盘_仓储笼_隔离网_环球零件盒_诺力液压车_货架-南京一品仓储设备制造公司 | 飞飞影视_热门电影在线观看_影视大全 | 生物风-销售载体,基因,质粒,ATCC细胞,ATCC菌株等,欢迎购买-百风生物 | 赛默飞Thermo veritiproPCR仪|ProFlex3 x 32PCR系统|Countess3细胞计数仪|371|3111二氧化碳培养箱|Mirco17R|Mirco21R离心机|仟诺生物 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 食品级焦亚硫酸钠_工业级焦亚硫酸钠_焦亚硫酸钠-潍坊邦华化工有限公司 | 上海冠顶工业设备有限公司-隧道炉,烘箱,UV固化机,涂装设备,高温炉,工业机器人生产厂家 | 代写标书-专业代做标书-商业计划书代写「深圳卓越创兴公司」 | 温湿度记录纸_圆盘_横河记录纸|霍尼韦尔记录仪-广州汤米斯机电设备有限公司 | 荣事达手推洗地机_洗地机厂家_驾驶式扫地机_工业清洁设备 | 恒温油槽-恒温水槽-低温恒温槽厂家-宁波科麦仪器有限公司 | 流量检测仪-气密性检测装置-密封性试验仪-东莞市奥图自动化科技有限公司 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 清水混凝土修复_混凝土色差修复剂_混凝土色差调整剂_清水混凝土色差修复_河南天工 | 清洁设备_洗地机/扫地机厂家_全自动洗地机_橙犀清洁设备官网 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 动物解剖台-成蚊接触筒-标本工具箱-负压实验台-北京哲成科技有限公司 | 液压升降平台_剪叉式液压/导轨式升降机_传菜机定做「宁波日腾升降机厂家」 | 济南网站策划设计_自适应网站制作_H5企业网站搭建_济南外贸网站制作公司_锐尚 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | 美的商用净水器_美的直饮机_一级代理经销商_Midea租赁价格-厂家反渗透滤芯-直饮水批发品牌售后 | 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 斗式提升机_链式斗提机_带式斗提机厂家无锡市鸿诚输送机械有限公司 | 广东恩亿梯电源有限公司【官网】_UPS不间断电源|EPS应急电源|模块化机房|电动汽车充电桩_UPS电源厂家(恩亿梯UPS电源,UPS不间断电源,不间断电源UPS) | 示波器高压差分探头-国产电流探头厂家-南京桑润斯电子科技有限公司 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 青州搬家公司电话_青州搬家公司哪家好「鸿喜」青州搬家 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 小程序开发公司_APP开发多少钱_软件开发定制_微信小程序制作_客户销售管理软件-济南小溪畅流网络科技有限公司 | 福州甲醛检测-福建室内空气检测_环境检测_水质检测-福建中凯检测技术有限公司 | 除甲醛公司-甲醛检测治理-杭州创绿家环保科技有限公司-室内空气净化十大品牌 | 老房子翻新装修,旧房墙面翻新,房屋防水补漏,厨房卫生间改造,室内装潢装修公司 - 一修房屋快修官网 | 展厅设计-展馆设计-专业企业展厅展馆设计公司-昆明华文创意 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 |