当前位置:Linux教程 - Linux - Linux如何阻止系统攻击者(四)

Linux如何阻止系统攻击者(四)



        
    上一节中说过,当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\"选项指仅仅列出目录。这个命令不会不会将\".\"或\"..\"列出。

    发布人:netbull 来自:JJ的Linux世界