Hawkeye逃避机制和反调试技术分析-黑客接单平台

“Hawkeye Keylogger”是一款在暗网上出售的信息盗取软件,自2013年以来一直在不断发展,也增加了许多新的功用和技能。它的主要功用便是从各种应用程序(主要是电子邮件客户端、Web浏览器和FTP客...

“Hawkeye Keylogger”是一款在暗网上出售的信息盗取软件,自2013年以来一直在不断发展,也增加了许多新的功用和技能。它的主要功用便是从各种应用程序(主要是电子邮件客户端、Web浏览器和FTP客户端)处搜集凭证,并经过协议(如FTP,HTTP和SMTP)将它们发送给要挟行为者。 Cybaze-Yoroi ZLAB将经过最近的Hawkeye样本对其躲避机制和运用Visual Basic封装器施行的反调试技能作阐明。 技能剖析 样本文件是一个ISO映像,其中有一个实践为PE文件的bat文件,咱们能够提取bat文件并将其扩展名替换为“exe”。

图1:伪bat文件

表1:PE文件的信息 ISO文件的AV检出率较低,近年来运用ISO文件进犯的方法也变得越来越盛行,只要从ISO中提取出可履行文件才干进步检出率:

图2:ISO压缩文件(左)和提取文件(右)的AV检测 PE文件包括Visual Basic 5.0的存根,它能维护歹意软件的中心并使剖析复杂化:

图3:Visual Basic封装程序 如上所示,歹意软件是用Visual Basic 5.0编写的,能够经过ad-hoc反编译器来处理。

图4:VB代码反编译成p-code 反编译后的代码被混杂过,想要获取感染机制更多信息的仅有解决方案是调试程序。 为了使剖析复杂化,进犯者第一个技巧是动态地创立一个新的内存段,经过“VirtualAlloc”函数向里注入一些代码。歹意软件对该段代码解码后,会挑选一个随机的新虚拟地址空间来分配内存,在本例中是“0x00260000”加载到了EAX寄存器中。

图5:经过VirtualAlloc API分配内存 GetTickCount反调试技能 在新分配的区域内切换上下文之后,歹意软件选用“GetTickCount()”反调试技能。依据MSDN文档,GetTickCount检索自系统启动以来经过的毫秒数,最多为49.7天。歹意行为者经过运用这个API调用来检索进程履行的时刻,假如超越预设的阈值,则歹意程序停止履行:

图6:GetTickCount例程一个新的地址空间 创立地址空间的第一个歹意操作是调用GetTickCount API,成果是:

图7:EAX寄存器中的GetTickCount成果 GetTickCount函数的成果存储在EAX寄存器中。歹意软件在完结其他解密操作后会持续调用它。

图8:GetTickCount的减法反调试技巧 在第2次调用GetTickCount之后,会当即将上图所示的两个值相减,并将其放在EAX寄存器中。下一条指令是EAX寄存器和预先设置的阈值“0x5DC”之间的比较,“0x5DC”是十进制表明的1500。依据Microsoft文档,GetTickCount函数的分辨率为10ms,因而咱们能够推断出进犯者的断定阈值为15秒。有理解了这个技巧之后,很简单绕过它持续剖析样本。

图9:运转有用负载的ShellExecute例程 歹意软件会分配另一个内存空间来编写带有MZ头的文件,并经过“ShellExecute”API函数翻开文件。此刻,另一段隐藏在资源中的代码也呈现了,这段代码在反调试技巧呈现之前并不存在:

图10:原始exe和自修正exe之间的资源比较 如上图所示,原始文件(左边)仅显现图标和清单作为资源,而自操作文件则在“RCData”中显现了一个名为“__”的资源,它是加密的终究payload。

图11:歹意资源检索例程 为了维护自己让剖析变得愈加困难,歹意软件经过“CreateProcessInternalW”API调用从头生成自己: [1][2][3]黑客接单网

  • 发表于 2021-04-16 20:05
  • 阅读 ( 211 )
  • 分类:互联网

0 条评论

请先 登录 后评论
小东说缅北
小东说缅北

692 篇文章

你可能感兴趣的文章

相关问题