Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
PELoader — 具有多种Shellcode注入技术的PE加载器 | Kitploit
工具/GitHubGitHub/hagrid29/peloader
漏洞利用Shellcode后渗透利用恶意软件分析二进制分析红队Payload 开发
GitHubhagrid29/peloader

PELoader

具有多种Shellcode注入技术的PE加载器

查看仓库
455663年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

PELoader

PELoader 实现了多种 shellcode 注入技术,并使用 libpeconv 库来加载加密的 PE 文件,而不是将 shellcode 注入到远程线程中。

实现了以下技术:

  • Module Stomping (LoadLibrary)
  • Module Stomping (NtMapViewOfSection) (PoC)
  • Transacted Hollowing (PoC)
  • Ghostly Hollowing (PoC)
  • Herpaderply Hollowing(PoC)
  • NtMapViewOfSection (RWX-RW-RX)
  • NtAllocateVirtualMemory (RW-RX)

致谢:我的大部分工作基于 @hasherezade 的 PoC 脚本。

Testing

PELoader 在 Windows 10 上使用 Cortex XDR / SentinalOne / Windows Defender / CrowdStrike 进行了测试,其中 Windows Defender / CrowdStrike 检测到了 Transacted Hollowing 技术。每种技术的特性都使用来自 @forrest-orr 的内存扫描工具 Moneta 进行了测试。

Module Stomping (LoadLibrary)

调用 LoadLibrary 加载一个合法的 DLL,然后用 payload 覆盖该 DLL。

优点

  • payload 映射为 MEM_IMAGE,看起来像合法的 EXE 或 DLL
  • 冒充一个合法的 DLL
  • 节区以原始访问权限映射(无 RWX)

cdll

Module Stomping (NtMapViewOfSection)

调用 NtCreateSection 为合法 DLL 创建文件映射对象(PAGE_READONLY),并调用 NtMapViewOfSection 将其映射到当前进程。然后用 payload 覆盖该 DLL。

优点

  • payload 映射为 MEM_IMAGE,看起来像合法的 EXE 或 DLL
  • 冒充一个合法的 DLL
  • 节区以原始访问权限映射(无 RWX)
  • 未连接到模块列表(对于 Module32First/Module32Next 不可见)

缺点

  • 未连接到模块列表(请参见下面 Moneta 扫描结果中的“Missing PEB module”)

mdll

参考 @hasherezade 的 PoC。

Transacted Hollowing

一种介于 Process Hollowing 和 Process Doppelgänging 之间的混合技术。在 NTFS 事务中创建一个“不可见”文件,并将 payload 写入该文件。将节区映射到当前进程并执行。

优点

  • Payload 映射为 MEM_IMAGE
  • 节区以原始访问权限映射(无 RWX)
  • 虚拟文件不需要事先存在

缺点

  • 如果存在 TxF 活动监控,则会被检测

txf

Ghostly Hollowing

一种介于 Process Hollowing 和 Process Ghosting 之间的混合技术。创建一个处于删除挂起状态的文件,并将 payload 写入该文件。将节区映射到当前进程并执行。

优点

  • Payload 映射为 MEM_IMAGE
  • 节区以原始访问权限映射(无 RWX)
  • 避免出现没有镜像路径的“System Idle Process”(Process Ghosting 的 IOC)

Cron

  • 在磁盘上创建了虚拟文件

ghost参考 @hasherezade 的 PoC。

NtMapViewOfSection (RWX-RW-RX)

调用 NtCreateSection 创建内存节区(RWX)。调用 NtMapViewOfSection 将视图映射到当前进程(RWX)。调用 VirtualProtect 将保护更改为 RW。将 shellcode 复制到映射的节区。将保护更改为 RX 并执行。

优点

  • Payload 映射为 MEM_MAPPED,避免了恶意软件中常见的 MEM_PRIVATE

缺点

  • 初始阶段将内存页面设置为 RWX 保护
  • 映射的 EXE 内存具有 RX 保护,这属于异常情况

map

NtAllocateVirtualMemory (RW-RX)

调用 NtAllocateVirtualMemory 分配内存(RW)。将 shellcode 复制到内存。将保护更改为 RX 并执行。

优点

  • 避免 RWX 内存页面

缺点

  • 将 shellcode 暂存到类型为 MEM_PRIVATE 的私有内存页面
  • EXE 的私有内存具有 RX 保护,属于异常情况

priv

Usage

AES Encrypt Payload

使用 pe_to_shellcode 将 PE 文件转换为 shellcode,并使用 PELoader 进行加密

root@kitploit:~
cmd> .\pe2shc.exe mimikatz.exe
Reading module from: mimikatz.exe
[WARNING] This is a console application! The recommended subsystem is GUI.
[+] Saved as: mimikatz.shc.exe
cmd> set hagrid=enc mimikatz.shc.exe
cmd> .\PELoader.exe
argument: enc mimikatz.shc.exe
Encrypting File

PE Execution

将参数设置到环境变量 "hagrid" 中,然后执行 PELoader

root@kitploit:~
cmd> set hagrid=cdll mimikatz.shc.exe.enc
cmd> .\PELoader.exe  version
argument: cdll mimikatz.shc.exe.enc
Classic DLL Hollowing
[*] target dll: C:\WINDOWS\system32\aadtb.dll
[*] implant dll: mimikatz.shc.exe.enc
[*] Loading the DLL (using LoadLibary, classic DLL hollowing)...
[*] Overwriting the mapping
[*] Module Overloading finished...
[*] Executing Implant's Entry Point: 7ff8cf9d7578
[*] Executing Implant as EXE

  .#####.   mimikatz 2.2.0 (x64) #19041 Aug 10 2021 17:19:53
 .## ^ ##.  "A La Vie, A L'Amour" - (oe.eo)
 ## / \ ##  /*** Benjamin DELPY `gentilkiwi` ( [email protected] )
 ## \ / ##       > https://blog.gentilkiwi.com/mimikatz
 '## v ##'       Vincent LE TOUX             ( [email protected] )
  '#####'        > https://pingcastle.com / https://mysmartlogon.com ***/

mimikatz(commandline) # version

mimikatz 2.2.0 (arch x64)
Windows NT 10.0 build 19043 (arch x64)
msvc 150030729 207

mimikatz #

Improvement

  • @forrest-orr 在这篇文章中对 shellcode 植入的变种进行了详细比较
  • @dglenx 将这个概念迁移到了远程进程注入,并在文章中提出了一些解决 IOC 的方法

References

  • https://github.com/hasherezade/libpeconv
  • https://github.com/hasherezade/module_overloading
  • https://github.com/hasherezade/transacted_hollowing
  • https://www.forrest-orr.net/post/masking-malicious-memory-artifacts-part-iii-bypassing-defensive-scanners
  • https://www.secforce.com/blog/dll-hollowing-a-deep-dive-into-a-stealthier-memory-allocation-variant/
下载工具