开封论坛汴梁★兴趣电脑网络 → 请黑客入瓮 为linux系统蒙上windows面纱


  共有2411人关注过本帖树形打印复制链接

主题: 请黑客入瓮 为linux系统蒙上windows面纱

帅哥哟,离线,有人找我吗?
Q神
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:开封布衣 帖子:9 积分:70 威望:0 精华:0 注册:2007-01-18 15:52:06
请黑客入瓮 为linux系统蒙上windows面纱  发帖心情 Post By:2007-01-18 15:53:46 [只看该作者]

  网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击。
  
  通过伪装linux系统,给黑客设置系统假象,可以加大黑客对系统的分析难度,引诱他们步入歧途,从而进一步提高计算机系统的安全性。下面以red hat linux为例,针对几种黑客常用的途径介绍一些常用的linux系统伪装的方法。
  
  针对http服务
  
  通过分析web服务器的类型,大致可以推测出操作系统的类型,比如,windows使用iis来提供http服务,而linux中最常见的是apache。
  
  默认的apache配置里没有任何信息保护机制,并且允许目录浏览。通过目录浏览,通常可以获得类似apache/1.3.27 server at apache.linuxforum.net port 80或apache/2.0.49 (unix) php/4.3.8的信息。
  
  通过修改配置文件中的servertokens参数,可以将apache的相关信息隐藏起来。但是,red hat linux运行的apache是编译好的程序,提示信息被编译在程序里,要隐藏这些信息需要修改apache的源代码,然后,重新编译安装程序,以实现替换里面的提示内容。
  
  以apache 2.0.50为例,编辑ap_release.h文件,修改#define ap_server_baseproduct /apache/为#define ap_server_baseproduct /microsoft-iis/5.0/。编辑os/unix/os.h文件,修改#define platform /unix/为#define platform /win32/。修改完毕后,重新编译、安装apache。
  
  apache安装完成后,修改httpd.conf配置文件,将servertokens full改为servertokens prod;将serversignature on改为serversignature off,然后存盘退出。重新启动apache后,用工具进行扫描,发现提示信息中已经显示操作系统为windows。
  
  针对ftp服务
  
  通过ftp服务,也可以推测操作系统的类型,比如,windows下的ftp服务多是serv-u,而linux下常用vsftpd、proftpd和pureftpd等软件。
  
  以proftpd为例,修改配置文件proftpd.conf,添加如下内容:
  
  serverident on /serv-u ftp server v5.0 for winsock ready.../
  
  存盘退出后,重新启动proftpd服务,登录到修改了提示信息的ftp服务器进行测试:
  
  c://>ftp 192.168.0.1
  connected to 192.168.0.1.
  220 serv-u ftp server v5.0 for winsock ready...
  user (192.168.0.1:(none)):
  331 password required for (none).
  password:
  530 login incorrect.
  login failed.
  ftp > quit
  221 goodbye.
  
  这样从表面上看,服务器就是一个运行着serv-u的windows了。
针对ttl返回值
  
  可以用ping命令去探测一个主机,根据ttl基数可以推测操作系统的类型。对于一个没有经过任何网关和路由的网络,直接ping对方系统得到的ttl值,被叫做ttl基数。网络中,数据包每经过一个路由器,ttl就会减1,当ttl为0时,这个数据包就会被丢弃。
  
  通常情况下,windows的ttl的基数是128,而早期的red hat linux和solaris的ttl基数是255,freebsd和新版本的red hat linux的ttl基数是64。比如,ping一个red hat系统,显示如下:
  
  pinging 192.168.0.1 with 32 bytes of data:
  reply from 192.168.0.1: bytes=32 time <10ms ttl=64
  reply from 192.168.0.1: bytes=32 time <10ms ttl=64
  reply from 192.168.0.1: bytes=32 time <10ms ttl=64
  reply from 192.168.0.1: bytes=32 time <10ms ttl=64
  ping statistics for 192.168.0.1:
  packets: sent = 4, received = 4, lost = 0 (0% loss),
  approximate round trip times in milli-seconds:
  minimum = 0ms, maximum = 0ms, average = 0ms
  
  用以下命令修改red hat linux的ttl基数为128(本来为64):
  
  # echo 128 > /proc/sys/net/ipv4/ip_default_ttl
  
  若想使设置永久生效,可以修改/etc/sysctl.conf配置文件,添加如下一行:
  
  net.ipv4.ip_default_ttl = 128
  
  保存退出后,再ping 192.168.0.1,ttl基数就变为128了。
  
  针对3389端口和22端口
  
  有时通过扫描3389端口和22端口,也可以推测操作系统的类型。windows下一般利用tcp协议的3389端口进行远程控制,而linux可能会用tcp协议的22端口,提供带有加密传输的ssh服务。
  
  为了安全,可以利用iptables来限制22端口的ssh登录,让非授权的ip扫描不到tcp 22端口的存在:
  
  #iptables -i input -s ! xx.xx.xx.xx -p tcp --dport 22 -j drop
  
  利用iptables,将本机的tcp 3389端口转移到其它开有3389端口的计算机上,给linux系统伪装出一个提供服务的tcp 3389端口。命令如下:
  
  #echo 1 > /proc/sys/net/ipv4/ip_forward
  #iptables -t nat -i prerouting -p tcp --dport 3389 -j dnat --to xx.xx.xx.xx
  #iptables -t nat -i postrouting -p tcp --dport 3389 -j masquerade
  
  第一条命令表示允许数据包转发;第二条命令表示转发tcp 3389到xx.xx.xx.xx;第三条命令表示使转发数据包实现双向通路,给数据包设置一个正确的返回通道。若想使转发永久生效,可以把以上命令添加到/etc/rc.local文件中。
  
  这样,当黑客扫描服务器所开端口的时候,就找不到22号端口,而是看到一个伪装的3389端口,从而不能正确判断出操作系统的类型。
  
  针对netcraft
  
  netcraft是一个很厉害的扫描引擎,它通过简单的tcp 80,就可以知道所测服务器的操作系统、web服务程序和服务器开机时间(uptime)等信息。
  
  上面介绍的几种方法对netcraft来说,均不奏效。针对netcraft,可利用iptables进行系统伪装,使netcraft错误判断操作系统:
  
  #iptables -t nat -i prerouting -s 195.92.95.0/24 -p tcp --dport 80 -j dnat --to xx.xx.xx.xx
  #iptables -t nat -i postrouting -s 195.92.95.0/24 -p tcp --dport 80 -j masquerade
  
  由于通过抓包发现,netcraft的服务器不止一台,所以需要对它所在网段进行转发欺骗处理。
  
  小结
  
  以上方法只能从某种角度上防止和阻挠黑客对系统漏洞的分析,在一定程度上可减少计算机被攻击的可能性,但仍然是防君子,不防小人,仅是给大家提供一个活学活用的新思路。

免费广告位,欢迎刊登  回到顶部