我是一台使用Windows XP Professional SP3 x86西班牙语的虚拟机,而且我已禁用DEP。
好吧,我正在执行漏洞利用POPPOPRET_JMPESP.pl进行" Easy RM to MP3 Converter" (是的,教程Corelan的程序),并没有工作,所以我做了2次测试:
第一个,也是成功的,取代跳转到shellcode开头的JMP ESP,用于" CCCC" (\ x43 \ x43 \ x43 \ x43),并尝试执行此方向时产生错误。 Source Screenshot
第二,向JMP ESP提供了一个有效的方向和一个包含许多断点的shellcode。这里由于程序试图执行的方向而产生错误,并且JMP ESP NO仅指向放置的断点。 Source Screenshot
原始筹码为:
缓冲区将填充As
RET ADDRESSS将替换为POP POP RET的方向
4字节的垃圾将被替换为" XXXX"
这里指出ESP执行POP POP RET指令之前,以及 它将被4个NOP取代
4个字节的垃圾,它将被4个NOP取代
ESP将指向的4个字节的垃圾,和 将被替换为JMP ESP,这将占用堆栈 我们提出的RET指令
这是shellcode的开头,就是在哪里 在执行时指出JMP ESP
答案 0 :(得分:0)
您是否正确使用shellcode?
如果是,请检查您的shellcode是否有任何奇怪的字符。该特定程序将停止以NULL字符(0x00)以及其他几个字符复制输入。最简单的方法是找到shellcode中正确复制的最后一个字符,然后排除后面的字符。您可以使用metasploit生成不包含特定字符的shellcode。
如果不是,请检查您的偏移和填充。