QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 780|回复: 4

Linux 下一种可能发生的攻击方式

[复制链接]
发表于 2004-8-10 10:02:48 | 显示全部楼层 |阅读模式
不是什么高级的东西, 不过试图说明点问题, 如同很有名的黑客 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 的环境
        变量, 用户设定的无效!
发表于 2004-8-10 11:10:38 | 显示全部楼层
那怎样才能设回用原来的ls命令呢??
回复

使用道具 举报

 楼主| 发表于 2004-8-10 12:03:27 | 显示全部楼层
如果你是在一个终端下 (如 gnome-terminal) export 的, 那就关掉再开一个就行了
如果是在命令行的终端下, 你就 exit, 再登录就 OK
回复

使用道具 举报

发表于 2004-8-10 14:21:00 | 显示全部楼层
[quote:72a700ae3e="Cure"] 然后因为某种原因 su (而不是 su -) 了, 这时 ls, 你就是以管理员
权限执行了用户的 ~/bin/ls 恶意代码![/quote]

因为何种原因才会在一个多用户的机器上以那个用户的帐号 su 呢?
又因为何种原因才会在一个有 su 权限的用户的环境里面更改这些设置呢?
回复

使用道具 举报

 楼主| 发表于 2004-8-10 17:29:58 | 显示全部楼层
[quote:f7299c2df2="dannycat"][quote:f7299c2df2="Cure"] 然后因为某种原因 su (而不是 su -) 了, 这时 ls, 你就是以管理员
权限执行了用户的 ~/bin/ls 恶意代码![/quote]

因为何种原因才会在一个多用户的机器上以那个用户的帐号 su 呢?
又因为何种原因才会在一个有 su 权限的用户的环境里面更改这些设置呢?[/quote]

1. 这个就麻烦大家自己设想有没有可能出现了. 我觉得自己想出来的办法都挺笨的
呵呵. 或者, 看看这样可不可能: 管理员相信我情景假设里那个用户的话, 以那用户
的账号测试登录了, 然后, 这时, 管理员觉得没问题了, 脑海里又突然想管理点什么,
不经意就 su 了 (缺乏安全意识...) 可能不?

2. 经过这一提醒, 我们可以加多一条注意情况: 只要能不给一个账号 su 权限就不给
可有种情况不能忽略: 如果我没记错的话, 红帽里 (图形界面的管理工具里) 每添加一
个账号, 都是可以 su 的. (要记错了请纠正, 当然, 如果用 useradd (adduser) 命令
行添加用户, 我们就尽量避免把用户加到 wheel 组里.

如果一个用户发现自己可以 su, 尽管他不知道 root 密码, 我设想的情况还是需要留
心的. 本文属于概念性地证明, 所以情景上未必周密. 关键还是指出安全意识的重要
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 22:45 , Processed in 0.038378 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表