首次使用Python C API加载恶意代码,APT组织针对东欧中亚地区的攻击披露
事件背景
近期,安恒中央研究院猎影实验室在威胁狩猎中发现一批样本使用新型窃密软件针对东欧中亚地区国家发起攻击。安恒猎影实验室将本次攻击背后的组织标为内部追踪代号APT-LY-1006,并进行持续追踪。同时,经过分析发现该组织疑似与Kasablanka组织存在关联。
攻击活动以包含lnk文件的压缩包为载体,疑似通过邮件投递至政府部门。受害者运行lnk文件后将访问远程hta脚本,hta脚本从C2下载用于释放窃密程序的载荷,最终窃密程序通过调用Python/C API将用户敏感信息上传至Telegram-API接口。鉴于该窃密程序加载恶意代码的方式较为罕见,我们将其命名为“Cpypwd Stealer”。
本次捕获的样本的加载流程如下:
攻击分析
阶段一:初始投递
初始样本为包含lnk文件的zip压缩包,解压并运行lnk文件将从url“hxxps://cloud.archive-downloader[.]com/s.hta”获取并运行hta脚本。
hta脚本通过Powershell命令再次请求服务器,获取诱饵文档“File.pdf”和释放器“lsacs.exe”,并保存至“C:\programdata”
诱饵文档信息整理如下:
序号 | 主题 | 使用语言 | 上传国家 |
1 | 塔吉克斯坦共和国至2030年国家发展战略 | 俄语 | 俄罗斯 |
2 | 乌兹别克斯坦共和国投资、工业和贸易部文件 | 乌兹别克语 | 未知 |
3 | 财政部令(文件损坏) | 俄语 | 白俄罗斯 |
阶段二:加载Cpypwd Stealer窃密程序
打开诱饵文档的同时运行lsacs.exe,该程序在temp目录中新建名为“onefile_[当前进程号]_[当前时间]”的目录,并将Cpypwd Stealer及其所需的库文件写入该目录。
随后以当前进程号为值创建环境变量“NUITKA_ONEFILE_PARENT”,启动CpypwdStealer窃密程序steal.exe,并挂起进程。当steal.exe执行完成后向该进程发送消息,进程接收消息后将删除运行过程中产生的文件,清理自身运行痕迹。
steal.exe(CpypwdStealer)为C++编写,但是程序加载恶意代码的方式采用了罕见的调用Python/C API的形式,并且编译器版本信息显示为发布不久的Microsoft Visual C/C++(2022 v.17.4)。
Python/C API能够允许C或C++程序开发人员编写扩展模块并将Python解释器嵌入其中,使其能够在C或C++代码中操作Python对象。Python/C API官方参考手册如下。
steal.exe运行后首先进行设置标志位、设置当前执行路径等一系列初始化工作,为后续运行恶意python脚本做好准备。
依次加载编译好的依赖库(.pyd)文件。
初始化完成后将解密获取恶意Python代码,通过调用PyEval_EvalCode()、PyDict_GetItemString(, “compile”)等API在内存中进行动态编译并执行代码。
阶段三:运行窃密脚本,通过Telegram-API回传
将该段恶意python代码提取到文件,得到如下。
Python代码首先从谷歌浏览器的用户数据目录中读取存放账号信息的数据库文件“Loginvault.db”,使用sqlite3读取数据库文件,并将数据中的密码进行解密,最终将账号信息以”URL: [URL地址]\nusername: [用户账号]\npassword: [用户密码]”格式回传至Telegram-API,回传地址为“hxxps://api.telegram[.]org/bot5885840251:AAG8HoCjrI1QANXkA4oqnJ60lgPP7w86Clg/sendMessage?chat_id=5683385422&text={账号信息}”。
关联分析
目前捕获样本与Kasablanka组织存在一定的弱关联。Kasablanka组织曾被披露针对孟加拉国、俄罗斯、西亚等地区进行网络间谍活动,通过投递Windows版本和Android 版本的自研远控木马Loda RAT和商业远控木马Warzone RAT进行信息窃取。我们发现Kascopy与Kasablanka组织存在如下关联之处:
(1)本次披露ip地址与曾披露的Kasablanka组织的ip地址接近。
本次披露ip | 曾披露ip |
193.149.129[.]50 | 193.149.129[.]151 |
89.22.232[.]145 | 89.22.233[.]149 |
(2)在本次捕获的样本中发现另一种攻击方式(md5:13af3ad2a8f03a31f129a4d4e3180ff2),该攻击方式在初期加载载荷过程使用相似的代码。
通过释放Warzone RAT(AveMaria)木马对主机进行远控,并且该木马的回连ip“89.22.232[.]145”关联样本出现曾披露的Kasablanka组织的后门。
拓展
通过筛选样本中涉及的国家发现,这些国家分布在东欧西亚地区,并且地理位置相近。
此外,从各国外交层面上看,白俄罗斯与俄罗斯交好,塔吉克斯坦与俄罗斯有着极深的历史渊源,并且目前双方依旧保持着稳定的同盟关系,乌兹别克斯坦与俄罗斯同样有着战略伙伴的关系,因此我们推测此次受到攻击的对象可能还包括更多俄罗斯的友邦国家,并且考虑到当前的俄乌冲突,攻击对象甚至可能波及至俄方支持国。
从技术上看,本次攻击通过不常见的Python/C API执行恶意代码,增加了恶意代码的隐蔽性,使得分析人员难以定位恶意代码。同时,使用Telegram-API回传窃取的信息,具有成本低廉、操作简单、难以溯源等优点,并且样本结束运行后将释放的文件全部删除,使得用户难以发现,攻击后难以取证溯源。以上足以说明该组织背后的开发人员具有一定的技术水平。
思考总结
本次捕获的样本虽然没有进行持久化操作,也没有释放功能较多的远控木马,但窃取用户浏览器密码仍然能够达到持久访问用户敏感信息的目的。从本次攻击动机来看,攻击者的目的很可能为获取政府组织内部网站的权限,进而窃取国家重要机密信息。
安恒信息在此提醒广大用户谨慎对待未知来源的邮件附件和链接,不运行来源不明的文件,如有需要,可以投递至安恒云沙箱查看判别结果后再进行后续操作。
防范建议
IOC
md5:
0771482338129016710bf3ff317dc49e
23c0523af70c2144cb3e29101039512d
94e652691cf9801b06fd5bfe8adb2e59
25c684d71e540ba6cbafcda00e002561
544a65bfe51385bb148f23a4e3f140d6
ed75d53b6f34a9ba97313b370bde61ab
f70689eb7e7df32d56751a56dda74db8
f8f3f1f0ba58ae42a814d38c9a402e8d
13af3ad2a8f03a31f129a4d4e3180ff2
94155315c741a0baf6ab2f8961f9aa67
4b9975e010d0e534c3615129b9418494
e257a38e0c1848ea63a16c0b533f2a76
域名:
cloud.archive-downloader[.]com
e-aks[.]uz
becloud[.]website
ip:
193.149.129[.]50
89.22.232[.]145
Telegram-API地址:
hxxps://api.telegram[.]org/bot5885840251:AAG8HoCjrI1QANXkA4oqnJ60lgPP7w86Clg/sendMessage?chat_id=5683385422&text={账号信息}
hxxps://api.telegram[.]org/bot5974645737:AAEj2Y0MFGEHmvrFSINWeZcAsbjuUkLysnA/sendMessage?chat_id=5683385422&text={账号信息}