返回介绍

Payload 生成分析后续补充

发布于 2024-06-01 22:17:40 字数 1207 浏览 0 评论 0 收藏 0

本章节是对上一个章节Payload生成分析的补充内容

CS从4.1后Beacon修补措施发生了一些变化在这里进行一下补充

随便找一个4.1往后版本的Beacon.dll(需要提前解密,解密脚本在本文的git上)查看导出的反射函数ReflectiveLoader会发ReflectiveLoader函数相比较之前有所变化全部变成了nop或int3指令

这是因为在4.1以后cs会根据c2配置文件的allocator选项自动选择合适的反射加载器(Reflective Loader)然后对dll进行修补

根据调用的函数不同分为HeapAlloc、MapViewOfFile 和 VirtualAlloc这三种

原先cs是根据标志位在运行时判断使用哪个函数现在cs则是根据这三种函数编译出来的三种BOF(OBJ文件)

根据C2配置选择对应的反射加载器,默认为BeaconLoader.VA

注:因为反射函数本身就是一个shellcode所以修复obj时无需修复导入表也没有导入表,只需要修复重定有关这部分可以参考Beacon Object File(BOF实现原理)不在说了

最后的BeaconLoader.VA和BeaconLoader并无太大区别只不过.VA带有一点内存解密会根据NumberOfSymbols判断是否需要解密

这样做也好自己也可以写OBJ文件修补加载器函数

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文