APT 高级可持续攻击 BlueMushroom PowerShell 蓝宝菇
【微步在线报告】BlueMushroom组织最新动向及近年攻击活动揭露
匿名用户 2018-11-21 16:53:43 3156人浏览

 

TAG:高级可持续攻击、APT、BlueMushroom、Bfnet、PowerShell、蓝宝菇、亚太

TLP:白 (对报告转发及使用不受限制) 

日期:2018-11-14

概要

    BlueMushroom又名“蓝宝菇”,具备地缘政治背景,自2011年开始活跃,长期针对我国政府、教育、海洋、贸易、军工、科研和金融等重点单位和部门开展持续的网络间谍活动。

本报告内容主要包含BlueMushroom组织分析,其最新活动分析,以及首次公开的该组织近年的攻击活动。部分发现如下:

  • 根据微步在线威胁情报云,BlueMushroom持续活跃,最近于2018年11月初前后发起过多次攻击,受害者包含APEC等大型会议相关目标。
  • BlueMushroom经常使用各种会议、智库和期刊的采访和约稿等作为诱饵,以伪装成文件夹和Word文档的可执行文件,以及包含PowerShell脚本的LNK文件作为木马投递载体。其目的是窃取目标机器上的jpg、txt、eml、doc*、xls*、ppt*、pdf、wps、wpp和et格式文件,和进一步的渗透。
  • 2015年至今,BlueMushroom主要使用自己开发的后门进行攻击,该后门的一大特征是会删除WPS相关组件程序,以及通过修改LNK文件实现持久化。
  • BlueMushroom比较关注亚太政治,北京和上海等地是其重点关注地区。综合分析其攻击目标,木马工具等信息,判断BlueMushroom可能具备亚太地缘政治背景。
  • 微步在线通过对相关样本、IP和域名的溯源分析,共提取11条相关IOC,可用于威胁情报检测。微步在线的威胁情报平台(TIP)、威胁情报订阅、API等均已支持此次攻击事件和团伙的检测。

详情

微步在线长期跟踪全球150多个黑客组织,其中包含多个长期针对我国进行攻击的APT组织。近期,微步在线监测到具备地缘政治背景的APT组织BlueMushroom针对我国的多起攻击活动。在具体的攻击(多为鱼叉式网络钓鱼)中,BlueMushroom一般会制作与目标高度相关的诱饵,利用伪装成文件夹和Word文档的可执行文件,以及包含PowerShell脚本的LNK文件作为木马投递载体。

最新活动

2018年10月底至11月初,微步在线监测到BlueMushroom针对我国发起了多次定向攻击,其中受害者包含APEC等大型会议相关目标。以针对APEC相关目标的攻击为例,攻击者使用伪装为文件夹的可执行文件作为木马投递载体,运行后会释放内容为Chile APEC 2019日程相关的图片作为诱饵,以及多个DLL和配置文件。

image.png

图:诱饵文件夹内容

综合分析木马编译时间,诱饵文件创建修改时间,以及首次发现时间等信息,判断此次攻击发生在10月底,潜在被攻击目标为出席APEC会议的政府领导和工商企业人士。更进一步分析发现,近几年,BlueMushroom基本每年都会在10月底以APEC为诱饵发起一波攻击,这可能是由于每年APEC领导人非正式会议将于11月中旬举行。下图为2016年10月底 APEC相关攻击活动中使用的诱饵。


image.png

图:2016年APEC相关攻击中使用的诱饵

近年活动

BlueMushroom善于利用社工手法进行钓鱼攻击,制作的诱饵也与被攻击目标高度相关。在历年的活动中,BlueMushroom多次利用各种智库和政治类期刊的“约稿”和“采访”,以及各种会议作为诱饵进行定向攻击。比如,BlueMushroom曾假借《当代亚太》编辑部编辑任娜的名义进行钓鱼,针对研究亚太安全与军控的专家进行定向攻击;以及以《国家智库》的名义,针对某教授进行定向攻击等等。

下表为2015年以来微步在线独家发现的BlueMushroom组织的部分攻击活动。

