【病毒分析】独家揭秘LIVE勒索病毒家族之1.5(全版本可解密)

时间: 2024-10-17 16:18:43 浏览量:152

1.前言

  分析该加密文件时,发现此次病毒保留了LIVE1.0版本的加密后文件的命名方式,同时使用了LIVE2.0版本的文件加密方式,故分析此次木马的版本介于LIVE1.0与LIVE2.0之间,命名此木马为LIVE1.5版本。

2. 背景

  近期收到某建筑公司消息,称公司服务器文件被加密导致系统无法正常,团队工程师通过远程连接进行分析后提取到了勒索病毒的源头。

3.恶意文件基础信息

文件名admin.exe
大小318.67 KiB
操作系统Windows(Server 2003)
架构AMD64
模式64 位
类型控制台
字节序LE
MD50c029e5a29312f5af38087d77a8b881
SHA256f2d0f5ae4053be74c6a06237f11a022adc4aa0dbda5cd126ec5793ab3ddae718

3.1 配置信息

  在执行文件的末尾明文存储了文件运行的相关信息

{'MinDate': <int64 1699574400>, 'MaxDate': <int64 1702944000>, 'AppendedExtension': <'LIVE'>, 'NoteFilename': <'FILE RECOVERY_ID_436BF0.txt'>, 'DropNoteInSpecificDirectories': <true>, 'DirectoriesToDropNoteIn': <@as []>, 'IncludeFiles': <false>, 'FileSet': <['FILE RECOVERY_ID_436BF0.txt']>, 'IncludeDirectories': <false>, 'DirectorySet': <['C:\\Program Files', 'C:\\Program Files (x86)', 'C:\\ProgramData', 'C:\\Windows', 'C:\\msys64', 'C:\\Users\\All Users']>, 'IncludeExtensions': <false>, 'NoneSet': <['exe', 'dll', 'ini', 'tmp', 'url', 'lnk', 'ps1', 'nls', 'shs', 'themepack', 'bin', 'msp', 'wpx', 'bat', 'sys', 'spl', 'scr', 'icl', 'rom', 'msc', 'ico', 'LIVE']>, 'FastSet': <@as []>, 'IntermittentSet': <@as []>, 'FullSet': <['txt', 'log']>, 'EncryptHiddenFiles': <true>, 'EncryptHiddenDirectories': <false>, 'BufferSize': <4096>, 'Percent': <0.02>, 'Segmentation': <512.0>}

  MinDateMaxDate是Unix时间戳,翻译为GMT+8时间如下,程序在此段时间以外不会运行

2023-11-10 08:00:00 - 2023-12-19 08:00:00

3.2 勒索信

  勒索信明文存在文件末尾

  具体内容如下

Hello

Your file has been encrypted and cannot be used
To return to the file under the working conditions, you need to decrypt the tools
Decolling all data according to the instructions

Don't try to change or restore the file yourself, which will destroy them
If necessary, you can decrypt a test file for free. Free test decryption is only available for files less than 3MB in size.

To restore files, you need a decryption tool. Please contact us by email.
Please add the file name of this document to the email and send it to me. 【FILE RECOVERY_ID xxxxxx】
I will tell you the amount you need to pay. After the payment is completed, we will make the decryption tool and send it to you.

Customer service mailbox:
locked@onionmail.org
locked@onionmail.org

You can also contact us through intermediary agencies (such as data recovery companies)

If you refuse to pay, you will be attacked constantly. Your privacy -sensitive data will also be announced on Internet.

!! We are a team that pays attention to credibility, so you can pay safely and restore data.

LIVE TEAMI

3.3 加密文件特征

  在LIVE1.0版本中,会在加密文件的尾部存储progarm_id,但是在LIVE1.5版本中,此功能被阉割,加密之后文件大小不会发生改变,仅文件名添加后缀.LIVE

  加密的本质是异或单字节加密,当原文件的后缀名是txt或者log时,文件执行全加密,其余文件执行快速加密,即仅对文件的前0x1000个Byte进行加密。

加密后

解密后

密钥

  加密的密钥也明文存在文件的末尾,运行时读取此密钥进行加密,密钥的长度为8Byte。

4.逆向分析

4.1函数program_main

  函数定义了命令行参数

4.2 函数encryption_Initialize

  此函数为加密的初始函数,初始化了key与初始iv的值。

