篡改默认搜索的插件:
下载到 C:\Users\[用户名]\AppData\Local\Temp\[随机]\AIWebSetup.exe(会覆盖篡改新标签页插件的下载)。
解密后获得 rar 数据,然后解压到 C:\Users\[用户名]\AppData\Local\AIWeb\selfdefplusseo 文件夹下,如下图所示:
根据上面下载的文件开始修改 Preferences、Secure Preferences、Bookmarks 等文件。
修改浏览器配置文件原理是样本读取浏览器配置文件内容后,转化为 JSON 对象,修改 JSON 对象并写入浏览器配置文件。
下面是修改 Preferences 和 Bookmarks 文件的操作,其中第一个图上半部分是设置 bookmark_bar 中 show_on_all_tabs 的值,如下图所示:
·Preferences、Secure Preferences、Bookmarks 修改前后对比
以下内容是以 Chrome 浏览器为例得出的结论,与样本对 Edge 浏览器的处理几乎没有区别。
Preferences:偏好设置
设置书签栏持续显示,如下图所示:
设置新标签栏为 tab.html,意味着用户每次点击新标签栏都会访问一次该网址,如下图所示:
不同步书签,标签页,偏好,插件等设置,如下图所示:
Secure Preferences:安全偏好设置
显示主页按钮,如下图所示:
修改新标签页插件和修改默认搜索插件的设置,设置完后就相当于安装插件,如下图所示:
Bookmarks:
使 baidu 和 hao123 添加到书签栏中,如下图所示:
·页面变化
样本进行配置文件修改后,浏览器的书签栏多了两个网址,主页变成了 hao123,新标签页变成了 baidu 搜索,如下图所示:
样本在完成上述两个步骤后进入安装Chrome环节。样本最后会从资源 CFGDATA 的 133 中获取到被加密 Chrome 浏览器在线安装包的数据,如下图所示:
通过解密获取到安装包数据后写入并执行,如下图所示:
持久化
样本持久化的基本原理是通过修改注册表来创建 COM 组件并关联 DLL 库,然后使 COM 组件与 Credential Providers 相关联,最终实现用户登录时 Windows 中的 LogonUI.exe 自动运行 COM 组件下的 DLL 函数。
该函数会寻找 CSChrm.exe 文件路径并启动程序,实现样本持久化。
下载 FastAuthProvider:
下载到 C:\Users\[UserName]\AppData\Local\MicroFile\FastAuthProvider.dll,同样需要解密,如下图所示:
下载 CSChrmExe:
下载到 C:\Users\[UserName]\AppData\Local\CSChrm\CSChrm.exe,同样需要解密,如下图所示:
注册表HKEY_CLASSES_ROOT\CLSID路径下创建了一个名为{FF032558-38DA-4472-B969-31A636B7E5C7}的子项,用以表示该COM组件的CLSID。在这个CLSID子项中,包含了该组件的相关信息,其中包括该组件所关联的DLL文件路径(C:\Users\[UserName]\AppData\Local\MicroFile\FastAuthProvider.dll)等信息。使该样本登录 Windows 时能调用到 DLL 中的函数,如下图所示:
最终该样本会通过 DLL 中的 DllGetClassObject 函数找到 CSChrm.exe 文件并执行,如下图所示:
CSChrm.exe 文件和样本本身的主要差异是CSChrm.exe 文件资源中并没有 Chrome 浏览器在线安装包,不会进行安装。
统计信息
样本会进行信息统计,被统计的信息包括被推广电脑的主板和网卡信息的 MD5 值、Windows版本、处理器架构、操作系统位数、360 是否存在、当前文件版本、当前时间以及推广相关的数据。
数据的综合收集有利于样本制造方深入了解推广的情况,从而优化推广策略。
主板和网卡信息的 MD5 值:
样本首先会将主板和网卡信息组织成以下格式的字符串:
[sn=None, pt=440BX Desktop Reference Platform, pn=, ml=, mr=Intel Corporation, rd=, ne=Base Board, su=, oi=, id=]-[某网卡部分的 GUID]。
然后,对该字符串进行 MD5 哈希计算,得出 MD5 值,经推测MD5 值可能被用做机器的唯一标识,用来识别具体电脑。获取主板和网卡信息,如下图所示:
获取Windows版本、处理器架构、操作系统位数,如下图所示:
表示360 是否存在:[999] 表示有 360,[000] 表示没有360,如下图所示:
获取当前文件版本,如下图所示:
获取时间,如下图所示:
应对 360
样本会检查 360 的 360Tray.exe 和 360Safe.exe 进程是否存在,如下图所示:
·若360 存在,样本会通过模拟点击的方式避免被 360 拦截。
打开目标路径文件夹,通过最小化的方式打开,如下图所示:
删除任务栏标签并窗口透明化,使用户感受不到已经打开了一个文件夹窗口,如下图所示:
获取指定窗口句柄,显示该窗口,通过 PostMessage 发送双击消息,然后通过相对位置双击打开文件,如下图所示:
·若 360 不存在,样本会直接使用CreateProcess 打开程序。如下图所示:
二、附录
加密数据的解密:
样本加密使用的是异或加密算法,先通过 xmbpcbrowser_sinx 加密出新秘钥,然后通过新秘钥对数据异或加密和解密,如下图所示:
C&C:
HASH: