问题标签 [suid]

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 投票
1 回答
1881 浏览

linux - SUID 在 Bash 中不起作用

我编写了一个简单的 bash 脚本来备份主目录,e 将其放入 /var/backups。由于该目录受到保护,因此我以 root 身份编写了脚本,然后设置了 SUID。

即便如此,当脚本尝试写入 /var/backups 时,我会收到“权限被拒绝”错误。为什么?

0 投票
2 回答
541 浏览

linux - Linux 上的有效 suid/sgid 可执行文件列表?

谁能告诉我在哪里可以找到 Linux 上的有效 suid/guid 程序列表,最好是 Ubuntu?

注意我可以使用 find 来获取我机器上的 suid/sgid 程序列表,但我想知道它们是否是真正有效的程序;有没有我可以比较的清单?

0 投票
2 回答
361 浏览

unix - 为什么二进制 (ELF) SUID 可执行文件也允许 READ 访问很常见?

作为最近的“rowhammer”利用概念证明的一部分,使用了 read-suid-exec 工具“ping”来创建更精细的概念证明。

所以我的问题 - 为什么各种发行版都准备 suid(尤其是 root)可执行文件作为可读和可执行文件?

我的推测包括:

  1. 与“ldd”一起使用的便利性
  2. 允许tripwire或包更新检查软件以非root身份运行
  3. 没关系,因为大多数发行版都是公开的,任何人都可以获取 ELF 二进制文件(安装到 VM 等)
  4. selinux 可以用来使这无关紧要
  5. 懒惰的开发者

使用 (3),隐藏公共发行版的二进制文件只能提供安全性的遮羞布 - 而 (5) 几乎是名字调用。

0 投票
3 回答
320 浏览

linux - /etc/shadow 和 suid 困境

我偶然发现了一个关于使用suid可执行文件访问系统文件的问题。

我写了这个简短的 POC:

然后我编译并用chown root:rootchmod u+s (由root运行)给它suid

这是生成的可执行文件

目标文件有这些权限

当我运行程序时,它给出了以下输出:

为什么会这样?我的意思是...我正在访问该文件,root并且可以在该文件上root 写入

注:selinux已禁用

想法?

0 投票
1 回答
2864 浏览

c - gdb 退出而不是生成 shell

我正在尝试利用 SUID 程序。

该程序是:

我们可以很容易地看到,如果我们以某种方式将 ptr 的内容更改为以 CA 开头的某个地址,那么将为我们生成一个新的 shell。由于 ptr 通常保存一些以 FF 开头的地址,因此减少它(ptr)的方法是输入 \ 字符。所以我制作了一个包含 0x35000000 '\' 字符的文件,最后在文件末尾添加了 3 个 'a'

最后在 gdb 中,

然而,而不是产生一个外壳 gdb 是说

然后返回 gdb 提示符而不是获取 shell。我通过在适当的位置设置断点来确认 ptr 在调用 setresuid() 之前确实以 CA 开头。

此外,如果我在 gdb 之外通过管道传输,则不会发生任何事情。

Bash 提示返回。

请告诉我我在哪里犯错。

0 投票
2 回答
123 浏览

c - 可执行文件设置root suid,但是access(path, W_OK) 还是返回-1?

为什么可执行文件设置root suid,但访问(路径,W_OK)仍然返回-1?

代码:

测试运行:

0 投票
2 回答
862 浏览

bash - 将 SUID/SGID 权限设置为可执行文件

我想用一个具体的例子来说明利用缓冲区溢出的威力有多大。

为了实现这个目标,我准备了这个简单的 C 程序,称为“bo”:

我用选项编译:-fno-stack-protector 和 execstack。

一切正常,我可以启动我的 shellcode 来打开一个新的 bash。

在我的系统(Ubuntu MATE 15.10 32bit)中,我有 2 个用户:“user”(组:用户)和“admin”(组:admin),都具有 sudo 权限。

我想要做的是使“用户”能够以“管理员”的权限执行“bo”,这样当发生缓冲区溢出并执行 shellcode 时,我有一个以“管理员”权限运行的 shell(并且从此shell,如果我运行命令“id”或“whoami”,我想表明现在我们是“admin”)。

我已经看到我需要将 SUID/SGID 权限更改为“bo”。我尝试了很多方法,但是当 shellcode 运行时,我总是有一个从“用户”启动的 shell。

0 投票
1 回答
327 浏览

linux - ptrace suid 进程(在它放弃特权之后)

我知道我们不能对 suid 二进制文件执行 ptrace。但是,我想知道为什么在二进制文件将其优先权放到 uid 而不是 euid 之后我们不能执行 ptrace。

例如,在二进制文件中,suid 二进制文件在经过一些步骤后会放弃特权。

在我的情况下,当打印“whoami”时,它是进程的用户名,而不是进程的所有者。当程序等待垃圾输入时,我试图以 uid 作为用户名附加到正在运行的进程,但即使二进制文件已经放弃了特权,它也失败了。ptrace attach 是否有可能使用已保存的 uid 状态来确定我不是所有者?

0 投票
0 回答
368 浏览

c - 运行以下代码时如何调用 SIGALARM?

如何使用 set-guid bit 漏洞使用以下 3 个易受攻击的程序执行 root 拥有的文件 /bin/grade?我不是 root 也不是 bsp* 组的成员,因此我对程序的访问仅限于读取和执行。对于文件 /bin/grade,我只有读取权限,但我想将它作为组 bsp* 执行。

运行此代码时,如何从 shell 调用 SIGALRM?

我将在 shell 上调用程序

exec -a "/bin/grade" prog1 1000 &

0 投票
1 回答
413 浏览

c - -SUID- 无法以 root 身份运行“-rwsr-xr-x”文件

我正在使用 Ubuntu 16.10。

我跟着一本书,做这样的事情:

为了在不使用 sudo 命令的情况下将该文件作为 sudo 运行,在使用 gcc 编译后,我将所有者和组更改为 root。

现在,这就是我执行文件时得到的。我的 UID 是 1000。

我正在阅读的书说结果应该是这样的:

root 的 UID 是 0,对吧?这是否意味着我正在使用我自己的用户权限运行 root 拥有的-rwsr-xr-x文件?我不明白。