SSD安全公告–Linux内核AF_PACKET 释放后重用漏洞

Credit to Author: SSD / Maor Schwartz| Date: Mon, 27 Nov 2017 08:12:04 +0000

漏洞概要 以下安全公告描述了在Linux内核的AF_PACKET中存在的一个UAF漏洞,成功利用该漏洞可能导致权限提升。 AF_PACKET套接字”允许用户在设备驱动层发送或者接收数据包”。例如,用户可以在物理层之上实现自己的协议,或者嗅探包含以太网或更高层协议头的数据包。 漏洞提交者 一名独立的安全研究人员发现并向 Beyond Security 的 SSD 报告了该漏洞。 厂商响应 更新一 CVE:CVE-2017-15649 “该漏洞很可能已经通过以下方式修复了: packet: 重新绑定fanout hook时保持绑定锁定 – http://patchwork.ozlabs.org/patch/813945/ 与此相关,但未合并的是 packet:在packet_do_bind函数中,使用bind_lock测试fanout – http://patchwork.ozlabs.org/patch/818726/ 我们验证了在v4.14-rc2上不会触发该漏洞,但在第一次commit(008ba2a13f2d)上测试成功。” 漏洞详细信息 该UAF漏洞是由于fanout_add(来自setsockopt)和AF_PACKET套接字之间竞争条件导致的。 即使已经从fanout_add()创建了一个packet_fanout,竞争也会导致来自packet_do_bind()的__unregister_prot_hook()将po-> running设置为0。 这允许我们绕过packet_release()中的unregister_prot_hook()的检查,从而导致即使packet_fanout已经被释放,但是仍然可以从packet_type链接列表引用。 漏洞证明 [crayon-5a1c8f5b84fe1712795706/] 崩溃日志 [crayon-5a1c8f5b84fea292617098/] 我们知道已经被释放的是一个kmalloc-4096对象: [crayon-5a1c8f5b84ff4648568286/] 当通过af_packet.c中的register_prot_hook()的dev_add_pack()进行注册时,它的prot_hook成员在packet handler中被引用: [crayon-5a1c8f5b84ff7247098366/] 结构体packet_type内部的函数指针,保存在一个大的slab分配器(kmalloc-4096)中,这使得堆喷射变更容易和更可靠,因为内核较少使用较大slab分配器。 我们可以使用常规的内核堆喷射来替换被释放的packet_fanout对象的内容,例如用sendmmsg()或其它函数。 即使分配的内存空间不是永久的,但仍然可以替换packet_fanout中的目标内容(例如函数指针),并且由于kmalloc-4096非常稳定,所以我们的payload几乎不可能被其它分配破坏。 当使用dev_queue_xmit()发送一个skb时会调用id_match(),通过AF_PACKET套接字上的sendmsg可以到达该路径。如果dev_queue_xmit参数非NULL,它通过调用id_match()的包处理程序列表进行循环。因此,可以通过下述方式进行漏洞利用。 一旦知道了内核的代码段,我们就可以把内核栈转换成我们伪造的packet_fanout对象和ROP。第一个参数ptype包含我们伪造对象的prot_hook成员的地址,这使得我们知道在哪里跳转。 一旦进入ROP,我们可以跳转到native_write_c4(x)去关闭SMEP/SMAP,然后跳回到用户空间执行我们真正的payload,通过调用commit_creds(prepare_kernel_cred(0)),将我们权限提升至root 。

Read more

SSD安全公告–Ikraus Anti Virus 远程代码执行漏洞

Credit to Author: SSD / Maor Schwartz| Date: Mon, 27 Nov 2017 07:50:39 +0000