时间节点
攻击活动
2015年初
以“两会会议案”为诱饵,发起钓鱼攻击。
2016年6月
以“京卡-互助服务卡”为诱饵,疑似针对北京理工大学教职工发起定向攻击。
2016年10月
以APEC议程为诱饵,针对APEC与会者发起定向攻击。
2017年7月
以“一带一路”对策建议为诱饵,定向攻击国内顶级智库相关目标。
2017年8月
以“《太平洋学报》征稿启事”,“运筹优化软件GAMS及CGE模型核心技术与应用培训”等为诱饵,针对研究海洋、社会科学和国际关系的专家学者,以及金融和经济等企事业单位技术骨干、科研院所研究人员以及高校教职工等目标发起定向攻击;
以北京大学国际战略研究院院长王缉思批注的人大国发院针对“一带一路”的对策建议为诱饵,定向攻击国内顶级智库相关目标。
2017年9月
以上海“2017智慧政务与信息技术研讨会”为诱饵发起定向攻击,此次攻击中使用了64位的木马。
2018年4月
针对某大型会议相关目标发起定向攻击。
2018年10-11月
以APEC为诱饵,针对APEC与会者发起定向攻击;
以《国际商报》采访作为诱饵,针对某大型会议与会者发起钓鱼攻击。

示例一:

在2016年的一次攻击中,攻击者以“京卡-互助服务卡”为诱饵,疑似针对北京理工大学教职工发起定向攻击。分析诱饵文档的元数据,发现文档为“刘明奇”创建,此人系中国教育工会北京理工大学委员会常务副主席,在2016年确实有从事相关工作(推动本校工会系统服务平台建设)。推测此文档应是攻击者窃取而来。京卡·互助服务卡原名“职工互助服务卡”,是北京推出的一种维护职工权益的智能卡,持卡人可享受免费保险、优惠逛公园、看电影等12项服务。

包含诱饵的木马文件图标:

image.png

诱饵文档内容:

image.png

图:京卡-互助服务卡

示例二:

2017年8月前后,攻击者以“《太平洋学报》征稿启事”为诱饵(内容是从《太平洋学报》网站复制),针对研究海洋、社会科学和国际关系的专家学者发起定向攻击。《太平洋学报》关注太平洋区域政治、经济、海洋、文化以及国际关系。相关木马伪装成文件夹,双击后会释放并打开,其中包含两个诱饵文件。

image.png

诱饵文件内容:


image.png

图:《太平洋学报》2017年重点选题方向

image.png

图:《太平洋学报》征稿启事

示例三:

2017年8月中上旬,以中国管理科学研究院人才战略研究所举办的“运筹优化软件GAMS及CGE模型核心技术与应用”培训为诱饵,针对金融和经济等企事业单位技术骨干、科研院所研究人员以及高校教职工等目标发起定向攻击。

相关木马亦伪装成文件夹,双击后会释放并打开,其中包含两个诱饵文件。

image.png

诱饵文件内容:

image.png

图:运筹优化软件---北京

image.png

图:报名回执表

样本分析

根据公开情报,在早期(2011-2014)的活动中,BlueMushroom主要使用公开的Poison Ivy的木马进行攻击,从2014年末至今,较多使用自己开发的Bfnet后门。Bfnet属DLL后门,主要通过伪装成Word文档、文件夹以及其他方式进行投递,其显著特点是运行后会删除WPS相关程序和修改LNK文件实现持久化。

image.png

最新样本分析

下面以Chile_Apec2019.exe为例进行分析。

1.该样本基本信息如下:

文件类型 PE32 executable (GUI) Intel 80386, for MS Windows
文件大小 6150922
文件名 Chile_Apec2019.exe
SHA256 0f8ec57dada552766dcdf43cb2a827133bbbfba242c925d744f2698a3ebc8ff9
SHA1 55d1cf05904c16f5d813dd9f708bd1ab6f353324
MD5 41344a2854d4cc46d8ec36dd9c8caa2d

2.该样本的整体执行流程如下:

ddacb41bd3eaf6bfbf997f722b559c70e627c9e7bc8bc34951a61bb7268e5754.png

3.样本执行后会释放出3个DLL文件、1个配置文件和6张诱饵图片。

