前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何使用SilentMoonwalk实现完整动态调用栈欺骗

如何使用SilentMoonwalk实现完整动态调用栈欺骗

作者头像
FB客服
发布2023-08-08 19:16:37
发布2023-08-08 19:16:37
42400
代码可运行
举报
文章被收录于专栏:FreeBufFreeBuf
运行总次数:0
代码可运行
关于SilentMoonwalk

SilentMoonwalk是一个针对完整动态调用栈欺骗技术的PoC实现,该工具所实现的技术可以帮助广大研究人员从调用栈中移除原始的调用者信息,并使用ROP对控制流执行去同步化解绑操作。

工具运行机制

该工具使用了去同步栈来完全隐藏原始调用栈,同时从中删除了EXE镜像库。随后,该工具还会调用ROP工具来恢复原始堆栈。在代码中,这个过程会在一个循环中重复10次,以证明其稳定性。

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

代码语言:javascript
代码运行次数:0
运行
复制


git clone https://github.com/klezVirus/SilentMoonwalk.git

工具构建

接下来,使用Visual Studio加载项目并构建项目代码即可。

如需构建PoC项目代码,请确保检查以下几个条件:

1、禁用GS(/GS-); 2、禁用代码优化(/Od); 3、禁用整个程序优化(移除/GL); 4、禁用大小和速度首选项(移除/Os、/Ot); 5、启用intrinsic(/Oi);

工具使用

在代码库中,我们可以找到一些关于运行时函数审计的功能代码,可以帮助广大研究人员分析运行时函数条目:

代码语言:javascript
代码运行次数:0
运行
复制
UnwindInspector.exe -h



 Unwind Inspector v0.100000



 Mandatory args:

   -m <module>: Target DLL

   -f <function>: Target Function

   -a <function-address>: Target Function Address

样例输出:

代码语言:javascript
代码运行次数:0
运行
复制
UnwindInspector.exe -m kernelbase -a 0x7FFAAE12182C

[*] Using function address 0x7ffaae12182c



  Runtime Function (0x000000000000182C, 0x00000000000019ED)

  Unwind Info Address: 0x000000000026AA88

    Version: 0

    Ver + Flags: 00000000

    SizeOfProlog: 0x1f

    CountOfCodes: 0xc

    FrameRegister: 0x0

    FrameOffset: 0x0

    UnwindCodes:

    [00h] Frame: 0x741f - 0x04  - UWOP_SAVE_NONVOL     (RDI, 0x001f)

    [01h] Frame: 0x0015 - 0x00  - UWOP_PUSH_NONVOL     (RAX, 0x0015)

    [02h] Frame: 0x641f - 0x04  - UWOP_SAVE_NONVOL     (RSI, 0x001f)

    [03h] Frame: 0x0014 - 0x00  - UWOP_PUSH_NONVOL     (RAX, 0x0014)

    [04h] Frame: 0x341f - 0x04  - UWOP_SAVE_NONVOL     (RBX, 0x001f)

    [05h] Frame: 0x0012 - 0x00  - UWOP_PUSH_NONVOL     (RAX, 0x0012)

    [06h] Frame: 0xb21f - 0x02  - UWOP_ALLOC_SMALL     (R11, 0x001f)

    [07h] Frame: 0xf018 - 0x00  - UWOP_PUSH_NONVOL     (R15, 0x0018)

    [08h] Frame: 0xe016 - 0x00  - UWOP_PUSH_NONVOL     (R14, 0x0016)

    [09h] Frame: 0xd014 - 0x00  - UWOP_PUSH_NONVOL     (R13, 0x0014)

    [0ah] Frame: 0xc012 - 0x00  - UWOP_PUSH_NONVOL     (R12, 0x0012)

    [0bh] Frame: 0x5010 - 0x00  - UWOP_PUSH_NONVOL     (RBP, 0x0010)
代码语言:javascript
代码运行次数:0
运行
复制

工具运行截图

许可证协议

本项目的开发与发布遵循BSD-3-Clause开源许可证协议。

项目地址

SilentMoonwalk:https://github.com/klezVirus/SilentMoonwalk

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 工具运行机制
  • 工具下载
  • 工具构建
  • 工具使用
  • 工具运行截图
  • 许可证协议
  • 项目地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档