勒索软件在这过去的几年中一直是处于一个上升的阶段,在引领的这几年中也出现了越来越多的变异。这篇文章是一个新的“应变”,我可以告诉你它可以追溯到今年3月。在此之前我还没有看到任何关于这个的评论或信息(在日常生活中没有什么重大事件并且任何其他分析师听说过它)。我可以说它仍在开发阶段,这篇文章将讲述有关勒索软件的故事。
发现
我准备通过Tor的隐藏服务地址(onion地址)来获取信息。通常这方面的市场比较多并且有许多用于隐藏hacker身份的网站,就像下面这个,其地址(如这篇文章所写)是:
guhvuoz7am24b5mv.onion
注意:服务是在八月初开始的。可能是“项目”是停止或者仅仅是通过一个旧的测试设置搬到一个新的C2继续他的运转
当访问隐藏的服务网址时,我注意到了以下:
这信息看起来就像看到了勒索软件的秘密围墙等等。它引起我的注意,是因为它通过RSA-2048描述的文件库和CryptoWall消息很像。在支付赎金后文件会恢复。向下滚动我们得到第二节:
这一节说没有原始密钥就无法解密文件 (如果你使用RSA的2048,密钥是有意义的)。这值得注意的是使用其他工具相对其而言只会使得情况更糟。在知道此信息后,我们发现第三节:
本节讨论的是需要支付的赎金,1比特币。比如说,比特币可以买网址并且网址的比特币需要转移到:1 abwltv7jttblmj8lrgq7tzcdkd4znet5c。这是一个链接到可以下载的(必须重点强调)只能支付赎金后才可以工作的解密软件。
下面第三节有一小部分是关于反病毒产品如何检测解密和引起解密问题:
所有的这一切都给出了一个好的迹象,就是至少之前我从没看过的一些(新的)正在开发的勒索软件。是时候找出一个与之结合有关的例子。
这件事有趣的是,在你通常看到的CryptoWall, CTB or TorrentLocker感染中是没有需要“支付的ID”。这个机器的唯一ID是用来跟踪支付赎金的。在这个 C2(如果我们可以这样称呼其),每个人都支付相同的比特币地址,它只是一个静态页面。
分析恶意软件本身
找到一个示例实际上是很简单的,它是今年5月上传到Malwr.com:(csrsss.exe).
我能够找到它的原因是因为:比特币地址本身就是在二进制中(如同一个文本字符串):
如果你查看了其余的文本,它实际匹配的相匹配条目是在C2,但我们等下再看。我们先来一起看这个例子,就会发现一些在PE文件中的信息。
马上弹出的是这么一个框体,它是用C++通过很多里面的编程(基类)编写的,很多vftable的查找使得在OllyDBG查看有一点困难。
接下来弹出的另一个框体是建造时间戳,它似乎与Malwr.com的提交日期是相同的(当然这可能是伪造的):
更有趣的是在PR资源中,似乎还没有可以打包的方式,并且资源本质是可用的。
2,弹出的框中“BIM”和“HTML”,BIM实际上包含两个PE:
HTML资源(我们寻找匹配的比特币地址)实际上是落在受害者的电脑上的赎金消息:
也有大量的对话框在PE中,其中一些看起来像是勒索软件弹出的,就像通常看到的诸如此类型的恶意软件:
最后一个对话框在你点击它后会看到就像是一个经典的勒索软件会弹出的,。
通过有效载荷时我也注意到每个bim都有其完整的链接器信息(PDB路径),其链接信息给了我以下PDB路径:
· C:UserswindowsDesktopCryptoAppuildinRelease CryptoApp.pdb
· C:UserswindowsDesktopCryptoAppuildinRelease KeepAlive.pdb
· C:UserswindowsDesktopCryptoAppuildinRelease SelfDestroy.pdb
这些PDB路径当然也是我称之为“CryptoApp”勒索软件的原因。
启动和持久性
主要的'CryptoApp.pdb’是来自从Malwr获取的intiail样本,另外两个是来自两个嵌入式的PE。其功能是非常多的,正如他们的名字一样。
“KeepAlive” 为windows创建了启动键 (然而它实际上在任何地方都不会打扰或复制有效载荷,只是会从目录这运行):
有趣的是“CryptoAppDelay”的关键是不断更新,它保持每天都会更新。通过查找负责这部分的代码,我们发现:
这部分可以被分割为三个部分(标有红色块),第一部分的检查是“CryptoAppForcedEnded”的存在,其存在的关键是呈现出(通过绿线显示)。如果该键不存在,它会移到下一个可以生成一个线程的部分,直到它完成。线程完成代码后进入第3节,在此中,它改变了'CryptoAppDelay'键的值。
虽然这部分不是超有趣的新创建的线程,但它是一种监督。该线程背后的想法是,它通过等待'延迟'来达到一定数量后,它将执行代码的其余部分。线程代码如下所示:
首先获得微软软件的处理 Windows CurrentVersion 运行的关键是能够根据(“CryptoAppDelay”值)查询值。设置一些变量后和进入一个循环(通过绿色框表示)。循环是有不可思议的东西发生的地方;它检查了“CryptoAppDelay”的值,并且把它比作一个数字即使这个集合并不是能够非常清晰的读取,主要做了以下步骤:
把“CryptoAppDelay”键的值,除以1000,比较是否超过86400,
原因如下,如果没有达到这个数字的CryptoAppDelay值设置为返回的值,CurrenTickCount()”是一个窗口函数,它返回的毫秒之后机器将会启动。通过你获得的1000秒来区分开,86400实际上是24小时;勒索软件在等到机器运转24小时后才会做一些破坏
每当勒索软件运行时,它所产生的嵌入式PEs是用于持久性。一个例子是“keepalive”,你会发现运行时就会开始感染:
这里的“keepalive。exe”时在临时目录(用绿色框标志)的下方,并且实际ransomware的程序'csrss.exe’依旧在休眠直到达到24小时正常运行时间(红色框标记的)。试图杀死ransomware的程序并不多,其是通过keepalive负载而维持运转的。让我们看看这是如何工作的。察看keepalive PE给我们的参数,我们已经可以得到一个关于其工作原理的好想法:
它给出一个图像路径(勒索软件本身的)和当前运行的勒索软件进程的PID。查看通过把the 'keepalive.exe’分解出的PE,我们发现所使用的参数确实是“保护”ransomware的主要过程。方法是:一旦“阻碍”ransomware的主要进程被停止,它就一遍又一遍的开始。它的工作原理是这样的:
· 处理的流程表
· 调用Windows函数WaitForMulipleObjects和停止流程处理
· 当它返回(及其相关戒烟)重启ransomware过程和关闭自我(keepalive退出后重新启动ransomware的主程序)
· Ransomware过程启动一个新的keepalive又开始同样的事情(监督线程)
ransomware过程本身可以重新启动,只计算系统正常运行时间(通过之前描述的注册表键)。
文件加密
ransomware将通过下面的文件扩展名加密文件,总共162个文件扩展名:
.3fr .3gp .7z .accdb .ai .arc .arw .avi .bad .bay .bmp .cam .cdr .cer .cineon .cr2 .crt .crw .csv .ctl .dat .db .dbf .dcr .der .des .dicom .dng .doc .docm .docx .dsc .dwg .dxf .dxg .eps .erf .fla .flv .fmb .fmt .fmx .gif .hdr .html .iif .img .indd .jpe .jpeg .jpg .kdc .log .lst .m4v .mdb .mdf .mef .mov .mpeg .mrw .nd .nef .nrw .odb .odm .odp .ods .odt .openexr .ora .orf .p12 .p7b .p7c .pbm .pck .pdd .pdf .pef .pem .pfx .pgm .pic .pkb .pks .plb .pls.png .pot .ppm .pps .ppt .pptm .pptx .prn .psb .psd .pst .ptx .qba.tlg .qbm .qbr .qbw .qbw.tlg .qbx .qby .qfx .r3d .raf .rar .raw .rdf .rdo .rep .rex .rtf .rw2 .rwl .sql .srf .srw .sti .sxi .tiff .txt .vdi .wb2 .wpd .wps .xbm .xlk .xls .xlsb .xlsm .xlsx .xml .yaml .zip .php .css .asp .cpp .c .js .pl .perl .swf .aspx .potx .potm .ppam .ppsx .ppsm .sldx .sldm .thmx .xlam .xltm .dotm .dotx
这里大部分的文件并不奇怪,图像格式,文本文档格式,报告格式。我发现有趣的是文件扩展名的文件相关解释,特别是QuickBooks会计软件(.qba .tlg .qbm .qbr .qbw .qbw .tlg .qbx .qby .qfx)的目标公司。它试图找到文件访问所有可用的逻辑驱动器,它使用一个电话(GetLogicalDrives())与下面的列表映射的驱动器字母(基本上每一个都可能是驱动字母,整个字母表):
A: B: C: D: E: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: X: Y: Z:
对跟踪ransomware的加密文件信息存储件在磁盘上的一个sqlite数据库中。
Ransomware充分利用了微软的CryptoAPI,特别是它使用了RSA加密
设置加密后,会生成一个私人或公共密钥对应它开始启动的文件,加密的方法它遵循“混合密码系统”。在这个系统里你不用使用私钥加密文件,但你要创建对称密钥(我称之为“文件”下面的键)进行数据加密。这些键是使用私有密匙加密的操作。这意味着解密的文件需要私钥文件的密钥解密,依次解密文件数据。
他们的搜索是基于上面所示的逻辑驱动器的基于描述文件扩展名的可用匹配的文件。当一个文件的加密是有效时,它将开始加密,工作如下:
· 它将获取完整的文件名并且追加。对其加密,作为新的文件扩展名
· “文件”键(MSDN会称它为会话密钥)是通过 (CryptGenKey())使用前面初始化密码并且使用PROV_RSA_FULL调用生成的
· 一个文件处理的开口是新创建文件名(加密的一个)
· 4字节被写入到打开的文件(int)通过一种标记/标签的加密文件的0 x2200af 中的'magic value’
· 4个字节导出“文件”的键(密钥用于加密/解密文件数据,加密当然,可以通过使用私钥进行解密的pub /所使用的关键部分)后,是用CryptExportKey()]SIMPLEBLOB blob类型的出口
· 写完‘文件’的键的文件,其原始文件(非加密)正在读取,加密并且附加到.encrypted 文件中
· 磁盘上的文件加密后插入到磁盘上的SQLite数据库(用于列表用户他/她的解密加密的文件以及再次找到的文件)
· 将加密文件插入到SQLite数据库成功后,在磁盘中通过调用DeleteFile())功能删除它。
它把私人/公共密钥的对应发送到C2服务器,有关详细信息,请参阅下面的“C2沟通”部分。
作为一个旁观者,整个加密过程ransomware状态保存在注册表中,同时显示其当前状态的加密,有多少文件等。
解密
在网站上有一个链接到解密,这是相当有趣的。除了它是一个“解密”以外,从原始恶意软件或其他感染上它实际上是都有可能的。“解密”事实上是稍微修改主要恶意软件本身后的版本。
然而它确实显示了一些有趣的事,我设法从Malwr.com获取的样本是一个过时的ransomware的版本。除了一些稍微清理和修改的功能,它新增了一些功能。这些功能之一是显示这张图片:
它是在临时目录的下面。'wlp.jpg’和系统设置为背景,我们可以看到这种行为在分解:
除了封锁消息,这里还有一个新的解密对话框(连同ransomware本身)是关于解密过程的:
ransome下降在HTML页面的形式的信息,我们之前看到的样品也已经更新。现在包括Tor隐藏的链接服务也在红色图片中:
这一切显示我从Malwr.com获取的样品已经相当久了。
解密本身对Blockchain.info的网站检查是用户是否支付。我们可以在decrypter’s dissasembly直接的使用它
它解析事务处理计数和匹配来自blockchain.info的比特币地址,以事务解析为例:
付款方式确认如下:
1.用户支付固定金额的比特币到指定的比特币地址1abwltv7jttblmj8lrgq7tzcdkd4znet5c
2.用户在勒索软件的付款形式上复制自己的比特币地址
3.解密软件检查比特币是否是在感染期后支付到指定的比特币地址(这也是存储在注册表)来确认付款是否与感染有关。
4.如果用户支付了将会通过C2获取关键信息
在支付的1abwltv7jttblmj8lrgq7tzcdkd4znet5c网站列出的比特币地址只有一个“在五月十五日支付1比特币”这一确切的赎金要求。付款后仅仅在两天之内勒索软件的第一开发版本被上传到malwr.com,使它看起来像在测试勒索软件的解密部分
文件解密
当接收者确认用户已交纳赎金,私钥将从C2服务器获得(这是如何完成的将从下面的C2通信部分解释)。这个密钥将通过用户的文件解密步骤:
1.找到当地的SQLite数据库,列出所有加密的文件
2.它会截取文件,改变文件扩展名从.encrypted和.decrypted加密。
3.这将确认该文件魔法标签的0x2200af前4字节,如果没有,将会忽略这个文件
4.它将从包含“文件”或“会话”关键词的文件中截取下一节
5.使用此密钥和私有密钥将开始解密文件
6.这个过程一直持续到他们的每一个文件都被解密
C2的沟通
虽然隐藏的服务展示了“可怕的”有关所需的赎金的信息,但是对于主机并没有C2的通信流量。真正的沟通是对主机以外的Tor。有趣的是这个主机下降同时,隐藏服务也下降,这表明它们可能被托管在同一个系统上,虽然我对这并没有确切的证据。
ransomware本身是HTTP的通信只对集中式C2服务器,然而对集中式C2服务器解密是通过HTTP通信以及SSL进入blockchain.info的网络流量。
Ransomware C2沟通
ransomware本身对静态域通信:cryptorepairsystems.com(当时指着一个主机在波斯尼亚和黑塞哥维那:80.242.123.197)在简单的HTTP上。通信路径有两种:
· cryptorepairsystems.com/ksubmit.php——用来发送用于文件加密的关键
· cryptorepairsystems.com/kretrieve.php——解密检索使用的加密密钥来解密加密的文件
通信/ ksubmit.php是简单的HTTP POST通讯。特定的首要是硬编码为这个通讯:“内容类型:应用程序/ x-www-form-urlencoded”执行服务器,以此检查它是urlencoded表单数据。表单数据具有以下格式:
bitcoin_address = % s&empid = % s&comp = % s&ipv4 = % s&blkk = % s&publ = % s&priv = % s
具体参数:
· bitcoin_address-付款地址
· empid-系统惟一的ID
· comp -计算机名通过调用获得(GetComputerName()]
· ipv4 -ipv4地址为感染客户
· blkk-空的硬编码的值(不确定真正目的)
· publ - RSA密钥集的公布,公钥用于加密的文件
· priv——私有密钥的RSA密钥用于加密的文件
解密C2沟通
在前一节中说,通信/ kretrieve.php是特定于解密。其通信协议也只是普通的HTTP POST沟通。特定的头是硬编码的通信,其ransomwared登入的一样:“内容类型:应用程序/ x-www-form-urlencoded”。表单数据具有以下格式:
empid = % s&comp = % s&ipv4 = % s
具体参数:
· empid-系统惟一的ID
· comp -计算机名获得通过调用(GetComputerName()]
· ipv4 - ipv4地址为感染客户
结论:未完成的而不是分散的
从我的角度看,这款勒索软件(ransoware)正处于发展当中而且未完成,还在继续发展。有些地方在很好的运行,而有些地方是破碎的、不稳定的。我没有任何线索来发掘这背后的东西或者更多的C2s。
与其他勒索软件威胁相比如CryptoWall,这款软件比较业余和简单,但又很难去比较。如果对它的后台一无所知(它可以扭转C2洋葱地址,如果每位会员都有会员系统;这不是很相似,但谁知道呢)和演员,我不能从“尺寸”这一角度来告诉你更多关于这款软件的东西。
除去我上面说的这些东西,其他方面都存在着缺陷。我不会将更多的细节放到我的博客上面,但文件恢复有很多不同的方法使其成为可能。c2的研究我会继续下去,我会一直注意观察看是否有新的东西出现。
注意:如果你亲自去看一下,你会发现我已经跳过了一些细节。我只写出一些重要的细节使得这个结构可以很好的工作。
例子与国际石油公司
我只找到2个例子,一个是旧的发展建立在我从Malwr.com上发现的和从Tor隐藏服务C2解密的。解密并没有公开之前我把它发布在Malwr.com。这是我们从Malwr.com下载和VirusTotal:
来源:http://sec.chinabyte.com/232/13514232.shtml |