__int64 __fastcall encryption_Initialize(__int64 a1)
{
  __int64 result; // rax
  unsigned int v2; // eax
  unsigned int v3; // ebx
  const char *v4; // rax
  const char **v5; // [rsp+40h] [rbp-40h] BYREF
  const char **v6; // [rsp+48h] [rbp-38h]
  _BYTE *v7; // [rsp+50h] [rbp-30h]
  __int64 v8; // [rsp+C0h] [rbp+40h]
  FILE *v9; // [rsp+C8h] [rbp+48h]
  FILE *v10; // [rsp+D0h] [rbp+50h]
  int v11; // [rsp+DCh] [rbp+5Ch]
  void *v12; // [rsp+E0h] [rbp+60h]
  int v13; // [rsp+ECh] [rbp+6Ch]
  void *Buffer; // [rsp+F0h] [rbp+70h]
  FILE *Stream; // [rsp+F8h] [rbp+78h]

  v5 = 0i64;
  if ( !a1 )
    return g_return_if_fail_warning(0i64, "encryption_Initialize", "path != NULL");
  Buffer = 0i64;
  v13 = 0;
  v12 = 0i64;
  v11 = 0;
  v10 = (FILE *)g_fopen(a1, "rb");
  Stream = v10;
  v9 = v10;
  if ( v10 )
  {
    v8 = g_malloc0_n(8i64, 1i64);
    g_free(encryption_key);
    encryption_key = v8;
    encryption_key_length1 = 8;
    encryption_key_size_ = 8;
    fseek(Stream, -4, 2);
    Buffer = (void *)g_malloc0_n(4i64, 1i64);
    fread(Buffer, 1ui64, 4ui64, Stream);
    v13 = program_ToInt32(Buffer, 4i64);
    fseek(Stream, -8 - v13, 2);
    v12 = (void *)g_malloc0_n(4i64, 1i64);
    fread(v12, 1ui64, 4ui64, Stream);
    v11 = program_ToInt32(v12, 4i64);
    fseek(Stream, -8 - v13 - v11 - 8, 2);
    fread((void *)encryption_key, 1ui64, encryption_key_length1, Stream);
    fflush(Stream);
    g_free(v12);
    g_free(Buffer);
    fclose(Stream);
    v7 = (_BYTE *)g_malloc0_n(8i64, 1i64);
    *v7 = 70;
    v7[1] = 69;
    v7[2] = -61;
    v7[3] = -9;
    v7[4] = -65;
    v7[5] = -109;
    v7[6] = -18;
    v7[7] = -96;
    g_free(encryption_iv);
    encryption_iv = (__int64)v7;
    encryption_iv_length1 = 8;
    result = 8i64;
    encryption_iv_size_ = 8;
  }
  return result;
}

4.3 函数progarm_Iterate

  它遍历一个目录及其子目录,加密符合特定条件的文件。该函数接受目录路径、配置信息和等作为参数,并返回空值。该函数的目的是遍历目录树并加密符合特定条件的文件,如文件名、扩展名等。函数还检查文件是否为目录,如果符合条件,则对其进行加密。如果文件是目录,则函数会递归调用自身以遍历子目录。

4.4 函数program_Filter

  这段代码是一个基于文件扩展名和名称进行筛选的函数。它接受文件名、文件扩展名以及要排除的扩展名和名称的列表。该函数的目的是根据文件的扩展名和名称确定是否应包含或排除给定的文件。函数首先提取文件的扩展名并将其转换为小写。然后,它检查文件的扩展名是否在要包含或排除的扩展名列表中。如果文件的扩展名在要排除的扩展名列表中,函数返回0,表示不加密此文件。除此之外,函数返回1,表示应该加密该文件。

__int64 __fastcall program_Filter(__int64 a1, int a2, __int64 a3, int a4, int a5, __int64 a6, int a7)
{
  int index_of; // eax
  __int64 v9; // [rsp+38h] [rbp-38h]
  __int64 v10; // [rsp+48h] [rbp-28h]
  BOOL v11; // [rsp+5Ch] [rbp-14h]
  int v12; // [rsp+68h] [rbp-8h]
  unsigned int v13; // [rsp+6Ch] [rbp-4h]

  if ( a1 )
  {
    index_of = string_last_index_of(a1, ".", 0i64);
    v10 = string_substring(a1, (unsigned int)(index_of + 1), 0xFFFFFFFFi64);
    v9 = g_utf8_strdown(v10, -1i64);
    g_free(v10);
    v11 = a5 == vala_string_array_contains(a6, a7, v9);
    if ( a2 )
    {
      if ( v11 )
        v12 = 1;
      else
        v12 = vala_string_array_contains(a3, a4, a1);
      v13 = v12;
    }
    else
    {
      v13 = v11 & ((unsigned int)vala_string_array_contains(a3, a4, a1) == 0);
    }
    g_free(v9);
    return v13;
  }
  else
  {
    g_return_if_fail_warning(0i64, "program_Filter", "basename != NULL");
    return 0i64;
  }
}

