远线程注入
注入到带有签名的白名单程序中
1 |
|
傀儡进程 Process Hollowing
傀儡进程:创建一个进程,然后将其虚拟地址里的内容掏空,注入想要注入的进程,以达到掩人耳目的效果
- 创建挂起进程
CreateProcess(PATH_TO_HOST_EXE, ..., CREATE_SUSPENDED, ...)
便可创建一个挂起状态的进程.
- 创建挂起进程
- 获取进程上下文结构 使用
GetThreadContext()
获取进程上下文(寄存器状态)
- 获取进程上下文结构 使用
- 写入傀儡进程(申请内存空间,写入shellcode)
VirtualAllocEx()
重新分配空间大小为傀儡进程的大小,WriteProcessMemory()
向分配的空间写入傀儡进程.
- 写入傀儡进程(申请内存空间,写入shellcode)
- 恢复现场(设置上下文,恢复线程)
由于目标进程和傀儡进程的入口点一般不同,所以在恢复前需要更改线程入口点,使用
SetThreadContext
函数,最后使用ResumeThread
函数释放运行.
- 恢复现场(设置上下文,恢复线程)
由于目标进程和傀儡进程的入口点一般不同,所以在恢复前需要更改线程入口点,使用
1 |
|
References
https://bbs.pediy.com/thread-224706.htm https://jev0n.com/2020/03/11/65.html https://www.cnblogs.com/bonelee/p/15957493.html https://juejin.cn/post/6844903587626090503#process-hollowing https://www.52pojie.cn/thread-501486-1-1.html https://github.com/m0n0ph1/Process-Hollowing