Detection rules › Sigma

Potential Persistence Via Disk Cleanup Handler - Registry

Status
test
Severity
medium
Log source
category registry_add, product windows
Author
Nasreddine Bencherchali (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects when an attacker modifies values of the Disk Cleanup Handler in the registry to achieve persistence. The disk cleanup manager is part of the operating system. It displays the dialog box […] The user has the option of enabling or disabling individual handlers by selecting or clearing their check box in the disk cleanup manager's UI. Although Windows comes with a number of disk cleanup handlers, they aren't designed to handle files produced by other applications. Instead, the disk cleanup manager is designed to be flexible and extensible by enabling any developer to implement and register their own disk cleanup handler. Any developer can extend the available disk cleanup services by implementing and registering a disk cleanup handler.

Known false positives

  • Legitimate new entry added by windows

MITRE ATT&CK coverage

TacticTechniques
PersistenceNo specific technique

Telemetry coverage

Rule body

title: Potential Persistence Via Disk Cleanup Handler - Registry
id: d4f4e0be-cf12-439f-9e25-4e2cdcf7df5a
status: test
description: |
    Detects when an attacker modifies values of the Disk Cleanup Handler in the registry to achieve persistence.
    The disk cleanup manager is part of the operating system. It displays the dialog box […]
    The user has the option of enabling or disabling individual handlers by selecting or clearing their check box in the disk cleanup manager's UI.
    Although Windows comes with a number of disk cleanup handlers, they aren't designed to handle files produced by other applications.
    Instead, the disk cleanup manager is designed to be flexible and extensible by enabling any developer to implement and register their own disk cleanup handler.
    Any developer can extend the available disk cleanup services by implementing and registering a disk cleanup handler.
references:
    - https://persistence-info.github.io/Data/diskcleanuphandler.html
    - https://www.hexacorn.com/blog/2018/09/02/beyond-good-ol-run-key-part-86/
author: Nasreddine Bencherchali (Nextron Systems)
date: 2022-07-21
modified: 2023-02-07
tags:
    - attack.persistence
logsource:
    product: windows
    category: registry_add
detection:
    selection:
        EventType: CreateKey
        TargetObject|contains: '\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\'
    filter_main_default_keys:
        # Default Keys
        TargetObject|endswith:
            - '\Active Setup Temp Folders'
            - '\BranchCache'
            - '\Content Indexer Cleaner'
            - '\D3D Shader Cache'
            - '\Delivery Optimization Files'
            - '\Device Driver Packages'
            - '\Diagnostic Data Viewer database files'
            - '\Downloaded Program Files'
            - '\DownloadsFolder'
            - '\Feedback Hub Archive log files'
            - '\Internet Cache Files'
            - '\Language Pack'
            - '\Microsoft Office Temp Files'
            - '\Offline Pages Files'
            - '\Old ChkDsk Files'
            - '\Previous Installations'
            - '\Recycle Bin'
            - '\RetailDemo Offline Content'
            - '\Setup Log Files'
            - '\System error memory dump files'
            - '\System error minidump files'
            - '\Temporary Files'
            - '\Temporary Setup Files'
            - '\Temporary Sync Files'
            - '\Thumbnail Cache'
            - '\Update Cleanup'
            - '\Upgrade Discarded Files'
            - '\User file versions'
            - '\Windows Defender'
            - '\Windows Error Reporting Files'
            - '\Windows ESD installation files'
            - '\Windows Upgrade Log Files'
    condition: selection and not 1 of filter_main_*
falsepositives:
    - Legitimate new entry added by windows
level: medium

Stages and Predicates

Stage 0: condition

selection and not 1 of filter_main_*

Stage 1: selection

selection:
    EventType: CreateKey
    TargetObject|contains: '\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\'

Stage 2: not filter_main_default_keys

filter_main_default_keys:
    TargetObject|endswith:
        - '\Active Setup Temp Folders'
        - '\BranchCache'
        - '\Content Indexer Cleaner'
        - '\D3D Shader Cache'
        - '\Delivery Optimization Files'
        - '\Device Driver Packages'
        - '\Diagnostic Data Viewer database files'
        - '\Downloaded Program Files'
        - '\DownloadsFolder'
        - '\Feedback Hub Archive log files'
        - '\Internet Cache Files'
        - '\Language Pack'
        - '\Microsoft Office Temp Files'
        - '\Offline Pages Files'
        - '\Old ChkDsk Files'
        - '\Previous Installations'
        - '\Recycle Bin'
        - '\RetailDemo Offline Content'
        - '\Setup Log Files'
        - '\System error memory dump files'
        - '\System error minidump files'
        - '\Temporary Files'
        - '\Temporary Setup Files'
        - '\Temporary Sync Files'
        - '\Thumbnail Cache'
        - '\Update Cleanup'
        - '\Upgrade Discarded Files'
        - '\User file versions'
        - '\Windows Defender'
        - '\Windows Error Reporting Files'
        - '\Windows ESD installation files'
        - '\Windows Upgrade Log Files'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
TargetObjectends_with\Active Setup Temp Foldersexcludes:TargetObject field:"TargetObject" value:"\Active Setup Temp Folders"
TargetObjectends_with\BranchCacheexcludes:TargetObject field:"TargetObject" value:"\BranchCache"
TargetObjectends_with\Content Indexer Cleanerexcludes:TargetObject field:"TargetObject" value:"\Content Indexer Cleaner"
TargetObjectends_with\D3D Shader Cacheexcludes:TargetObject field:"TargetObject" value:"\D3D Shader Cache"
TargetObjectends_with\Delivery Optimization Filesexcludes:TargetObject field:"TargetObject" value:"\Delivery Optimization Files"
TargetObjectends_with\Device Driver Packagesexcludes:TargetObject field:"TargetObject" value:"\Device Driver Packages"
TargetObjectends_with\Diagnostic Data Viewer database filesexcludes:TargetObject field:"TargetObject" value:"\Diagnostic Data Viewer database files"
TargetObjectends_with\Downloaded Program Filesexcludes:TargetObject field:"TargetObject" value:"\Downloaded Program Files"
TargetObjectends_with\DownloadsFolderexcludes:TargetObject field:"TargetObject" value:"\DownloadsFolder"
TargetObjectends_with\Feedback Hub Archive log filesexcludes:TargetObject field:"TargetObject" value:"\Feedback Hub Archive log files"
TargetObjectends_with\Internet Cache Filesexcludes:TargetObject field:"TargetObject" value:"\Internet Cache Files"
TargetObjectends_with\Language Packexcludes:TargetObject field:"TargetObject" value:"\Language Pack"
TargetObjectends_with\Microsoft Office Temp Filesexcludes:TargetObject field:"TargetObject" value:"\Microsoft Office Temp Files"
TargetObjectends_with\Offline Pages Filesexcludes:TargetObject field:"TargetObject" value:"\Offline Pages Files"
TargetObjectends_with\Old ChkDsk Filesexcludes:TargetObject field:"TargetObject" value:"\Old ChkDsk Files"
TargetObjectends_with\Previous Installationsexcludes:TargetObject field:"TargetObject" value:"\Previous Installations"
TargetObjectends_with\Recycle Binexcludes:TargetObject field:"TargetObject" value:"\Recycle Bin"
TargetObjectends_with\RetailDemo Offline Contentexcludes:TargetObject field:"TargetObject" value:"\RetailDemo Offline Content"
TargetObjectends_with\Setup Log Filesexcludes:TargetObject field:"TargetObject" value:"\Setup Log Files"
TargetObjectends_with\System error memory dump filesexcludes:TargetObject field:"TargetObject" value:"\System error memory dump files"
TargetObjectends_with\System error minidump filesexcludes:TargetObject field:"TargetObject" value:"\System error minidump files"
TargetObjectends_with\Temporary Filesexcludes:TargetObject field:"TargetObject" value:"\Temporary Files"
TargetObjectends_with\Temporary Setup Filesexcludes:TargetObject field:"TargetObject" value:"\Temporary Setup Files"
TargetObjectends_with\Temporary Sync Filesexcludes:TargetObject field:"TargetObject" value:"\Temporary Sync Files"
TargetObjectends_with\Thumbnail Cacheexcludes:TargetObject field:"TargetObject" value:"\Thumbnail Cache"
TargetObjectends_with\Update Cleanupexcludes:TargetObject field:"TargetObject" value:"\Update Cleanup"
TargetObjectends_with\Upgrade Discarded Filesexcludes:TargetObject field:"TargetObject" value:"\Upgrade Discarded Files"
TargetObjectends_with\User file versionsexcludes:TargetObject field:"TargetObject" value:"\User file versions"
TargetObjectends_with\Windows Defenderexcludes:TargetObject field:"TargetObject" value:"\Windows Defender"
TargetObjectends_with\Windows ESD installation filesexcludes:TargetObject field:"TargetObject" value:"\Windows ESD installation files"
TargetObjectends_with\Windows Error Reporting Filesexcludes:TargetObject field:"TargetObject" value:"\Windows Error Reporting Files"
TargetObjectends_with\Windows Upgrade Log Filesexcludes:TargetObject field:"TargetObject" value:"\Windows Upgrade Log Files"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
EventTypeeq
  • CreateKey corpus 3 (sigma 3)
field:"EventType" kind:eq value:"CreateKey"
TargetObjectmatch
  • \SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\ corpus 2 (sigma 2)
field:"TargetObject" kind:match value:"\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\"