4.5 函数_lambda4

  此函数对文件进行分类,根据配置文件判断某一文件是否需要加密,用什么方式加密。

'FullSet': <['txt', 'log']>
'IntermittentSet': <@as []>

  在NoneSet集合中的后缀将不会被加密,在FullSet集合中的后缀将使用全加密。(encryption_Full),其余文件使用快速加密(encryption_Fast)

  LIVE1.5版本相比LIVE1.0版本多了一种加密方式encryption_Intermittent,但是在配置文件中,没有文件后缀调用此加密方式。

  当encryption_Fullencryption_Intermittent都不满足的使用会调用encryption_Fast,大致逻辑如下:

if ( !(unsigned int)vala_string_array_contains(FastSet, v17[0], v32) )
  {
    IntermittentSet = settings_get_IntermittentSet(a2, &v15);
    if ( (unsigned int)vala_string_array_contains(IntermittentSet, v15, v27) )
      encryption_Intermittent(a1, &v16, v8, &v16);
    else
      encryption_Full(a1, (__int64)&v16);
    return result;
  }
  encryption_Fast(a1, BufferSize, (__int64)&v16);

4.6 函数encryption_Full

  此函数仅打开文件,将文件内容交给encryption_OFB_Encrypt处理,最后写入新文件。

  由于缓冲区大小为4096,函数将以4096为一块读取文件加密后输出到文件再次读取下一块加密。

while ( 1 )
{
  v30 = Stream;
  v8 = ftell(Stream);
  if ( v47 <= v8 )
    break;
  v29 = Stream;
  Buffer = v46;
  v27 = v38;
  v45 = fread(v46, 1ui64, v38, Stream);
  v26 = v46;
  v25 = v38;
  if ( v46 )
    v9 = (void *)vala_array_dup13(v26, (int)v45);
  else
    v9 = 0i64;
  v24 = v9;
  v23 = v45;
  g_free(v14);
  v14 = v24;
  v13 = v23;
  v36 = v23;
  v22 = encryption_key;
  v21 = encryption_key_length1;
  encryption_OFB_Encrypt(&v14, &v13, encryption_key, encryption_key_length1, &v12, (unsigned int *)&v11);
  v36 = v13;
  v31 = v11;
  v20 = Stream;
  fseek(Stream, -(int)v45, 1);
  v19 = Stream;
  v18 = v14;
  v17 = v13;
  fwrite(v14, 1ui64, v13, Stream);
}

4.7 函数encryption_OFB_Encrypt

  此函数为加密的主要逻辑encryption_Full和encryption_Fast都会调用此函数进行文件加密。

__int64 __fastcall encryption_OFB_Encrypt(_QWORD *a1,int *a2,__int64 a3,unsigned int a4,_QWORD *a5,unsigned int *a6)
{
  v6 = *a2;v7 = *a2 + 7;
  if ( v6 < 0 ) v6 = v7;
  v9 = v6 >> 3;v13 = 0;v12 = 1;
  while ( 1 ){
    if ( !v12 ) ++v13;
    v12 = 0;
    if ( v13 >= v9 ) break;
    encryption_Xor(*a5, *a6, a3, a4);
    v11 = 0;v10 = 1;
    while ( 1 ){
      if ( !v10 ) ++v11;
      v10 = 0;
      if ( v11 > 7 ) break;
      *(_BYTE *)(*a1 + 8 * v13 + v11) ^= *(_BYTE *)(*a5 + v11);
    }
  }
  return encryption_Xor(*a5, *a6, a3, a4);
}

4.8 函数encryption_Xor

  此函数辅助encryption_OFB_Encrypt对文件进行加密,大致逻辑如下:

void encryption_Xor( unsigned char *key, const int key_len, unsigned char *data )
{
  for(int i = 0; i < 8; i++ ){
    key[ i ] ^= data[ i ];
    key[ i ] += 13;
  }
}

4.9 函数encryption_Fast

  encryption_Fastencryption_Full的区别是,encryption_Fast只会加密文件的前0x1000个Byte。

