TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

admin 2024年9月24日12:43:12评论21 views字数 1654阅读5分30秒阅读模式

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

特技转储

TrickDump 转储 lsass 进程而不创建 Minidump 文件,而是生成 3 个 JSON 和 1 个包含内存区域转储的 ZIP 文件。分为三步:

  • 锁定:使用 RtlGetVersion 获取操作系统信息。

  • Shock:使用 NtOpenProcessToken 和 NtAdjustPrivilegeToken 获取 SeDebugPrivilege 权限,使用 NtGetNextProcess 和 NtQueryInformationProcess 打开句柄,然后使用 NtQueryInformationProcess 和 NtReadVirtualMemory 获取模块信息。

  • Barrel:获取 SeDebugPrivilege 权限,打开句柄,然后使用 NtQueryVirtualMemory 和 NtReadVirtualMemory 获取信息并转储内存区域。

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

在攻击系统中,使用create_dump.py脚本生成Minidump文件:

python3 create_dump.py [-l LOCK_JSON] [-s SHOCK_JSON] [-b BARREL_JSON] [-z BARREL_ZIP] [-o OUTPUT_FILE]

该技术的好处是:

  • 磁盘、内存或网络流量中永远不存在有效的 Minidump 文件。

  • 执行整个攻击的并不是一个单一的程序或进程,而是三个独立的程序或进程,因此可能引发较少的警告。

  • 如果您只想运行一个程序,则可以使用Trick。

  • 如果您已经掌握目标机器操作系统的信息,则可以跳过第一步(“锁定”)。

  • 该程序仅使用 NTAPIS(该项目是NativeDump的变体)。

  • 它不使用 OpenProcess 或 NtOpenProcess 来获取具有PROCESS_VM_OPERATION和PROCESS_VM_WRITE访问权限的 lsass 进程句柄。

  • 每个程序都允许覆盖 ntdll.dll 库“.text”部分以绕过 API 挂钩:

  • “disk”:使用磁盘上已有的 DLL。如果不使用第二个参数,则路径为“C:WindowsSystem32ntdll.dll”。

  • knowndlls”:使用 KnownDlls 文件夹。

  • “debugproc”:使用在调试模式下创建的进程。如果不使用第二个参数,则进程为“c:windowssystem32calc.exe”。

它有五种口味:

  • .NET:主分支

  • Python:python-flavour 分支

  • Golang:golang-flavour 分支

  • C/C++:c 风格分支

  • BOF 文件:bof-flavour 分支(正在进行中!)

如果启用了 PPL,它将不起作用,PEB 结构不可读或者二进制文件未编译为 64 位。更新:现在可以不读取 PEB 来执行程序,请检查peb-unreadable 分支:)

用法

该程序在受害系统中执行,创建三个 JSON 文件(包含内存区域信息)和一个 zip 文件(包含每个内存区域转储)。

Lock.exe [disk/knowndlls/debugproc]
Shock.exe [disk/knowndlls/debugproc]
Barrel.exe [disk/knowndlls/debugproc]

您可以直接执行程序,而无需覆盖 ntdll.dll 库:

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

或者使用以下三种不同的覆盖技术之一:

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

然后生成Minidump文件:

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

如果您只想执行一个二进制文件,Trick.exe 将生成一个包含 3 个 JSON 文件的 ZIP 文件和带有内存区域的 ZIP 文件:

Trick.exe [disk/knowndlls/debugproc] [IP_ADDRESS] [PORT]
TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

或者使用第二和第三个参数作为 IP 地址和端口将其发送到远程端口:

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

在这两种情况下,您都会得到一个像这样的 ZIP 文件,解压缩它并创建 Minidump 文件:

TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

项目地址:

https://github.com/ricardojoserf/TrickDump

原文始发于微信公众号(Ots安全):TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIP

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年9月24日12:43:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TrickDump - 仅使用运行 3 个程序的 NTAPIS 转储 lsass 以创建 3 个 JSON 和 1 个 ZIPhttps://cn-sec.com/archives/3202334.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息