问题标签 [shellcode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
731 浏览

c - Shellcode:执行 2 次 execve() 调用

我正在尝试在汇编中编写 shellcode。我需要执行一个/usr/bin/killall命令和一个/usr/bin/wget命令。我有两个命令在execve()系统调用的 shellcode 中完美运行。但是现在我想将这两个结合起来,但是这是不可能的,因为程序在execve()执行第一次调用时就退出了。(来自execve():的手册页execve()不会返回成功)。

如何进行 2 次execve()通话?还是有另一种方法可以从同一个 shell 代码/usr/bin/killall中调用两者?/usr/bin/wget

提前问候和感谢!

0 投票
2 回答
877 浏览

c - 程序在 GDB 中的行为不同?

我从smashthestack得到这段代码:

我使用这个shellcode执行这个程序:

在 GDBrun < /tmp/in中,一切正常: (gdb) run < /tmp/wliao_in

但实际上,它不是:

我不明白这两者有什么不同?

0 投票
1 回答
3900 浏览

assembly - pass arguments to execve program in shellcode

I'm having a go at learning assembly and writing shellcode. I have a question about execve and passing arguments to the program it will execute.

I have working code to execute a bash shell but am unsure of the input format of execve to pass additional arguments to it. Can I do stdin stdout redirects too? I wanted to create a reverse tcp connection with this type of command line:

Should the arguments be separated with NULL's? I got it to execute a shell but it didn't connect back to the listening nc.

I know this is an unusual way of doing this but I just wanted to try something different :-)

Cheers

0 投票
4 回答
22058 浏览

c - 使用缓冲区溢出执行shell代码

我最近一直在学习计算机安全,遇到了一些问题,尤其是在这个问题上我遇到了一些麻烦。

我得到了一个带有固定缓冲区的函数,我需要溢出才能在文件 shellcode 中执行shellcode。该功能非常简单:

我最初的猜测是修改函数的返回地址eip以定位和执行 shellcode 文件中的内容,但我意识到我没有可以用十六进制值表示的文件地址。我很确定我需要操纵返回地址,所以目前我正在调用的是:

我的输出是:

在我用附加地址替换 edp 的地址并到达返回地址后,python 脚本只需打印 72 个字母 A 以将缓冲区溢出到edpeip的点,并准备好对其进行操作。非常感谢任何帮助,谢谢!

0 投票
1 回答
494 浏览

c - mcrypt 上的分段错误(可能与缓冲区有关)

我正在尝试使用 AES 在 c 中构建自己的加密器来加密 shellcode。现在我已经在一个程序中制作了加密器的 PoC,可以在下面找到:

我的目标是获取加密的 shellcode,解密并运行它。但是,当我尝试使用该mcrypt_generic_init(td, key, key_len, IV);函数初始化 mcrypt 时,似乎遇到了分段错误。我真的不确定是什么导致了分段错误。如果有人有想法?

0 投票
2 回答
2138 浏览

shellcode - shellcode 中的空字节

通过维基百科上的shellcode文章,它给出了一个示例,如下所示:

为了使上述指令为空,他们将其重写如下:

第一条指令中的空字节在哪里?转换后的指令如何没有空字节?

0 投票
1 回答
1970 浏览

stack - Shellcode中的堆栈内存地址

我在这里阅读了一篇关于编写 shellcode(使用堆栈方法执行)的基本文章:http: //hackoftheday.securitytube.net/2013/04/demystifying-execve-shellcode-stack.html

在第 6 步中:它推送一个空字符,因为字符串“/bin/sh”是空终止的。之后,它以相反的顺序推送字符串“/bin/sh”

为什么字符串以相反的顺序推入堆栈,为什么终止字符串的空字符在将字符串推入堆栈“之前”被推入?

0 投票
4 回答
29057 浏览

c - C程序中的Shellcode

Demystifying the Execve Shellcode中解释了一种编写 execve shellcode 的方法:

线路int (*ret)() = (int(*)())code;有什么作用?

0 投票
1 回答
2492 浏览

c++ - 重写一个小的 execve shellcode

通过http://hackoftheday.securitytube.net/2013/04/demystifying-execve-shellcode-stack.html

execve我理解调用并试图重写它的 nasm 程序。

一些背景资料:

因此,(函数调用eax = 11execve)应该ebx指向_ _ _ )。char* filenameecxargv[]ebx*filenameedxenvp[]null

原始nasm代码:

堆栈如下:

在此处输入图像描述

现在我试图通过减少一些指令来优化它。我同意直到mov ebx, esp代码保持不变。但是,由于ecx需要指向ebx,我可以重写代码如下:

但是,当我运行重新编写的代码时出现分段错误。

我的堆栈如下:在此处输入图像描述

任何想法为什么重新编写的代码不起作用?我也运行过 gdb 并且地址值是根据我的想法,但它不会运行。

0 投票
1 回答
1503 浏览

linux - 用于获取 shell 的 shellcode,但发生了段默认值

让我先向您展示我的代码。

它是一个 shell-spawning shellcode,代码来自一本书 - “shellcoder's handbook”。我只是复制书中的代码,并用 gcc(gcc shellcode.c -o shellcode)编译它。和我的 gcc 版本是 4.7.2,我的机器是 X86,但我在 debian 上运行它,我只是得到分段错误。

readelf -l 的输出是:

好吧,够了吗?