5.安全建议

1. 风险消减措施

  资产梳理排查目标: 根据实际情况,对内外网资产进行分时期排查

  服务方式: 调研访谈、现场勘查、工具扫描

  服务关键内容: 流量威胁监测系统排查、互联网暴露面扫描服务、技术加固服务、集权系统排查

2. 安全设备调优

目标

  通过对安全现状的梳理和分析,识别安全策略上的不足,结合目标防御、权限最小化、缩小攻击面等一系列参考原则,对设备的相关配置策略进行改进调优,一方面,减低无效或低效规则的出现频次;另一方面,对缺失或遗漏的规则进行补充,实现将安全设备防护能力最优化。

主要目标设备

  网络安全防护设备、系统防护软件、日志审计与分析设备、安全监测与入侵识别设备。

3. 全员安全意识增强调优

目标:

  通过网络安全意识宣贯、培训提升全方位安全能力

形式:

  培训及宣贯

线下培训课表

  若无法组织线下的集体培训,考虑两种方式:

    1.提供相关的安全意识培训材料,由上而下分发学习

    2.组织相关人员线上开会学习。线上培训模式。

线上学习平台

  以下是solar安全团队近期处理过的常见勒索病毒后缀:后缀.360勒索病毒,.halo勒索病毒,.phobos勒索病毒,.Lockfiles勒索病毒,.stesoj勒索病毒,.src勒索病毒,.svh勒索病毒,.Elbie勒索病毒,.Wormhole勒索病毒.live勒索病毒, .rmallox勒索病毒, .mallox 勒索病毒,.hmallox勒索病毒,.jopanaxye勒索病毒, .2700勒索病毒, .elbie勒索病毒, .mkp勒索病毒, .dura勒索病毒, .halo勒索病毒, .DevicData勒索病毒, .faust勒索病毒, ..locky勒索病毒, .cryptolocker勒索病毒, .cerber勒索病毒, .zepto勒索病毒, .wannacry勒索病毒, .cryptowall勒索病毒, .teslacrypt勒索病毒, .gandcrab勒索病毒, .dharma勒索病毒, .phobos勒索病毒, .lockergoga勒索病毒, .coot勒索病毒, .lockbit勒索病毒, .nemty勒索病毒, .contipa勒索病毒, .djvu勒索病毒, .marlboro勒索病毒, .stop勒索病毒, .etols勒索病毒, .makop勒索病毒, .mado勒索病毒, .skymap勒索病毒, .aleta勒索病毒, .btix勒索病毒, .varasto勒索病毒, .qewe勒索病毒, .mylob勒索病毒, .coharos勒索病毒, .kodc勒索病毒, .tro勒索病毒, .mbed勒索病毒, .wannaren勒索病毒, .babyk勒索病毒, .lockfiles勒索病毒, .locked勒索病毒, .DevicData-P-XXXXXXXX勒索病毒, .lockbit3.0勒索病毒, .blackbit勒索病毒等。

  勒索攻击作为成熟的攻击手段,很多勒索家族已经形成了一套完整的商业体系,并且分支了很多团伙组织,导致勒索病毒迭代了多个版本。而每个家族擅用的攻击手法皆有不同,TellYouThePass勒索软件家族常常利用系统漏洞进行攻击;Phobos勒索软件家族通过RDP暴力破解进行勒索;Mallox勒索软件家族利用数据库及暴力破解进行加密,攻击手法极多防不胜防。

  而最好的预防方法就是针对自身业务进行定期的基线加固、补丁更新及数据备份,在其基础上加强公司安全人员意识。如果您想了解有关勒索病毒的最新发展情况,或者需要获取相关帮助,请关注“solar专业应急响应团队”。

6.团队介绍

  团队坚持自主研发及创新,在攻防演练平台、网络安全竞赛平台、网络安全学习平台方面加大研发投入,目前已获得十几项专利及知识产权。团队也先后通过了ISO9001质量管理体系、ISO14000环境管理体系、ISO45001职业安全健康管理体系 、ITSS(信息技术服务运行维护标准四级)等认证,已构建了网络安全行业合格的资质体系;

7.我们的数据恢复服务流程

  多年的数据恢复处理经验,在不断对客户服务优化的过程中搭建了"免费售前+安心保障+专业恢复+安全防御"一体化的专业服务流程。

① 免费咨询/数据诊断分析

