概述
双尾蝎(奇安信内部跟踪编号:APT-Q-63)是一个长期针对中东地区的高级持续威胁组织,其最早于2017年被披露。该组织至少自2016年5月起,持续针对巴勒斯坦教育机构、军事机构等重要领域进行网络间谍活动,以窃取敏感信息为主的网络攻击组织,开展了有组织,有计划,有针对性的攻击。其攻击行业包括基础设施,国防、教育、政府、媒体、交通等。攻击的国家包括但不限于美国,韩国,巴勒斯坦,日本,瑞典、以色列等。
双尾蝎组织具有Windows和Android双平台攻击武器,且仅Windows平台恶意代码就丰富多变,具有多种语言编译的后门。近日,奇安信威胁情报中心红雨滴团队在日常的威胁狩猎中捕获了该组织以Python构建的攻击样本,该类样本最早由国外厂商发现并命名为PyMICROPSIA。通过对攻击样本的分析,发现本次攻击活动的特点如下:
样本使用python版本从以往的3.4升级到3.6;
样本大小较以往缩小了接近一半;
相比以往攻击,样本主体功能没有较大变动;
延续使用人名作为C2、远控指令、部分变量名的传统。
样本分析
0x01 基本信息
本次捕获的样本采用PyInstaller 进行打包,部分信息如下:
文件名 | ProperDataecutionPreve.exe |
MD5 | bd9a5149f1f89f4b05902aa416687d80 |
文件格式 | EXE |
文件大小 | 14832654 bytes |
0x02 PyMICROPSIA
PyMICROPSIA具有丰富的信息窃取和控制功能,包括以下功能:
收集本机/外置驱动文件列表、进程信息
压缩被盗信息及被盗文件/文件夹,并上传至C2
截屏、录音、执行shell命令、重启、自更新
payload下载与执行
删除压缩文件、历史浏览记录以及配置文件
PyMICROPSIA将各功能模块进行拆分,这样在攻击样本被曝光后能及时更新以达到免杀的效果,这样做的好处不仅开发周期短,利用也较为简单,以至于被首次上传VirusTotal时,查杀的厂商仅为个位数。
双尾蝎一直以来喜欢用演员或者编剧的名字来给变量进行命名,PyMICROPSIA也不例外,其对C2以及一些变量的命名,依旧延续了其使用人名的传统。
而在流程方面,与以往不同的是,本次捕获的PyMICROPSIA首先连接google.com对网络联通性进行判断,只有在返回200的状态码后才会进行后续操作,否则一直循环连接,这样做可以对一些沙箱进行规避操作,进而导致沙箱误判。
PyMICROPSIA使用了大量的Python内置库和网上开源的库来完成其远控功能,例如使用网上开源的mss库来完成截图功能。
和以往样本不同的是,新版本的PyMICROPSIA使用了AES算法来对所获取的文件进行加密,加密密钥为‘5750513252304445534b544f502d504950424c’。
值得一提的是,在对窃取来的视频文件、文档文件、音频等文件加密时,使用受害者电脑名和用户名以及随机生成的10位字符与上面密钥的一部分拼接为压缩密码,该行为疑似在标记受害终端信息。
新版本还删除了Outlook文件窃取模块,管道后门模块。
以及窃取Chrome密码的模块。
0x03 远控指令和命令
PyMICROPSIA包含了大量的远控指令,也是延续了双尾蝎使用人名作为远控指令标识的习惯,其部分指令的功能如下:
指令 | 功能 |
Psmuv | 注册新设备 |
Buweq | 删除设备 |
Gal_Gadot | 截屏 |
Mulan | 获取进程名及PID写入Data.txt并加密上传 |
Mulan_Fire | 结束firefox.exe进程,使用rar.exe压缩文件并删除指定文件 |
Vanellope | 搜索图片文件压缩后上传 |
Calhoun | 搜索视频文件压缩后上传 |
Silverman | 搜索指定目录文件压缩后上传 |
Menzel | 删除指定目录下文件 |
Lynch | 重启 |
Lynch36 | 带参数执行SecureAssessmentManagerNetwork.exe |
Pocahontas | 收集各盘符下指定后缀文件写入Json文件后压缩上传 |
Crawford | 重新执行 |
Trinidad | 开始录音 |
environments | 打开C2返回的网址 |
Sastrawinata | 从C2返回的网址下载文件并执行 |
Serrano | 执行C2返回的命令 |
Serrano_Task | 执行C2返回的程序并将结果上传 |
Serro_Ta | 执行C2返回的程序 |
Mingjue | 下载新版本后门并执行 |
PyMICROPSIA 实现了一个基于HTTP的C2协议,在通信期间根据调用的功能使用不同的统一资源标识符 (URL) 路径和变量来实现不同的功能,其父路径为 ‘/HCWQL6Bmd24UKcIJwnuT/sWwnooT8ooo2Zr9k0Sk6/’,各路径功能如下:
路径 | 功能 |
ZReS4SxfCwzbWBIFd/ | 请求C2指令 |
x1hbBicH2xBMY7XQs0C/ | 上传程序执行结果 |
ew8L2GcaMZMuxMBmmb6rN | USB设备信息 |
YNo3Yu61WPe5h6TA | 刷新磁盘信息 |
KSQsBQLivH8l1dqPbW | 删除请求 |
d7faqsxVYDxpbPFRHJ/ | 上传文件 |
db6H1abmuIqKGZ1okLv6 | 上传磁盘分区中的文件 |
cDken5MePHUpvTKY1HWjK | 上传USB中的文件 |
Jb8RdJWxO5xKhEqVUs | 下载文件 |
na4vTQ0KLL8Hzh75u | 根据C2返回的URL下载文件 |
WvZUe8yq9z2vU3jdKEalH | 注册设备 |
0x04 PayLoad
根据上面所列的请求路径,可以清晰的看到会下载三个文件回来执行,其中第一个文件为rar.exe,用来给收集的文件进行压缩。第二个文件QuickActionsDataModel.exe因为没托管在C2上了,导致下载失败。
下载的第三个文件SecureAssessmentManagerNetwork.exe,使用了看起来像系统文件一样的命名方式,需要传递有效参数才能成功执行,否则会弹出错误框。这样做的好处是,会妨碍沙箱以及安全研究员的分析。
该程序删除了键盘记录器的功能,仅保留了创建LNK文件实现持久化的功能。
但令人不解的是,PyMICROPSIA并未修改相关配置,攻击程序名为ProperDataecutionPreve.exe却创建ModelsControllerLib.lnk文件。
溯源与关联
在对PyMICROPSIA进行分析时,我们发现一个有趣的细节,在PyMICROPSIA中一直有一句阿[]拉伯文的字符串,并且新旧版本中一直没有改变,考虑到假旗行动的可能性,这可能反应了攻击者或者被攻击者的文化背景。
通过对此次涉及的域名进行查询,可以看到解析的IP为79.133.41.250。
在对IP进行溯源分析时,我们发现了两个与之通信的样本,其中一个样本我们在《双尾蝎APT组织以巴勒斯坦选举热点信息为诱饵的攻击活动分析》一文中进行了披露。
另一个样本与双尾蝎APT组织常用攻击手法,恶意代码基本一致,也是使用Delphi语言编写,通过下图我们可以清晰的看到其与PyMICROPSIA 样本中观察到的 URI 路径结构十分相似,其样本恶意功能也与我们之前披露的一致。
通过对样本恶意功能、URL路径结构、以及C2的关联性来看,我们有理由相信PyMICROPSIA是双尾蝎组织的新型信息窃取木马。
总结
对PyMICROPSIA的分析可知,双尾蝎组织一直尝试拓展新的攻击方法,其武器库错综复杂,此次捕获的样本使用python编写,其免杀效果较好,值得引起警惕。
在此提醒广大用户,切勿打开社交媒体分享的来历不明的链接,不点击执行未知来源的邮件附件,不运行标题夸张的未知文件,不安装非正规途径来源的APP。做到及时备份重要文件,更新安装补丁。
IOCs
MD5
d96968934691fa9b1547eb98aaced472
30cb8229264315ffc07ac2796c9fbc9d
36e291abe37fff7868c5ca7d4105c86b
C2
https://wayne-lashley.com
http://wayne-lashley.com
http://jane-chapman.com
IP
79.133.41.250
参考链接
[1]. https://ti.qianxin.com/apt/detail/5b39cb04596a10000ffcba85?name=PROMETHIUM&type=map
[2]. https://unit42.paloaltonetworks.com/pymicropsia/
[3]. https://ti.qianxin.com/blog/articles/APT-Q-63-Attack-Targeting-Palestinian-Areas-Using-Election-Information-as-Bait/
附录
附表一 完整远控指令功能表
指令 | 功能 |
Psmuv | 注册新设备 |
Buweq | 删除设备 |
Gal_Gadot | 截屏 |
Mulan | 获取进程名及PID写入Data.txt并加密上传 |
Mulan_Fire | 结束firefox.exe进程,压缩文件并删除指定文件 |
Vanellope | 搜索图片文件压缩后上传 |
Calhoun | 搜索视频文件压缩后上传 |
Silverman | 搜索指定目录文件压缩后上传 |
Menzel | 删除指定目录下文件 |
Lynch | 重启 |
Lynch36 | 带参数执行SecureAssessmentManagerNetwork.exe |
Eeyore | 清除Mozilla\Firefox\Profiles\目录下所有文件 |
Pocahontas | 收集各盘符下指定后缀文件写入Json文件后压缩上传 |
Aurora | 删除C2返回的指定目录 |
MarkRhino | 创建C2返回的指定目录 |
lawns | 压缩C2返回的指定目录下文件 |
max | 删除C2返回的指定文件 |
Karillo | 压缩C2返回的指定目录下文件 |
Tiana | 移动C2返回的指定文件 |
groot | 拷贝C2返回的指定文件 |
Cinderella | 清除Chrome.exe的cookies |
gonzale | 压缩指定后缀文件 |
NETonzale | 压缩指定后缀文件到C2返回的指定目录 |
gonzaleCinder | 启动监控USB设备接入的线程 |
CinderMicro | 获取麦克风设备信息写入文件并上传 |
InfoCinder | 获取磁盘信息写入文件并上传 |
PropComp | 搜集CPU、磁盘空间、麦克风设备信息写入文件并上传 |
Hernandez | 将C2返回的新域名写入RepUrl.txt文件 |
Jasmine | 结束C2返回的指定进程 |
Moses | 打开C2返回的文件 |
Crawford | 重新执行该程序 |
nospmoht | 压缩指定后缀文件到C2返回的指定目录 |
nospmohtpson | 压缩指定后缀文件到C2返回的指定目录 |
Thompson | 压缩指定目录下文件到C2返回的指定目录 |
Trinidad | 开始录音 |
Matthias | 停止录音 |
environments | 打开C2返回的网址 |
Sastrawinata | 从C2返回的网址下载文件并执行 |
Serrano | 执行C2返回的命令 |
Serrano_Task | 执行C2返回的程序并将结果上传 |
Serro_Ta | 执行C2返回的程序 |
Mingjue | 下载新版本后门并执行 |