恶意文件名称:
XX大学-xx.exe
威胁类型:
钓鱼
简单描述:
XX大学-xx.exe是一款伪装成 Word 的Cobalt Strike 钓鱼程序,诱导受害者运行后可以窃取用户信息或控制受害者主机。
恶意文件分析
1.恶意文件描述
近期,深信服深盾终端实验室在运营工作中捕获到一款潜伏已久的钓鱼程序,该病毒由Go语言编写,具有进程注入及远控行为。
使用 Go 语言编写恶意文件是当前较为流行的趋势,Go 语言的函数调用逻辑、编译程序后数据的分布与C/C++ 等有较大不同。其本身所携带的庞大的运行时库、复杂的函数执行逻辑给逆向分析带来较大的困难。
2.恶意文件分析
该文件为钓鱼程序,通过设置特殊的名称并将图标替换为Word 程序的图标,从而诱使用户打开该程序。
该恶意程序运行时会对内存进行监控,若检测到软件断点则程序会出现内存访问异常。该恶意程序会在磁盘上释放两个文件,该文件的名称及路径如下:C:UsersUserNameDocumentsKugouBrewiKuGou.exe,C:UsersUserNameDocumentsKugouConfKuPlayer.exe
文件释放完成后,即启动两个程序。
进程运行后,通过调用 GetCurrentProces 函数,获取当前进程的句柄。
随后尝试改变当前进程的 Token。
查询 ”SeDebugPrivilege” 的 Locally Unique Identifier,以用作后续改变进程的权限。
若函数正常执行则后续会修改当前进程的权限,若执行失败则返回。若权限修改成功,此时当前进程拥有了操作其它进程的权限,可以尝试注入其它进程。
解码字符串获得三个进程的名称:taskhostw.exe、taskhost.exe、RuntimeBroker.exe,用于后续的进程注入。
RtlGetNativeSystemInformation 为 Windows 未公开的函数,通过逆向数据上下文及其参数可知,其第一个参数为0x5时代表查询的是SYSTEM_PROCESS_INFORMATION 结构体。
在每次解码完字符串后,会通过比较进程名称字符串的形式,找到对应进程的 Handle。
函数的返回值即为对应的进程的句柄。
拿到目标进的句柄后,尝试用 All Access 权限打开目标进程。
ZwOpenProcess 函数的第四个参数为 ClientID,为要打开进程的进程句柄 0xF7C,转换成十进制为 3964。该句柄对应的进程为系统进程 taskhostw.exe。
随后在目标进程内申请内存空间,将恶意代码写入目标进程空间内再执行。
执行注入在目标进程中的恶意代码。
下图为恶意代码的解码逻辑,从下图可以看出该段代码为了避免被安全软件检测,使用了 Decoding-Executing 技术,解码的大小为 0x136D4,解密区域即在当前代码循环的下一字节。
其会进行多次解码。
解码完毕后即开始通过 PEB 结构体获取载入的 DLL 模块的基址。
随后定位并加载两个 API 的函数地址,并再次解码一块区域用于后续的执行。
将当前进程的权限提升至 Debug 权限。
随后进行 HTTP 连接。
主动连接目标,目标路径带有较为明显的 CS 特征。
随后在一个循环中等待 CS 服务器下发指令,并每隔数十秒向 CS 服务器发送心跳包。
解决方案
处置建议
1. 避免打开来历不明的邮件、链接和附件等,如一定要打开未知文件,请先使用杀毒软件进行扫描;
2. 定期使用杀毒软件进行全盘扫描。
深信服解决方案
【深信服终端安全管理系统EDR】已支持查杀拦截此次事件使用的病毒文件,请更新软件(如有定制请先咨询售后再更新版本)和病毒库至最新版本,及时查杀新威胁;
【深信服下一代防火墙AF】的安全防护规则更新至最新版本,接入深信服云平台,“云鉴” 服务即可轻松抵御此高危风险。
【深信服安全感知管理平台SIP】建议用户及时更新规则库,接入云图,并联动【深信服下一代防火墙AF】实现对高危风险的入侵防护。
【深信服安全托管服务MSS】以保障用户网络安全“持续有效”为目标,通过将用户安全设备接入安全运营中心,依托于XDR安全能力平台和MSSP安全服务平台实现有效协同的“人机共智”模式,围绕资产、脆弱性、威胁、事件四个要素为用户提供7*24H的安全运营服务,快速扩展持续有效的安全运营能力,保障可承诺的风险管控效果。
原文始发于微信公众号(深信服千里目安全实验室):反调试技巧层出!伪装成Word 文件的Cobalt Strike 钓鱼程序
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论