|
不是什么高级的东西, 不过试图说明点问题, 如同很有名的黑客 Kevin Mitnick
(http://www.kevinmitnick.com/ 所说过的 (大意), 黑客活动不仅仅包括技术部分, 实际上
还包括社交手段 (social works)... 如果看过 'hacker 2 - Operation Takedown'
(http://www.imdb.com/Title?0159784 这片儿就是基于 Kevin 的真实故事拍的) 就会知道
Kevin 在那么多次攻击中都做了大量的社交活动获取目标系统的周边信息... 其实也说明了一件事情,
一个系统中最大的变数还是人.
啰嗦了, 俺的小破文章没那么多高级货, 只是一点点概念性的证明, 另外提醒大家养成良
好的安全意识和操作习惯是非常非常重要的! 这就能把人的变数减至最低...
- 04.08.10.09:46.Eric
04.08.08.23:14.Eric - 04.08.08.23:38.Eric
一种可能的攻击方式:
. 利用环境变量以及 su (而非 su -).
模拟情景如下:
1. 设定 $PATH 变量, 把一个用户自己的某个目录添加到其中, 如:
$ export PATH=~/bin:${PATH}
这样, ~/bin 下的可执行文件会被系统首先搜索
2. 在 ~/bin 下放一个自己的文件, 我们起名为 ls (就是和 ls 命令相同!), 然
写入如下内容, 并保存退出:
#!/bin/bash
echo 'ls 命令被我替换了! 哈哈'
3. 将它改成可执行:
$ chmod +x ls
4. 好了, 直接输入 ls, 我们得到的不再是当前目录下的列表, 而是上面那句话!
设想一下, 如果:
1. 把设定环境变量的命令写到 ~/.bashrc 这样的文件里, 每次以该账号登录, 就
将 ~/bin 自动添加到优先搜索路径.
2. 把 ~/bin/ls 里的内容改成某种恶意操作的代码, 比如最简单的:
#!/bin/bash
rm -rf /
删除整个系统!
3. 好了, 以普通用户运行 ls 时, 真正被执行的就变成了 rm -rf /, 当然, 这时
无效. 但是, 如果是这种情况:
. 你先以该用户账号登录 (这种情况当然有可能出现, 比如这个账号的用
户就告诉你: "我的账号好像登录不进去, 我原来的密码是 XXXX, 您可以
帮我登录试试, 看看有什么问题吗?" 或者以更聪明的方式都可能.)
. 然后因为某种原因 su (而不是 su -) 了, 这时 ls, 你就是以管理员
权限执行了用户的 ~/bin/ls 恶意代码!
如何避免? 两条原则:
1. 不要随便允许一些用户可写的目录成为 $PATH 变量中的一部分 (现在想起
redhat/fedora 的 $PATH 变量中有 ~/bin, 真是捏把冷汗! 幸好电脑都自己用!)
2. 永远使用 su - (即 su 后面跟一个减号). 这样可以获得完全的 root 的环境
变量, 用户设定的无效! |
|