感谢火绒安全的投递
近期,"火绒威胁情报系统" 截获到一款名为 HellohaoOCR_V3.1 的图像识别程序携带后门病毒 Gh0st, 推测正通过供应链污染的方式进行传播. 用户运行该程序后, 就会激活后门病毒. 病毒可以接受远程服务器指令, 执行下载其它病毒, 提升权限, 删除日志等恶意行为. 更为关键的是, 由于大量的下载站和技术类论坛 (如下图) 提供该程序的下载, 导致病毒正在被进一步扩散.
建议近期在上述下载站和论坛下载过该程序的用户及时排查是否感染病毒. 火绒用户无需担心, 火绒安全软件无需升级即可查杀该病毒.
随后, 火绒工程师找到并联系了该程序的作者, 得知其使用了第三方的易语言模块进行编程, 但对程序带毒并不知情. 结合分析结果, 火绒工程师推测为易语言模块遭供应链污染导致. 最终, 经过溯源取证, 火绒工程师基本确认了该后门病毒的作者以及作案手法: 通过易语言外挂交流群等平台散播含有后门的病毒模块, 以感染编译环境的方式达到供应链污染的目的.(详情见分析报告部分)
火绒工程师表示, 与此次作案手法类似的还有去年的 "微信支付" 勒索病毒. 供应链污染一直都是病毒传播的一大手段, 而下载站也逐渐成为了病毒分发的主要平台, 火绒对相关供应链污染与下载站传播各类病毒曾进行多次披露. 在此, 我们再一次呼吁, 广大开发人员在使用第三方模块时, 尽量通过正规渠道获取, 并及时检查其安全性; 各大下载站管理人员对上传文件加强审核, 阻止病毒传播, 为用户共同营造良好的网络环境.
附:[分析报告]
一, 样本分析
近期火绒接到用户反馈, 一款名为 HellohaoOCR_V3.1 的图像识别程序会被火绒报毒. 经过分析, 我们发现该图像识别程序中带有 Gh0st 后门病毒, 根据后续溯源分析推测该后门病毒是通过供应链污染的方式进行传播. 由于该带毒程序后续被上传到了多个下载站和论坛, 从而造成了该后门病毒在互联网中的进一步扩散. 受该病毒影响的站点, 如下图所示:
受到该病毒影响的下载站列表
带毒程序下载页面, 如下图所示:
带毒程序下载页面
HellohaoOCR_V3.1.exe 软件采用 VMProtect 加壳处理, 运行之后会将自身所包含的后门病毒模块释放到内存并保存在 "C:\ Windows https://microsoft.pvxt.net/x9Vg1 \SysWOW64\Scvhost.exe" 中, 由于 Windows XP 及以下系统不存在 "C:\Windows\SysWOW64\" 文件夹, 运行软件后无法释放病毒模块, 所以不会受此病毒程序的影响. 如下图所示:
病毒文件释放路径
病毒文件内存数据
病毒文件所在文件夹
Gh0st 是一款远程控制软件, 由于其源代码早已在互联网上公开, 导致了大量以 Gh0st 源码为基础的后门病毒不断传播, 且变种繁多. Scvhost.exe 其实也为 Gh0st 后门病毒的一个变种, 它不仅采用了传统的 C&C 服务器接收上线消息通知的方式, 并且通过 QQ 的一个公开接口 "http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=qq_number" 来获取加密之后的其他 C&C 服务器地址和端口, 这样它就可以随意变换服务端地址, 不用担心服务器地址被拉杀软黑, 来达到持久化控制的效果. 在网上找了一款类似的远程控制软件, 其生成客户端的配置界面如下图所示:
可以通过 QQ 上线方式的远控配置界面
后门病毒运行起来之后, 首先会创建线程来接收 C&C 服务器返回数据和发送上线数据包, 并创建全局互斥体来保证自己唯一运行, 然后通过第三方网站 "ip.cn" 来获取真实的 C&C 服务器地址, 确保获取到的 C&C 服务器地址不会受到当前网络环境影响(比如 DNS 劫持).
通过第三方网站 "ip.cn" 来获取真实的 C&C 服务器地址相关代码如下图所示:
第三方站点查询真实 IP
然后病毒程序会尝试连接 C&C 服务器地址, 如果连接成功, 则会创建一个线程来接受并解密远程服务器返回的数据. 连接 C&C 服务器相关代码如下图所示:
连接 C&C 服务器
创建线程接收返回数据相关代码如下图所示:
创建线程接收返回数据
接收并解密 C&C 服务器返回数据相关代码如下图所示:
接收并解密 C&C 服务器返回数据
解密数据的算法并不复杂, 将返回的数据按字节先与 0x7A 相减, 在与 0x19 异或, 解密数据部分代码如下图所示:
解密 C&C 服务器返回数据
接着病毒程序开始收集系统数据来构造上线包信息, 除了常见的系统信息之外, 例如: 网络连接方式, 系统版本信息, 内存使用状态, 磁盘信息, 磁盘容量, 时间信息等, 还会收集当前系统的 QQ 号和杀软信息. 收集常见系统信息代码部分如下图所示:
收集常见系统信息
通过 QQ 程序的一个窗体类名为 "CTXOPConntion_Class" 来获取遍历窗体, 从而获得当前系统登录的 QQ 号信息, 相关代码如下图所示:
获取当前系统登录的 QQ 号信息
检测系统杀软信息, 相关代码如下图所示:
此外, 在将要发送的上线包信息中, 还发现了一个可疑 QQ 号 "24******87", 这个在下面的溯源分析中会具体说明, 相关代码如下图所示:
发现可疑 QQ 号相关代码
收集完所需的系统信息之后, 开始拼接上线包数据信息, 并加密发送给 C&C 服务器, 未加密的明文上线数据包信息如下图所示:
未加密的明文上线数据包信息
加密数据所采用的算法与解密接收数据的算法正好相反, 将发送的数据按字节先与 0x19 异或, 在与 0x7A 相加, 这样就得到了最终所需发送的加密数据. 加密数据算法相关代码如下图所示:
加密数据算法
加密之后的上线数据包信息如下图所示:
加密之后的上线数据包信息
若发送失败则会不断尝试再次发送, 最大发送次数为 16 次, 相关代码如下图所示:
发送上线包相关代码
如果发送 16 次之后还是返回失败, 则开始启用 QQ 上线的方式, 来获取其他的 C&C 服务器地址和端口, QQ 上线相关代码如下图所示:
QQ 上线相关代码
远控木马所使用的 QQ 上线方式就是通过对接口网址 "http://users.qzone.qq.com/fcg-bin/cgi_get_portrait.fcg?uins=qq_number" 的访问, 能够得到自己可控的返回数据 QQ 昵称, 从而任意改变 C&C 服务器地址. 此次病毒程序所使用的 QQ 号为 "23******32", 浏览器访问测试效果如下图所示:
浏览器访问 QQ 接口
接着病毒程序通过对返回的数据匹配查找, 得到 QQ 昵称, 相关代码如下图所示:
查找 QQ 昵称
得到 QQ 昵称后, 对昵称进行解密操作, 由于解密时先对昵称进行减去 6 个字节的操作, 但是此病毒当前所关联的 QQ 昵称 "周末" 只有 4 个字节大小, 所以导致了解密失败, 这也就是程序为什么运行奔溃的原因了, 相关代码如下图所示:
程序奔溃相关代码
虽然病毒程序由于 QQ 昵称不符合解密算法的关系导致运行奔溃, 不排除将来作者更改 "23******32"QQ 号的昵称来再次进行远程控制, 运行奔溃如下图所示:
程序奔溃
解密 QQ 昵称获取 C&C 服务器地址和端口的相关算法如下图所示:
解密所使用的密码表
解密逻辑相关代码
通过 QQ 昵称解密出新的 C&C 服务器地址和端口之后, 则会继续进行上文所述逻辑, 解密 C&C 服务器返回数据, 发送上线数据包. 由于此类后门病毒已在网上流传很久, 并不新颖, 功能部分与其他 Gh0st 变种后门病毒大致相同. 部分功能相关代码如下图所示:
病毒程序部分功能相关代码
二, 溯源分析
来源: http://www.tuicool.com/articles/rqIzQnJ