网络通信 频道

服务器伪装信息修改法

 测试的服务器:redhat7.0,redhat7.1,mandrake7.1
  本文主要讨论linux服务器的伪装,对于Sun、hp等可以查找相关资料,本文只提供思路。
  前言:为什么要伪装?
  动物伪装,为了逃避天敌,或为了更好的获取猎物。
  人伪装,使你不知他的底细。
  服务器伪装,目的是要使攻击者很难搜集到服务器真正的信息,使他的进一步攻击造成难度,进而起到一定的保护作用,当然还有更深的用法,等着你去发现。
  声明:
  本文只是本人研究的总结,是为了大家的学习研讨,请不要用到非法用途。
  本人才疏学浅,不足及错误的地方请指出,mail地址:yuky@freemail.sx.cn。
  正文:
  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提示符也不太一样,尽量修改的和伪装目标一致。
  结束语:
  当然,要想保证服务器安全,这一点是远远不够的,它只能减小被攻击成功的概率。
  如果更深一些,伪装成一个蜜罐子,来诱捕黑客,则不在本文的讨论范围之内。
  
  
文章转载地址:http://www.cnpaf.net/Class/hack/06101110491533835237.html
0
相关文章