Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->系统管理 ->正文

Linux环境下发现并阻止系统攻击

来源:Linux-cn.com 作者:Webmaster 时间:2007-05-05 点击: [收藏] [投稿]

  通过指纹信息你可以决定是否有系统文件被篡改。

四、

  上一节中说过,当netstat,ls等命令被修改,从而发现系统已经被入侵,下面该怎么办?根据你系统的重要性的不同,你有很多种选择。但是我推荐对用户目录,password及其他关键的系统文件进行备份。然后重新安装系统。但是不要随便就将备份的文件拷贝到新系统,因为攻击者可能在这些文件中隐藏一些非法的东西。

  也可以不重新安装系统,而是通过TCP wrapper来限制对主机的访问,并且关闭非关键的网络服务。然后更新被影响的包。重新'干净'的启动系统是很重要的,但是要实现这点并不容易。若你发现procps或net-tools包已经被攻击者修改,第一件事情是重新安装干净的包来替换被攻击者做了手脚留下后门的包。一般最好从你的系统发布者处得到最新的包来重新安装。

  一旦攻击者进入到系统其就将在系统上存放一些工具并且将之隐藏起来,使你不容易发现。下面是一个被攻击者入侵的系统的实例。当系统被攻击者入侵,服务器被限制网络访问,并且替代所有的受影响的包。然后就需要通过仔细查看log文件来发现重复的企图进入系统。查看/etc/passwd文件,发现一个不属于合法的用户。进入到该用户的目录下:/home/jon,运行 'ls -l'得到如下的内容:

  . .. .. .bashrc .bash_history .screenrc emech.tar.gz 

  除了一个名字为emech.tar.gz的文件以外,看不出什么异常现象。但是仔细观察,你就会发现系统有两个'..'目录。(指该子目录的上一级目录)是的确很奇怪,我使用命令'cd ..'我就会进入到/home目录。原来其中子目录名字是在两个点后面有一个空格。('.. ')你可以通过如下命令发现:

  # cd /home/jon 
  # echo .* | cat -v
  . .. .. .bashrc .bash_history .screenrc emech.tar.gz 

  仔细观察可以发现每个子目录都是被一个空格隔开,而在第二个“..”和.bashrc之间有两个空格。这就
意味着第二个'..'子目录其实为点-点-空格。下面进入到该目录:

  # cd '.. '

  然后列出该目录下的内容:

  #ls 

  randfiles mech.set mech.pid checkmech cpu.memory 
  mech.help mech.usage mech mech.levels emech.users psdevtab 

  下一步我们再查看是否其还在其他地方隐藏了文件:

  # find / -user jon -print 

  除了/home/jon目录以外,还发现如下的内容;

  /usr/local/bin/.httpd 
  /tmp/cl 
  /tmp/.l/bcast 
  /tmp/.l/.l 
  /tmp/.l/imapd 
  /tmp/.l/log 
  /tmp/.l/pscan
  /tmp/.l/pscan.c
  /tmp/.l/rpc 
  /tmp/.l/slice2 
  /tmp/.l/sniffer 
  /tmp/.l/sxploit 
  /tmp/.l/thc 
  /tmp/.l/ufs.c 

  这个入侵者已经在系统上安装了Sniffers、端口扫描器,他给自己营造了一个很好的'家' 。在查看中,还在合法的用户的目录下发现了一个可怕的名为'tcp.log'的文件。文件该文件有几百行长,包括每一次telnet 及 ftp 出入该系统的连接!除了通告在该文件中出现的可能已经被入侵的机器管理员应该重新安装系统以外,我同样告诉他们需要更新系统的所有的用户的口令。

  下面有一些例子来帮助你搜索隐藏的危险。首先查看位于用户目录的具有'suid'或'guid'的文件。这些文件的可执行属性位为s而不是x。如:

  #ls -s /usr/bni/passwd 
  -r-s--x--x 1 root root 10704 Apr 14 1999 /usr/bin/passwd

  属性第四位的 's' 表示该命令被执行时,该进程的实际有效用户ID就变为root用户。为了允许普通用户修改自己的密码,这是必须的。第七位的x若为s则表示别的组的用户若运行该程序则该程序则具有用户所有组的有效组ID。使程序能冒充特定的用户或者组并不是一件有害的事情。但是一般来说非管理用户在其目录下不应该具root-suid 程序。我们可以使用下面的命令来查寻这样的文件:

  # find /home -perm -4000 -o -perm -2000 -print 

  下一步我们继续寻找入侵者留下的程序和文件,所以需要一个快速的寻找隐藏目录的方法。下面的方法就是寻找如'.kde'的隐藏目录。你也可以找到如'.. '或“...'等目录:cracker.

  # find / -type d -name '.*' -print 

  '-type d'选项指仅仅列出目录。这个命令不会不会将'.'或'..'列出。

五、

  作为一个好的系统管理者,为了击败攻击者的攻击行动,最好的方法是了解攻击者的工作原理和机制。它们使用了那些工具,它们如何操作入侵等等。所以深入理解掌握我这里讲解的各种网络工具是很有必要的。

  上面用实例的方式说到了了一个攻击者使用sniffer监听网络流来搜集用户名和密码。下面我们就详细说明sniffer是如何工作的。简单的说,sniffer是一个使你能检测你的网络接口接收到所有的数据报。一般情况下,计算机仅仅接受目的地址是自身的数据报,而sniffer使网络接口进入杂错模式,从而可以接受网卡收到的所有的数据报。

  若你运行ifconfig eth0命令,会得到下面的结果:

  eth0      Link encap:Ethernet  HWaddr 00:C0:4F:E3:C1:8F  
            inet addr:192.168.22.2  Bcast:192.168.22.255  Mask:255.255.255.0
            UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
            RX packets:49448 errors:0 dropped:0 overruns:0 frame:0
            TX packets:33859 errors:0 dropped:0 overruns:0 carrier:0
            collisions:6 txqueuelen:100 
            Interrupt:10 Base address:0x300 

            

  打开两个终端,一个终端里运行sniffer器-sniffit;

  # sniffit -i

  另外一个虚拟终端里你可以再次运行ifconfig eth0。你将会发现输出中有下面的内容:

  UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1

  注意和上面相比较,增加了一个单词'PROMISC' 这是杂错模式(promiscuous mode)的缩写,

  sniffit是一个轻量级的,基于终端的sniffer器。你可以从

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:ProFtpd快速指南   下一篇:Sendmail环境下利用DRAC杜绝垃圾邮件

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号