请使用手机微信扫码安全登录

切换账号密码登录

绑定手机号

应国家法规对于账号实名的要求,请您在进行下一步操作前,需要先完成手机绑定 (若绑定失败,请重新登录绑定)。了解更多

不绑定绑定手机号

360官网 | 360商城

推荐论坛版块活动360粉丝商城众测粉丝轰趴馆常见问题

相关阅读:Nemety勒索病毒家族详情,我是链接请点我!

一、        样本信息

    文件名:Nemty.exe
    MD5:42fb500daf72044ea837a3a4464921a1
    SHA1:f8fa322b23f889226786694cc681994039b465bc
二、        样本分析
Nemty执行流程如下:
(1)        互斥量保持病毒的单例执行,通过resize shadowstorage的方式删除卷影;
(2)        获取机器ip所在地区(国家)名,从而避过部分非勒索目标地区;
(3)        生成用户RSA-2048公私钥并对其进行加密编码,再与搜索的其他信息json格式化后上传至远程服务器,同时记录到注册表;
(4)        删除指定进程和服务,解除文件占用;
(5)        通过cmd和powershell执行命令删除卷影备份、禁用开机自动修复;
(6)        设置病毒文件自启动,静默清空所有回收站;
(7)        搜索文件进行加密;
(8)        最后打开勒索信息提示文件提醒用户。
下面是对病毒各个行为的分析。
1、        地区豁免
对于以下地区(国家)名,Nemty不执行恶意行为,直接退出进程。
  • Russia
  • Belarus
  • Kazakhstan
  • Tajikistan
  • Ukraine
  • Azerbaijan
  • Armenia
  • Kyrgyzstan
  • Moldova

2、        自启动&删除卷影
创建互斥量”golod moi edinstvennii sponsor”保证病毒进程的单例执行,并为病毒文件创建自启动项”daite drobovik”。

Nemty通过多种方式进行卷影的删除。
首先是利用vssadmin对固定磁盘(DRIVE_FIXED)、可移动磁盘(DRIVE_REMOVABLE)、网络磁盘(DRIVE_REMOTE)上的卷影最大可用空间进行修改,从而达到删除卷影的目的。样本采用的方式是分别将目标磁盘卷影空间修改为401Mb,之后再修改为unbounded(无限制)。





其次是使用cmd执行命令,禁用开机自动修复,删除卷影。
3、        用户信息搜集&上传
Nemty中部分字符串为RC4对称加密算法加密后密文。病毒通过API CryptHashData计算字符串“sosorin :)”的SHA值,再调用CryptDeriveKey利用其SHA值获取RC4字符串解密密钥。该密钥用于解密病毒中的各个RC4加密字符串。

通过RC4解密出需要搜集的信息名称,在完成搜集后病毒将所有信息格式化为JSON格式,示例如下:


各项信息含义:
  • fileid:加密后文件扩展名
  • configid:内置于病毒
  • compid:中毒机器的HwProfileGuid值
  • ip:中毒机器的公网ip
  • country:中毒机器所在地区(国家)
  • version:内置于病毒,应为病毒版本
  • computer_name:计算机名
  • username:用户名
  • os:操作系统版本,如”Windows 7”
  • pr_key:用户RSA私钥sk_user Base64编码值
  • drives:目标加密磁盘信息(卷标、类型、总容量、已使用容量)
    以上信息中,fileid的后7个字节从[A-Z0-9]中随机生成;compid通过GetCurrentHwProfile获取;ip为访问网址https://www.myexternalip.com/raw后的返回值,失败则记为”NONE”,该网址通过RC4解密获取;country通过db-ip.com提供的api:http://api.db-ip.com/v2/free/<IP>/countryName进行查询。
    用户RSA公私钥对(pk_user/sk_user)经API CryptGenKey生成,导出后进行Base64编码。


    drivers部分数据只记录固定磁盘(DRIVE_FIXED)、可移动磁盘(DRIVE_REMOVABLE)、网络磁盘(DRIVE_REMOTE)等类型,也是搜索和加密的目标磁盘类型。
    信息搜集并格式化完成后,病毒携带的攻击者RSA-8192公钥对JSON格式数据加密,经Base64编码之后作为勒索信息提示文件中的”NEMTY KEY”数据,同时作为URI:”http://nemty10.hk/public/gate.php?data=”中data的参数值上传至远程服务器,上传前将其中的”+”字符转为”.”。
之后病毒会创建注册表项HKCU\\Software\\NEMTY,用于记录3个键值,包括:
  • fid:<fileid>(如NEMTY_SOP55VP)
  • pkkey:用户公钥pk_user Base64编码值
  • cfg:JSON格式信息使用攻击者RSA公钥加密并Base64加密后的数据


4、        结束指定进程&服务
    首先调用taskkill关闭下列进程,使用通配符进行进程名的匹配。
  • sql
  • winword
  • wordpad
  • outlook
  • thunderbird
  • oracle
  • excel
  • onenote
  • virtualboxvm
  • node
  • QBW32
  • WBGX
  • Teams
  • Flow




接着使用net stop命令关闭以下服务。

  • DbxSvc
  • OracleXETNSListener
  • OracleServiceXE
  • AcrSch2Svc
  • AcronisAgent
  • Apache2.4
  • SQLWriter
  • MSSQL$SQLEXPRESS
  • MSSQLServerADHelper100
  • MongoDB
  • SQLAgent$SQLEXPRESS
  • SQLBrowser
  • CobianBackup11
  • cbVSCService11
  • QBCFMontorService
  • QBVSS



    可以看到,病毒结束的进程和服务主要与office办公软件、数据库、服务器、卷影等应用相关,目的是解除数据文件的占用,防止加密时出现文件访问冲突,导致文件加密失败。