漏洞概要 以下安全公告描述了在Ikraus Anti Virus 2.16.7中发现的一个远程代码执行漏洞。 KARUS anti.virus“可以保护你的个人数据和PC免受各种恶意软件的入侵。此外,反垃圾邮件模块可以保护用户免受垃圾邮件和电子邮件中的恶意软件攻击。 选择获奖的IKARUS扫描引擎,可以有效保护自己免受网络犯罪分子的侵害。 IKARUS是世界上最好的扫描引擎,它每天都在检测未知和已知的威胁。 漏洞提交者 一位独立的安全研究人员向 Beyond Security 的 SSD 报告了该漏洞 厂商响应 更新一 CVE: CVE-2017-15643 厂商已经发布了这些漏洞的补丁。获取更多信息: https://www.ikarussecurity.com/about-ikarus/security-blog/vulnerability-in-windows-antivirus-products-ik-sa-2017-0001/ 漏洞详细信息 网络攻击者(中间人攻击)可以在运行Ikraus反病毒软件的计算机上实现远程代码执行。 Windows版的Ikarus AV使用明文HTTP和CRC32校验进行更新,以及用于验证下载文件的一个更新值。 另外,ikarus检查更新版本号,通过增加更新的版本号,以推动更新进程进行更新。 在ikarus中执行更新的可执行文件是guardxup.exe guardxup.exe,通过端口80,发送更新请求如下: [crayon-5a1c8f5b8564c832670696/] 服务器响应如下: [crayon-5a1c8f5b85655113594378/] 通过代理,我们可以修改响应,将“update”值加1,并将响应转发给客户端。 然后,客户端将通过此URL请求更新:http://mirror04.ikarus.at/updates/guardxup001005048.full ikarus服务器将返回404: [crayon-5a1c8f5b8565a461056357/] 但我们可以用IKUP格式修改上述响应: [crayon-5a1c8f5b8565f465486246/] 然后,我们将修改过后的响应转发到客户端,在那里用我们的可执行文件替换guardxup.exe。 漏洞证明 安装mitmproxy 0.17 – pip install mitmproxy == 0.17 要使用这个脚本,在透明代理模式下,通过中间人80端口转发客户端的通信流量。 设置你的防火墙规则以拦截8080端口上的通信流量: [crayon-5a1c8f5b85664388983146/] 然后执行如下脚本: ./poc.py file_to_deploy.exe [crayon-5a1c8f5b85668324361117/]

Read more

SSD安全公告–GraphicsMagick多个漏洞

Credit to Author: SSD / Maor Schwartz| Date: Tue, 21 Nov 2017 08:58:38 +0000

漏洞概要 以下安全公告描述了在GraphicsMagick中发现的两个漏洞。 GraphicsMagick是“图像处理方面的瑞士军刀。 基础包中的源码共有267K行(根据David A. Wheeler统计),它提供了强大而有效的工具和库,支持读,写超过88种主要图像处理格式,包括DPX,GIF,JPEG,JPEG-2000,PNG,PDF,PNM和TIFF等重要格式。 在GraphicsMagick中发现的两个漏洞是: 内存信息泄露 堆溢出 漏洞提交者 一位独立的安全研究人员Jeremy Heng(@nn_amon)和Terry Chia(Ayrx)向 Beyond Security 的 SSD 报告了该漏洞 厂商响应 厂商已经发布了这些漏洞的补丁(15237:e4e1c2a581d8 and 15238:7292230dd18)。获取更多信息: ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/snapshots/ChangeLog.txt 漏洞详细信息 内存信息泄露 GraphicsMagick易受到magick/describe.c文件的DescribeImage函数中存在内存信息泄露漏洞影响。 负责打印包含的IPTC配置文件信息的图像中的这一部分代码存在漏洞。 该漏洞可以通过特制的MIFF文件触发。 存在漏洞的代码路径如下: [crayon-5a14a6571e4e8110629866/] profile_length变量中的值在MIFF头中的profile-iptc = 8字段设置 当访问profile [i]时,因为不检查i的值,所以会出现越界访问。 如果断在describe.c第738行,在执行strncpy操作的时候我们可以获取到堆中的内容。 [crayon-5a14a6571e4f3204539767/] 0x08000a001c414141是我们植入MIFF文件中的payload。 [crayon-5a14a6571e4f8559265142/] 检查与payload相邻的值0x00007ffff690fba8,发现它其实是libc中main_arena结构中的一个地址。 [crayon-5a14a6571e4fc975205403/] 现在我们可以计算到libc base的偏移量 – 0x3c4b98 漏洞证明 $ python miff/readexploit.py [+] Starting local process ‘/usr/bin/gm’: pid … Continue reading SSD安全公告–GraphicsMagick多个漏洞

Read more

SSD安全公告-思科UCS平台模拟器远程代

Credit to Author: SSD / Maor Schwartz| Date: Tue, 14 Nov 2017 12:27:06 +0000