​   专业的售前技术顾问服务,免费在线咨询,可第一时间获取数据中毒后的正确处理措施,防范勒索病毒在内网进一步扩散或二次执行,避免错误操作导致数据无法恢复。

​   售前技术顾问沟通了解客户的机器中毒相关信息,结合团队数据恢复案例库的相同案例进行分析评估,初步诊断分析中毒数据的加密/损坏情况。

② 评估报价/数据恢复方案

​   您获取售前顾问的初步诊断评估信息后,若同意进行进一步深入的数据恢复诊断,我们将立即安排专业病毒分析工程师及数据恢复工程师进行病毒逆向分析及数据恢复检测分析。

​   专业数据恢复工程师根据数据检测分析结果,定制数据恢复方案(恢复价格/恢复率/恢复工期),并为您解答数据恢复方案的相关疑问。

③ 确认下单/签订合同

​   您清楚了解数据恢复方案后,您可自主选择以下下单方式:

  双方签署对公合同:根据中毒数据分析情况,量身定制输出数据恢复合同,合同内明确客户的数据恢复内容、数据恢复率、恢复工期及双方权责条款,双方合同签订,正式进入数据恢复专业施工阶段,数据恢复后进行验证确认,数据验证无误,交易完成。

④ 开始数据恢复专业施工

  安排专业数据恢复工程师团队全程服务,告知客户数据恢复过程注意事项及相关方案措施,并可根据客户需求及数据情况,可选择上门恢复/远程恢复。

  数据恢复过程中,团队随时向您报告数据恢复每一个节点工作进展(数据扫描 → 数据检测 → 数据确认 → 恢复工具定制 → 执行数据恢复 → 数据完整性确认)。

⑤ 数据验收/安全防御方案

  完成数据恢复后,我司将安排数据分析工程师进行二次检查确认数据恢复完整性,充分保障客户的数据恢复权益,二次检测确认后,通知客户进行数据验证。

  客户对数据进行数据验证完成后,我司将指导后续相关注意事项及安全防范措施,并可提供专业的企业安全防范建设方案及安全顾问服务,抵御勒索病毒再次入侵。

                      我们在此郑重承诺:

                     不成功不收费

                     全程一对一服务

                     365天不间断服务

                     免费提供安全方案

                     24h服务热线:

                     18894665383

                     17864099776

                     18299173318

相关案例

【案例介绍】赎金提高,防御失效:某上市企业两年内两度陷入同一勒索团伙之手

Hunters International是一种基于RaaS(勒索软件即服务)模式运营的勒索病毒组织,起源于2023年,可能是Hive勒索病毒的演变版本。通过DLS(数据泄露网站)公开受害者数据,猎物包括企业和上市公司,如Exela Technologies,其数据泄露案例引发广泛关注。本文详细解析Hunters组织的攻击模式、技术特点及其对企业的威胁,并提供暗网泄露平台的访问方式与界面展示。了解此类勒索病毒家族有助于提升网络安全意识和保护企业关键数据。

某集团公司的Phobos最新变种勒索病毒jopanaxye解密恢复项目

SolarSecurity成功解密了Phobos勒索病毒的jopanaxye变种,恢复了某集团公司12台服务器上3.97TB的加密数据。团队通过应急响应、文件解密及后门排查,帮助企业恢复数据并加强系统防护,防止类似勒索攻击再次发生。

某集团公司的Phobos最新变种勒索病毒2700解密恢复项目

SolarSecurity成功应对Phobos勒索病毒2700变种,通过RDP暴力破解入侵企业服务器并加密近4TB的数据。团队迅速解密并恢复了被加密的文件,排查了多个后门并加强了系统安全防护,帮助企业提高抵御勒索病毒的能力。

某房地产公司的mallox最新变种勒索病毒rmallox解密恢复项目

SolarSecurity成功恢复了某房地产公司因rmallox勒索病毒导致的加密数据。此次攻击通过NAS系统服务器漏洞入侵,并在24小时内完成数据解密和系统修复。团队还进行了后门排查和系统加固,并提供了全面的安全评估和渗透测试服务,确保系统免受未来威胁。

利用多款国产内网渗透工具勒索数十台虚拟机的babyk解密恢复项目

SolarSecurity通过多款国产内网渗透工具,成功恢复了一家影视公司在勒索病毒攻击中被加密的数十台虚拟机数据。攻击者利用用友NC系统漏洞和内网工具实施勒索,最终公司通过渗透测试和漏洞修复恢复了22.45TB的加密数据,并对系统进行全面的安全加固。