转自:https://xz.aliyun.com/t/6736
一、样本IOC指标:
样本名 |
cobain_en.exe |
Md5 |
57382BDC9BC36731CAF38CC2836D6B3F |
CRC32 |
BD99E9C7 |
样本大小 |
1583617 bytes |
Sha1/256 |
F7BEA0374A2420224BDDD6B3FFBF6989B6599267 |
二、线上沙箱:
11月6号仅有两家杀毒厂商能够识别.cobain勒索病毒,情报来源分析,该勒索在短期内迭代多个变种,约20家不同规模的公司被该病毒勒索:
三、动静样本分析:
加密算法工具解析,病毒包含Base64、RIJNDAEL、SHA1/256多种标准加密算法:
➬ IDA流程分析如下,下述图可以看到病毒流程图,函数调用的模块与复杂化:
内部函数采用寄存器+offset方式调用,干扰静态分析,加大病毒分析难度:
sub_41FF4D()函数分析,调用了tls回调,且对_RTL_CRITICAL_SECTION进行了数据检测:
初始化变量、内存中解密数据,防止静态被检测,如下所示:
唤醒等待指定条件变量的线程,参数是执行的回调指针。
获取句柄,SHowWindow隐藏窗口:
病毒获创建进程快照,遍历电脑中所有进程,获取当前运行进程信息:
初始化随机密钥(每次随机):
第二组随机密钥(每次随机):
病毒自启动模块,分别在HKEY_LOCAL_MACHINE与HKEY_CURRENT_USER下创建自启动项,达到持久化:
添加自启动,带有参数:
"C:\Users\Desktop\cobain_en.exe.bin"
2253bb7a078d5992e3d05911a23a095a7c1507ac3a8abe119587a398c1225833
通过回调表内存中动态获取函数指针,为了过掉杀毒软件得静态检测:
内存中提取函数列表,如下所示:
回调函数偏移 |
Function |
138F |
AreFileApisANSI() |
13A9 |
CompareStringEx() |
13C3 |
EnumSystemLocalesEx() |
13DD |
GetDateFormatEx() |
13F7 |
GetLocaleInfoEx() |
1411 |
GetTimeFormatEx() |
142B |
GetUserDefaultLocaleName() |
1445 |
IsValidLocaleName() |
1479 |
LCMapStringEx() |
145F |
LCIDToLocaleName() |
|
LocaleNameToLCID() |
Base64 DecoDer函数:
内存数据截获:
00757E88 50 42 74 46 6F 49 4A 4B 50 62 64 50 74 34 34 6C PBtFoIJKPbdPt44l
00757E98 79 67 35 6F 4A 61 5A 4B 77 32 2F 76 77 34 46 44 yg5oJaZKw2/vw4FD
00757EA8 76 5A 62 31 42 77 59 30 59 78 57 43 4A 6B 4E 4E vZb1BwY0YxWCJkNN
00757EB8 48 68 6F 62 75 4B 36 55 66 79 73 37 43 33 30 4F HhobuK6Ufys7C30O
00757EC8 31 2F 52 62 43 31 73 37 46 38 64 70 30 48 38 36 1/RbC1s7F8dp0H86
00757ED8 6A 54 61 63 57 72 4D 65 79 4D 6B 32 2B 31 62 74 jTacWrMeyMk2+1bt
00757EE8 73 46 4B 61 59 41 77 68 6D 4A 2B 4F 4C 61 4F 66 sFKaYAwhmJ+OLaOf
00757EF8 6A 66 78 63 79 66 54 39 70 34 79 4E 69 52 4A 34 jfxcyfT9p4yNiRJ4
00757F08 59 6A 67 6B 62 64 78 53 5A 52 6F 68 69 59 39 32 YjgkbdxSZRohiY92
00757F18 46 58 6E 79 4F 68 76 37 34 48 69 38 51 32 67 4B FXnyOhv74Hi8Q2gK
00757F28 4E 79 70 55 6F 6F 63 66 4F 65 41 3D NypUoocfOeA=
C:\ProgramData目录下创建文件,写入Base64数据:
获取电脑得设备信息、判断设备类型是否是(未知、可移动硬盘、软盘)种类,加以操作:
磁盘写入勒索数据,桌面创建勒索佣金信息:
加密文件流程图:
勒索病毒遍历磁盘勒索加密,关键代码:
➀ 勒索病毒读取文件路径,内存中拼接文件路径.cobain,格式为:
文件名.cobain,变种:文件名.link.cobain
➁ 选择性设置文件属性为FILE_ATTRIBUTE_HIDDEN隐藏:
➂ 修改文件名,将正常文件修改为.cobain结尾的文件:
➃ 初始化CrpyArrSink ,基于AES-256的算法随机池:
➄ 基于特征,判定采用加密库Cryplibto++,该函数是cryptlib.cpp文件:
➅ 打开文件源文件,CreateFile:
➆ 获取文件类型,如果是目录就进入文件夹继续遍历:
➇ 读取原始文件内容,ReadFile如下所示:
➈ 加密文本数据,如下所示:
➉ 加密数据写回文件,WrieteFile完成加密勒索,如下所示:
最后每勒索完成一个文件夹,就会在文件夹下创建!!!READ_ME!!!勒索信息。
后话:
病毒加密采用了AES 与 sha1/256数字加密的这种模式,RSA与AES这种数字加密很常见,当然已有公司能够解该勒索。
水平有限,部分算法逆向这里就不贴出了,因为算法函数分析不到位,加密分析不系统与不完善。
四、勒索病毒防御建议:
非最新勒索病毒,可以尝试360解密大师,免费的解密软件。
加强网络防御,关闭被滥用的端口如135,445等,更新系统与应用补丁,预防病毒通过应用软件植入病毒,利用系统漏洞提权,大规模内网传播感染。
更新杀毒软件病毒库,定期巡查对电脑进行病毒查杀与病毒查杀。
重要的数据要备份,多节点备份。
加强人员安全意识,安全管理规范,如人员上网,文件下载,垃圾邮件,共享传输等,防患安全意识薄弱被钓鱼植入,水坑攻击。
样本链接:http://bbs.360.cn/forum.php?mod=viewthread&tid=15798546&highlight=cobain