小编Zap*_*Oxx的帖子

为什么我的缓冲区溢出漏洞利用只会打开用户外壳而不是根外壳?

我一直在关注一些有关缓冲区溢出利用的教程。但是我的问题是,我无法打开根外壳程序,而是总会得到一个普通的用户外壳程序。我检查了以下几点

我重新验证了以下各项,但仍然无法实现实际的root shell:

  • 我将二进制文件的所有者正确设置为root,还设置了s标志(检查)
  • 我已验证我使用的漏洞利用程序是否正常工作,使用了正确的system @ plt和exit @ plt地址,并且这些值已通过pop rdi; ret;正确加载到rdi中。段; 我毕竟得到了一个shell,但是没有得到预期的根shell;(校验)
  • 我听说如今破折号和bash确实放弃了特权,将/ bin / sh链接到/ bin / zsh会有所帮助,但这并没有帮助我;仍然获得非root shell(检查,方法对我不起作用)
  • 我还尝试在二进制文件中调用setuid(0)和seteuid(0)进行测试。仍然没有根壳;(检查,对我不起作用)
  • 我也看到有些人设置的/ proc / sys目录/内核/阎王/ ptrace_scope为0(见张贴在这里),看到张贴在这里,但事实并非如此,我(值设置为1,我从来没有感动)(支票,我的值设置为1,应该可以)
  • 我正在使用linux mint 18.1 serena,也许这里有一项附加的安全功能会丢弃特权并阻止root-shell?
  • 请参阅下面的我的C代码和利用python脚本以供参考(漏洞位于vuln()函数中);函数shell()仅具有对应@plt函数的地址可用(这仅用于练习和玩耍)
  • 我使用'gcc -fno-stack-protector -o ghost ghost.c'来编译二进制文件,以避免堆栈金丝雀

有人知道可能是什么问题吗?为什么我仍然无法获得root shell?

在此先感谢您的任何建议和提示。最好的Zaphoxx

易受攻击的C代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
void shell(){
    system("/bin/sh");
    exit(0);
}
int vuln(){
    char buf[4];
    ssize_t l=0;
    printf("[+] input: ");
    l=read(0,buf,128);
    printf("[+] recv: ");
    write(1,buf,l);
    return 0;
}

int main(){
    //setbuf(stdout,0);
    setuid(0);
    seteuid(0);
    vuln();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

python利用脚本创建有效负载: …

c python exploit x86-64 buffer-overflow

5
推荐指数
1
解决办法
892
查看次数

为什么管道到stdin创建一个无限循环?

我正在试验管道.所以我创建了一个简单的批处理文件(dos/windows),如下所示:

@echo off
echo [+] starting batch file
:start
set /p msg="[+] enter msg: "
echo [+] Your message: %msg%
IF "%msg%"=="x" (
echo [x] end loop
goto exit
) ELSE (
  goto start 
)

:exit
echo [+] bye
Run Code Online (Sandbox Code Playgroud)

只要我从命令行调用它,这个工作正常:

> showAll.bat

S:\80_personalFolder\81_lab\python\ghoul>showAll.bat
[+] starting batch file
[+] enter msg: hello
[+] Your message: hello
[+] enter msg: x
[+] Your message: x
[x] end loop
[+] bye

S:\80_personalFolder\81_lab\python\ghoul>
Run Code Online (Sandbox Code Playgroud)

但是一旦我尝试将输入传递给它,它将在一个无限循环中运行:

> echo hello | showAll.bat
Run Code Online (Sandbox Code Playgroud)

将导致:

[...]
[+] enter msg: …
Run Code Online (Sandbox Code Playgroud)

batch-file

5
推荐指数
2
解决办法
83
查看次数

标签 统计

batch-file ×1

buffer-overflow ×1

c ×1

exploit ×1

python ×1

x86-64 ×1