蛮力远程 nop 雪橇内存地址

逆向工程 快手 x86-64
2021-07-12 11:46:42

远程服务器上的 ELF x64 二进制文件通过 C 语言中的简单套接字服务器进行通信。

缓冲区溢出后(总缓冲区为2000,密码缓冲区较少),覆盖RIP,填充NOP sled(512 nops),在其顶部插入反向绑定shellcode,\x00在中间找到一个完美的地址(没有) nop sled 滑动后将执行 shellcode。

  • 远程服务器 ASLR 关闭;

  • 二进制编译没有金丝雀,可以从堆栈执行代码。

  • 没有信息泄漏 AFAIK

我理解很多结果,但如果我决定强制远程服务器找到 NOP-sled 地址。有什么好的做法吗?

1个回答

除非万不得已,否则在任何事情中都不应采用蛮力。x64 的地址空间太大,无法使用暴力破解。查找这种称为 ROP(面向返回编程)的技术。目前您正在对 RIP 进行暴力破解,如果二进制文件中有一些代码可以帮助您在没有暴力破解的情况下跳转到 shellcode 并且没有 PIE 意味着地址是恒定的,该怎么办。当您的控制权转移到 时ret,请查看其他寄存器包含的内容。您可能会call eax在二进制文件中找到诸如此类的代码。