如何使用codecaves对PE文件植入后门代码

如何使用codecaves对PE文件植入后门代码,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

为武陟等地区用户提供了全套网页设计制作服务,及武陟网站建设行业解决方案。主营业务为网站制作、网站建设、武陟网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

小编将介绍使用codecaves对PE文件植入后门代码。有几个很好的工具可以帮到你了。比如BackdoorFactory和Shelter将完成相同的工作,甚至绕过一些静态分析几个防病毒。

开始

让我们理解一些术语:

PE文件:

可移植可执行文件(PE)格式是可执行文件,目标代码和DLL的文件格式,用于32位和64位版本的Windows操作系统。

Code Cave:

根据维基百科介绍 :

Code Cave是进程内存中的一系列空字节。进程内存中的Code Cave通常是对代码的脚本函数一部分的引用,这些函数具有注入自定义指令的能力。例如,如果脚本的内存允许5个字节并且只使用3个字节,则剩余的2个字节可用于向脚本添加外部代码。“

Shellcode:

根据维基百科介绍:

“shellcode是具有payload的一小段代码。它被称为”shellcode“,因为它通常启动一个命令shell,攻击者可以通过该shell控制被入侵的机器,所以任何执行类似任务的代码都可以称为shellcode“    

让我们开始吧 ....你可以从这里下载我用过的Putty版本。我将使用Immunity Debugger进行调试。您可以使用任何其他调试器,如Ollydbg。首先,我们需要找到可用的Code Cave,然后插入恶意代码。您可以添加一个部分或修改现有的部分来使用Code Cave。我使用cave-miner脚本来定位可用的未使用字节。如何使用codecaves对PE文件植入后门代码可以看到cave从00445CD5开始。我将从00445CD6注入我的shellcode。接下来,我将劫持程序的入口点并将执行流程重定向到我们的shellcode。首先,我们必须使用Lord PE或任何PE头编辑器工具使.data部分可执行。完成后,我们复制入口点的前几条指令并将其保存在记事本中。如何使用codecaves对PE文件植入后门代码插入第一条指令JMP 00445CD6,这可以将执行流程重定向到我们新发现的code cave。通过JMP指令回复入口点之后,我们需要记录下哪些指令被覆盖,因为这些指令需要在以后恢复。现在,让我们来了解部分指令:

1.PUSHAD
2.PUSHFD
3.Shellcode
4.Stack Allignment(堆栈对齐)
5.POPFD
6.POPAD
7.RETORE instructions
8.JMP to next instruction(JMP到下一条指令PUSHAD指令)

PUSHAD的用法与写作是一样的:

Push EAXPush ECXPush EDXPush EBXPush ESPPush EBPPush ESIPush EDI

POPAD以相反的顺序从堆栈中弹出值,从而恢复所有寄存器值。PUSHADPOPAD可用于执行通用寄存器的保存和恢复,而无需按下每个寄存器的PUSH和POP。同样,PUSHFDPOPFD用于保存和恢复EFLAGS寄存器。在PUSHFD指令在 code cave中以十六进制格式和二进制的方式从mstoxic生成一个反向tcp shell代码。    如何使用codecaves对PE文件植入后门代码在shellcode执行之前和shellcode执行之后记下ESP值,以找出差异并对齐堆栈。shellcode执行之前 :如何使用codecaves对PE文件植入后门代码shellcode执行之后 - 如何使用codecaves对PE文件植入后门代码差值= 0018FF68- 0018FD6C如何使用codecaves对PE文件植入后门代码现在通过将此值添加到esp来对齐堆栈。如何使用codecaves对PE文件植入后门代码如何使用codecaves对PE文件植入后门代码恢复后保存新修改的可执行文件并监听netcat上的反向连接。如何使用codecaves对PE文件植入后门代码一旦我开始putty,它就卡住了,除非我关上反向连接。这是问题是因为在msfvenom shellcode中使用了一个名为WaitforSingleObject的函数。

这有一篇很好的文章关于如何解决这个问题 https://simonuvarov.com/msfvenom-reverse-tcp-waitforsingleobject/ 

Msfvenom shellcode使用INFINITE作为dwMilliseconds参数的值。通过将dwMilliseconds参数值从-1设置为0来修复waitforsingleobject问题(由于我使用NOP替换的dec esi指令)。如何使用codecaves对PE文件植入后门代码最后把它修复并保存可执行文件,大功告成 !!!!!!!!!!!!!!!!

POC

如何使用codecaves对PE文件植入后门代码

最后

一旦打开putty.exe,它就会产生一个反向shell。..Happy Hacking .. :) 

看完上述内容,你们掌握如何使用codecaves对PE文件植入后门代码的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


分享名称:如何使用codecaves对PE文件植入后门代码
浏览路径:http://ybzwz.com/article/ggccgp.html