首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >黑客攻击whoami以返回假用户名

黑客攻击whoami以返回假用户名
EN

Stack Overflow用户
提问于 2012-07-12 09:59:10
回答 2查看 6.7K关注 0票数 1

我已经创建了一个新的whoami命令,它需要一个假用户名,并通过将其添加到~/.profile来将其放入路径中。它的创建方式是在调用whoami之前实际调用Linux中的实际whoami。

这样做的主要原因是因为我正在远程访问Hadoop集群,并希望复制的文件使用假用户名。

当我在shell中调用whoami时,这种方法工作得很好,甚至调用$PATH都会首先显示我创建的whoami的路径。但是,由于某些原因,当Hadoop被调用时,它不会选择创建的“`whoami”。

有人能帮我解决这个问题吗?

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-12 10:05:11

大多数应用程序不使用whoami来确定用户的用户名或组。例如,在bash中,您可以使用命令id来查找有关您自己的更详细的信息,或者使用id [username] (比如id root)来查找关于其他用户的更详细的信息。使用groups也可以找到组。此外,不同的编程语言(如C )有自己的确定用户身份的方法,如getuid()命令。

如果您真的“需要”伪造您的用户帐户,那么您将需要深入到操作系统级别,并在处理这些方法的内核/API中创建钩子。

有没有可能在文件被复制后,你只需简单地chown它们?

更新:

看起来Hadoop的一些发行版确实使用了whoami (我自己的使用集群的实现没有)。

在这种情况下,最好的(使用松散的术语)建议是移动合法的whoami可执行文件,并创建一个whoami shell脚本来代替它。自定义脚本应该验证当前用户,如果是"hadoop",则返回您想要的任何伪造用户名-否则返回有效输出。在这种情况下,Igor的答案是可行的。

票数 3
EN

Stack Overflow用户

发布于 2012-07-12 18:24:47

我认为hadoop使用的PATH变量比您的shell中使用的变量多。您可以调整它的路径,并将带有假whoami的目录添加到它的开头。

当不可能的时候,你可以为whoami写一个小的包装器(我不确定这是不是一个好主意,但是如果你愿意,你可以这样做),它将运行原始的whoami,除非脚本是由hadoop执行的:

代码语言:javascript
复制
#!/bin/sh
WHOAMI=/bin/whoami.orig
if [ "$($WHOAMI)" = hadoop ]
then
  echo fake
else
  exec $WHOAMI "$@"
fi
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11444079

复制
相关文章

相似问题

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