文件名 作用
dx9_9.bak 伪后门DLL,会将对导出函数的调用转移到dx9_9_.bak上
dx9_9_.bak 实际的后门DLL
dx13_32.dat 配置文件
op.bak 用于启动资源管理器展示诱饵图片

4.dx9_9_.bak是该样本的主要后门模块,提供了多个导出函数,如下表所示。

导出函数名 功能
DxEntry 创建互斥量,解密配置文件,并触发后门程序
DxInstall 生成批处理文件nv32_update.bat并执行
DxUninstall
DxCanUnload 生成批处理文件nv32_update.bat
DxSetClassObject 感染符合条件的快捷方式文件,以实现驻留
DxUnsetClassObject 无实际用处
DxCopyClassObject 将参数1指定的文件复制到参数2指定的路径
DxMoveClassObject 将参数1指定的文件移动到参数2指定的路径
DxMoveClassObjectEx 将参数1指定的文件复制到参数3指定的路径
DxDelClassObject 将参数1指定的文件拷贝到%TEMP%下
DxServiceBegin 调用cmd.exe /c执行参数指定的命令
DxServiceBeginEx


1)字符串解密算法。

样本中字符串的解密算法是一个简单的替换过程。对ANSI字符串和Unicode字符串使用了不同的函数进行处理,但算法的思路相同,做法为:

a) 对于大写字母,如码点值大于等于0x4A,则将码点值-9,否则将码点值+17;

b) 对于小写字母,如码点值大于等于0x6A,则将码点值-9,否则将码点值+17;

c) 对于数字,如码点值大于等于0x39,则将码点值-9,否则将码点值+1;

d) 将空格(0x20)和大于号(0x3E)对调;

e) 以竖线(0x7C)作为字符串结束符。


image.png

2)一些与样本功能无关的API调用。

      样本在一些函数中加入了无关的API调用,如在DxEntry导出函数中加入了GetCurrentProcess()、GetConsoleWindow()和GetCapture()调用。

3)生成批处理文件。

     a)样本会收集下列目录中的快捷方式文件名。

