伏影实验室发现,最早2012年出现的远控木马 NetWire,近期在其文档中加入了nCoV-19疫情相关的社工内容。
随着新冠肺炎病毒(nCoV-19)在世界范围内的传播,多个国际黑客组织开始注意到疫情话题在社会工程学方面的易用性,将疫情相关的信息融入到攻击过程当中。
绿盟科技伏影实验室早前发布的信息(https://blog.nsfocus.net/watch-out-for-hackers-attacked-by-new-crown-virus-pneumonia/)显示,已有Emotet、FormBook等知名木马在攻击中使用了疫情信息作为诱饵。
近期,伏影实验室发现,NetWire远控木马控制者也开始使用nCoV-19疫情相关的诱饵文档来投放木马。
NetWire,又称NetWireRC或Recam,是一款最早出现在2012年的远控木马,曾被尼日利亚的黑客用于攻击企业目标。多年以来,NetWire一直在更新版本,并演化出多条不同的攻击链。2019年起,NetWire进入新一轮的爆发期,借助由鱼叉邮件和网盘组建的扩散网络广为传播。
事件简述
伏影实验室近期捕获的部分NetWire文档样本中加入了nCoV-19疫情的社工内容。
当受害者打开恶意邮件中的附件文档时,将会看到如下所示的内容:
文档中图片显示了nCoV-19病毒的全球传播统计,并且有地域上的错误。
该文档实际包含cve-2017-11882公式编辑器漏洞,会下载并执行恶意程序,最终使NetWire木马在受害者主机上运行。
该NetWire的大致攻击流程如下:
漏洞rtf文档运行后,通过短链接获取到二阶段载荷的地址并下载运行,二阶段载荷将解密后的字符串和shellcode注入到windows程序ieinstal.exe中运行,shellcode访问GoogleDrive并将NetWire下载到内存中执行。该NetWire变种最终连接cnc服务器79.137.*.103。
事件分析
rtf文档
该诱饵文档包含高度混淆的rtf编码,会触发cve-2017-11882漏洞:
漏洞触发后,程序跳转至shellcode运行。shellcode使用常见的GlobalLock思路寻找Ole流对象位置,随后跳转至对象中的第二段shellcode运行。第二段shellcode亦经过高度混淆。
该漏洞文档的恶意shellcode最终下载短链接bit.ly/2T*xW(当前被解析至hxxp://www.asim*.com/new/Notepad.txt)中的内容并执行,同时在word中显示文档中附带的jpeg格式疫情地图。
Notepad.txt
恶意rtf下载运行的二阶段载荷Notepad.txt是vb程序,主要功能为启动和注入windows程序ieinstal.exe,注入内容为shellcode和解密后的字符串配置项等。
被注入的isinstal.exe运行后,会创建指定目录USER\\Bagtaler4\\,将恶意程序本体转移至目录下并命名为Samipat8.exe,之后创建注册表启动项实现持久化:
随后程序访问硬编码地址hxxps://drive.google.com/uc?export=download&id=1kFK*Jz90下载解密并执行最终阶段载荷NetWire远控木马。
解密过程中使用了以下函数:
解密逻辑为长键值异或,使用的异或键由shellcode提供。本例中用到的解密键长度为0x24A,由长为0x100的键循环生成,值为:
076C3D0F54873230F1AE34A2E026CB21DCF06F35280A6456C631AAC7B4EEFD46B0B7E516FC8DDA379AF9DDA94471746B843A183BD1110D5C6E7C53CE19F4A64D58BD4A60A5D83F8142FF85F3ED771C722D41C042795BB5A71782FBD4C1FB4E9701C4F2674DDEE888EB062EFA95C2C5BCD547698C22625EADBFCDA41F6A45F79EA90E9BB1F6E590D24F50D6003EC829C33A921193CAAC06B424D30825124C9FE80E1543B89E2F38D9F8577F4BE6CFD2C9E298BADD2FB3AFFECCDAB12CBB5248EFB61BECBE0336E1DFA0A127518F197A148BE31EE4D7B9130575245976639DF0F55F669409AB3C892A49A8D09C3720231A33E9C7EA8004BC0B1D2B027D0CA35540076C3D0F54873230F1AE34A2E026CB21DCF06F35280A6456C631AAC7B4EEFD46B0B7E516FC8DDA379AF9DDA94471746B843A183BD1110D5C6E7C53CE19F4A64D58BD4A60A5D83F8142FF85F3ED771C722D41C042795BB5A71782FBD4C1FB4E9701C4F2674DDEE888EB062EFA95C2C5BCD547698C22625EADBFCDA41F6A45F79EA90E9BB1F6E590D24F50D6003EC829C33A921193CAAC06B424D30825124C9FE80E1543B89E2F38D9F8577F4BE6CFD2C9E298BADD2FB3AFFECCDAB12CBB5248EFB61BECBE0336E1DFA0A127518F197A148BE31EE4D7B9130575245976639DF0F55F669409AB3C892A49A8D09C3720231A33E9C7EA8004BC0B1D2B027D0CA35540076C3D0F54873230F1AE34A2E026CB21DCF06F35280A6456C631AAC7B4EEFD46B0B7E516FC8DDA379AF9DDA94471746B843A183BD1110D5C6E7C53CE19F4A64D58BD4A60A5D83F8142FF
NetWire
被注入的ieinstal程序最终在内存中加载了NetWire木马。
木马程序连接C&C地址为79.137.*.103:39561,通信遵循以下格式:
0x00~0x03 | 0x04 | 0x05~ |
length | cmdbyte | data |
data部分使用aes加密,加密的key与IV在木马初始化时随机生成,并在首次通信时上传给C&C:
图中蓝色部分为协议头部,红色部分为32字节key,黄色部分为16字节IV,绿色部分为加密例文,对应的明文硬编码在木马文件中。
C&C收到木马提供的加密键后,使用此键加密data段内容,与木马持续通信:
本例中使用的NetWire木马是功能较全的变种,共支持57种不同的指令,可进行包括文件操作、进程操作、窗口操作、注册表操作、反弹shell、流量转发、模拟输入、用户凭证窃取等行为。具体功能见指令表:
0x97 | 获取受控端前台窗口名称和待机时间,作为心跳指令 |
0x9B | 获取受控端系统信息,包括用户名、计算机名、OS版本 |
0x9C | 运行TEMP路径下指定程序 |
0x9D | 执行指定命令行 |
0x9F | 程序退出(关闭cc通信、释放互斥体、中止进程) |
0xA0 | 关闭cc通信并待机 |
0xA1 | 注册表清理、程序退出 |
0xA2 | 注册表NetWire控制项更新 |
0xA3 | 下载指定url的程序至TEMP路径并运行 |
0xA4 | 获取磁盘信息 |
0xA6 | 获取指定目录下的文件时间信息 |
0xA8 | 获取指定目录下的文件属性和尺寸信息 |
0xAA | 中止目录遍历线程 |
0xAB | 获取指定文件的内容 |
0xAC | 向已标记的文件写入内容 |
0xAD | 关闭已标记文件 |
0xAE | 复制文件 |
0xAF | 主线程中执行指定命令行 |
0xB0 | 移动文件 |
0xB1 | 删除文件 |
0xB2 | 创建文件夹 |
0xB3 | 删除文件或文件夹 |
0xB4 | 获取指定目录下的文件名和属性信息 |
0xB5 | 关闭已标记文件 |
0xB6 | 反弹shell |
0xB7 | 写入反弹shell |
0xB8 | 关闭反弹shell |
0xBA | 获取受控端系统详细信息,包括处理器、内存、令牌等 |
0xBC | 获取所有登录会话的信息 |
0xBE | 获取进程列表和信息 |
0xC0 | 结束指定进程 |
0xC1 | 获取窗口列表 |
0xC2 | 窗口操作,由指令码指定 1关闭窗口 2隐藏窗口 3显示窗口 4设置窗口标题 |
0xC3 | 下载指定url的程序至指定目录并运行 |
0xC5 | 模拟按键弹起 |
0xC6 | 模拟按键按下 |
0xC7 | 鼠标按键抬起 |
0xC8 | 设置鼠标位置,鼠标按键按下 |
0xC9 | 获取当前屏幕截图 |
0xCC | 获取木马运行日志文件信息 |
0xCE | 获取木马运行日志路径属性 |
0xCF | 删除指定木马运行日志 |
0xD0 | 获取指定木马运行日志 |
0xD3 | 获取指定浏览器中登录信息 |
0xD4 | 获取指定浏览器中登录信息 |
0xD5 | 获取pidgin账户文件 |
0xD6 | 获取pidgin账户文件 |
0xD7 | 获取Outlook默认配置文件 |
0xD8 | 获取Outlook默认配置文件 |
0xD9 | 向指定地址做流量转发 |
0xDF | 获取指定目录下的文件名和属性信息 |
0xE2 | 停止目录遍历 |
0xE3 | 压缩指定目录 |
0xE4 | 获取受控端主机网络信息 |
0xE5 | 获取指定注册表键遍历信息 |
0xE7 | 注册表操作,包括创建、赋值、删除等 |
0xE8 | 获取受控端系统信息 |
事件影响
关联数据显示,此次事件中的域名www.asim*.com在2019年10月就开始下发NetWire木马,而事件中的网盘链接自2月26日被发现以来已经运行了超过两周。此外,我们通过数据发现,自今年以来NetWire已经下发了25个不同的网盘链接,其中早在1月9日的链接至今仍可访问。以上信息证实了NetWire攻击的长效性。
本次nCoV-19疫情诱饵的传播表明NetWire及其背后的团体进入了新的活跃期,长效的攻击链使得邮件用户将有相当长的时间笼罩在NetWire的攻击之下。