Kraken攻击恶意样本
2020-12-16 18:58:00 Author: mp.weixin.qq.com(查看原文) 阅读量:137 收藏

本文为看雪论优秀文章

看雪论坛作者ID:L0x1c


启动宏的时候会报错。
查看宏,该宏使用CactusTorch VBA模块发起无文件攻击。
主要定义了十六进制格式的序列化对象,其中包含一个正在加载到内存中的.Net。
宏主要使用Kraken.Kraken定义了一个入口类,Set fmt = CreateObject("System.Runtime.Serialization.Formatters.Binary.BinaryFormatter") 创建一个序列化的BinaryFormatter对象,并反序列化对象,Set o = d.DynamicInvoke(al.ToArray()).CreateInstance(entry_class) 通过调用DynamicInvoke,从内存中加载并执行.Net。
序列化文件: 
提取c#序列化文件。
可以看到其中含有一段PE文件的部分。
PE文件进行提取,可以百分百确定是个c#文件了。
CactusTorch框架能够将名为Kraken.dll的.Net编译二进制文件加载到内存中,并通过Word中的VBScript执行它,此有效负载将Shellcode注入WerFault.exe,WerFault.exe是连接到WER服务并由Microsoft用来跟踪和解决操作系统错误的进程。
当Windows功能或应用程序相关的错误发生时,通常会调用该报告服务WerFault.exe,当受害者看到在其计算机上运行WerFault.exe时,他们可能会假设发生了一些错误,而在这种情况下,他们实际上已成为攻击的目标。
可以看到Kraken模块将shellcode注入c:\windows\syswow64\werFault.exe中。

可以看到注入了大概1w+的数值,可以看到shellcode通过loader进行载入。 
通过MapAndStart进行了跨进程注入,主要使用了writeprocessmemory,readprocessmemory,resumethread这些api进行shellcode注入。
注入的代码提取
ida分析:通过dllentrypoint的dllmain_dispatch调用dllmain函数执行dll。
创建线程: 
通过GetTickCount函数来计算是否再沙箱里进行检测,如果计算出的result != 2 退出,因为两次的睡眠前后调用两次,所以 == 2。 
检查是否在虚拟机中运行。 
检查是否在调试状态:
virtualalloc分配了可执行的内存空间,用解密的shellcode放入内存中,在CreateThread中执行。 

过掉这些反调试后,到达最后的shellcode的位置。 
通过loadlibrary加载api后解密出http类的api进行链接。
通过HTTP的API可以最后得到相应的URL:
http://www.asia-kotoba.net/favicon32.ico。
如果返回成功将会去相应的新分配的内存位置执行,应该是网站上存有的shellcode,但是此链接现在已经失效了,Shellcode无法进行进一步分析。

- End -

看雪ID:L0x1c

https://bbs.pediy.com/user-home-873515.htm

 *本文由看雪论坛 L0x1c 原创,转载请注明来自看雪社区。

# 往期推荐

公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]

球分享

球点赞

球在看

点击“阅读原文”,了解更多!


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458378391&idx=2&sn=505ac93cbf2986062381fa5781d9dd12&chksm=b180d01d86f7590b30531db91f539f4a4917dd7f093985cef0a8fa1e944dec2a646396dc2908#rd
如有侵权请联系:admin#unsafe.sh