前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何提取LokiBot的Shellcode

如何提取LokiBot的Shellcode

作者头像
FB客服
发布2021-10-11 16:01:45
8520
发布2021-10-11 16:01:45
举报
文章被收录于专栏:FreeBuf

使用 LokiBot 的一个在野样本进行分析。

OLEDUMP

使用oledump工具可以看到

EncryptedPackage内有很多数据:

在这种情况下,一般意味着工作簿中一个或多个 Sheet 被加密锁定保护。

可以使用 msoffcrypto-crack.py处理该文档:

我们可以使用 msoffcrypto-crack.py 破解密码并新建一个没有密码保护的同名文件:

也可以直接提取内容通过管道传递给 oledump.py。但在其中并未发现宏代码,而是发现了 eQUaTiON naTIvE:

将对象的 eQUaTiON naTIvE部分转存到另一个文件中,以便可以对其进行处理:

可以使用 XORSearch.exe在二进制文件中搜索 32 位 Shellcode 各种签名。可以看到在两处匹配到了 GetIP:

scDbg.exe

接着使用 Shellcode 模拟器 scDbg.exe 加载转存的二进制文件,并填入偏移位置以查看是否出现某种解码的 Shellcode:

深入查看转存的 oledump.unpack 文件的 402438 处,如下所示。

使用工具cut-bytes.py查看oledump.unpack可以发现字符串如

LoadLibraryW

ExpandEnvironmentStringsW

APPDATA\vbc.exe

http://frndgreen等:

再次使用 scDbg.exe 剪切必要的部分:

使用scDbg.exe直接处理oledump-cut.unpack会遇到问题,

除了 ExpandEnvironmentStringsW 什么都发现不了:

文章阐述了如何处理该问题。

事实证明,scDbg.exe 不会 Hook 函数 ExpandEnvironmentStringsW,但是会 Hook 函数 ExpandEnvironmentStringsA。可以尝试使用 ExpandEnvironmentStringsA代替 ExpandEnvironmentStringsW,在保存更改后再使用 scDbg.exe 运行:

另一个选择是直接通过命令行覆写该字符。通过查看上面的十六进制,可以发现需要修改的位置在 0x77 处,可以用如下方式将其添加到 scDbg.exe 的起始点

这样我们就得到了很清晰的 ShellCode 内容。

参考来源:

https://clickallthethings.wordpress.com/2020/03/31/lokibot-getting-equation-editor-shellcode/

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 FreeBuf 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • OLEDUMP
  • scDbg.exe
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档