惠普电脑内置键盘记录器?可窃取账号密码等敏感用户信息

你在使用惠普电脑吗?如果答案是肯定的,那么请小心了,你的音频驱动程序可能会存储你的击键记录,甚至泄露你的重要信息。

日前,瑞士安全公司Modzero的安全研究员Thorsten Schroeder发现,许多惠普笔记本电脑和平板电脑中的Conexant音频驱动程序变身Keylogger, 记录用户的击键内容。Keylogger可以监测用户的每一次击键信息。该软件不仅仅捕获了特定按键的按键记录,而且还记录了每个按键的点击信息,并将它们存储在一个可读的文件中( C:\Users\Public\MicTray.log)。恶意软件或木马可以利用这一点,绕过系统对可疑行为的安全检测,获取记录文件,窃取用户的账户信息、信用卡卡号、聊天记录、密码等个人信息。

HP .jpg

Conexant是一家集成电路制造商,既生产音频芯片也开发相关驱动程序。Conexant High-Definition (HD) Audio Driver音频驱动程序可帮助软件与硬件进行通信。惠普公司根据不同的计算机型号,在Conexant音频驱动程序中写入一些控制特定按键(如媒体按键)的代码。研究人员发现,与Conexant音频驱动程序安装包一起安装的MicTray64.exe应用程序已在Windows系统中注册为计划任务,能够监控击键内容以确定用户是否按下了音频相关的按钮(例如静音/取消静音)。用户的击键记录保存在名为“Users/Public”的文件夹中,可以传送给OutputDebugString调试端口,这个端口允许通过MapViewOfFile函数访问该文件夹中的数据。

音频驱动程序变成间谍软件

Schroeder在一篇博客中表示,该软件的目的是识别用户是否已经按下或松开特殊键。但是开发人员加入了诊断和调试功能,用于确保所有按键都可以通过调试界面广播出去,也可以写入硬盘上公共目录中的日志文件。这种调试将音频驱动程序转换成了内置的Keylogger。

研究显示,2015年12月发布的MicTray64.exe的早期版本并不会把击键记录存储到文件夹中。2016年10月,惠普将MicTray64.exe更新到1.0.0.46版本,增添了诊断功能,记录用户击键内容并存储到本地文件夹。目前,共有30种型号的惠普电脑装有1.0.0.46版本的MicTray64.exe。而根据文件的元信息,至少在2015年圣诞节时期,惠普电脑安装的该驱动程序就已经存在击键记录行为。

MicTray64.exe 1.0.0.46版本进行击键记录的具体过程如下:

int64 keylogger_enable(bool activate)

