|
一、描述
这是一种全新的 Shellcode 注入技术,可以避开 AVs 和 EDR。这项技术的灵感来自 Module Stomping,两者有一些相似之处。直到 2022 年 1 月 23 日,hollows-hunter 都没发现它。
这种技术的最大优点是 它不会覆盖整个模块或 PE,只覆盖一个函数,目标进程仍然可以使用目标模块中的任何其他函数。
缺点是它不能适用于野外的所有函数 (但它适用于大多数函数),确切的解释在我的博客中讲到:The Good, The Bad And The Stomped Function。
注意:如果是 msfvenom/metasploit 的特征,AV 可能会对此进行标记!你只需要更改 Shellcode 或对其进行加密。
二、用法
有两种使用方法,一种是用在 C++ 中,另一种是在 Rust 中,以下为 C++ 中使用粟子:
- #include "functionstomping.hpp"
- int main() {
- // Just get the pid in any way and pass it to the function.
- DWORD pid = 3110;
- FunctionStomping(pid);
- return 0;
- }
复制代码
此项目的源代码头文件中,包含的 Shellcode 代码只是简单弹出一个计算器,在本地测试如下:
或在 Rust 中使用:
1> 将项目克隆到本地
2> cargo b
3> 注入到指定进程中 (notepad.exe)
运行此程序后,必须从远程进程调用该函数!(如果使用了默认函数 CreateFile,那么必须从远程进程调用它!)。在此示例中,注入到的进程为 notepad.exe,保存一个文本文件时注入才会生效。
三、致谢
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
评分
-
查看全部评分
|