如何逆向破解HawkEye keylogger键盘记录器进入攻击者邮箱
面对恶意邮件攻击,我们就只能默默忍受被他攻击,连自我保护能力都没有谈什么反抗?让人痛快的是,如今有了解决办法,逆向破解键盘记录器,进入攻击者邮箱。
这一切要从一次恶意邮件攻击活动开始。下图为我们最近监测到的一个以恶意文件为发送附件的邮件攻击,请注意邮件信息中的英语写作水平是多么差劲,其实,这也是恶意邮件的一个特点,还请收件人提高警惕。

邮件样本
在这封邮件中其附件以“.doc”文件扩展名结尾,但其实这是一个RTF(富文本)格式文件,文件被嵌入了一个精心构造的cve-2010-3333漏洞利用脚本,漏洞产生原因为微软office文件格式转换器在处理RTF文件“pfragments”参数属性时存在栈缓冲区溢出,远程攻击者可以借助特制的RTF数据执行任意代码,该漏洞又名”RTF栈缓冲区溢出漏洞”,但微软官方已在5年前就已修复了漏洞。

被加密混淆的RTF文件
在上图中你可以看到,漏洞利用代码中的shellcode字段被模糊变形以避免杀毒软件的检测,在经过代码提取、清理和解密之后,我确定了漏洞利用代码的shellcode将会从一个未知域名volafile.io下载并执行某些文件。

shellcode 的16进制字符串
漏洞攻击负载

下载的可执行文件
经过分析,从volafile.io 下载的文件是一个.NET可执行文件,通过十六进制文件分析之后可以得到一个有趣的线索,编码中出现了“HawkEyekeylogger”字段。

Hawkeye 键盘记录的主体
通过GOOGLE搜索技巧,最终我找到了开发该Keylogger软件的网站,在网站上,他们声称并列出了所有“HawkEyekeylogger”具备的“牛X的功能”。

HawkEye Keylogger 功能列表
在我的动态分析中发现,该Keylogger在一个名为%appdata%的文件夹下释放自身副本,启动一个名为windowsupdate.exe的程序为运行进程,并设置进程启动信息为随机自启动,实现与系统同时启动。

Keylogger’的例行程序
同时,该Keylogger也在受感染的系统中释放以下文件:
%Temp%\sysinfo.txt–恶意程序的执行路径
%Appdata%\pid.txt–恶意进程ID
%Appdata%\pidloc.txt–恶意程序可执行文件的位置
之后,我想通过观察Keylogger的网络外联活动以获取其远程管理控制IP地址

受感染主机的网络包
一段时间之后,被Keylogger感染的主机就开始向攻击者邮箱发送信息了

被感染keylogger的主机向攻击者远程控制管理邮件发送本机相关信息
这些信息包括:
计算机名称(或CPU信息)
本地日期和时间
系统语言
安装的操作系统
系统开发平台
操作系统版本
系统内存
开发框架
系统权限
默认浏览器
安装的防火墙
内部IP地址
外部IP地址
电子邮件密码和相关设置
浏览器设置和FTP密码
如前所述,该Keylogger软件是利用.NET框架编写的,所以接下来我用.NET 编译器ILSpy来完成这项任务。

Hawkeye keylogger 反编译代码
我把“HawkEye keylogger”开发网站上声称具备的“牛X的功能”,与反编译源代码时认真对照,可以肯定的是其功能确实很厉害。这以下就是其具备的功能:
键盘记录:

键盘记录程序
剪贴板操作记录:

剪贴板操作例行程序
窃取浏览器、邮件客户端、FTP密码,它还试图窃取密码管理器凭据和系统密码:

还有一个将keylogger通过USB传播感染到其它系统主机的蠕虫程序:

USB 感染程序
它还针对在线游戏平台Steam用户,通过删除电脑上储存的游戏配置数据和登录信息,强制用户再次登录,然后利用键盘记录程序窃取用户的登录密码。

Steam游戏平台感染程序
另外,HawkEye keylogger还通过邮件反弹和FTP方式窃取被感染系统的桌面截屏,以确定其程序是否被正确配置。

邮件发送程序
攻击者也可以配置键盘记录软件,通过HTTP通道上传被盗信息至一个PHP主机,但这部分代码似乎是空的。

最有趣的是我在反编译代码中发现了一个名为form1()的C#构造函数,这就是HawkEye keylogger软件的配置存储函数,但攻击者使用了base64对远程控制和管理的电子邮件和FTP信息进行了加密隐藏。

keylogger配置信息
但是,这些加密的数据并不总是安全的,特别是当反编译源代码中就可以看出解密程序来时

解密函数调用
下图就是解密函数,它包含两个字符串参数encrypted bytes和secretkey,密钥字符串是固定的硬编码hawkspysoftwares

解密程序
同时,HawkEye keylogger使用者还使用了Unicode字符串 “099u787978786″对密码字符串进行加盐处理

keylogger 使用的加密方法
出于好奇,我复制了代码的解密部分,并进行了相应修改,在MS VisualStudio程序下编译,最终解密成功,包含了邮件和FTP账户密码(对不起,我需要对解密信息进行模糊处理)

经过解密的攻击者的远程控制邮箱和FTP信息
当然,最终我还是好奇地登录了攻击者的远程控制管理邮箱。

攻击者的远程控制管理邮箱登录界面
在攻击者的控制管理邮箱里,我发现了受害者被窃取的电子邮件信息,并尝试进行了登录,让人惊讶的是,受害者的电子邮件系统中被设置了邮件转发功能,受害者所有的收发邮件被自动转发到了攻击者的另外一个邮箱seemaexport3@gmail.com。

受害者邮箱系统被设置了自动转发功能
在对此次攻击分析之后,我们又发现了另外一个包含CVE-2012-0158漏洞利用代码的RTF邮件攻击。虽然这两个漏洞都比较过时了,但仍然被广泛用于邮件攻击中。