我是一枚从事网络安全行业十余年的小师哥🫡,做过红队技术支持,也做过技术开发leader,乐于分享技术,喜欢结交朋友。
- 这是我做的一个关于shellcode入门和开发的专题课👩🏻💻,主要面向对网络安全技术感兴趣的小伙伴,属于实战、经验性内容,里面的每一个操作我都亲测过。
- 本专栏内容也有对应的视频版课程▶️,需要看视频版的小伙伴可以私信我get折扣券(@imbyter)
传统的exe文件执行都是在自己的进程空间中,而shellcode本身没有固定的执行进程,它取决于加载器将它“安排”到哪个进程,它就在哪个进程执行。这种以进程“寄宿”方式执行的方式就被称为进程注入。
shellcode进程注入方式有很多种,通常使用CreateRemoteThread实现远程线程注入最为常规,其基本原理为:
- 使用函数OpenProcess打开目标进程句柄;
- 使用函数VirtualAllocEx实现在目标进程中申请内存空间;
- 使用函数WriteProcessMemory在目标进程中写入shellcode;
- 使用函数CreateRemoteThread在目标进程中创建线程,将shellcode运行起来。