#
ATT&CK Evaluations Telemetry Generator
The ATT&CK Evaluations Telemetry Generator (telemetry-generator.ps1
) is a repeatable, adversary focused data creation mechanism to exercise a variety of data sources that can be used to help identify adversary behavior with an enterprise. The Telemetry Generator is not meant to dictate sensor coverage, which must also consider realism of collection, such as false positives and data volume. The Telemetry Generator should be used to validate configurations, and can be used to help vendors understand other data sources they should consider. Simply because data is generated in this script does not mean it will be applicable in a given round of ATT&CK Evaluations, or guarantee functionality during an engagement.
Data Generator functions are responsible for carrying out an atomic action within the Telemetry Generator. Read the Data Generators section to see a list and description of all supported generators.
#
Requirements
- Any Windows OS
- Git for Windows
- Unrestricted PowerShell Execution Policy or CLI equivalent
- Internet Access
#
Installation
Start by cloning this repository:
git clone !<INSERT LINK TO REPO HERE>!
#
Quickstart
#
In a USER level PowerShell console, execute the following
If the PowerShell Execution Policy is restricted, run telemetry-generator.ps1
with -ExecutionPolicy Bypass
PowerShell.exe -ExecutionPolicy Bypass -File .\telemetry-generator.ps1
The -ExecuteAll
switch will run all data generators:
PowerShell.exe -ExecutionPolicy Bypass -File .\telemetry-generator.ps1 -ExecuteAll
For isolated generation, specify generators as switches:
PowerShell.exe -ExecutionPolicy Bypass -File .\telemetry-generator.ps1 -WriteFile -ReadFile -DeleteFile
Order matters for generators when specifying multiple switches. For instance, you can not use -ReadFile
before -WriteFile
.
#
Data Generators
.\telemetry-generator.ps1 -Help
will print out this same information
WriteFile - Switch to write file to
$($Env:SystemRoot)\Temp\WriteFile-Test.ps1
with contentWrite-Host "[*] WriteFile Test"
ReadFile - Switch to read file at
$($Env:SystemRoot)\Temp\WriteFile-Test.ps1
DeleteFile - Switch to delete file at
$($Env:SystemRoot)\Temp\WriteFile-Test.ps1
WriteKey - Switch to write regkey to
HKCU:\Software\Microsoft\.Test
with contentTest
ReadKey - Switch to read regkey at
HKCU:\Software\Microsoft\.Test
DeleteKey - Switch to delete regkey at
HKCU:\Software\Microsoft\.Test
NetworkConnection - Switch to generate network traffic by making an HTTPS GET request to
https://httpbin.org:443/get
CreateProcess - Switch to create new cmd.exe process via Start-Process
ExecutePowerShell - Switch to execute PowerShell script from a .ps1 file via powershell.exe -File
ExecuteWMI - Switch to execute WMI query in the
root\cmiv2
namespace forWin32_BIOS
informationExecuteAPI - Switch to execute CreateProcess from the Windows API by importing kernel32.dll through PowerShell
- Source File:
$($Env:SystemRoot)\System32\notepad.exe
- Source File:
ExecuteService - Switch to restart the Audiosrv service
- NOTE: This requires admin. Achieved through -Verb RunAs in new PowerShell process
LogonValid - Switch to generate valid logon event via
net use q: \\127.0.0.1\IPC$
with provided valid credentials- Ensure
Audit Account Logon Events
andAudit Logon Events
are enabled for event log visibility
- Ensure
LogonInvalid - Switch to generate invalid logon event via
net use q: \\127.0.0.1\IPC$
with invalid credentials- Ensure
Audit Account Logon Event
andAudit Logon Events
are enabled for event log visibility
- Ensure
ExecuteAdminIntegrity - Switch to have calc.exe run with Admin integrity level via -Verb RunAs
- NOTE: USER context required for visibility into new integrity level.
#
Adding New Generators
To add generators:
- Create a new function in
telemetry-generator.ps1
- Create parameter with the same name
- Add funciton to ExecuteAll
- Add .PARAMETER descriptor to Get-Help definition
#
Video tutorial
TBD
#
Licensing
© 2020 MITRE Engenuity. Approved for Public Release.