SecBoard
Zurück zur CVE-Übersicht

CVE-2021-41379

MEDIUM(5.5)KEV — Aktiv ausgenutzt

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

Risk Signal Score50/100 — HOCH
  • CVSS 5.5 — Mittel
  • Im CISA KEV-Katalog (aktiv ausgenutzt)

CISA KEV

Bestätigt ausgenutzt

EPSS-Score

19.4%

Exploit-Wahrscheinlichkeit (30 Tage)

CVSS Score

5.5

Technische Schwere

SecBoard-Einordnung

CVE-2021-41379 ist eine Elevation-of-Privilege-Schwachstelle im Windows Installer, die es einem Angreifer ermöglichen kann, höhere Berechtigungen auf einem betroffenen System zu erlangen. Diese Schwachstelle betrifft verschiedene Versionen von Windows 10 und Windows 11. Ein erfolgreicher könnte einem Angreifer erweiterte Kontrolle über das System verschaffen.

KI-gestützte Einordnung auf Basis der NVD-Daten.

Beschreibung

Windows Installer Elevation of Privilege Vulnerability

Erkennung & Indikatoren

Ausnutzung

Aktiv ausgenutzt (CISA KEV).

Threat-Hunting-Queries

Die Schwachstelle ermöglicht eine Privilegienausweitung durch Missbrauch des Windows Installer-Dienstes, um eine Datei oder ein Verzeichnis zu löschen, nachdem ein Junction erstellt wurde. Die Detektion sollte auf ungewöhnliche Aktivitäten des Windows Installer-Dienstes abzielen, insbesondere auf das Erstellen von Junctions gefolgt von Löschvorgängen durch Prozesse mit niedrigen Privilegien, die d

Sentinel/Defender KQL

DeviceProcessEvents
| where InitiatingProcessFileName =~ "msiexec.exe" or InitiatingProcessParentFileName =~ "msiexec.exe"
| where ProcessCommandLine contains "/i" or ProcessCommandLine contains "/x" // Installer/Uninstaller activity
| where InitiatingProcessIntegrityLevel == "Low" or InitiatingProcessIntegrityLevel == "Medium" // Low-privileged process
| join kind=inner (DeviceFileEvents
    | where ActionType == "FileCreated" and FileName contains ".lnk" // Junction/symlink creation indicator
    | where InitiatingProcessIntegrityLevel == "Low" or InitiatingProcessIntegrityLevel == "Medium"
    | summarize JunctionCreationTime = min(TimeGenerated) by DeviceId, InitiatingProcessId
) on DeviceId, InitiatingProcessId
| join kind=inner (DeviceFileEvents
    | where ActionType == "FileDeleted" or ActionType == "DirectoryDeleted"
    | where InitiatingProcessIntegrityLevel == "System" // SYSTEM-level deletion
    | summarize DeletionTime = min(TimeGenerated) by DeviceId, InitiatingProcessId
) on DeviceId, InitiatingProcessId
| where DeletionTime > JunctionCreationTime and DeletionTime < JunctionCreationTime + 1h // Deletion shortly after junction creation
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, InitiatingProcessIntegrityLevel, FileName, ActionType, JunctionCreationTime, DeletionTime

Splunk SPL

index=windows (sourcetype=WinEventLog:Security OR sourcetype=WinEventLog:System OR sourcetype=WinEventLog:Microsoft-Windows-Sysmon/Operational)
| (EventCode=4688 OR EventCode=1) ProcessName IN ("msiexec.exe")
| search CommandLine IN ("*/i*", "*/x*")
| search (User_Integrity_Level="Low" OR User_Integrity_Level="Medium")
| transaction ProcessId startswith (EventCode=1 OR EventCode=4688) ProcessName IN ("msiexec.exe") CommandLine IN ("*/i*", "*/x*") (User_Integrity_Level="Low" OR User_Integrity_Level="Medium") endswith (EventCode=11 OR EventCode=23) (TargetFilename="*.lnk*" OR TargetFilename="*.symlink*") (User_Integrity_Level="Low" OR User_Integrity_Level="Medium")
| search (EventCode=11 OR EventCode=23) (TargetFilename="*.lnk*" OR TargetFilename="*.symlink*") (User_Integrity_Level="Low" OR User_Integrity_Level="Medium")
| join ProcessId
    [ search index=windows (sourcetype=WinEventLog:Security OR sourcetype=WinEventLog:System OR sourcetype=WinEventLog:Microsoft-Windows-Sysmon/Operational)
    | (EventCode=11 OR EventCode=23) (TargetFilename="*.lnk*" OR TargetFilename="*.symlink*") (User_Integrity_Level="Low" OR User_Integrity_Level="Medium")
    | rename _time as JunctionCreationTime
    | fields ProcessId, JunctionCreationTime
    ]
| join ProcessId
    [ search index=windows (sourcetype=WinEventLog:Security OR sourcetype=WinEventLog:System OR sourcetype=WinEventLog:Microsoft-Windows-Sysmon/Operational)
    | (EventCode=11 OR EventCode=23) (TargetFilename="*" OR TargetFilename="*") (User_Integrity_Level="System")
    | rename _time as DeletionTime
    | fields ProcessId, DeletionTime
    ]
| where DeletionTime > JunctionCreationTime AND DeletionTime < relative_time(JunctionCreationTime, "+1h")
| table _time, host, ProcessName, CommandLine, User_Integrity_Level, TargetFilename, JunctionCreationTime, DeletionTime

Sigma

title: Windows Installer Privilege Escalation via Junction Abuse
id: 9a1b2c3d-4e5f-6789-abcd-ef0123456789
status: experimental
description: Detects potential privilege escalation attempts abusing the Windows Installer service by creating junctions and triggering file deletions.
author: SecBoard Operations
date: 2023/10/27
modified: 2023/10/27
tags:
  - attack.privilege_escalation
  - cve.2021-41379
  - cisa_kev
logsource:
  category: process_creation
  product: windows
detection:
  selection_installer:
    Image|endswith:
      - '\msiexec.exe'
    CommandLine|contains:
      - '/i'
      - '/x'
  filter_low_privilege:
    IntegrityLevel:
      - 'Low'
      - 'Medium'
  selection_junction_creation:
    EventID: 11 # Sysmon FileCreate
    TargetFilename|endswith:
      - '.lnk'
      - '.symlink'
  selection_system_deletion:
    EventID: 23 # Sysmon FileDelete
    IntegrityLevel: 'System'
  condition: all of selection_installer and filter_low_privilege and selection_junction_creation and selection_system_deletion
falsepositives:
  - Legitimate software installations/updates that might involve complex file operations.
level: high

Elastic ES|QL

from process where event.action == "process_started" and (process.executable : "*\\msiexec.exe" or process.parent.executable : "*\\msiexec.exe") and (process.args : "/i" or process.args : "/x") and (process.integrity_level : "low" or process.integrity_level : "medium")
| join (from file where event.action == "creation" and (file.extension : "lnk" or file.extension : "symlink") and (process.integrity_level : "low" or process.integrity_level : "medium")) on process.entity_id
| join (from file where event.action == "deletion" and process.integrity_level : "system") on process.entity_id
| where file.creation.timestamp < file.deletion.timestamp and file.deletion.timestamp < file.creation.timestamp + INTERVAL 1 HOUR
| select @timestamp, host.name, process.executable, process.command_line, process.integrity_level, file.path, event.action, file.creation.timestamp, file.deletion.timestamp

SecBoard-generated · behavioral · requires customizationVon SecBoard erzeugt und nicht in einer Zielumgebung validiert. Vor dem Einsatz an die eigene Protokollierung anpassen.

Betroffene Produkte

  • cpe:2.3:o:microsoft:windows_10_1507:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_10_1607:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_10_1809:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_10_1909:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_10_2004:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_10_20h2:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_10_21h1:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_11_21h2:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_7:-:sp1:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_8.1:-:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_rt_8.1:-:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2004:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2008:-:sp2:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2008:r2:sp1:*:*:*:*:x64:*
  • cpe:2.3:o:microsoft:windows_server_2012:-:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2012:r2:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2016:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2019:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_2022:*:*:*:*:*:*:*:*
  • cpe:2.3:o:microsoft:windows_server_20h2:*:*:*:*:*:*:*:*

Referenzen