首页 > 基础设施 > 正文

常用Linux系统伪装方法

2012-09-03 16:20:12  来源:比特网

摘要:本文以Red Hat Linux为例,针对几种黑客常用的途径介绍一些常用的Linux系统伪装的方法。
关键词: Linux

    网络上的计算机很容易被黑客利用工具或其它手段进行扫描,以寻找系统中的漏洞,然后再针对漏洞进行攻击。通过伪装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的相关信息隐藏起来。但是,RedHat Linux 运行的 Apache 是编译好的程序,提示信息被编译在程序里,要隐藏这些信息需要修改Apache的源代码,然后,重新编译安装程序,以实现替换里面的提示内容。


    以Apache 2.0.50为例,编辑ap_release.h文件,修改“#defineAP_SERVER_BASEPRODUCT ”Apache“”为“#define AP_SERVER_BASEPRODUCT ”Mi-crosoft-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了。[page]
    三、针对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端口,也可以推测操作系统的类型。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的服务器不止一台,所以需要对它所在网段进行转发欺骗处理。


    六、小结


    以上方法只能从某种角度上防止和阻挠黑客对系统漏洞的分析,在一定程度上可减少计算机被攻击的可能性,但仍然是“防君子,不防小人”,仅是给大家提供一个活学活用的新思路。
 


第三十四届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:zhangyexi

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。