5、        搜索文件进行加密
    病毒为每个枚举到的网络资源和磁盘分别创建一条线程进行文件的搜索和加密。同时调用API SHEmptyRecycleBin清空所有回收站。
加密目标不包括以下文件或目录名,主要是系统目录、应用程序目录,以及用户目录、浏览器目录等。
  • windows
  • $RECYCLE.BIN
  • rsa
  • NTDETECT.COM
  • ntldr
  • MSDOS.SYS
  • IO.SYS
  • boot.ini
  • AUTOEXEC.BAT
  • ntuser.dat
  • desktop.ini
  • CONFIG.SYS
  • RECYCLER
  • BOOTSECT.BAK
  • bootmgr
  • programdata
  • appdata
  • Common Files
  • TorDir
  • Program Files【不包括SQL目录下的非Compact子目录】
  • DECRYPT.txt

对于以下扩展名的文件,同样不进行加密,都是非数据存储文件。
  • pif
  • ttf
  • url
  • dll
  • ini
  • cpl
  • com
  • cmd
  • cab
  • log
  • exe
  • lnk
  • NEMTY

    避过指定类型文件的目的在于防止影响系统运行或其他相关问题,导致用户无法正常支付赎金。
6、        文件加密方式
    Nemty采用AES对称加密算法对文件进行加密,加密模式为CTR(counter),密钥key长度16字节(128-bit),counter初始值cnt_initval同样为16字节。
    不过Nemty使用的算法与常规的方式有稍许的不同。首先是counter每加密一组数据并不是常见的自增1,而是从尾部开始,根据字节是否等于0xFF的判断依据来决定是否自增。


    另外,每次加密一组数据(16字节)前,待加密数据的第一组数据都会与当前counter进行异或,解密时也需要加上这一步骤,以保证密文的首部16字节可以成功还原。这一不同之处并不会影响其他部分数据的加密,即其他位置数据仍保持常规加密操作。

    之后是关于加密密钥Key和计时器初值cnt_initval的生成。病毒通过两次调用API CryptGenKey生成AES密钥,且选用的Algid为CALG_AES_256(实际文件加密时使用的是自实现的AES_128算法),接着导出密钥。两次调用获取的密钥值分别负责key和cnt_initval。


API CryptExportKey导出的对称密钥格式如下:
+0x00        BYTE  bType;
+0x01        BYTE  bVersion;
+0x02        WORD  reserved;
+0x04        ALG_ID  aiKeyAlg;
+0x08        DWORD  bitlen;
+0x0C        BYTE  encryptedkey[rsapubkey.bitlen/8];
示例:


根据分析,当前样本中的key和cnt_initval直接从导出数据中取前16字节作为相应的值进行使用。这就导致密钥key和cnt_initval的16字节组成部分中,前12字节固定为:”\x08\x02\x00\x00\x10\x66\x00\x00\x20\x00\x00\x00”,后4字节为生成的随机密钥前4个字节,即只有后4字节为随机值,大大降低了对称密钥的安全性。
文件大小方面,大小不同的文件执行不同的加密方式:
(1)        不大于12800000字节(约12.2Mb)的文件,将被全部加密。每次读取100Kb内容到内存进行加密并写回原偏移处;
(2)        大于12800000字节(约12.2Mb)的文件,对文件中间位置的6400000字节(约6.1Mb)以及首部和尾部各160000字节(约156.25Kb内容)内容进行加密,每次读取160000字节(约156.25Kb)到内存进行加密。
文件数据加密结束后,分别对导出的两个各自包含key和cnt_initval的KEY_BLOB(44字节)进行Base64编码,接着使用用户RSA-2048公钥pk_user对两者分别进行加密,加密结果分别Base64编码后写入文件尾部,最后再在其尾部加上字符串”NEMTY_<fileid>”。
再为文件添加扩展名”.NEMTY_<fileid>”
以第(2)种情况为例,文件加密流程和加密后文件结构如下图:


7、        勒索信息提示
    Nemty会在每个被加密的目录下释放一个勒索信息提示文件NEMTY_<fileid>-DECRYPT.txt(如NEMTY_SOP55VP-DECRYPT.txt)。

在提示文件中,黑客告知用户只有3个月期限用于支付赎金进行数据恢复,逾期解密密钥将被删除。可联系黑客的网站:
(1)        http://nemty.top/public/pay.php
(2)        http://zjoxyw5mkacojk5ptn2iprkiv ... nion/public/pay.php(TOR浏览器)
<BEGIN NEMTY KEY>部分为<用户信息搜集&上传>阶段的JSON数据,含有用户RSA私钥sk_user,但是需要攻击者RSA私钥才能解密。
所有流程执行完毕,病毒将会打开文件<userprofile>\\NEMTY_<fileid>-DECRYPT.txt以提醒用户。

共 1 个关于Nemty勒索病毒样本分析的回复 最后回复于 2019-12-31 10:32

评论

直达楼层

沙发
简简单单chao 产品答疑师 发表于 2019-12-31 10:32 | 只看该作者 | 私信
安全第一,就用360!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Potato 产品答疑师

粉丝:9 关注:0 积分:11260

精华:0 金币:11877 经验:6993

最后登录时间:2024-4-19

私信 加好友

最新活动

360云台摄像机9Pro写评论送大奖!

排行榜

热度排行 查看排行
今日 本周 本月 全部
    今日 本周 本月 全部

      内容推荐 热门推荐最新主帖

      扫码添加360客服号,涨知识的同时还有超多福利等你哦

      快速回复 返回顶部 返回列表