{

[...]

if ( !keylogger_active )

{

[...]

// 13=WH_KEYBOARD_LL: Installs a hook procedure that

// monitors low-level keyboard input events. For

// more information, see the LowLevelKeyboardProc

// hook procedure.

hKeyloggerHook = SetWindowsHookExW(

13, (HOOKPROC)handle_scancode,

hSelf,

0);

 

if ( hKeyloggerHook )

{

keylogger_active = 1;

return 0;

}

[...]

}

记录功能激活之后,用户每按一次键盘,就会触发以下伪代码执行:

LRESULT handle_scancode(

int _in_nCode,

WPARAM _in_wParam,

tagKBDLLHOOKSTRUCT *_in_lParam_keystroke)

{

tagKBDLLHOOKSTRUCT *key_stroke;

WPARAM wParam;

int nCode;

int64 target;

DWORD is_keyfoo;

int is_keydown;

char tmp;

int64 key_flags;

int64 key_vk;

key_stroke   = _in_lParam_keystroke;

wParam   = _in_wParam;

nCode = _in_nCode;  

if ( _in_nCode >= 0 )

{

target = (cfg_HotKeyMicScancode >> 8 *

(cfg_HotKeyMicScancode_len - cfg_HotKeyMicScancode_len2));

LODWORD(key_vk) = _in_lParam_keystroke->vkCode;

LODWORD(key_flags)  = _in_lParam_keystroke->flags;

is_keyfoo   = _in_lParam_keystroke->flags & 1;

is_keydown  = ~(key_flags >> 7) & 1;

[*] send_to_dbglog(

0x1D,

L"Mic target 0x%x scancode 0x%x flags 0x%x extra 0x%x vk 0x%x\n",

target,

_in_lParam_keystroke->scanCode,

key_flags,

_in_lParam_keystroke->dwExtraInfo,

key_vk);  

conexant_handle_fn_keys(

cfg_MicMuteScancodeSettings,

is_keydown,

key_stroke->scanCode,

target,

&cfg_HotKeyMicScancode_len,

&cfg_HotKeyMicScancode_len2,

1);   

if ( cfg_MicMuteScancodeSettings & 4 )

conexant_handle_fn_keys(

cfg_MicMuteScancodeSettings,

is_keydown,

key_stroke->scanCode,

(cfg_HotKeyMicScancode2 >> 8 *

(cfg_HotKeyMicScancode2_len - cfg_HotKeyMicScancode2_len2)),

&cfg_HotKeyMicScancode2_len,

&cfg_HotKeyMicScancode2_len2,

1);  

tmp = cfg_SpkMuteScancodeSettings; 

if ( cfg_SpkMuteScancodeSettings & 8 && is_keyfoo

|| !(cfg_SpkMuteScancodeSettings & 8) )

{

conexant_handle_fn_keys(

cfg_SpkMuteScancodeSettings,

is_keydown,

key_stroke->scanCode,

(cfg_HotKeySpkScancode >> 8 *

(cfg_HotKeySpkScancode_len - cfg_HotKeySpkScancode_len2)),

&dword_1402709C8,

&dword_1402709CC,

0);

tmp = cfg_SpkMuteScancodeSettings;

}  

if ( tmp & 4 && (tmp & 8 && is_keyfoo || !(tmp & 8)) )

conexant_handle_fn_keys(

tmp,

is_keydown,

key_stroke->scanCode,

(cfg_HotKeySpkScancode2 >> 8 *

(cfg_HotKeySpkScancode2_len - cfg_HotKeySpkScancode2_len2)),

&cfg_HotKeySpkScancode2_len,

&cfg_HotKeySpkScancode2_len2,

0);

}

return CallNextHookEx(hhk, nCode, wParam, key_stroke);

}

其中,[*]那部分代码触发的功能可以将击键记录写入文件,或通过运行store_keystroke()代码,将击键记录经由Microsofts Debug Monitor 接口广播出去:

void store_keystroke(LPCVOID lpBuffer)

{

WORD *scancode_logline;

int64 str_len;

DWORD NumberOfBytesWritten;

int str_newline;

scancode_logline = lpBuffer;

if ( g_write_to_logfile )

{

SetFilePointer(g_hFile, 0, 0, 2);

str_len = -1;

while ( scancode_logline[str_len++ + 1] != 0 )

;   

WriteFile(

g_hFile,

scancode_logline,

2 * str_len,

&NumberOfBytesWritten,

0); 

str_newline = '\n\0\r';

WriteFile(g_hFile, &str_newline, 4, &NumberOfBytesWritten, 0);

}

else

{

OutputDebugStringW(lpBuffer);

}

}

而目前没有证据表明惠普有意为Conexant音频驱动程序加入击键记录功能。 这很可能是开发人员疏忽导致的问题,使得该程序对用户造成潜在威胁。

Conexant.png

存在风险的电脑型号及系统

该漏洞被记录为“CVE-2017-8360”漏洞,已经影响了28款惠普笔记本电脑和平板电脑,包括EliteBook 800系列,EliteBook Folio G1,Elite X2, ProBook 600 和400系列, and ZBook等型号。Modzero的安全专家推断其他厂商出产的电脑如果装有Conexant硬件或驱动程序,也可能存在类似风险。

以下为存在问题的电脑型号:

HP EliteBook 820 G3 Notebook PC

HP EliteBook 828 G3 Notebook PC

HP EliteBook 840 G3 Notebook PC

HP EliteBook 848 G3 Notebook PC

HP EliteBook 850 G3 Notebook PC

HP ProBook 640 G2 Notebook PC

HP ProBook 650 G2 Notebook PC

HP ProBook 645 G2 Notebook PC

HP ProBook 655 G2 Notebook PC

HP ProBook 450 G3 Notebook PC

HP ProBook 430 G3 Notebook PC

HP ProBook 440 G3 Notebook PC

HP ProBook 446 G3 Notebook PC

HP ProBook 470 G3 Notebook PC

HP ProBook 455 G3 Notebook PC

HP EliteBook 725 G3 Notebook PC

HP EliteBook 745 G3 Notebook PC

HP EliteBook 755 G3 Notebook PC

HP EliteBook 1030 G1 Notebook PC

HP ZBook 15u G3 Mobile Workstation

HP Elite x2 1012 G1 Tablet

HP Elite x2 1012 G1 with Travel Keyboard

HP Elite x2 1012 G1 Advanced Keyboard

HP EliteBook Folio 1040 G3 Notebook PC

HP ZBook 17 G3 Mobile Workstation

HP ZBook 15 G3 Mobile Workstation

HP ZBook Studio G3 Mobile Workstation

HP EliteBook Folio G1 Notebook PC

可能会受影响的系统如下:

Microsoft Windows 10 32

Microsoft Windows 10 64

Microsoft Windows 10 IOT Enterprise 32-Bit (x86)

Microsoft Windows 10 IOT Enterprise 64-Bit (x86)

Microsoft Windows 7 Enterprise 32 Edition

Microsoft Windows 7 Enterprise 64 Edition

Microsoft Windows 7 Home Basic 32 Edition

Microsoft Windows 7 Home Basic 64 Edition

Microsoft Windows 7 Home Premium 32 Edition

Microsoft Windows 7 Home Premium 64 Edition

Microsoft Windows 7 Professional 32 Edition

Microsoft Windows 7 Professional 64 Edition

Microsoft Windows 7 Starter 32 Edition

Microsoft Windows 7 Ultimate 32 Edition

Microsoft Windows 7 Ultimate 64 Edition

Microsoft Windows Embedded Standard 7 32

Microsoft Windows Embedded Standard 7E 32-Bit

应对方案

惠普已经积极做出响应,发布了修复方案。用户可以前往惠普客户支持页面,查询自己的电脑型号并下载新的音频驱动程序。此外,Windows系统更新时,也会针对这一问题进行修复。

为进一步确保安全,惠普电脑用户可以检查电脑硬盘,如果发现下列文件之一,就表明击键记录已经被获取:

C:\Windows\System32\MicTray64.exe

C:\Windows\System32\MicTray.exe

尽管每次登录之后文件会被覆盖,但如果程序再次启动,击键信息还是会被记录下去。如果用户将驱动程序备份到云储存或外部储存设备中,历史记录也会保存。

因此,一旦发现以上可执行的文件,用户最好立即将其删除或将文件重命名,以禁止MicTray驱动器继续读取击键记录。同时,删除“用户-公共文档”中的 MicTray.log日志文件夹。

* 参考来源:THK,AngelaY编译

转自FreeBuf.COM

本文由 华盟网 作者:小龙 发表,其版权均为 华盟网 所有,文章内容系作者个人观点,不代表 华盟网 对观点赞同或支持。如需转载,请注明文章来源。

0

相关文章

发表评论

电子邮件地址不会被公开。