%USERPROFILE%\Desktop
%USERPROFILE%\桌面
%APPDATA%\Microsoft\Internet Explorer\Quick Launch
%APPDATA%\Microsoft\Windows\Start Menu
%ALLUSERSPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu
%USERPROFILE%\「開始」功能表
%ALLUSERSPROFILE%\「開始」功能表
%USERPROFILE%\「开始」菜单
%ALLUSERSPROFILE%\「开始」菜单


      b)并过滤出带有下列关键词的字符串。

        Startup
        啟動
        启动
        Internet Explorer
        Chrome
        Firefox
        Opera
        Safari
        Browser
        浏览器
        瀏覽器
        360
        我的手机
        Windows Explorer
        腾讯QQ
        微信

        c) 最后样本会向批处理文件中写入调用DxSetClassObject感染快捷方式的命令,在生成批处理文件之后,样本通过CreateProcessW调用cmd.exe来启动批处理文件。

        4) 感染快捷方式文件。

               样本首先会通过CoCreateInstance创建一个IShellLinkW对象,然后拼接多个命令字符串,最后通过IShellLinkW对象提供的接口将这些内容写入快捷方式。

        image.png

          5) 解密配置文件。

            解密前的配置文件格式如下所示。

            字段 大小
            CONFIG-KEY的长度k1 4字节
            CONFIG-KEY k1字节
            C2数据的长度k2 4字节
            C2数据 k2 - 1字节
            定时器触发时间(秒) 4字节
            是否驻留 4字节

            样本中硬编码了另一个8字节的KEY (0x37 0x43 0x18 0x95 0x47 0x69 0x13 0x68),该KEY与CONFIG-KEY做循环异或后得到的结果才用于解密过程。

            解密后的配置文件数据部分如下图和下表所示,C2数据之间使用换行符\n(0x0A)进行分割。

            image.png

            C2列表 142.93.65.5282.196.6.100104.248.189.199
            定时器触发间隔 0x00000020 = 32秒
            是否驻留 0x00000001 = True

              6) 后门功能。

              样本通过一个定时器(SetWaitableTimer)来定期触发,时间间隔由配置文件指定(0x20 = 32秒)。随后定时器会尝试逐个回连C2列表中的服务器,并将"HELLO "和密钥字节流拼接,作为握手包发送。如成功建立连接,则C2服务器会回复"!HELLO"以及多个后续命令,相关命令及执行的操作如下:

              命令 操作
              !GETINFO
              !PERSIST 执行DxUninstall导出函数
              !PERSIST_UN 执行DxInstall导出函数
              !SETIP 修改C2服务器的地址,并写入配置文件
              !SETID 设定回连的ID信息
              !INTERVAL 修改定时器的触发时间(最大7200秒,最小30秒),并写入配置文件
              !DOWNLOAD 下载文件(到当前目录)
              !PUT 上传文件
              !GET 下载文件
              !PLUGIN_RUNDLL 调用DxEntry导出函数
              !PLUGIN_RUN 加载DLL文件并调用DLL文件中的DxEntry导出函数
              !PLUGIN_WRITE 调用DLL文件中的DxPutClassObject导出函数
              !PLUGIN_STOP 调用DLL文件中的DxUnregisterServer导出函数
              !EXIT 停止定时器
              !RESTART 调用DxEntry导出函数 参数为DxRegisterServer
              !RESTART_NEW
              !UNINSTALL 卸除自身模块
              !CAB 使用makecab程序对文件进行打包
              !ZIP
              !ZIPLIST 收集在特定时间之后的doc/docx/ppt/pptx/xls/xlsx/txt类型的文件,并存放在%DIRNAME%.zip.lst中

              历年样本对比

                     从代码结构来看,BlueMushroom自己开发的Bfnet大致可以分为两大版本。较旧的版本编译时间在2014年左右,没有使用任何的字符串加密算法,各种特征也较为明显。2015年之后的Bfnet样本开始使用“循环移位 + 替换”的字符串加密算法,并且开始注重修改代码中的静态特征,修改了原本的User-Agent字符串和互斥量名称等等,之后的样本(2017~2018)整体上来说变化不大,只做了一些微小的改动,配置解密算法更是始终未变。

                    2018年上半年捕获到的BlueMushroom样本有使用PowerShell脚本取代Bfnet后门核心功能的趋势,但在最近捕获的样本中又恢复了原本的做法,即在DLL文件中实现后门功能。

                      详细对比如下:

              image.png

              溯源分析

                     为方便进行跟踪,微步在线将该组织称为BlueMushroom。根据BlueMushroom在攻击中使用的木马工具,网络资产和攻击手法等信息,确定该组织也即“蓝宝菇”组织。

                     微步在线对BlueMushroom的TTP和历年攻击活动进行了系统的分析,有如下发现:

              1. 发现该组织在发起攻击之前一般会经过一段时间的精心准备,有时准备时间长达两个月。

              2. 该组织攻击手法和私有木马这几年变化均不大,但也在寻求着改变。自活跃以来,该组织主要使用伪装Word文档和文件夹等的PE文件作为载体投递后门木马。在2018年的几次攻击中,该组织开始尝试将部分诸如窃取文档等核心功能转移到使用PowerShell脚本实现,其策略也更倾向于LotL策略,这也是当前APT攻击的一大趋势。

              3. 该组织私有木马包含繁体字符,某PowerShell脚本会判断系统语言是否为日语、繁体、简体和英语,最新的某攻击样本中隐藏的用于嘲讽安全研究者的图片也包含繁体字符。此外,一些钓鱼邮件和诱饵文件的内容也说明攻击者的汉语水平较高,再结合该组织攻击目标也多与亚太地缘政治有关等信息,推测该组织可能具备亚太地缘政治背景。

              image.png

              图:历史样本中包含的繁体字符

              image.png

              图:PowerShell中判断系统默认编码

              image.png

              图:某攻击样本释放的Thumbs.db中的缩略图包含繁体字

              匿名用户 2018-11-27 11:41:03 回复
              666技术大牛
              匿名用户 2018-11-22 16:01:14 回复
              URL都什么鬼?DNS还有下划线?微步能用点心么?
              匿名用户 2018-11-27 13:25:55 回复
              DNS 带下划线本身就合法好不好
              社区用户名 2018-11-27 22:50:30 回复
              对的,比如`_dmarc.google.com`是合法的,虽然不知道修改前是啥。
              今日推荐