漏洞概要 以下安全公告描述了在思科UCS平台模拟器3.1(2ePE1)中发现的两个远程代码执行漏洞。 思科UCS平台模拟器是捆绑到虚拟机(VM)中的Cisco UCS Manager应用程序,VM包含模拟思科统一计算系统(Cisco UCS)硬件通信的软件,思科统一计算系统(Cisco UCS)硬件由思科UCS Manager配置和管理。 例如,你可以使用思科UCS平台模拟器来创建和测试支持的思科UCS配置,或者复制现有的思科UCS环境,以进行故障排除或开发。 在思科UCS平台模拟器中发现的漏洞是: 未经验证的远程代码执行漏洞 经认证的远程代码执行漏洞 一名独立的安全研究者向 Beyond Security 的 SSD 报告了该漏洞。 厂商响应 厂商已经发布了该漏洞的补丁,并发布以下CVE: CVE-2017-12243 漏洞详细信息 未经验证的远程代码执行漏洞 由于用户的输入在传递给IP/settings/ping函数时没有进行充分的过滤,导致未经身份验证的攻击者可以通过ping_NUM和ping_IP_ADDR参数注入命令,这些命令将在远程机器上以root身份执行。 漏洞证明 [crayon-5a0b6be0a3646409145393/] 通过发送以上请求之一后,思科 UCS响应如下: [crayon-5a0b6be0a364d408882306/] 经认证的远程代码执行漏洞 思科UCS平台模拟器容易受到格式字符串漏洞的攻击,导致远程代码执行。 思科UCS平台模拟器默认运行一个SSH服务器,通过ssh登录的用户运行以下命令: [crayon-5a0b6be0a3651407130446/] 得到下面的响应: [crayon-5a0b6be0a3653646969713/] 可以看到,通过执行ssh“show sel %x”命令,我们用libsamvsh.so中的system函数覆写了_ZN7clidcos15CommandEmulator16cli_param_filterEPKc函数的入口。 漏洞证明 为了利用此漏洞,请按照以下说明操作: 使用以下用户名和密码在vm上安装ucspe(安装全部3个网卡): 默认的ucspe用户:ucspe 默认的ucspe密码:ucspe 运行ucspe并记下ucspe的ip地址(在控制台可以看到“Connected to IP: ….”) 在这次漏洞证明中,我们将会使用ip-192.168.1.43。 在另一台机器上打开两个终端(例如Kali) 首先,在第一个终端上执行如下操作: 创建poc目录,将poc4_ucspe_3.1.2e.py放入poc目录,然后将当前目录改为poc目录 创建fifo1: [crayon-5a0b6be0a3656341006860/] 创建输出目录: [crayon-5a0b6be0a3658354860561/] … Continue reading SSD安全公告-思科UCS平台模拟器远程代

Read more

SSD 安全公告-McAfee LiveSafe MiTM 注册表 修改导致远程执行命令漏洞

Credit to Author: SSD / Maor Schwartz| Date: Tue, 14 Nov 2017 12:11:39 +0000

漏洞概要 以下安全公告描述了在 McAfee LiveSafe (MLS) 中存在的一个远程命令执行漏洞,该漏洞影响了McAfee LiveSafe(MLS)16.0.3 之前全部版本. 之前全部版本. 漏洞允许网络攻击者通过篡改 HTTP 后端响应, 进而修改与 McAfee 更新相关的 Windows 注册表值. McAfee Security Scan Plus 是一个免费的诊断工具,通过主动地检查计算机中最新的防病毒软件、防火墙和网络安全软件更新,确保用户免受威胁,同时还会扫᧿正在运行程序中的威胁. 漏洞ᨀ交者 一家独立的安全研究公司 Silent Signal 向 Beyond Security 的 SSD 报告了该漏洞。 厂商响应 厂商已经发布针对该漏洞的补丁地址。获取更多信息: https://service.mcafee.com/webcenter/portal/cp/home/articleview?articleId=TS102714 CVE: CVE-2017-3898 漏洞详细信息 网络攻击者可以在多个 McAfee 产品中实现远程代码执行。受影响的产品会通过明文 HTTP 通道从 http://COUNTRY.mcafee.com/apps/msc/webupdates/mscconfig.asp 中检索配置数据 (其中的“COUNTRY”修改为国家的两字母标识符,例如“uk”) 响应的正文包含 XML 格式数据,类似于下面的代码: [crayon-5a0b6be0a3ef1483398647/] 上述响应᧿述了在 webservice-response/update 路径下使用 reg 标签进行注册表修改的行为。 … Continue reading SSD 安全公告-McAfee LiveSafe MiTM 注册表 修改导致远程执行命令漏洞

Read more

SSD安全公告–Ametys CMS未经身份验证

Credit to Author: SSD / Maor Schwartz| Date: Tue, 14 Nov 2017 12:10:25 +0000

