当前位置:Linux教程 - Linux - 服务器伪装信息修改法

服务器伪装信息修改法



        

    测试的服务器:redhat7.0,redhat7.1,mandrake7.1



    本文主要讨论linux服务器的伪装,对于Sun、hp等可以查找相关资料,本文只提供思路。



    前言:为什么要伪装?

    动物伪装,为了逃避天敌,或为了更好的获取猎物。

    人伪装,使你不知他的底细。

    服务器伪装,目的是要使攻击者很难搜集到服务器真正的信息,使他的进一步攻击造成难度,进而起到一定的保护作用,当然还有更深的用法,等着你去发现。



    声明:

    本文只是本人研究的总结,是为了大家的学习研讨,请不要用到非法用途。

    本人才疏学浅,不足及错误的地方请指出,mail地址:[email protected]



    正文:

    1. Telnet信息伪装

    首先看一次telnet过程:

    [yxg@localhost yxg]$ telnet xx.xx.xx.xx

    Trying xx.xx.xx.xx...

    Connected to xxxx.

    Escape character is \^]\.



    Red Hat Linux release 7.1 (Seawolf)

    Kernel 2.4.2-2 on an i686

    login:

    从中可以看到操作系统为Red Hat Linux release 7.1,内核版本2.4.2-2,计算机为:intel686。攻击者得到这些信息就可以用相应的攻击程序。所以我们不能告诉他们真正的情况。

    telnet信息存放于/etc/issue.net

    [root@database /etc]# cat issue.net



    Red Hat Linux release 7.1 (Seawolf)

    Kernel 2.4.2-2 on an i686

    修改它成为你想要的任何字符,甚至什么也不要。

    我的改为Sun的提示:

    [yxg@localhost yxg]$ cat /etc/issue.net





    SunOS 8.0

    要注意必要的空行,改完和伪装的对象比较,直到一模一样才行。

    对于本机的用户,提示信息在/etc/issue,改不改随你。

    注意:如果你想重启后issue.net内容不变,修改/etc/rc.local,在这些行前加#

    # This will overwrite /etc/issue at every boot. So, make any changes you

    # want to make to /etc/issue here or you will lose them when you reboot.

    # echo \"\" > /etc/issue

    # echo \"$R\" >> /etc/issue

    # echo \"Kernel $(uname -r) on $a $SMP$(uname -m)\" >> /etc/issue



    # cp -f /etc/issue /etc/issue.net

    # echo >> /etc/issue





    2. ftp信息伪装

    现在有很多对于wu-ftp的攻击程序,所以我就拿wu-ftp作例子。

    先看一下ftp的过程:

    [yxg@localhost yxg]$ ftp xx.xx.xx.xx

    Connected to xxxx.

    220 database FTP server (Version wu-2.6.1-16) ready.

    如果想要不显示出wu-ftp,可以有多种方法。

    其一:

    察看in.ftpd就能发现版本号写在了程序中

    [root@database /root]# strings /usr/sbin/in.ftpd

    ………………….

    /var/log/lastlog

    Could not write %.100s: %.100s

    Version wu-2.6.1-16

    你可以用16进制编辑器修改版本的字符串,改为proftp什么的,保准有人会上当。

    其二:

    /etc/ftpaccess里有两个参数

    指示参数:greeting full | brief | terse

    greeting text

    允许控制远程用户登陆进来以后,给用户多少信息及信息内容。



    banner

    banner消息是在用户名和密码以前显示给用户的。



    3. 修改telnet和ftp的默认端口号

    有很多扫描器并不是逐个端口扫描的,所以来个乾坤大挪移来使扫描失效。

    具体是修改/etc/services 或者是/etc/inetd.conf。



    4. 操作系统指纹伪装

    nmap等扫描器能通过操作系统指纹判断操作系统类型,所以我们要采取一些策略保护自己。现在有一些工具可以修改操作系统指纹,像fpf等,fpf可以在www.xfocus.org下载,它是一个lkm,加载到内核中,可以模拟很多操作系统。当然你可能要对源程序进行修改,也可以加入一些新的功能,如自动隐藏等。



    5. 改装uname

    如果不幸被一个攻击者闯入,它可以用uname来获取真正的操作系统信息,然后来个本地溢出,你就哭吧。

    所以我们要修改uname的源程序,使它显示我们想要它显示的内容。

    打开uname.c,找到如下行:

    print_element (PRINT_SYSNAME, name.sysname);//操作系统名如linux

    print_element (PRINT_NODENAME, name.nodename);//主机名

    print_element (PRINT_RELEASE, name.release);//发行版本,如:2.2.16-22

    print_element (PRINT_VERSION, name.version);//

    print_element (PRINT_MACHINE, name.machine);//机器类型,如i686

    print_element (PRINT_PROCESSOR, processor);//处理器类型

    知道怎么改吧,不知道?提示一下,如果要显示操作系统为SunOS,替换第一行为:

    print_element(PRINT_SYSNAME,\"SunOS\");

    编译后,运行./uname –s,就会显示SunOS

    当然你应该把每一项都进行修改,使人看不出破绽。

    最后把改好的uname拷到/bin目录。

    我在修改时还加了一个-Y的参数,目的是显示真正的信息,给自己看的。默认显示修改过的信息。



    6. 其他一些杂项

    建议你尽量关掉不必要的服务,对于开放的其他服务要仔细检查,使它不至于有泄密的信息。

    不同操作系统的shell提示符也不太一样,尽量修改的和伪装目标一致。



    结束语:

    当然,要想保证服务器安全,这一点是远远不够的,它只能减小被攻击成功的概率。

    如果更深一些,伪装成一个蜜罐子,来诱捕黑客,则不在本文的讨论范围之内。


    摘自:三味自我
    作者:Yuky





    发布人:netbull 来自:非常 Linux