欢迎访问Sunbet官网(www.sunbet.us),Allbet欧博官网(www.ALLbetgame.us)!

首页Sunbet_安全防护正文

Ghost Potato 复现(Cve-2019-1384)

b9e08c31ae1faa592020-01-1596安全技术漏洞分析

Ghost Potato 复现(Cve-2019-1384)

[toc]

0x00 前言

11月份的时候shenaniganslabs发了博文,讲了关于CVE-2019-1384的漏洞详情 https://shenaniganslabs.io/2019/11/12/Ghost-Potato.html 这同样是一个Potato系列的漏洞,简单来说就是绕过了MS08-068的修补方案,实现本机的NTLM反射,达到提权的目的。

0x01 NTLM 认证过程

要搞清楚NTLM反射,首先来回顾一下NTLM的认证过程。 NTLM认证基于C/S验证机制,由三种消息组成: 协商,质询,验证 type1:协商 主要是客户端向服务器客户端支持和服务器请求的功能列表 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第1张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第2张 type2: 质询 服务器向客户端发送服务器支持的功能列表,并且同时发送一个16位的Challenge, 并且同时发送服务器的各类信息于Target Info字段 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第3张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第4张 type3: 验证 客户端收到Challenge后,使用自身的NTLM Hash加密Challenge得到Response,将Response发送给服务端.然后服务端在本地调用用户NTLM hash加密Challenge后,与Response进行对比。 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第5张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第6张

0x02 ms08-068

Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第7张 这里需要看一个函数InitializeSecurityContextA 这个函数属于sspi.h, 关于SSP的作用就不再赘述了 函数主体:
SECURITY_STATUS SEC_ENTRY InitializeSecurityContextA(
  PCredHandle    phCredential,
  PCtxtHandle    phContext,
  SEC_CHAR       *pszTargetName,
  unsigned long  fContextReq,
  unsigned long  Reserved1,
  unsigned long  TargetDataRep,
  PSecBufferDesc pInput,
  unsigned long  Reserved2,
  PCtxtHandle    phNewContext,
  PSecBufferDesc pOutput,
  unsigned long  *pfContextAttr,
  PTimeStamp     ptsExpiry
);
可以看到存在一个pszTargetName参数, ms08-068的修复方案也就是利用这个参数进行的 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第8张 当我们存在两个主机进行SMB通信时,A向B发送了type1请求,同时他将自己的pszTargetName设置为cifs/B, 当拿到type2的challenge时,向lsass进程中写入缓存 -> (Challenge,cifs/B)。 而后A向B发送type3,B收到response后,会到lsass中去寻找是否存在缓存(Challenge,cifs/B), 因为只有A主机写入了缓存,所以如果A和B不是同一个主机,那么肯定B主机不存在缓存,认证成功。

0x03 cve-2019-1384

这个漏洞主要是绕过了缓存的限制,因为lsass中的缓存(Challenge,cifs/B),在300s后会自动消失 利用流程: Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第9张
phpmyadmin PMASA-2020-1 漏洞分析与复现 前言 今晚瞎逛的时候发现phpmyadmin更新了,查看 Release notes The two most notable fixes: * Issue #15724 regarding two-factor authentication * PMASA-2020-1 which is an SQL injection vulnerability in the user accounts page 发现修复了一个sql注入漏洞,便想复现和分析一下 官方修复 打开phpmyadmin的安全公告页面,查看公告写的PMASA-2020-1 描述 在用户帐户页面中发现了一个SQL注入漏洞。创建对此页面的查询时,恶意用户可能会注入自定义SQL来代替其自己的用户名。攻击者必须具有有效的MySQL帐户才能访问服务器。 下面的fix 只改了一行 很显然 这个就是注入点了. 也不会像之前那个洞一样闹个乌
Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第10张 经过315s后,再发送type3, 那么到时候lsass中的缓存已经消除,可以成功认证本机器

0x04 漏洞复现

作者原文中提供的Poc: impacket-ghostpotato 由于他给的Poc只支持HTTP协议,所以我们使用IE浏览器进行访问即可 配合responder的LLMNR投毒 responder -I eth0 --lm Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第11张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第12张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第13张 上传rat文件到WIndows启动目录,用户下次登录时自启动 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第14张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第15张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第16张 当然,如果直接执行命令是system权限的 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第17张 Poc提供两个上传路径 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第18张

0x05 WebDav

在复现WebDav的攻击形式时,我发现了一些以前不知道的东西,因为原作者是通过WebDav进行攻击的,所以给俺也来一个。 参考这篇文章 -> https://www.n00py.io/2019/06/understanding-unc-paths-smb-and-webdav/ 我们知道了Windows在使用UNC路径的时候,会先通过SMB协议进行访问,如果没有成功,会切换到WebDav进行访问 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第19张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第20张   没什么问题,但是之前通过Windows Server 2008进行测试时,我发现只会通过SMB协议,而不会通过WebDav 这个问题困扰了我蛮久的,最后查阅了一些资料后,我觉得是因为一个注册表项WebClient 位于\HKEY_LOCAL_MACHINE\SYSTEM\CureentControlSet\services\WebClient Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第21张 WebClient提供了WebDav的Service,也就是说进行Webdav的连接离不开WebClient组件,而WindowsServer2008默认是没有这个东西的,所以也就不行了 利用WebDav进行SMB反射 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第22张 Ghost Potato 复现(Cve-2019-1384)  安全技术 漏洞分析 第23张

0x06 引用链接

 

网友评论