漏洞概要 下面我们将描述在Ametys CMS 4.0.2版本中发现的密码重置漏洞。 Ametys是一个免费的开源内容管理系统(CMS),它基于JSR-170存储内容,有公开的小工具和一个面向xml的框架。 漏洞提交者 一位独立的安全研究人员—何塞·路易斯(Jose Luis),向Beyond Security的SSD报告了该漏洞。 厂商响应 Ametys已经发布了修补该漏洞的补丁-Ametys CMS 4.0.3 获取更多细节:https://issues.ametys.org/browse/RUNTIME-2582 漏洞详细信息 由于对用户的输入没有进行充分的检查,导致未经验证的用户可以执行未授权的管理操作。 Ametys CMS仅在Web请求中包含/cms/时才检查授权。这样,我们就可以重置任何用户的密码,包括管理员用户。 漏洞证明 通过发送以下POST请求,我们可以获得用户列表: [crayon-5a0b6be0a435a552881165/] 然后,服务器将响应如下: [crayon-5a0b6be0a4362693871138/] 从服务器的响应中可以获取到字段“populationId”和“login”的值,这些值将会用于下一个请求。 现在,我们需要执行另一个请求来更改admin用户的密码: [crayon-5a0b6be0a4366202170605/] 执行这个请求后,服务器将响应: [crayon-5a0b6be0a436a547248671/] 现在,你可以使用密码MYNEWPASSWORD以管理员身份登录系统。

Read more

SSD安全公告 – Mac OS X 10.12隔离机制绕过漏洞

Credit to Author: SSD / Maor Schwartz| Date: Sun, 15 Oct 2017 06:02:53 +0000

漏洞概要 Mac OS X存在一个漏洞,该漏洞允许攻击者绕过Apple的隔离机制,不受任何限制执行任意JavaScript代码. 漏洞提交者 来自WeAreSegment的安全研究者Filippo Cavallarin向Beyond Security的SSD报告了该漏洞. 厂商响应 苹果公司已于2017年6月27日收到了我们的报告,并和我们进行了多次沟通。苹果公司通知我们,在即将发布的High Sierra操作系统中会修补这个漏洞。这之后,苹果公司再没有提供任何其他信息 – 既没有链接公告,也没有提供关于CVE编号分配的任何信息. 我们已经验证在Mac OS X High Sierra中已不存在该漏洞。对于该漏洞的解决办法是升级到Mac OS X High Sierra,或者移除rhtmlPlayer.html文件修复该漏洞. 漏洞详细信息 苹果隔离机制的运行原理是在下载的文件上设置一个扩展属性(从已下载的归档文档/图片提取的文件也适用),以便系统在受限制的环境中打开/执行这些文件. 例如,一个被隔离的HTML文件不能加载本地资源. 此漏洞存在于一个html文件(Mac OS X内核的一部分)中,容易受到基于DOM的XSS攻击,允许在其(无限制)上下文中执行任意JavaScript命令. 上述文件的具体路径为:/System/Library/CoreServices/HelpViewer.app/Contents/Resources/rhtmlPlayer.html 文件包含如下代码: [crayon-59e3ded896bb2180670324/] 简而言之,这段代码从“rhtml”查询字符串参数中提取URL地址,向该URL发出请求,并将响应数据作为JavaScript代码加以执行. 下面的代码包含两段不同的基于DOM的XSS的代码。第一个是在loadLocStrings()函数中创建一个SCRIPT元素,并使用“rhtml”参数作为其“src”属性。第二个是在init()函数中使用“rhtml”参数进行ajax调用,然后将响应直接传递给eval()。这样做的结果是同样的载荷被执行两次. 攻击者通过提供一个uri,就可以控制响应数据,进而获得代码执行. 通过使用.webloc文件是一种可能的漏洞利用方式。基本上这些文件都包含一个URL,他们只需在Safari中加载即可。通过构造一个.webloc文件,并诱导受害者打开,攻击者就可以在受害者的计算机上以高权限执行JavaScript命令. 由于.webloc文件同样使用扩展属性来存储数据,因此攻击者必须将文件打包放在tar文件中(或其他任何支持扩展属性的文件格式)中. 漏洞证明 通过以下步骤复现漏洞 创建一个你想要要在目标上执行的JavaScript文件 使用base64对文件内容编码 将其编码为“uri组件”(比如,使用js的encodeURIComponent函数完成这个任务) 使用它来构造如下形式的uri:data:text / plain; base64, 在开头添加如下字符串:file:///System/Library/CoreServices/HelpViewer.app/Contents/Resources/rhtmlPlayer.html?rhtml = 使用Safari打开它 将其另存为书签 将该书签拖放到Finder中(此时会创建一个.webloc文件,如果扩展名不是.webloc,重命名为.webloc) 创建一个包含.webloc文件的tar归档文件 将归档文件发送给受害者 请注意,受限于rhtmlPlayer.html的处理流程,为了访问本地资源,JavaScript代码的第一行必须是: [crayon-59e3ded896bbb626384155/] 以下bash脚本会将JavaScript文件转换为最终的“文件”URL: … Continue reading SSD安全公告 – Mac OS X 10.12隔离机制绕过漏洞

Read more