从早期的电脑入侵者开始,他们就努力发展能使自己重返被入侵系统的技术或后门.本文将讨论许多常见的后门及其检测方法. 更多的焦点放在Unix系统的后门,同时讨论一些未来将会出现的Windows NT的后门. 本文将描述如何测定入侵者使用的方法这样的复杂内容和管理员如何防止入侵者重返的基础知识. 当管理员懂的一旦入侵者入侵后要制止他们是何等之难以后, 将更主动于预防第一次入侵. 本文试图涉及大量流行的初级和高级入侵者制作后门的手法, 但不会也不可能覆盖到任何可能的方法.
大多数入侵者的后门实现以下二到三个目的:
即使管理员通过改变任何密码类似的方法来提高安全性,仍然能再次侵入. 使再次侵入被发现的可能性减至最低.大多数后门设法躲过日志, 大多数情况下即使入侵者正在使用系统也无法显示他已在线. 一些情况下, 假如入侵者认为管理员可能会检测到已安装的后门, 他们以系统的脆弱性作为唯一的后门, 重而反复攻破机器. 这也不会引起管理员的注意. 所以在 这样的情况下,一台机器的脆弱性是他唯一未被注意的后门.
密码破解后门
这是入侵者使用的最早也是最老的方法, 他不但能够获得对Unix机器的访问, 而且能够通过破解密码制造后门. 这就是破解口令薄弱的帐号. 以后即使管理员封了入侵者的当前帐号,这些新的帐号仍然可能是重新侵入的后门. 多数情况下, 入侵者寻找口令薄弱的未使用帐号,然后将口令改的难些. 当管理员寻找口令薄弱的帐号是, 也不会发现这些密码已修改的帐号.因而管理员很难确定查封哪个帐号.
Rhosts 后门
在连网的Unix机器中,象Rsh和Rlogin这样的服务是基于rhosts文档里的主机名使用简单的认证方法. 用户能够轻易的改变配置而不需口令就能进入. 入侵者只要向能够访问的某用户的rhosts文档中输入" ", 就能够允许任何人从任何地方无须口令便能进入这个帐号. 特别当home目录通过NFS向外共享时, 入侵者更热中于此. 这些帐号也成了入侵者再次侵入的后门. 许多人更喜欢使用Rsh, 因为他通常缺少日志能力. 许多管理员经常检查 " ", 所以入侵者实际上多配置来自网上的另一个帐号的主机名和用户名,从而不易被发现.
校验和及时间戳后门
早期,许多入侵者用自己的trojan程式替代二进制文档. 系统管理员便依靠时间戳和系统校验和的程式辨别一个二进制文档是否已被改变, 如Unix里的sum程式. 入侵者又发展了使trojan文档和原文档时间戳同步的新技术. 他是这样实现的: 先将系统时钟拨回到原文档时间, 然后调整trojan文档的时间为系统时间. 一旦二进制trojan文档和原来的精确同步, 就能够把系统时间设回当前时间. sum程式是基于CRC校验, 很容易骗过.入侵者设计出了能够将trojan的校验和调整到原文档的校验和的程式. MD5是被大多数人推荐的,MD5使用的算法现在还没人能骗过.
Login后门
Unix里,login程式通常用来对telnet来的用户进行口令验证. 入侵者获取login.c的原代码并修改,使他在比较输入口令和存储口令时先检查后门口令. 假如用户敲入后门口令,他将忽视管理员配置的口令让您长驱直入. 这将允许入侵者进入任何帐号,甚至是root.由于后门口令是在用户真实登录并被日志记录到utmp和wtmp前产生一个访问的, 所以入侵者能够登录获取shell却不会暴露该帐号. 管理员注意到这种后门后, 便用"strings"命令搜索login程式以寻找文本信息. 许多情况下后门口令会原形毕露. 入侵者就开始加密或更好的隐藏口令, 使strings命令失效. 所以更多的管理员是用MD5校验和检测这种后门的.
Telnetd后门
当用户telnet到系统, 监听端口的inetd服务接受连接随后递给in.telnetd,由他运行login.一些入侵者知道管理员会检查login是否被修改, 就着手修改in.telnetd. 在in.telnetd内部有一些对用户信息的检验, 比如用户使用了何种终端. 典型的终端配置是Xterm或VT100.入侵者能够做这样的后门, 当终端配置为"letmein"时产生一个不要任何验证的shell. 入侵者已对某些服务作了后门, 对来自特定源端口的连接产生一个shell .
服务后门
几乎任何网络服务曾被入侵者作过后门. finger, rsh, rexec, rlogin, ftp, 甚至inetd等等的作了的版本随处多是. 有的只是连接到某个TCP端口的shell,通过后门口令就能获取访问.这些程式有时用刺娲□?ucp这样不用的服务,或被加入inetd.conf作为一个新的服务.管理员应该很注意那些服务正在运行, 并用MD5对原服务程式做校验.
Cronjob后门
Unix上的Cronjob能够按时间表调度特定程式的运行. 入侵者能够加入后门shell程式使他在1AM到2AM之间运行,那么每晚有一个小时能够获得访问. 也能够查看cronjob中经常运行的合法程式,同时置入后门.
库后门
几乎任何的UNIX系统使用共享库. 共享库用于相同函数的重用而减少代码长度. 一些入侵者在象crypt.c和_crypt.c这些函数里作了后门. 象login.c这样的程式调用了crypt(),当使用后门口令时产生一个shell. 因此, 即使管理员用MD5检查login程式,仍然能产生一个后门函数.而且许多管理员并不会检查库是否被做了后门.对于许多入侵者来说有一个问题: 一些管理员对任何东西多作了MD5校验. 有一种
办法是入侵者对open()和文档访问函数做后门. 后门函数读原文档但执行trojan后门程式. 所以 当MD5读这些文档时,校验和一切正常. 但当系统运行时将执行trojan版本的. 即使trojan库本身也可躲过
MD5校验. 对于管理员来说有一种方法能够找到后门, 就是静态编连MD5校验程式然后运行.
静态连接程式不会使用trojan共享库.
内核后门
内核是Unix工作的核心. 用于库躲过MD5校验的方法同样适用于内核级别,甚至连静态连接多不能识别. 一个后门作的很好的内核是最难被管理员查找的, 所幸的是内核的后门程式还不是随手可得, 每人知道他事实上传播有多广.
文档系统后门
入侵者需要在服务器上存储他们的掠夺品或数据,并不能被管理员发现. 入侵者的文章常是包括exploit脚本工具,后门集,sniffer日志,email的备分,原代码,等等. 有时为了防止管理员发现这么大的文档, 入侵者需要修补"ls","du","fsck"以隐匿特定的目录和文档.在很低的级别, 入侵者做这样的漏洞: 以专有的格式在硬盘上割出一部分, 且表示为坏的扇区. 因此入侵者只能用特别的工具访问这些隐藏的文档. 对于普通的管理员来说, 很难发现这些"坏扇区"里的文档系统, 而他又确实存在.
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



