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

Kronos恶意软件研究(part 1)

来源:本站整理 作者:佚名 时间:2017-09-04 TAG: 我要投稿

上面可以或许看到被沾染进程内存中的shellocode:
 

运转时,它将会对受沾染进程的地点空间中的以下函数履行hook操纵:
ZwCreateFile
NtOpenFile
ZwQueryDirectoryFile
NtEnumerateValueKey
RtlGetNativeSystemInformation
NtSetValueKey
ZwDeleteValueKey
ZwQueryValueKey
NtOpenProcess
Kronos上面的实现与MalwareTech在2015年1月的博客上描写的一个hook引擎类似。经由进程对Kronos hook引擎的阐发,咱们发明Kronos的这一部门确切起源于MalwareTech的设法主意。但是,事实证明,这类技巧早就呈现了(即在这里,//感激  @xorsthings的链接)。
在履行hooking操纵时代很有可以或许会碰到并发的成绩,由于假如对一个函数正在履行改动操纵的同时另一个线程也必要挪用这个函数,那末就会招致应用法式将瓦解。因此为了防止这类情况,最佳经由进程单个汇编指令来履行hook操纵。MalwareTech引擎中应用 lock cmpxch8b指令来实现这个目标,类似的实现可以或许在Kronos中找到。
经由进程阐发咱们发明Kronos歹意软件应用的hooking函数必要两个参数:要hook的函数地点和用作署理的函数地点,下图所示的是植入的shellcode中的一个代码片断,在该代码片断中hooking函数被挪用:
 

起首,hooking函数在被进击函数的代码中搜刮适合的地位以用来履行hook操纵:
 

以上代码功效的实现可以或许在github上找到:
https://github.com/MalwareTech/BasicHook/blob/master/BasicHook/hook.cpp#L103
而后,歹意软件履行hook操纵:
 

咱们发明,MalwareTech github上的代码实现和上述履行的hook操纵险些雷同:
https://github.com/MalwareTech/BasicHook/blob/master/BasicHook/hook.cpp#L77
下图所示的是Kronos歹意软件对ZwResumeThread函数履行hook操纵的一个例子,从图中咱们可以或许看到,lock cmpxch8b指令确切被用来改动函数开端的代码:
 

Hook操纵实现后,每当受沾染的进程挪用被hook的函数时,履即将重定向到歹意模块中的署理代码:
 

Kronos应用的hook机制全体看起来加倍繁杂,由于Kronos歹意软件应用的是一个shellcode而不是一个PE文件,在实现上难度就曾经很高了,歹意软件作者必需本身填写一切的函数地点。并且,Kronos的作者在猜测实际场景可以或许碰着的成绩上也表现出更多的履历。比方,他分外留意反省代码能否没有被其余木马或监控对象hook:
 

进击浏览器
Kronos歹意软件将一个额定的模块(injlib-client.dll)注入到浏览器,上面咱们可以或许看到一个注入到Firefox地点空间的一个DLL的例子:
 

歹意软件在后期注入的shellcode的赞助下启动注入模块:
 

经由进程阐发咱们可以或许发明,歹意软件对被进击浏览器导入的一些函数履行了hook操纵,以便经由进程它们的一切数据都可以或许被Kronos模块截获到,而后将被挂钩 API抓取的数据发送到主模块,主模块在阐发和处置以后将数据申报给C&C服务器。
论断
整体来讲,Kronos的应用技能注解,该作者在制造歹意软件方面具备丰硕的履历。歹意软件的实现上代码是完备混杂的,并且还必要认识操纵系统的一些底层操纵技能。作者不只应用了风趣的技能,并且还以适合的逻辑和办法将它们衔接起来,因此咱们感到,Kronos歹意软件是由一个履历丰硕的开辟职员开辟的。

上一页  [1] [2] [3] [4] 

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