cainiao123 发表于 2017-10-31 00:42

一款勒索软件的详细分析

本帖最后由 cainiao123 于 2017-10-31 13:32 编辑

0x0基本信息
报告名称: 一款勒索软件的详细分析
      报告更新日期:2017-10-30
      样本类型: WIN32 EXE
      样本文件大小:12288字节/被加密文件大小无变化
      样本文件MD5:f9154b290dc8fbf1bc82065d656b6590
      样本文件SHA-1:cca6c6b00d6072f08aad735cb559839f333fcb9a
      第一次发现日期:2012-01-30 00:19:03

0x1简介
该样本是一款加密算法可逆的勒索软件.
i被感染后系统症状:
      1\正常文件名后添加.EnCiPhErEd扩展名
      2\双击打开1中文件,出现勒索信息弹出框,以及解密密码输入框.
      3\桌面壁纸变为勒索信息图片(该样本信息图片缺失,故变为黑屏)
ii文件系统变化:
      1\%TMP%目录下出现名为ZFe6iILss4arp10.exe的病毒复制体
      2\从A盘到Z盘,所有指定类型的大于8字节大小的文件会被加密
      3\各个目录下会创建3个勒索说明文件(功能残缺,未出现,但包含代码)
iii注册表变化:         
      1\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中添加一项名为Alcmeter的REG_SZ值,值为ii-1中病毒全路径
      2\HKEY_CLASSES_ROOT\YPZEZHCHKRGLOLF及其子项
      3\HKEY_CLASSES_ROOT\.EnCiPhErEd
iv网络症状:
      无

0x2详细分析:
样本开始运行后会进行如下行为:
1\加载自身位图资源到内存,在内存中对其进行解密.解密完成的数据放到内存的相应位置.
    i.解密方式如下:
      以前16个字节作为密钥,byte_rsc ^= byte_rsc; //(i>=16)
      密钥为:FB B3 05 48 41 7E DE A7 35 DD 8B 2F FD 5E BD BE, 称为密钥1
    ii.解密完成后数据如下:
      (不包括前16个字节)
    iii.经过分析,上图中的值可分为以下部分:
      
2\将密钥1分为4个DWORD,每个DWORD字节逆序后存放在[406595,4065a5),称为密钥2
3\得到explorer.exe的创建修改访问时间, 将自身重命名并放入到%TMP%目录下,并更名为ZFe6iILss4arp10.exe,设置该EXE的三个时间为前面得到的时间
4\在注册表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run下创建名为Alcmeter的REG_SZ值, 并赋值为新病毒文件的完整路径,实现开机自启动.
5\在注册表创建一些列项值HKEY_CLASSES_ROOT\YPZEZHCHKRGLOLF及其子项, HKEY_CLASSES_ROOT\.EnCiPhErEd, 实现.EnCiphErEd文件的关联打开方式为新病毒.
6\开始循环遍历硬盘, 从Z盘开始到A盘:
   i.如果遍历到目录,那么拼装路径继续递归
   ii.如果遍历到文件,那么比较文件名是否为三个勒索说明的文件名.是则开始下一次遍历.
   iii.在该目录下创建三个勒索说明文件
   iv.对文件后缀名进行匹配,如果不在列表中,则开始下一次遍历
   v.在列表中,那么在内存中给文件名加上.EnCiPhErEd后缀
   vi.打开文件,得到文件的创建修改访问时间, 读取文件*lDistanceToMove处nNumberOfBytesToRead个字节的值.
   vii.文件名的第一个字节,设为B1, 密钥2 = 密钥2 ^ (B1 rol i); //i∈ 并存储到
   viii.接下来,根据图2中那5个字节的开关中的某个字节,有二种加密方式. 在本样本的资源设定中, 会选择加密方式2.设读入文件数据data, 数据长度len
         ①加密方式一:
         对(len/4)个DWORD, DWORD_data^= 密钥1   i∈
         ②加密方式二:
         对(len/8)个2个DWORD,
         
         显然该算法可逆.
         ③加密方式二的解密方式:(该解密函数就在加密的旁边,BYTE_406550为0时,病毒为加密模式;为1时,病毒为解密模式)
            对(len/8)个2个DWORD,
            
   ix.将加密后的数据写入受害文件,并设定文件的创建修改访问时间为vi中获得的值, 避免操作暴露.
   x.利用MoveFileA正式重命名文件, 开始下一次遍历.
7\用SHGetSpecialFolderPath得到特殊目录,并在其中创建勒索信息文件,之后弹出勒索信息对话框,
8\加载资源中名为pussylicker(龌蹉的名字)的bmp资源, 并以此创建bmp文件,之后设为桌面背景.
9\至此, 第一次执行流程结束.
以后打开.EnCiPhErEd文件,会执行以下流程:
1\执行上述的1.2.3
2\执行到3后,发现自身已经存在于临时目录后,创建勒索密码输入窗口.之后开始等待输入.
3\窗口回调中的关键代码如下:
   
   
    该过程不可逆,网上查询也无结果. 不过不影响大局. 文件可以解锁.
   
0x3病毒样本及分析idb文件

密码52pojie
转眼间已经在15PB毕业了, 本人菜鸟, 如有疏漏之处多多指教!!
            

爱飞的猫 发表于 2017-10-31 07:17

本帖最后由 jixun66 于 2017-10-31 07:18 编辑

代码片段建议使用代码框包起来。。。

密钥2 = 密钥2 ^ (B1 rol i); //i∈ 并存储到

或者用 Markdown 的语法高亮:
```
密钥2 = 密钥2 ^ (B1 rol i); //i∈ 并存储到[406585,406595),称为密钥3
```

cainiao123 发表于 2017-10-31 14:27

本帖最后由 cainiao123 于 2017-10-31 14:28 编辑

Hmily 发表于 2017-10-31 14:05
能把当时出错的代码放到本文里上传上来吗?我好测试找下问题,上面这个代码没有出错。
就是这一句.
密钥2[ i ] = 密钥2[ i ] ^ (B1 rol i); //i∈ 并存储到
你 看你回复我的帖子, 密钥2后面的[ i ]消失了

把i左右的空格去掉, 就消失了.. 我特意加上空格,不然都打不出来

cainiao123 发表于 2017-10-31 01:00

好像出BUG了,
密钥2 = 密钥2 ^ (B1 rol i); //i∈ 并存储到[406585,406595),称为密钥3
我加上这一句,后面字体全变斜体了..

diting789 发表于 2017-10-31 10:07

路过学习

Hmily 发表于 2017-10-31 12:08

cainiao123 发表于 2017-10-31 01:00
好像出BUG了,
密钥2 = 密钥2 ^ (B1 rol i); //i∈ 并存储到[406585,406595),称为密钥3
我加上这一 ...

discuz很恶心,在discuz里是斜体的意思,结尾是[ /i]多了一个空格,防止被转换,但如果只有开头系统会自动把结尾补上,一直没找到这编辑器代码如何修改可以取消这个功能,太恶心了。。。

时光不老时 发表于 2017-10-31 13:19

学习了,感谢分享

Hmily 发表于 2017-10-31 14:05

cainiao123 发表于 2017-10-31 01:00
好像出BUG了,
密钥2 = 密钥2 ^ (B1 rol i); //i∈ 并存储到[406585,406595),称为密钥3
我加上这一 ...

能把当时出错的代码放到本文里上传上来吗?我好测试找下问题,上面这个代码没有出错。

jore 发表于 2017-10-31 22:31

学习了,感谢分享

ajm3 发表于 2017-10-31 23:54

源码是怎么看到了呢
页: [1] 2 3
查看完整版本: 一款勒索软件的详细分析