被入侵系统的恢复指南(6)
5.检查网络嗅探器
入侵者侵入一个UNIX系统后,为了获得用户名和密码信息,一般会在系统上安装一个网络监视程序,这种程序就叫作嗅探器或者数据包嗅探器。对于NT,入侵者会使用远程管理程序实现上述目的。
判断系统是否被安装了嗅探器,首先要看当前是否有进程使你的网络接口处于混杂(Promiscuous)模式下。如果任何网络接口处于promiscuous模式下,就表示可能系统被安装了网络嗅探器。注意如果你重新启动了系统或者在单用户模式下操作,可能无法检测到Promiscuous模式。使用ifconfig命令就可以知道系统网络接口是否处于promoscuous模式下(注意一定使用没有被侵入者修改的ifconfig):
#/path-of-clean-ifconfig/ifconfig -a
有一些工具程序可以帮助你检测系统内的嗅探器程序:
cpm(Check Promiscuous Mode)--UNIX可以从以下地址下载:
ftp://coast.cs.purdue.edu/pub/tools/unix/cpm/
ifstatus--UNIX可以从以下地址下载:
ftp://coast.cs.purdue.edu/pub/tools/unix/ifstatus/
neped.c可以从以下地址的到:
ftp://apostols.org/AposTolls/snoapshots/neped/neped.c
一定要记住一些合法的网络监视程序和协议分析程序也会把网络接口设置为promiscuous模式。检测到网络接口处于promicuous模式下,并不意味着系统中有嗅探器程序正在运行。
但是,在Phrack杂志的一篇文章:(Phrack Magazine Volume 8,Issue 53 July 8,1998,article 10 of 15, Interface Promiscuity Obscurity)中,有人提供了一些针对FreeBSD、Linux、HP-UX、IRIX和Solaris系统的模块,可以擦除IFF_PROMISC标志位,从而使嗅探器逃过此类工具的检查。以此,即使使用以上的工具,你没有发现嗅探器,也不能保证攻击者没有在系统中安装嗅探器。
现在,LKM(Loadable Kernel Model,可加载内核模块)的广泛应用,也增加了检测难度。关于这一方面的检测请参考使用KSAT检测可加载内核模块。
还有一个问题应该注意,嗅探器程序的日志文件的大小会急剧增加。使用df程序查看文件系统的某个部分的大小是否太大,也可以发现嗅探器程序的蛛丝马迹。建议使用lsof程序发现嗅探器程序打开的日志文件和访问访问报文设备的程序。在此,还要注意:使用的df程序也应该是干净的。
一旦在系统中发现了网络嗅探器程序,我们建议你检查嗅探器程序的输出文件确定哪些主机受到攻击者威胁。被嗅探器程序捕获的报文中目的主机将受到攻击者的威胁,不过如果系统的密码是通过明文传输,或者目标主机和源主机互相信任,那么源主机将受到更大的威胁。
通常嗅探器程序的日志格式如下:
-- TCP/IP LOG -- TM: Tue Nov 15 15:12:29 --
PATH: not_at_risk.domain.com(1567) => at_risk.domain.com(telnet)
使用如下命令可以从嗅探器程序的日志文件中得到受到威胁的主机列表:
% grep PATH: $sniffer_log_file | awk '{print $4}' |
awk -F( '{print $1}'| sort -u
你可能需要根据实际情况对这个命令进行一些调整。一些嗅探器程序会给日志文件加密,增加了检查的困难。
你应该知道不只是在嗅探器程序日志文件中出现的主机受到攻击者的威胁,其它的主机也可能受到威胁。
建议你参考http://www.cert.org/advisories/CA-94.01.ongoing.network.monitoring.attacks.html获得更为详细的信息。