Detection rules › Sigma

Suspicious Process Patterns NTDS.DIT Exfil

Status
test
Severity
high
Log source
product windows, category process_creation
Author
Florian Roth (Nextron Systems)
Source
github.com/SigmaHQ/sigma

Detects suspicious process patterns used in NTDS.DIT exfiltration

MITRE ATT&CK coverage

TacticTechniques
Credential AccessT1003.003 OS Credential Dumping: NTDS

Event coverage

Rule body yaml

title: Suspicious Process Patterns NTDS.DIT Exfil
id: 8bc64091-6875-4881-aaf9-7bd25b5dda08
status: test
description: Detects suspicious process patterns used in NTDS.DIT exfiltration
references:
    - https://www.ired.team/offensive-security/credential-access-and-credential-dumping/ntds.dit-enumeration
    - https://www.n00py.io/2022/03/manipulating-user-passwords-without-mimikatz/
    - https://pentestlab.blog/tag/ntds-dit/
    - https://github.com/samratashok/nishang/blob/414ee1104526d7057f9adaeee196d91ae447283e/Gather/Copy-VSS.ps1
    - https://github.com/zcgonvh/NTDSDumpEx
    - https://github.com/rapid7/metasploit-framework/blob/d297adcebb5c1df6fe30b12ca79b161deb71571c/data/post/powershell/NTDSgrab.ps1
    - https://blog.talosintelligence.com/2022/08/recent-cyber-attack.html?m=1
author: Florian Roth (Nextron Systems)
date: 2022-03-11
modified: 2022-11-10
tags:
    - attack.credential-access
    - attack.t1003.003
logsource:
    product: windows
    category: process_creation
detection:
    selection_tool:
        # https://github.com/zcgonvh/NTDSDumpEx
        - Image|endswith:
              - '\NTDSDump.exe'
              - '\NTDSDumpEx.exe'
        - CommandLine|contains|all:
              # ntdsdumpex.exe -d ntds.dit -o hash.txt -s system.hiv
              - 'ntds.dit'
              - 'system.hiv'
        - CommandLine|contains: 'NTDSgrab.ps1'
    selection_oneliner_1:
        # powershell "ntdsutil.exe 'ac i ntds' 'ifm' 'create full c:\temp' q q"
        CommandLine|contains|all:
            - 'ac i ntds'
            - 'create full'
    selection_onliner_2:
        # cmd.exe /c copy z:\windows\ntds\ntds.dit c:\exfil\ntds.dit
        CommandLine|contains|all:
            - '/c copy '
            - '\windows\ntds\ntds.dit'
    selection_onliner_3:
        # ntdsutil "activate instance ntds" "ifm" "create full c:\windows\temp\data\" "quit" "quit"
        CommandLine|contains|all:
            - 'activate instance ntds'
            - 'create full'
    selection_powershell:
        CommandLine|contains|all:
            - 'powershell'
            - 'ntds.dit'
    set1_selection_ntds_dit:
        CommandLine|contains: 'ntds.dit'
    set1_selection_image_folder:
        - ParentImage|contains:
              - '\apache'
              - '\tomcat'
              - '\AppData\'
              - '\Temp\'
              - '\Public\'
              - '\PerfLogs\'
        - Image|contains:
              - '\apache'
              - '\tomcat'
              - '\AppData\'
              - '\Temp\'
              - '\Public\'
              - '\PerfLogs\'
    condition: 1 of selection* or all of set1*
falsepositives:
    - Unknown
level: high

Stages and Predicates

Stage 0: condition

1 of selection* or all of set1*

Stage 1: selection_tool

selection_tool:
    - Image|endswith:
          - '\NTDSDump.exe'
          - '\NTDSDumpEx.exe'
    - CommandLine|contains|all:
          - 'ntds.dit'
          - 'system.hiv'
    - CommandLine|contains: 'NTDSgrab.ps1'

Stage 2: selection_oneliner_1

selection_oneliner_1:
    CommandLine|contains|all:
        - 'ac i ntds'
        - 'create full'

Stage 3: selection_onliner_2

selection_onliner_2:
    CommandLine|contains|all:
        - '/c copy '
        - '\windows\ntds\ntds.dit'

Stage 4: selection_onliner_3

selection_onliner_3:
    CommandLine|contains|all:
        - 'activate instance ntds'
        - 'create full'

Stage 5: selection_powershell

selection_powershell:
    CommandLine|contains|all:
        - 'powershell'
        - 'ntds.dit'

Stage 6: set1_selection_ntds_dit

set1_selection_ntds_dit:
    CommandLine|contains: 'ntds.dit'

Stage 7: set1_selection_image_folder

set1_selection_image_folder:
    - ParentImage|contains:
          - '\apache'
          - '\tomcat'
          - '\AppData\'
          - '\Temp\'
          - '\Public\'
          - '\PerfLogs\'
    - Image|contains:
          - '\apache'
          - '\tomcat'
          - '\AppData\'
          - '\Temp\'
          - '\Public\'
          - '\PerfLogs\'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
CommandLinematch
  • /c copy
  • NTDSgrab.ps1
  • \windows\ntds\ntds.dit corpus 5 (sigma 5)
  • ac i ntds
  • activate instance ntds
  • create full
  • ntds.dit corpus 2 (sigma 1, elastic 1)
  • powershell corpus 25 (sigma 24, chronicle 1)
  • system.hiv
Imageends_with
  • \NTDSDump.exe
  • \NTDSDumpEx.exe
Imagematch
  • \AppData\ corpus 7 (sigma 7)
  • \PerfLogs\ corpus 5 (sigma 5)
  • \Public\ corpus 2 (sigma 2)
  • \Temp\ corpus 4 (sigma 4)
  • \apache
  • \tomcat
ParentImagematch
  • \AppData\ corpus 3 (sigma 3)
  • \PerfLogs\ corpus 2 (sigma 2)
  • \Public\ corpus 2 (sigma 2)
  • \Temp\ corpus 3 (sigma 3)
  • \apache corpus 2 (sigma 2)
  • \tomcat corpus 6 (sigma 6)