python - 在python中评估shellcode的方法?

标签 python c security shellcode

使用 C 程序评估一段 shellcode 示例并不复杂。它将涉及将 shellcode 存储在一个字符数组中,创建一个函数指针,对指针进行类型转换并使其指向数组并调用函数(指针)。

这就是它的工作原理,假设您可以在 nastycode[] 处执行内存:

/* left harmless. Insert your own working example at your peril */
char nastycode[] = "\x00\x00\x00...";
void (*execute_ptr) (void);

execute_ptr = (void *)nastycode; /* point pointer at nasty code */
execute_ptr();                   /* execute it */

有什么方法可以使用 Python 代码做同样的事情吗?或者 Python 代码转换为字节码的事实是否使这种努力变得不可能?

最佳答案

唯一可以做到这一点的方法是依赖 C 库。缓冲区溢出可以从其库绑定(bind)中引入 python。为了您的目的,您可以在 c 中编写自己的简单 python 库,并在 Aleph One's Smashing the Stack for Fun and Profit 中实现类似 example3.c 的东西。 .正如 Avilo 指出的那样,您将不得不担心 NX 区域,但是任何内存区域都可以再次执行,这是特定于平台的。此外,GCC 默认使用堆栈金丝雀。虽然这可以通过用传递给函数的地址覆盖返回地址来避免,这将使 jar 头厂完好无损。 ASLR 是一个很难绕过的非常好的安全系统,但是如果您将已知地址传递给您的 shell 代码,那么 ASLR 应该不是问题。

关于python - 在python中评估shellcode的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5052897/

相关文章:

c - 将 OpenCL CL/cl.h 路径添加到现有 Make 文件

C 打开文件检查它是否是二进制文件,如果是则打印它是二进制文件

java - Remember Me 如何与 Restful Web 服务配合使用

windows - 根据 LDAP 验证密码

python - 如何在不进行字符串操作的情况下清理/修复这些字节?

python - 将 dict 转换为 OrderedDict

python - 按时间戳和列组合 Pandas DataFrame 行

python - 如何从数据框列值创建多个列表

c - openssl 解密签名和加密的消息

iphone - iOS 真的可以支持 AES 256 吗?