欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

勒索病毒“GPGQwerty”的分析与复现

来源:本站整理 作者:LiukerTeam 时间:2018-04-03 TAG: 我要投稿

3月初,勒索软件“GPGQwerty”是由 @MalwareHunterTeam 发现,它利用了合法的软件 GnuPG 来加密受害者的文件、覆盖原始文件,并将 .qwerty 扩展名附加到被加密文件的文件名中。
GnuPG,也称 GNU Privacy Guard 或 GPG。它是加密工具 PGP(Pretty Good Privacy)的非商业化版本,用于对 Email、文件及其他数据的收发进行加密与验证,确保通信数据的可靠性和真实性。
0×01 分析
说明:图5、图6、图7都来自于复现样本。
根据 McAfee 对样本的分析,共发现 GPGQwerty 的3个相关的样本,其 SHA-256 值分别为:
2762a7eadb782d8a404ad033144954384be3ed11e9714c468c99f0d3df644ef5
39c510bc504a647ef8fa1da8ad3a34755a762f1be48e200b9ae558a41841e502
f5cd435ea9a1c9b7ec374ccbd08cc6c4ea866bcdc438ea8f1523251966c6e88b
庆幸的是 GPGQwerty 需要其他文件的支持才能运行,正因如此,所以 GPGQwerty 是一组文件,该组文件共有10个文件,其 SHA-256 值如下:

图1 GPGQwerty样本SHA-256值
而其中的 key.bat、run.js、find.exe 是在加密过程中起着至关重要作用的三个文件,感染的过程如下图:

图2 GPGQwerty的感染过程(图片来源:McAfee Blogs)
从图2中,第一个要启动的文件是 key.bat 文件,作为勒索软件的主要启动程序,其内容如下:

图3 key.bat
在导入密钥后,key.bat 将启动 run.js,该文件将执行 find.exe(主程序),其内容如下:

图4  run.js
从图4中可知,find.exe 需要指定即将加密的驱动器盘符。
主程序 find.exe 通过用 taskkill 命令来终止一些进程,如图5:

图5 find.exe中使用taskkill命令
然后,find.exe  使用 GnuPG(gpg.exe )对文件进行加密,并将 .qwerty 扩展名附加到被加密文件的文件名中。

图6 gpg.exe加密文件
文件加密后,find.exe 会使用 shred.exe 覆盖原始文件。

图7 shred.exe覆盖原始文件
最后,它会在每个包含加密文件的文件夹中创建一个名为 readme_decrypt.txt,其内容就是跟勒索者联系的联系方式,付款后就给你解密。
Ok,GPGQwerty 就分析完了,接下来就是对它的复现。
0×02 复现准备
在介绍复现之前,先介绍一下复现的环境~
1. 环境
生产机:
系统:Windows 7 ultimate sp1 x64
工具:
Visual Studio 2008
IDA Pro 6.8
靶机:
系统:Windows 7 ultimate sp1 x64
测试机:
系统:Windows XP Professional sp3 x86
依赖组件:
GnuPG:
文件:gpg.exe、iconv.dll
下载地址:https://www.gnupg.org/ftp/gcrypt/binary/gnupg-w32cli-1.4.22.exe
GnuWin32:
文件:libiconv2.dll、libintl3.dll、shred.exe
下载地址:https://jaist.dl.sourceforge.net/project/gnuwin32/coreutils/5.3.0/coreutils-5.3.0.exe
2. 准备
在测试机中,下载并运行 gnupg-w32cli-1.4.22.exe,安装成功后,如图8所示:

图8 GnuPG安装文件
在安装目录(eg. C:\Program Files\GNU\GnuPG)中提取 GPGQwerty 需要的 gpg.exe、iconv.dll 两个文件。
GnuPG 安装完成后,下载并运行 coreutils-5.3.0.exe,安装成功后,如图9所示:

图9 GnuWin32安装文件
在安装目录的 bin 目录(eg. C:\Program Files\GnuWin32\bin)中提取 GPGQwerty 需要的 libiconv2.dll、libintl3.dll、shred.exe 三个文件。
3. 生成密钥
使用 gpg.exe –gen-key 命令生成密钥,如图10所示:

图10 生成密钥
按照图10步骤走,这样密钥就生成了。
接着,就是以 ASCII 码的格式导出公钥、私钥和 owner-trust,命令如下:
# 公钥
$ gpg.exe --armor --export qwerty > qwerty-pub.key

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载