一个新的 Shellcode 注入技术
源代码:https://github.com/Idov31/FunctionStomping一、描述
这是一种全新的 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,保存一个文本文件时注入才会生效。
三、致谢
[*]https://github.com/countercept/ModuleStomping
[*]https://www.cyberark.com/resources/threat-research-blog/masking-malicious-memory-artifacts-part-iii-bypassing-defensive-scanners
{:5_150:} 666,内容挺好,值得分享!
页:
[1]