Ghost Potato 复现(Cve-2019-1384) | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

Ghost Potato 复现(Cve-2019-1384)

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)

Ghost Potato 复现(Cve-2019-1384)

type2: 质询

服务器向客户端发送服务器支持的功能列表,并且同时发送一个16位的Challenge, 并且同时发送服务器的各类信息于Target Info字段
Ghost Potato 复现(Cve-2019-1384)
Ghost Potato 复现(Cve-2019-1384)

type3: 验证

客户端收到Challenge后,使用自身的NTLM Hash加密Challenge得到Response,将Response发送给服务端.然后服务端在本地调用用户NTLM hash加密Challenge后,与Response进行对比。
Ghost Potato 复现(Cve-2019-1384)
Ghost Potato 复现(Cve-2019-1384)

0x02 ms08-068

Ghost Potato 复现(Cve-2019-1384)

这里需要看一个函数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)

当我们存在两个主机进行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)

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)

经过315s后,再发送type3, 那么到时候lsass中的缓存已经消除,可以成功认证本机器

0x04 漏洞复现

作者原文中提供的Poc: impacket-ghostpotato

由于他给的Poc只支持HTTP协议,所以我们使用IE浏览器进行访问即可
配合responder的LLMNR投毒
responder -I eth0 --lm
Ghost Potato 复现(Cve-2019-1384)

Ghost Potato 复现(Cve-2019-1384)

Ghost Potato 复现(Cve-2019-1384)

上传rat文件到WIndows启动目录,用户下次登录时自启动
Ghost Potato 复现(Cve-2019-1384)

Ghost Potato 复现(Cve-2019-1384)
Ghost Potato 复现(Cve-2019-1384)
当然,如果直接执行命令是system权限的
Ghost Potato 复现(Cve-2019-1384)

Poc提供两个上传路径
Ghost Potato 复现(Cve-2019-1384)

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)

Ghost Potato 复现(Cve-2019-1384)

 

没什么问题,但是之前通过Windows Server 2008进行测试时,我发现只会通过SMB协议,而不会通过WebDav

这个问题困扰了我蛮久的,最后查阅了一些资料后,我觉得是因为一个注册表项WebClient

位于\HKEY_LOCAL_MACHINE\SYSTEM\CureentControlSet\services\WebClient
Ghost Potato 复现(Cve-2019-1384)

WebClient提供了WebDav的Service,也就是说进行Webdav的连接离不开WebClient组件,而WindowsServer2008默认是没有这个东西的,所以也就不行了

利用WebDav进行SMB反射
Ghost Potato 复现(Cve-2019-1384)

Ghost Potato 复现(Cve-2019-1384)

0x06 引用链接

 


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明Ghost Potato 复现(Cve-2019-1384)
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址