后门制作及安装技术后门 声明:此文为翻译文章,QiangGe只做了一些修改,并加入了一些自己的心得及自己所写的程序. 译者 iamtheguest 从早期的计算机入侵者开始,他们就努力发展能使自己重返被入侵系统的技术或后门.本文将讨论许多常见的后门及其检测方法. 更多的焦点放在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"以隐匿特定的目录和文件.在很低的级别, 入侵者做这样的漏洞: 以专有的格式在硬盘上割出一部分, 且表示为坏的扇区. 因此入侵者只能用特别的工具访问这些隐藏的文件. 对于普通的管理员来说, 很难发现这些"坏扇区"里的文件系统, 而它又确实存在. 上一篇:突破TCP-IP过滤-防火墙进入内网(二) 下一篇:安全扫描浅谈 更多相关文章
|
推荐文章
精彩文章
|