Web中间件漏洞之IIS漏洞(转)

PUT漏洞

原文地址:https://xz.aliyun.com/t/6783

前提条件:
IIS 6.0开启了WebDAV并且拥有IIS来宾用户拥有写入权限
复现过程:
IIS PUT SCANNER探测一下目标IIS是否拥有写入权限
img
YES所以可以利用
先看原来的服务器上面存在的内容
img
我们利用另一个工具对文件进行写入,我们写入一句话webshell
img
上传test.txt成功
img
上传上去是txt格式,于是我们用MOVE或者COPY选项把它改成asp后缀
img
菜刀连一下,拿到webshell
img

提权

上传cmd.exepr.exe上去,这二者的用法是pr提权
执行下面这条命令,把当前终端的执行程序设置成我们上传的 cmd.exe

1
setp "路径cmd.exe"

然后我们就可以pr提权,查看一下当前是system权限
img
于是我们新建管理员账户

1
2
3
pr.exe "net user hack1 123 /add" 新建一个hack1用户,密码为123

pr.exe "net localgroup administrators hack1 /add" 将hack1用户加入administrators管理员组

img
如果对方开启了3389端口那么就可以用新建的用户登录,如果没有开启那么我们就上传一个bat文件,它可以远程开启目标的3389端口
img
此时运行利用pr.exe运行3389open.bat,成功开启3389端口,可以连接
img
附上3389open.bat文件代码

1
2
3
4
5
6
7
8
9
10
//3389open.bat
echo Windows Registry Editor Version 5.00>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server]>>3389.reg
echo "fDenyTSConnections"=dword:00000000>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]>>3389.reg
echo "PortNumber"=dword:00000d3d>>3389.reg
regedit /s 3389.reg
del 3389.reg

漏洞修复

关闭WebDAV和写权限

远程代码执行(CVE-2017-7269)

前提条件:
IIS 6.0开启WebDAV
复现过程:
exp下载地址:https://github.com/zcgonvh/cve-2017-7269
下载后放入msf中,路径为/usr/share/metasploit-framework/modules/exploits/windows/iis/
注意文件名中-应该改为_否则无法识别,然后拿到了shell(失败后靶机恢复快照,否则可能之后的攻击无效)
img
这里说说我开始失败的原因
img
这种叫非默认绑定
这个exp可以直接利用,如果是绑定了的,就需要手动输入物理路径的长度和端口即可
目前网络上存在三种脚本,我使用的这种是第二种,区别附图
img
很明显第一种用处不大,可以用第二种代替,第二种和第三种区别就是需不需要手动输入物理路径的长度和端口,第三种方便,但是第三种不咋稳定我们来看看如何手动输入物理路径长度
现在我们默认绑定
img

批量检测工具

下载地址:https://github.com/admintony/Windows-Exploit/tree/master/IIS6_WebDAV_Scanner
检测出了长度为71
img
然后在msf上设置PhysicalPathLength71即可
img

提权

img
输入whoami都不行,是一个低权限账户
再次使用pr提权,利用meterpreter上传pr.exe
img
然后创建用户hack1并添加到管理员组
img
netstat -an查看是否打开了3389端口,发现并没有
img
输入exit回到meterpreter上传3389open.bat
img
然后利用pr.exe运行
img
netstat -an查看一下,发现3389端口已经打开
img
成功登陆
img

漏洞修复

关闭WebDAV

解析漏洞

前提条件:

IIS 6.0 IIS 7.5
复现过程:
IIS 6.0解析漏洞有两种利用方式
(1)在.asp目录下的任意文件会以asp格式解析
img
(2);截断,上传test.asp;.jpg是一个jpg文件但是会以asp执行
img
IIS 7.0解析漏洞
在文件后面加上/xx.php(xx可加可不加)就会将该文件以php格式执行,比如
img

漏洞修复

(1)限制上传的脚本执行权限,不允许执行脚本
(2)对新建目录文件名进行过滤,不允许新建包含‘.’的文件
(3)不允许新建目录
(4)过滤.asp/xx.jpg,通过ISApi组件过滤

短文件猜解

前提条件:

1
2
3
4
5
6
7
8
9
10
11
12
13
IIS 1.0,Windows NT 3.51  
IIS 3.0,Windows NT 4.0 Service Pack 2
IIS 4.0,Windows NT 4.0选项包
IIS 5.0,Windows 2000
IIS 5.1,Windows XP Professional和Windows XP Media Center Edition
IIS 6.0,Windows Server 2003和Windows XP Professional x64 Edition
IIS 7.0,Windows Server 2008和Windows Vista
IIS 7.5,Windows 7(远程启用<customErrors>或没有web.config)
IIS 7.5,Windows 2008(经典管道模式)
IS 8.0,Windows 8, Windows Server 2012
IIS 8.5,Windows 8.1,Windows Server 2012 R2
IIS 10.0,Windows 10, Windows Server 2016
注意:IIS使用.Net Framework 4时不受影响

短文件名特征:
1.只显示前6位的字符,后续字符用~1代替。其中数字1是可以递增。如果存在文件名类似的文件,则前面的6个字符是相同的,后面的数字进行递增
img
2.后缀名最长只有3位,超过3位的会生成短文件名,且后缀多余的部分会截断
img
3.所有小写字母均转换成大写的字母
4.长文件名中包含多个”.”的时候,以文件最后一个”.”作为短文件名的后缀
img
5.文件名后缀长度大于等于4或者总长度大于等于9时才会生成短文件名,如果包含空格或者其他部分特殊字符,不论长度均会生成短文件
img
漏洞原理:
访问构造的某个存在的短文件名,会返回404,访问构造的某个不存在的短文件名,返回400
自动化探测:
https://github.com/lijiejie/IIS_shortname_Scanner
img

漏洞修复

(1)升级.net framework4.0以上
(2)修改注册表禁用短文件名功能快捷键Win+R打开命令窗口,输入regedit打开注册表窗口,找到路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem,将其中的NtfsDisable8dot3NameCreation这一项的值设为11代表不创建短文件名格式,修改完成后,需要重启系统生效(之前存在的文件依然有短文件,新建的文件满足生成短文件条件但是不会再生成)
img
(3)那么之前的文件已经存在短文件名仍能够被猜解怎么办呢?将目录内所有文件剪切到另外地方再粘贴回来就行,相当于新建,这些就没有短文件名无法被猜解了
img
使用自动化脚本试试
img
Server is not vulnerable 防御成功

参考链接

http://www.admintony.com/CVE-2017-7269.html
https://www.freebuf.com/articles/web/192063.html
https://www.jianshu.com/p/354fcf0939cc
https://www.freebuf.com/articles/web/172561.html
https://www.jb51.net/article/166405.htm

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器