文章教程

如何逆向破解HawkEye keylogger键盘记录器进入攻击者邮箱

5/9/2018 10:54:41 PM 人评论 次浏览

面对恶意邮件攻击,我们就只能默默忍受被他攻击,连自我保护能力都没有谈什么反抗?让人痛快的是,如今有了解决办法,逆向破解键盘记录器,进入攻击者邮箱。

这一切要从一次恶意邮件攻击活动开始。下图为我们最近监测到的一个以恶意文件为发送附件的邮件攻击,请注意邮件信息中的英语写作水平是多么差劲,其实,这也是恶意邮件的一个特点,还请收件人提高警惕。

01.jpg

邮件样本

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

02.jpg

被加密混淆的RTF文件

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

03.jpg

shellcode 的16进制字符串

漏洞攻击负载

04.jpg

下载的可执行文件

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

05.jpg

Hawkeye 键盘记录的主体

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

06.jpg

HawkEye Keylogger 功能列表

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

 

07.jpg

    

Keylogger’的例行程序

同时,该Keylogger也在受感染的系统中释放以下文件:

%Temp%\sysinfo.txt–恶意程序的执行路径

%Appdata%\pid.txt–恶意进程ID

%Appdata%\pidloc.txt–恶意程序可执行文件的位置

之后,我想通过观察Keylogger的网络外联活动以获取其远程管理控制IP地址

08.jpg

受感染主机的网络包

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

09.jpg  

被感染keylogger的主机向攻击者远程控制管理邮件发送本机相关信息  

这些信息包括:

计算机名称(或CPU信息)

本地日期和时间

系统语言

安装的操作系统 

系统开发平台

操作系统版本

系统内存

开发框架

系统权限

默认浏览器

安装的防火墙

内部IP地址

外部IP地址

电子邮件密码和相关设置

浏览器设置和FTP密码

如前所述,该Keylogger软件是利用.NET框架编写的,所以接下来我用.NET 编译器ILSpy来完成这项任务。

10.jpg

Hawkeye keylogger 反编译代码

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

键盘记录:

11.jpg  

键盘记录程序

剪贴板操作记录:

 

12.jpg

剪贴板操作例行程序

窃取浏览器、邮件客户端、FTP密码,它还试图窃取密码管理器凭据和系统密码:

13.jpg

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

   

14.jpg

 USB 感染程序

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

15.jpg

Steam游戏平台感染程序

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

16.jpg

邮件发送程序

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

17.jpg

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

18.jpg                     

keylogger配置信息

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

19.jpg

解密函数调用

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

20.jpg

解密程序

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

21.jpg

keylogger 使用的加密方法

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

22.jpg

经过解密的攻击者的远程控制邮箱和FTP信息

当然,最终我还是好奇地登录了攻击者的远程控制管理邮箱。

23.jpg

攻击者的远程控制管理邮箱登录界面

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

24.jpg

受害者邮箱系统被设置了自动转发功能

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