首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >windows环境下的开发

windows环境下的开发
EN

Security用户
提问于 2019-03-16 22:17:10
回答 1查看 226关注 0票数 0

我在许多Poc上都看到过这一行,但是我想知道人们是如何使用豁免调试器来实现这一点的,还是我们需要将其自身逆转为窗口呢?是否有一种使用mona的方法或一些简单的方法?

代码语言:javascript
复制
# Return Address for Windows 7 32b SP1
ret = '\x25\xDF\xB8\x68'
EN

回答 1

Security用户

发布于 2019-03-21 07:03:00

一旦堆栈被正确覆盖,您将看到ESP (堆栈指针)具有有效负载(反向shell)启动的地址。

由于此地址在每次重新启动后都会更改,因此无法在漏洞代码中使用。由于地址存储在ESP中,我们所需要做的就是找到一个JMP ESP或PUSH ESP,以便程序逻辑跳转到我们的shell代码。

在免疫调试器中使用Mona的

首先搜索程序使用的所有DLL,这可以通过键入:

代码语言:javascript
复制
!mona modules

这应该会给出一个带有DLL的列表。现在仔细搜索一个未启用DEP和ASLR的DLL。此外,确保地址不包含任何坏字符,如空字节、回车和换行。

找到之后,双击DLL并搜索命令:

代码语言:javascript
复制
JMP ESP

代码语言:javascript
复制
PUSH ESP
RETN

如果没有找到结果,请在菜单栏中单击"C“,然后通过键入以下命令搜索操作码"\xFF\xE4”(这是JMP ESP):

代码语言:javascript
复制
!mona find -s “\xFF\xE4" -m [dll file]

如果找到PUSH ESP,则应该使用这个内存位置来跳转到shell代码。

因此,您在这些漏洞中看到的是执行JMP ESP的内存位置。

票数 1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/205529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档