khoicrtp commited on
Commit
5fe70fd
1 Parent(s): 8d773ac

Upload 2298 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +2 -0
  2. alpaca-bitcoin-sentiment-dataset.json +0 -0
  3. alpaca_data_cleaned_archive.json +37 -0
  4. alpaca_data_cleaned_archive_origin.json +3 -0
  5. bitcoin-sentiment-tweets.csv +0 -0
  6. cti-ATT-CK-v13.1/.gitignore +6 -0
  7. cti-ATT-CK-v13.1/CHANGELOG.md +102 -0
  8. cti-ATT-CK-v13.1/LICENSE.txt +38 -0
  9. cti-ATT-CK-v13.1/README.md +32 -0
  10. cti-ATT-CK-v13.1/USAGE-CAPEC.md +136 -0
  11. cti-ATT-CK-v13.1/USAGE.md +1182 -0
  12. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--00268a75-3243-477d-9166-8c78fddf6df6.json +88 -0
  13. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0082c733-5245-47ca-a349-6c9fe34114f1.json +29 -0
  14. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--00c93895-c68e-4d27-a1ec-0dddce68ed97.json +45 -0
  15. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--00d91a4c-2645-4bf1-8db7-e7448ef25f17.json +77 -0
  16. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0123fa83-2d47-4398-85f1-30ce114abb9a.json +47 -0
  17. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--012db73f-2f3c-49f3-bdf3-12ec3eee01ce.json +53 -0
  18. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--014e5fc2-7564-4775-94aa-220601522b05.json +47 -0
  19. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0184fd4d-9134-42c0-b073-5e614773d408.json +70 -0
  20. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--01a08342-5c58-4f61-b8e1-997e444b3a59.json +100 -0
  21. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--02570621-96aa-4525-b782-8e3939affac3.json +65 -0
  22. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--03093798-f245-4ed2-a085-88e69d303b11.json +29 -0
  23. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--03a731ef-751b-43de-9159-9667d4be4d1a.json +153 -0
  24. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--056a463d-6303-438e-a43f-992cee52fb95.json +139 -0
  25. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--05740120-81ef-4224-9805-2f0b54d1111f.json +83 -0
  26. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0618a68a-c6e1-4370-82d3-c76fa2745905.json +42 -0
  27. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--06e8782a-87af-4863-b6b1-99e09edda3be.json +96 -0
  28. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--071baf4e-1d72-497e-8ac4-edb513262aca.json +29 -0
  29. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--074a7522-162a-4656-8c50-36ce5ee5adc6.json +87 -0
  30. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--08c74bd3-c5ad-4d6c-a8bb-bb93d7503ddb.json +92 -0
  31. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0939f361-ea31-454b-ae3d-4af2411b756d.json +116 -0
  32. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0a765348-6b5a-4797-9724-44b4fc4f9c55.json +49 -0
  33. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0a899aed-6271-4cc9-8ffc-5c9575776731.json +73 -0
  34. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0a8ef002-1cb8-46e1-bc44-efd0a39b2a67.json +70 -0
  35. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0b08a46d-d680-4f3d-91ad-f97e00878780.json +110 -0
  36. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0cf857f6-afa4-4f0c-850f-58a4f11df157.json +84 -0
  37. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0d249bf9-13b3-4c13-9423-bcb1ea73c067.json +55 -0
  38. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0d2d1e18-6e28-4c58-b442-c5450e6c1112.json +57 -0
  39. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0e475610-f909-4927-a93c-04f08b1781b3.json +29 -0
  40. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0fda524b-2218-4aec-bf3e-6f345d13e459.json +46 -0
  41. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--1059e91f-43ff-4a00-bc74-4110979f5247.json +87 -0
  42. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--10ce28bf-9f93-4a45-a39e-6407141a34d4.json +64 -0
  43. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--11d7e0d6-5655-4fc7-aee8-e2e0fc6c5088.json +53 -0
  44. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--123b3182-a540-4b15-ac28-0fbf607f9ebf.json +29 -0
  45. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--12d80b47-8e4c-4646-bcc3-2bd7059a44e1.json +85 -0
  46. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--12de9227-495b-49b2-859f-334a20197ba3.json +59 -0
  47. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--1339dbbe-fe41-467a-b43c-7d56d22a9fe4.json +65 -0
  48. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--13b94aaa-9c95-487c-ad68-8c29d8ac0068.json +53 -0
  49. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--13d1d169-0023-41e2-952f-7d794844733b.json +58 -0
  50. cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--13e147c3-7baa-4ec4-aafd-9135d46545cc.json +51 -0
.gitattributes CHANGED
@@ -32,3 +32,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
 
 
 
32
  *.zip filter=lfs diff=lfs merge=lfs -text
33
  *.zst filter=lfs diff=lfs merge=lfs -text
34
  *tfevents* filter=lfs diff=lfs merge=lfs -text
35
+ alpaca_data_cleaned_archive_origin.json filter=lfs diff=lfs merge=lfs -text
36
+ cti-ATT-CK-v13.1/enterprise-attack/enterprise-attack.json filter=lfs diff=lfs merge=lfs -text
alpaca-bitcoin-sentiment-dataset.json ADDED
The diff for this file is too large to render. See raw diff
 
alpaca_data_cleaned_archive.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "instruction": "Describe DDOS attack",
4
+ "input": "",
5
+ "output": "A Distributed Denial of Service (DDoS) attack is a malicious attempt to disrupt the normal functioning of a network, service, or website by overwhelming it with a flood of internet traffic. In a DDoS attack, multiple compromised computers or devices, often referred to as a botnet, are used to generate a massive amount of traffic that exceeds the target's capacity to handle it."
6
+ },
7
+ {
8
+ "instruction": "What are DDOS technique?",
9
+ "input": "",
10
+ "output": "Traffic flooding: The attacker overwhelms the target with a massive volume of network traffic, consuming all available resources. \nApplication layer attacks: The attacker targets specific applications or services, attempting to exhaust their resources by exploiting vulnerabilities or by initiating resource-intensive operations. \nProtocol attacks: The attacker exploits weaknesses in network protocols, such as the TCP/IP stack, to consume server resources or disrupt communication.\nReflective/amplified attacks: The attacker uses a technique where they send requests to a large number of vulnerable systems that respond by sending a much larger response back to the target, amplifying the attack's impact."
11
+ },
12
+ {
13
+ "instruction": "How to avoid DDOS attack",
14
+ "input": "",
15
+ "output": "DDoS mitigation services: Consider using a reputable DDoS mitigation service that specializes in detecting and mitigating attacks. These services can help filter out malicious traffic and ensure your network remains accessible during an attack. \nNetwork monitoring: Implement robust network monitoring systems to detect any unusual traffic patterns or sudden spikes in traffic. Early detection can allow you to respond quickly and mitigate the impact of an attack."
16
+ },
17
+ {
18
+ "instruction": "what to do when getting ddos-ed",
19
+ "input": "",
20
+ "output": "Contact your DDoS mitigation service: If you have a DDoS mitigation service in place, immediately contact them to activate their services and inform them about the ongoing attack. They can help filter out malicious traffic and provide guidance on mitigation strategies.\nMonitor network traffic: Use network monitoring tools or services to analyze and monitor the incoming traffic. Identify the characteristics of the attack, such as the source IP addresses, traffic patterns, and attack vectors. This information can be useful for further analysis and potential legal action."
21
+ },
22
+ {
23
+ "instruction": "What is DDOS attack",
24
+ "input": "",
25
+ "output": "is a malicious with a flood of internet traffic. In a DDoS attack, multiple compromised computers or devices, often referred to as a botnet, are used to generate a massive amount of traffic that exceeds the target's capacity to handle it."
26
+ },
27
+ {
28
+ "instruction": "Which are DDOS technique?",
29
+ "input": "Traffic flooding, Scanning, Viewing",
30
+ "output": "Traffic flooding"
31
+ },
32
+ {
33
+ "instruction": "Avoid DDOS attack",
34
+ "input": "",
35
+ "output": "DDoS mitigation services: Consider using a reputable DDoS mitigation service that specializes in detecting and mitigating attacks. These services can help filter out malicious traffic and ensure your network remains accessible during an attack. \nNetwork monitoring: Implement robust network monitoring systems to detect any unusual traffic patterns or sudden spikes in traffic. Early detection can allow you to respond quickly and mitigate the impact of an attack."
36
+ }
37
+ ]
alpaca_data_cleaned_archive_origin.json ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00c26b8da597c1aaa5a0bac023bdb8f26bbaa37a9ead7837df4aa7e51ad57459
3
+ size 23573609
bitcoin-sentiment-tweets.csv ADDED
The diff for this file is too large to render. See raw diff
 
cti-ATT-CK-v13.1/.gitignore ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ hashes.json
2
+ *.pyc
3
+ .DS_Store
4
+ .idea
5
+ .vscode
6
+ venv
cti-ATT-CK-v13.1/CHANGELOG.md ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ # Changes to the ATT&CK/STIX Data Model
3
+
4
+ ## 25 April 2023 - ATT&CK Spec v3.1.0
5
+
6
+ Changes to ATT&CK in STIX for April 2023 ATT&CK Content Release (ATT&CK v13.0)
7
+
8
+ * Restored the `labels` property for ICS mitigation objects. This property documents security controls for ICS mitigations.
9
+
10
+ ## 25 October 2022 - ATT&CK Spec v3.0.0
11
+
12
+ Changes to ATT&CK in STIX for October 2022 ATT&CK Content Release (ATT&CK-v12.0)
13
+
14
+ * Added Campaign objects. For detailed information about the representation of Campaigns in ATT&CK/STIX, please see the campaign section of the [USAGE document](https://github.com/mitre/cti/blob/master/USAGE.md).
15
+
16
+ ## 25 April 2022 (ATT&CK v11) release
17
+
18
+ NOTE: Changes to ATT&CK for the April 2022 (ATT&CK v11) release were initially omitted from this change log.
19
+
20
+ As of the v11 content release, the following fields that previously were only available in the STIX 2.1 bundles are also available in STIX 2.0.
21
+
22
+ * `x_mitre_modified_by_ref`: has been added to all object types. Defined in spec 2.0.0 below.
23
+ * `x_mitre_domains`: has been added to all non-relationship objects. Defined in spec 2.0.0 below.
24
+ * `x_mitre_attack_spec_version`: has been added to all object types. Defined in spec 2.1.0 below.
25
+
26
+ ## 21 October 2021 - ATT&CK Spec v2.1.0
27
+ Changes to ATT&CK in STIX for October 2021 ATT&CK Content Release (ATT&CK-v10.0)
28
+
29
+ | Feature | [Available in STIX 2.0](https://github.com/mitre/cti) | [Available in STIX 2.1](https://github.com/mitre-attack/attack-stix-data) |
30
+ |:--------|:-----------------------------------------------------:|:-------------------------------------------------------------------------:|
31
+ | Added full objects for data sources and data components. See [the data sources section of the USAGE document](https://github.com/mitre-attack/attack-stix-data/blob/master/USAGE.md#data-sources-and-data-components) for more information about data sources, data components, and their relationships with techniques. | :white_check_mark: | :white_check_mark: |
32
+ | Added `x_mitre_attack_spec_version` field to all object types. This field tracks the version of the ATT&CK Spec used by the object. Consuming software can use this field to determine if the data format is supported; if the field is absent the object will be assumed to use ATT&CK Spec version `2.0.0`. | :x: | :white_check_mark: |
33
+
34
+ ## 21 June 2021 - ATT&CK Spec v2.0.0
35
+ Release of ATT&CK in STIX 2.1.
36
+
37
+ The contents of this repository is not affected, but you can find ATT&CK in STIX 2.1 (ATT&CK spec v2.0.0+) on our new [attack-stix-data](https://github.com/mitre-attack/attack-stix-data) GitHub repository. Both MITRE/CTI (this repository) and attack-stix-data will be maintained and updated with new ATT&CK releases for the foreseeable future, but the data model of attack-stix-data includes quality-of-life improvements not found on MITRE/CTI.
38
+
39
+ | Feature | [Available in STIX 2.0](https://github.com/mitre/cti) | [Available in STIX 2.1](https://github.com/mitre-attack/attack-stix-data) |
40
+ |:--------|:-----------------------------------------------------:|:-------------------------------------------------------------------------:|
41
+ | Added `x_mitre_modified_by_ref` field to all object types. This field tracks the identity of the individual or organization which created the current _version_ of the object. | :x: | :white_check_mark: |
42
+ | Added `x_mitre_domains` field to all non-relationship objects. This field tracks the domains the object is found in. | :x: | :white_check_mark: |
43
+ | Added [collection](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend/blob/master/docs/collections.md) objects to track information about specific releases of the dataset and to allow the dataset to be imported into [ATT&CK Workbench](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend/). | :x: | :white_check_mark: |
44
+ | Added a [collection index](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend/blob/master/docs/collections.md) to list the contents of this repository and to allow the data to be imported into [ATT&CK Workbench](https://github.com/center-for-threat-informed-defense/attack-workbench-frontend/). | :x: | :white_check_mark: |
45
+
46
+ ## 29 April 2021
47
+ Changes to ATT&CK in STIX for April 2021 ATT&CK Content Release (ATT&CK-v9.0)
48
+
49
+ 1. Replaced `GCP`, `AWS` and `Azure` platforms under the enterprise domain with `IaaS` (Infrastructure as a Service).
50
+ 2. Added `Containers` and `Google Workspace` to the platforms of the enterprise domain.
51
+ 3. Revised the data sources of the enterprise domain. Data sources are still represented as a string array, but the elements within that array are now formatted `"data source: data component"` to reflect the new data source representation. More information on the new data sources can be found on our [attack-datasources](https://github.com/mitre-attack/attack-datasources) GitHub repository. Note that the data sources in the ICS domain was not affected by this change.
52
+
53
+ With the release of ATT&CK version 9 we are also hosting an excel representation of the knowledge base on our website. You can find that representation and more about ATT&CK tools on the updated [Working with ATT&CK](https://attack.mitre.org/resources/working-with-attack/) page.
54
+
55
+ ## 27 October 2020
56
+ Changes to ATT&CK in STIX for October 2020 ATT&CK Content Release (ATT&CK-v8.0)
57
+
58
+ 1. Added new platforms under the enterprise domain: `Network` and `PRE`.
59
+ 2. Deprecated the pre-ATT&CK domain. Pre-ATT&CK has been migrated to two new tactics in the Enterprise domain tagged with the `PRE` platform. Please see the new [PRE matrix](https://attack.mitre.org/matrices/enterprise/PRE/) for the replacing Enterprise tactics and techniques. All objects within the pre-ATT&CK domain have been marked as deprecated, along with a new description pointing to their new home in Enterprise.
60
+ 3. Added the [ATT&CK for ICS domain](ics-attack).
61
+
62
+ ## 8 July 2020 - ATT&CK Spec v1.3.0
63
+ Changes to ATT&CK in STIX for July 2020 ATT&CK Content Release (ATT&CK-v7.0)
64
+
65
+ 1. Added sub-techniques:
66
+ - A sub-technique is an attack-pattern where `x_mitre_is_subtechnique` is `true`.
67
+ - Relationships of type `subtechnique-of` between sub-techniques and techniques convey their hierarchy.
68
+
69
+ For more information about the representation of sub-techniques in STIX, please see [the sub-techniques section of the USAGE document](USAGE.md#sub-techniques).
70
+ 2. Revised the representation of deprecated objects. The first paragraph of deprecated objects' descriptions should in most cases convey the reason the object was deprecated.
71
+
72
+ We've also rewritten the [USAGE](USAGE.md) document with additional information about the ATT&CK data model and more examples of how to access and use ATT&CK in Python.
73
+
74
+ ## 24 October 2019
75
+ Changes to ATT&CK in STIX for October 2019 ATT&CK Content Release (ATT&CK-v6.0)
76
+ 1. Added cloud platforms under the enterprise domain: `AWS`, `GCP`, `Azure`, `Office 365`, `Azure AD`, and `SaaS`.
77
+
78
+ ## 31 July 2019
79
+ Changes to ATT&CK in STIX for July 2019 ATT&CK Content Release (ATT&CK-v5.0)
80
+ 1. Descriptions added to relationships of type `mitigates` under the enterprise domain
81
+
82
+ ## 30 April 2019 - ATT&CK Spec v1.2.0
83
+ Changes to ATT&CK in STIX for April 2019 ATT&CK Content Release (ATT&CK-v4.0)
84
+ 1. `x_mitre_impact_type` added for enterprise techniques within the `Impact` tactic
85
+ 2. Descriptions added to relationships between software/groups
86
+
87
+ ## 23 October 2018 - ATT&CK Spec v1.1.0
88
+ Changes to ATT&CK in STIX for October 2018 ATT&CK Content Release (ATT&CK-v3.0)
89
+
90
+ 1. `x_mitre_platforms` added for enterprise malware/tools
91
+ 2. `x_mitre_detection` added to attack-patterns
92
+ 3. Custom MITRE attributes removed from descriptions in attack-patterns
93
+ 4. Alias descriptions added for malware/tools/intrusion-sets as external references
94
+ 5. Descriptions added to relationships between groups/attack-patterns in PRE-ATT&CK
95
+ 6. Names of ATT&CK objects replaced in descriptions and x_mitre_detection fields with markdown links
96
+ 7. `CAPEC ids` added to external references for attack-patterns
97
+ 8. Citations in alias descriptions added as external references in the object containing the alias description
98
+ 9. Added `x-mitre-tactic` and `x-mitre-matrix` objects
99
+ 10. Changed ===Windows=== subheadings to ### Windows subheadings (Windows is just one example)
100
+ 11. Added space between asterisks (ex. *Content to * Content) to populate markdown correctly
101
+ 12. Changed "true" to True in `x_mitre_deprecated`
102
+ 13. Added old ATT&CK IDs to Mobile/PRE-ATT&CK objects whose IDs have changed as `x-mitre-old-attack-id`
cti-ATT-CK-v13.1/LICENSE.txt ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ATT&CK®
2
+ ===========================
3
+ License
4
+ -------
5
+ The MITRE Corporation (MITRE) hereby grants you a non-exclusive, royalty-free license to use ATT&CK® for research,
6
+ development, and commercial purposes. Any copy you make for such purposes is authorized provided that you reproduce
7
+ MITRE's copyright designation and this license in any such copy.
8
+
9
+ "© 2021 The MITRE Corporation. This work is reproduced and distributed with the permission of The MITRE Corporation."
10
+
11
+ Disclaimers
12
+ -----------
13
+ MITRE does not claim ATT&CK enumerates all possibilities for the types of actions and behaviors documented as part
14
+ of its adversary model and framework of techniques. Using the information contained within ATT&CK to address or
15
+ cover full categories of techniques will not guarantee full defensive coverage as there may be undisclosed techniques
16
+ or variations on existing techniques not documented by ATT&CK.
17
+
18
+ ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN ARE PROVIDED ON AN "AS IS" BASIS AND THE CONTRIBUTOR, THE
19
+ ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE MITRE CORPORATION, ITS BOARD OF TRUSTEES, OFFICERS,
20
+ AGENTS, AND EMPLOYEES, DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE
21
+ USE OF THE INFORMATION THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
22
+ FOR A PARTICULAR PURPOSE.
23
+
24
+ CAPEC™
25
+ ===========================
26
+ License
27
+ -------
28
+ The MITRE Corporation (MITRE) hereby grants you a non-exclusive, royalty-free license to use Common Attack Pattern
29
+ Enumeration and Classification (CAPEC™) for research, development, and commercial purposes. Any copy you make for
30
+ such purposes is authorized provided that you reproduce MITRE’s copyright designation and this license in any such copy.
31
+
32
+ Disclaimers
33
+ -----------
34
+ ALL DOCUMENTS AND THE INFORMATION CONTAINED THEREIN ARE PROVIDED ON AN "AS IS" BASIS AND THE CONTRIBUTOR, THE
35
+ ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE MITRE CORPORATION, ITS BOARD OF TRUSTEES, OFFICERS,
36
+ AGENTS, AND EMPLOYEES, DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE
37
+ USE OF THE INFORMATION THEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS
38
+ FOR A PARTICULAR PURPOSE.
cti-ATT-CK-v13.1/README.md ADDED
@@ -0,0 +1,32 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # CTI
2
+
3
+ This repository contains the MITRE ATT&CK® and CAPEC™ datasets expressed in STIX 2.0. See [USAGE](USAGE.md) or [USAGE-CAPEC](USAGE-CAPEC.md) for information on using this content with [python-stix2](https://github.com/oasis-open/cti-python-stix2).
4
+
5
+ If you are looking for ATT&CK represented in STIX 2.1, please see the [attack-stix-data](https://github.com/mitre-attack/attack-stix-data) GitHub repository. Both MITRE/CTI (this repository) and attack-stix-data will be maintained and updated with new ATT&CK releases for the foreseeable future, but the data model of attack-stix-data includes quality-of-life improvements not found on MITRE/CTI. Please see the [attack-stix-data USAGE document](https://github.com/mitre-attack/attack-stix-data) for more information on the improved data model of that repository.
6
+
7
+ ## ATT&CK
8
+
9
+ MITRE ATT&CK is a globally-accessible knowledge base of adversary tactics and techniques based on real-world observations. The ATT&CK knowledge base is used as a foundation for the development of specific threat models and methodologies in the private sector, in government, and in the cybersecurity product and service community.
10
+
11
+ <https://attack.mitre.org>
12
+
13
+ ## CAPEC
14
+
15
+ Understanding how the adversary operates is essential to effective cyber security. CAPEC™ helps by providing a comprehensive dictionary of known patterns of attacks employed by adversaries to exploit known weaknesses in cyber-enabled capabilities. It can be used by analysts, developers, testers, and educators to advance community understanding and enhance defenses.
16
+
17
+ - Focuses on application security
18
+ - Enumerates exploits against vulnerable systems
19
+ - Includes social engineering / supply chain
20
+ - Associated with Common Weakness Enumeration (CWE)
21
+
22
+ <https://capec.mitre.org/>
23
+
24
+ ## STIX
25
+
26
+ Structured Threat Information Expression (STIX™) is a language and serialization format used to exchange cyber threat intelligence (CTI).
27
+
28
+ STIX enables organizations to share CTI with one another in a consistent and machine readable manner, allowing security communities to better understand what computer-based attacks they are most likely to see and to anticipate and/or respond to those attacks faster and more effectively.
29
+
30
+ STIX is designed to improve many different capabilities, such as collaborative threat analysis, automated threat exchange, automated detection and response, and more.
31
+
32
+ <https://oasis-open.github.io/cti-documentation/>
cti-ATT-CK-v13.1/USAGE-CAPEC.md ADDED
@@ -0,0 +1,136 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Introduction
2
+ This document describes how to query and manipulate CAPEC data in this repository. Machine-readable CAPEC data is available in
3
+ a JSON-based [STIX 2.0 and STIX 2.1 formats](https://oasis-open.github.io/cti-documentation/stix/intro). See [Release Notes](#release-notes) for any changes to the generation of the STIX CAPEC data.
4
+
5
+ STIX 2.x is just JSON and so should be very accessible from Python and other programming languages. If you are using Python, the [python-stix2](https://github.com/oasis-open/cti-python-stix2) library can help you work with the content as shown in the examples below.
6
+
7
+ # Mapping Concepts
8
+ First, we must describe how CAPEC objects and properties map to STIX 2.x objects and properties.
9
+
10
+ ## Objects
11
+ In CAPEC, the main object is the Attack Pattern. Most Attack Pattern also have Mitigations. There are other types of objects in CAPEC (e.g, Category, View, etc.), but these are not (currently) part of the repository.
12
+
13
+ The STIX types are found as literal strings assigned to the `type` property of the STIX JSON object. The STIX 2.x object called "Attack Pattern" corresponds to a CAPEC attack pattern. In STIX 2.x, there are objects called "Course(s) of Action" which can be used to describe CAPEC Mitigations.
14
+
15
+ ## Properties
16
+ The following is a table mapping of CAPEC properties to STIX properties. Some of these properties are standard STIX properties, while others were custom-created for compatibility with CAPEC. These properties are accessed from STIX objects as JSON properties.
17
+
18
+ ### Attack Pattern Properties
19
+ | CAPEC 3.6 Property | STIX Properties | STIX type |
20
+ | --------------- | --------------- | --------------- |
21
+ **Name** | `name` | string |
22
+ **Description** | `description` | string
23
+ **Extended_Definition** | `x_capec_extended_definition` | string
24
+ **Abstraction** | `x_capec_abstraction` | enumeration(`Meta, Standard, Detailed`)
25
+ **Alternate\_Terms** | `x_capec_alternate_terms` | list(string)
26
+ **Consequences** | `x_capec_consequences` | dictionary(enumeration(`High, Medium, Low`), string)
27
+ **Example\_Instances** | `x_capec_example_instances` | list(string)
28
+ **Execution\_Flows** | `x_capec_execution_flows` | (XHTML) string
29
+ **Likelihood\_Of\_Attack** | `x_capec_likelihood_of_attack` | enumeration(`High, Medium, Low`)
30
+ **Notes** | **Other\_Notes** | `x_capec_notes` | list(string)
31
+ **Prerequisites** | `x_capec_prerequisites` | list(string)
32
+ **Skills\_Required** | `x_capec_skills_required` | dictionary(string, enumeration(`High, Medium, Low`))
33
+ **Typical\_Severity** | `x_capec_typical_severity` | enumeration(`High, Medium, Low`)
34
+ **ID** | `external_references[i].external_id where external_references[i].source_name == "capec"` | integer
35
+ **Related\_Weaknesses** | `external_references[i].external_id where external_references[i].source_name == "cwe"` | integer
36
+ **References** | `external_references[i].external_id where external_references[i].source_name == "reference_from_CAPEC"` | `external-reference`
37
+ **Mitigation** | `relationship_type == "mitigates"` | `relationship`
38
+
39
+ ### Attack Pattern Relationships
40
+ | CAPEC 3.6 Relationship | STIX Properties | STIX type |
41
+ | --------------- | --------------- | --------------- |
42
+ **parent_of** | `x_capec_parent_of_refs` | list(identifier)
43
+ **child_of** | `x_capec_child_of_refs` | list(identifier)
44
+ **can_precede** | `x_capec_can_precede_refs` | list(identifier)
45
+ **can_follow** | `x_capec_can_follow_refs` | list(identifier)
46
+ **peer_of** | `x_capec_peer_of_refs` | list(identifier)
47
+
48
+ CAPEC 3.6 properties not mapped (at this time): **Indicators**, **Taxonomy\_Mappings**, **Content\_History**
49
+
50
+ CAPEC 3.6 properties not appropriate to map: **Status**
51
+
52
+ # Using Python and STIX 2.x
53
+ In this section, we will describe how to query and manipulate CAPEC data that has been stored in a STIX 2.x repository. A Python library has been created for using and creating STIX 2.x data by the OASIS Technical Committee for Cyber Threat Intelligence, which develops the STIX standard. This library abstracts storage and transport details so that the same code can be used to interact with data locally on the filesystem or in memory, or remotely via [TAXII](https://oasis-open.github.io/cti-documentation/taxii/intro). The source code, installation instructions, and basic documentation for the library can be found [here](https://github.com/oasis-open/cti-python-stix2). There is a more thorough [API documentation](http://stix2.readthedocs.io/en/latest/overview.html) as well.
54
+
55
+ ## Python Library
56
+ To begin querying STIX 2.x data, you must first have a [DataSource](http://stix2.readthedocs.io/en/latest/guide/datastore.html). For these examples, we will simply use a [FileSystemSource](http://stix2.readthedocs.io/en/latest/guide/filesystem.html). The CAPEC corpus must first be cloned or downloaded from [GitHub](https://github.com/mitre/cti).
57
+
58
+ ### Get all Attack Patterns
59
+ Once the stix2 Python library is installed and the corpus is acquired, we need to open the DataStore for querying:
60
+
61
+ ```python
62
+ from stix2 import FileSystemSource
63
+ fs = FileSystemSource('./cti/capec')
64
+ ```
65
+
66
+ When creating the DataSource, the keyword agrument `allow_custom` must be set to `True`. This is because the CAPEC data uses several custom properties which are not part of the STIX 2.x specification (`x_capec_prerequisites`, `x_capec_example_instances`, etc).
67
+
68
+ To perform a query, we must define a [Filter](http://stix2.readthedocs.io/en/latest/guide/datastore.html#Filters). As of this writing, a filter must, at a minimum, specify object `id`'s or an object `type`. The following filter can be used to retrieve all CAPEC attack patterns:
69
+
70
+ ```python
71
+ from stix2 import Filter
72
+ filt = Filter('type', '=', 'attack-pattern')
73
+ ```
74
+
75
+ Once this filter is defined, you can pass it to the DataSource `query` function in order to actually query the data:
76
+
77
+ ```python
78
+ attack_patterns = fs.query([filt])
79
+ ```
80
+
81
+ Notice that the `query` function takes a **list** of filters. These filters are logically AND'd together during the query. As of this writing, `allow_custom` must be set to `True` in order to query CAPEC data. This is because the CAPEC data uses several custom properties which are not part of the STIX 2.0 specification (`x_capec_prerequisites`, `x_capec_example_instances`, etc).
82
+
83
+ **For the remaining examples, these imports and the FileSystemStore initialization will be omitted.**
84
+
85
+
86
+ ### Get any object by CAPEC ID
87
+ In this example, the STIX 2.x type must be passed into the function. Here we query for the attack pattern with ID `66` (*SQL Injection*).
88
+
89
+ ```python
90
+ def get_attack_pattern_by_capec_id(src, capec_id):
91
+ filt = [
92
+ Filter('type', '=', 'attack-pattern'),
93
+ Filter('external_references.external_id', '=', 'CAPEC-' + capec_id),
94
+ Filter('external_references.source_name', '=', 'capec'),
95
+ ]
96
+ return src.query(filt)
97
+
98
+ get_attack_pattern_by_capec_id(fs, '66')
99
+ ```
100
+
101
+ ### Get all Mitigations for specific Attack Pattern
102
+ The mitigations for a technique are stored in objects separate from the technique. These objects are found through a `mitigates` relationship.
103
+
104
+ ```python
105
+ def get_mitigations_by_attack_pattern(src, ap_stix_id):
106
+ relations = src.relationships(ap_stix_id, 'mitigates', target_only=True)
107
+ return src.query([
108
+ Filter('type', '=', 'course-of-action'),
109
+ Filter('id', 'in', [r.source_ref for r in relations])])
110
+
111
+ ap = get_attack_pattern_by_capec_id(fs, '66')[0]
112
+ get_mitigations_by_attack_pattern(fs, ap.id)
113
+ ```
114
+
115
+ ### Release Notes
116
+
117
+ The STIX CAPEC data is generated by a python script named `capec2stix`. In this section the changes to the script for each new CAPEC release is listed.
118
+
119
+ ## Release for CAPEC 3.6
120
+
121
+ * Added the `x_capec_extended_definition` property
122
+
123
+ ## Release for CAPEC 3.5
124
+
125
+ * Added functionality to infer CAPEC ParentOf and CanFollow relationships:
126
+ - CAPEC does not explicitly state these relationships, so they needed to be inferred by looking at the children's "ChildOf" relationship and the can follows' "CanPrecede" relationship and work backwards
127
+ - A global map of CAPEC ids to STIX ids was created by iterating through all CAPEC objects and creating STIX ids
128
+ - Global maps of CAPEC ids to list of children CAPEC ids and list of CAPEC ids that can follow was created by iterating through all CAPEC objects
129
+ - When creating STIX Attack Pattern objects, the child and can follow maps are used to find the relationships that are not explicitly stated in the CAPEC object and the STIX id map is used to get the STIX ID for the related CAPECs
130
+ * Added the following properties to the Attack Pattern STIX object:
131
+ - `x_capec_child_of_refs`: contains a list of STIX ids of the Attack Pattern objects which the current object is a child of
132
+ - `x_capec_parent_of_refs`: contains a list of STIX ids of the Attack Pattern objects which the current object is a parent of
133
+ - `x_capec_can_precede_refs`: contains a list of STIX ids of the Attack Pattern objects which the current object can precede
134
+ - `x_capec_can_follow_refs`: contains a list of STIX ids of the Attack Pattern objects which the current object can follow
135
+ - `x_capec_peer_of_refs`: contains a list of STIX ids of the Attack Pattern objects which the current object is a peer of
136
+ * Added "allow_custom=True" as a flag when creating STIX bundles to satisfy the requirements for the new STIX release
cti-ATT-CK-v13.1/USAGE.md ADDED
@@ -0,0 +1,1182 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Introduction
2
+
3
+ This document describes how to query and manipulate ATT&CK data from either this repository or the ATT&CK TAXII server, as well as the formatting of the data itself.
4
+
5
+ The programmatic uses of ATT&CK demonstrated in this document utilize the [stix2 python library](https://github.com/oasis-open/cti-python-stix2). Please refer to the [STIX2 Python API Documentation](https://stix2.readthedocs.io/en/latest/) for more information on how to work with STIX programmatically. See also the section on [Requirements and imports](#requirements-and-imports).
6
+
7
+ This document describes how ATT&CK implements and extends the STIX format. To find out more about STIX, please see [the STIX 2.0 website](https://oasis-open.github.io/cti-documentation/stix/intro).
8
+
9
+ We also recommend reading the [ATT&CK Design and Philosophy Paper](https://attack.mitre.org/docs/ATTACK_Design_and_Philosophy_March_2020.pdf), which describes high-level overall approach, intention, and usage of ATT&CK.
10
+
11
+ If you are looking for ATT&CK data represented in STIX 2.1, please see our [attack-stix-data](https://github.com/mitre-attack/attack-stix-data) GitHub repository. The accompanying [USAGE document](https://github.com/mitre-attack/attack-stix-data/blob/master/USAGE.md) includes more information on the improved data model of that repository.
12
+
13
+ ## Table of Contents
14
+
15
+ - [Introduction](#introduction)
16
+ - [Table of Contents](#table-of-contents)
17
+ - [The ATT&CK data model](#the-attck-data-model)
18
+ - [Extensions of the STIX spec](#extensions-of-the-stix-spec)
19
+ - [IDs in ATT&CK](#ids-in-attck)
20
+ - [ATT&CK IDs](#attck-ids)
21
+ - [STIX IDs](#stix-ids)
22
+ - [Other IDs](#other-ids)
23
+ - [ATT&CK Types](#attck-types)
24
+ - [Matrices](#matrices)
25
+ - [Mapping matrices, tactics and techniques](#mapping-matrices-tactics-and-techniques)
26
+ - [Tactics](#tactics)
27
+ - [Techniques](#techniques)
28
+ - [Sub-Techniques](#sub-techniques)
29
+ - [Procedures](#procedures)
30
+ - [Mitigations](#mitigations)
31
+ - [Collisions with technique ATT&CK IDs](#collisions-with-technique-attck-ids)
32
+ - [Groups](#groups)
33
+ - [Software](#software)
34
+ - [Data Sources and Data Components](#data-sources-and-data-components)
35
+ - [Data Sources](#data-sources)
36
+ - [Data Components](#data-components)
37
+ - [Campaigns](#campaigns)
38
+ - [Relationships](#relationships)
39
+ - [Accessing ATT&CK data in python](#accessing-attck-data-in-python)
40
+ - [Requirements and imports](#requirements-and-imports)
41
+ - [stix2](#stix2)
42
+ - [taxii2client](#taxii2client)
43
+ - [Access local content](#access-local-content)
44
+ - [Access via FileSystemSource](#access-via-filesystemsource)
45
+ - [Access via bundle](#access-via-bundle)
46
+ - [Access live content](#access-live-content)
47
+ - [Access from the ATT&CK TAXII server](#access-from-the-attck-taxii-server)
48
+ - [Access from Github via requests](#access-from-github-via-requests)
49
+ - [Access a specific version of ATT&CK](#access-a-specific-version-of-attck)
50
+ - [Access multiple domains simultaneously](#access-multiple-domains-simultaneously)
51
+ - [Python recipes](#python-recipes)
52
+ - [Getting an object](#getting-an-object)
53
+ - [By STIX ID](#by-stix-id)
54
+ - [By ATT&CK ID](#by-attck-id)
55
+ - [By name](#by-name)
56
+ - [By alias](#by-alias)
57
+ - [Getting multiple objects](#getting-multiple-objects)
58
+ - [Objects by type](#objects-by-type)
59
+ - [Getting techniques or sub-techniques](#getting-techniques-or-sub-techniques)
60
+ - [Getting software](#getting-software)
61
+ - [Objects by content](#objects-by-content)
62
+ - [Techniques by platform](#techniques-by-platform)
63
+ - [Techniques by tactic](#techniques-by-tactic)
64
+ - [Tactics by matrix](#tactics-by-matrix)
65
+ - [Objects created or modified since a given date](#objects-created-or-modified-since-a-given-date)
66
+ - [Getting related objects](#getting-related-objects)
67
+ - [Relationships microlibrary](#relationships-microlibrary)
68
+ - [Getting techniques used by a group's software](#getting-techniques-used-by-a-groups-software)
69
+ - [Working with deprecated and revoked objects](#working-with-deprecated-and-revoked-objects)
70
+ - [Removing revoked and deprecated objects](#removing-revoked-and-deprecated-objects)
71
+ - [Getting a revoking object](#getting-a-revoking-object)
72
+
73
+ ## The ATT&CK data model
74
+
75
+ The data in this repository is STIX 2.0 and divided into folders, one for each domain of ATT&CK. These domains generally follow the same format with a few departures. Domain differences will be noted in the relevant sections of this document.
76
+
77
+ ATT&CK uses a mix of predefined and custom STIX objects to implement ATT&CK concepts. The following table is a mapping of ATT&CK concepts to STIX 2.0 objects:
78
+
79
+ | ATT&CK concept | STIX object type | Custom type? |
80
+ |:------------|:----------|:---|
81
+ | [Matrix](#matrices) | `x-mitre-matrix` | yes |
82
+ | [Tactic](#tactics) | `x-mitre-tactic` | yes |
83
+ | [Technique](#techniques) | [attack-pattern](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230921) | no |
84
+ | [Sub-technique](#sub-techniques) | [attack-pattern](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230921) where `x_mitre_is_subtechnique = true` | no |
85
+ | [Procedure](#procedures) | [relationship](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230970) where `relationship_type = "uses"` and `target_ref` is an `attack-pattern` | no |
86
+ | [Mitigation](#mitigations) | [course-of-action](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230929) | no |
87
+ | [Group](#groups) | [intrusion-set](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230941) | no |
88
+ | [Software](#software) | [malware](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230945) or [tool](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230961) | no |
89
+ | [Data Source](#data-source) | `x-mitre-data-source` | yes |
90
+ | [Campaign](#campaigns) | [campaign](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230925) | no |
91
+
92
+ Two additional object types are found in the ATT&CK catalog:
93
+
94
+ | STIX object type | About |
95
+ |:-----------------|:------|
96
+ | [identity](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230933) | Referenced in the `created_by_ref` of all objects to state that the MITRE Corporation created the object |
97
+ | [marking-definition](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part1-stix-core/stix-v2.0-csprd01-part1-stix-core.html#_Toc476227338) | Referenced in the `object_marking_refs` of all objects to express the MITRE Corporation copyright |
98
+
99
+ ### Extensions of the STIX spec
100
+
101
+ There are three general ways that ATT&CK extends the STIX 2.0 format:
102
+
103
+ - Custom object types. Object types prefixed with `x-mitre-`, e.g `x-mitre-matrix`, are custom STIX types extending the STIX 2.0 spec. They follow the general [STIX Domain Object pattern](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230920) but describe concepts not covered by types defined in STIX 2.0.
104
+
105
+ - Extensions of existing object types. Fields extending the STIX 2.0 spec are prefixed with `x_mitre_`, e.g `x_mitre_platforms` in `attack-patterns`.
106
+
107
+ All objects except relationships can have the following extended properties applied:
108
+
109
+ | Field | Type | Description |
110
+ |:------|:-----|:------------|
111
+ | `x_mitre_version` | string | The version of the object in format `major.minor` where `major` and `minor` are integers. ATT&CK increments this version number when the object content is updated. |
112
+ | `x_mitre_contributors` | string[] | People and organizations who have contributed to the object. |
113
+ | `x_mitre_deprecated` | boolean | See [Working with deprecated and revoked objects](#Working-with-deprecated-and-revoked-objects). |
114
+
115
+ - New relationship types. Unlike custom object types and extended fields, custom relationship types are **not** prefixed with `x_mitre_`. You can find a full list of relationship types in the [Relationships](#Relationships) section, which also mentions whether the type is a default STIX type.
116
+
117
+ Please see also the STIX documentation on [customizing STIX](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part1-stix-core/stix-v2.0-csprd01-part1-stix-core.html#_Toc476227365).
118
+
119
+ ### IDs in ATT&CK
120
+
121
+ Objects in ATT&CK may have several different kinds of IDs.
122
+
123
+ #### ATT&CK IDs
124
+
125
+ The most commonly used ID format is what is referred to as the ATT&CK ID or simply ID. Each different type of ATT&CK object has its own variation upon the ATT&CK ID format:
126
+
127
+ | ATT&CK concept | ID format |
128
+ |:------------|:----------|
129
+ | [Matrix](#matrices) | `MAxxxx` |
130
+ | [Tactic](#tactics) | `TAxxxx` |
131
+ | [Technique](#techniques) | `Txxxx` |
132
+ | [Sub-Technique](#sub-techniques) | `Txxxx.yyy` |
133
+ | [Mitigation](#mitigations) | `Mxxxx` |
134
+ | [Group](#groups) | `Gxxxx` |
135
+ | [Software](#software) | `Sxxxx` |
136
+ | [Data Source](#data-source) | `DSxxxx` |
137
+ | [Campaign](#campaigns) | `Cxxxx` |
138
+
139
+ ATT&CK IDs are typically, but not always, unique. See [Collisions with Technique ATT&CK IDs](#collisions-with-technique-attck-ids) for an edge case involving ID collisions between mitigations and techniques.
140
+
141
+ ATT&CK IDs can be found in the first external reference of all objects except for relationships (which don't have ATT&CK IDs). The first external reference also includes a `url` field linking to the page describing that object on the [ATT&CK Website](https://attack.mitre.org/).
142
+
143
+ #### STIX IDs
144
+
145
+ In addition to ATT&CK IDs, all objects in ATT&CK (including relationships) have STIX IDs in the `id` field of the object. Unlike ATT&CK IDs, STIX IDs are guaranteed to be unique. STIX IDs are therefore the best way to retrieve and refer to objects programmatically.
146
+
147
+ #### Other IDs
148
+
149
+ Several other IDs can be found in the external references of an object:
150
+
151
+ 1. NIST Mobile Threat Catalogue IDs can be found for some techniques in the Mobile domain where the external reference `source_name` is `"NIST Mobile Threat Catalogue"`
152
+ 2. CAPEC IDs can be found for some techniques in the Enterprise domain where the external reference `source_name` is `"capec"`
153
+
154
+ ### ATT&CK Types
155
+
156
+ #### Matrices
157
+
158
+ The overall layout of the ATT&CK Matrices is stored in `x-mitre-matrix` objects. As a custom STIX type they follow only the generic [STIX Domain Object pattern](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230920).
159
+
160
+ Matrices extend the generic SDO format with the following field:
161
+
162
+ | Field | Type | Description |
163
+ |:------|:-----|-------------|
164
+ | `tactic_refs` | string[] | The `tactic_refs` array of the matrix contains an ordered list of `x-mitre-tactic` STIX IDs corresponding to the tactics of the matrix. The order of `tactic_refs` determines the order the tactics should appear within the matrix. |
165
+
166
+ ##### Mapping matrices, tactics and techniques
167
+
168
+ Techniques map into tactics by use of their `kill_chain_phases` property. Where the `kill_chain_name` is `mitre-attack`, `mitre-mobile-attack`, or `mitre-ics-attack` (for enterprise, mobile, and ics domains respectively), the `phase_name` corresponds to the `x_mitre_shortname` property of an `x-mitre-tactic` object. Matrices define their tactics in order using the `tactic_refs` embedded relationships.
169
+
170
+ <img src="https://raw.githubusercontent.com/mitre-attack/attack-website/master/modules/resources/docs/visualizations/data-model/stix-tactics-techniques.png" alt="matrix, tactic and technique data model" width="750px">
171
+
172
+ #### Tactics
173
+
174
+ A Tactic in ATT&CK is defined by an `x-mitre-tactic` object. As a custom STIX type they follow only the generic [STIX Domain Object pattern](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230920).
175
+
176
+ Tactics extend the generic SDO format with the following field:
177
+
178
+ | Field | Type | Description |
179
+ |:------|:-----|-------------|
180
+ | `x_mitre_shortname` | string | The `x_mitre_shortname` of the tactic is used for mapping techniques into the tactic. It corresponds to `kill_chain_phases.phase_name` of the techniques in the tactic. See [mapping matrices, tactics and techniques](#mapping-matrices-tactics-and-techniques) for more information. |
181
+
182
+ #### Techniques
183
+
184
+ A Technique in ATT&CK is defined as an [attack-pattern](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230921) object.
185
+
186
+ Techniques depart from the attack-pattern format with the following fields. Domain and tactic specific fields are marked in the "applies to" column:
187
+
188
+ | Field | Type | Applies to | Description |
189
+ |:------|:-----|:--------|:------------|
190
+ | `x_mitre_detection` | string | All techniques | Strategies for identifying if a technique has been used by an adversary. |
191
+ | `x_mitre_platforms` | string[] | All techniques | List of platforms that apply to the technique. |
192
+ | `x_mitre_data_sources` | string[] | Enterprise* & ICS domains | Sources of information that may be used to identify the action or result of the action being performed. |
193
+ | `x_mitre_is_subtechnique` | boolean | Enterprise domain | If true, this `attack-pattern` is a sub-technique. See [sub-techniques](#sub-techniques). |
194
+ | `x_mitre_system_requirements` | string[] | Enterprise domain | Additional information on requirements the adversary needs to meet or about the state of the system (software, patch level, etc.) that may be required for the technique to work. |
195
+ | `x_mitre_tactic_type` | string[] | Mobile domain | "Post-Adversary Device Access", "Pre-Adversary Device Access", or "Without Adversary Device Access". |
196
+ | `x_mitre_permissions_required` | string[] | Enterprise domain in the _Privilege Escalation_ tactic | The lowest level of permissions the adversary is required to be operating within to perform the technique on a system. |
197
+ | `x_mitre_effective_permissions` | string[] | Enterprise domain in the _Privilege Escalation_ tactic | The level of permissions the adversary will attain by performing the technique. |
198
+ | `x_mitre_defense_bypassed` | string[] | Enterprise domain in the _Defense Evasion_ tactic | List of defensive tools, methodologies, or processes the technique can bypass. |
199
+ | `x_mitre_remote_support` | boolean | Enterprise domain in the _Execution_ tactic | If true, the technique can be used to execute something on a remote system. |
200
+ | `x_mitre_impact_type` | string[] | Enterprise domain in the _Impact_ tactic | Denotes if the technique can be used for integrity or availability attacks. |
201
+
202
+ \* In the Enterprise domain data sources are represented via [x-mitre-data-source](#data-sources) and [x-mitre-data-component](#data-components) objects, and their relationship with techniques through relationships of type `detects`. The `x_mitre_data_sources` field will still be maintained on enterprise techniques for backwards-compatibility purposes but we advise against its use as it does not include the full context of the data model.
203
+
204
+ See [mapping matrices, tactics and techniques](#mapping-matrices-tactics-and-techniques) for more information about how techniques map into tactics and matrices.
205
+
206
+ ##### Sub-Techniques
207
+
208
+ A sub-technique in ATT&CK is represented as an `attack-pattern` and follows the same format as [techniques](#techniques). They differ in that they have a boolean field (`x_mitre_is_subtechnique`) marking them as sub-techniques, and a relationship of the type `subtechnique-of` where the `source_ref` is the sub-technique and the `target_ref` is the parent technique. A sub-technique can only have 1 parent technique, but techniques can have multiple sub-techniques.
209
+
210
+ Additionally:
211
+
212
+ - Sub-technique ATT&CK IDs are a suffix of their parent IDs. For a given sub-technique ID `Txxxx.yyy`, `Txxxx` is the parent technique ID and `yyy` is the sub-technique ID. Sub-techniques have unique STIX IDs.
213
+ - Sub-techniques have the same tactics as their parent technique.
214
+ - Sub-techniques have a subset of their parent technique's platforms.
215
+
216
+ Sub-techniques only exist in the enterprise domain.
217
+
218
+ #### Procedures
219
+
220
+ ATT&CK does not represent procedures under their own STIX type. Instead, procedures are represented as relationships of type `uses` where the `target_ref` is a technique. This means that procedures can stem from usage by both groups (`intrusion-set`s) and software (`malware` or `tool`s). The content of the procedure is described in the relationship description.
221
+
222
+ #### Mitigations
223
+
224
+ A Mitigation in ATT&CK is defined as a [course-of-action](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230929) object. ATT&CK Mitigations do not depart from the STIX `course-of-action` spec.
225
+
226
+ ##### Collisions with technique ATT&CK IDs
227
+
228
+ In ATT&CK versions prior to v5 (released in July of 2019), mitigations had 1:1 relationships with techniques and shared their technique's ID. These old 1:1 mitigations are deprecated in subsequent ATT&CK releases, and can be filtered out in queries — see [Removing revoked and deprecated objects](#Removing-revoked-and-deprecated-objects).
229
+
230
+ #### Groups
231
+
232
+ A Group in ATT&CK is defined as an [intrusion-set](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230941) object. ATT&CK Groups do not depart from the STIX `intrusion-set` format.
233
+
234
+ #### Software
235
+
236
+ Software in ATT&CK is the union of two distinct STIX types: [malware](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230945) and [tool](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230961).
237
+
238
+ Both `malware` and `tool` type software depart from the STIX format with the following fields:
239
+
240
+ | Field | Type | Description |
241
+ |:------|:-----|-------------|
242
+ | `x_mitre_platforms` | string[] | List of platforms that apply to the software. |
243
+ | `x_mitre_aliases` | string[] | List of aliases for the given software. |
244
+
245
+ #### Data Sources and Data Components
246
+
247
+ Data Sources and Data Components represent data which can be used to detect techniques. Data components are nested within a data source but have their own STIX object.
248
+
249
+ - A Data Component can only have one parent Data Source.
250
+ - A Data Source can have any number of Data Components.
251
+ - Data Components can map to any number of techniques.
252
+
253
+ The general structure of data sources and data components is as follows:
254
+
255
+ <!-- diagram generated with https://asciiflow.com/ -->
256
+ ```sh
257
+ "detects" x_mitre_data_source_ref
258
+ relationship embedded relationship
259
+ │ │
260
+ ┌───────────┐ ▼ ┌────────────────┐ │ ┌───────────┐
261
+ │Technique 1│◄────┤ │ │ │ │
262
+ └───────────┘ │ │ ▼ │ │
263
+ │Data Component 1├────►│ │
264
+ ┌───────────┐ │ │ │ │
265
+ │Technique 2│◄────┤ │ │Data Source│
266
+ └───────────┘ └────────────────┘ │ │
267
+ │ │
268
+ ┌───────────┐ ┌────────────────┐ │ │
269
+ │Technique 3│◄────┤Data Component 2├────►│ │
270
+ └───────────┘ └────────────────┘ └───────────┘
271
+ ```
272
+
273
+ Prior to ATT&CK v10 data sources were stored in a `x_mitre_data_sources` field on techniques. This representation is still available for backwards-compatibility purposes, and does properly reflect the current set of data sources. However, because information is lost in that representation we advise against using it except in legacy applications. The ATT&CK for ICS domain still uses only the `x_mitre_data_sources` field.
274
+
275
+ ##### Data Sources
276
+
277
+ A Data Source in ATT&CK is defined by an `x-mitre-data-source` object. As a custom STIX type they follow only the generic [STIX Domain Object pattern](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230920).
278
+
279
+ Data Sources extend the generic SDO format with the following fields:
280
+
281
+ | Field | Type | Description |
282
+ |:------|:-----|-------------|
283
+ | `x_mitre_platforms` | string[] | List of platforms that apply to the data source. |
284
+ | `x_mitre_collection_layers` | string[] | List of places the data can be collected from. |
285
+
286
+ ##### Data Components
287
+
288
+ A Data Component in ATT&CK is represented as an `x-mitre-data-component` object. As a custom STIX type they follow only the generic [STIX Domain Object pattern](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230920).
289
+
290
+ Data Components extend the generic SDO format with the following field:
291
+
292
+ | Field | Type | Description |
293
+ |:------|:-----|-------------|
294
+ | `x_mitre_data_source_ref` | embedded relationship (string) | STIX ID of the data source this component is a part of. |
295
+
296
+ #### Campaigns
297
+
298
+ A Campaign in ATT&CK is defined as a [campaign](http://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230925) object.
299
+
300
+ Campaigns extend the generic SDO format with the following fields:
301
+
302
+ | Field | Type | Description |
303
+ |:------|:-----|-------------|
304
+ | `x_mitre_first_seen_citation` | string | One to many citations for when the Campaign was first reported in the form “(Citation: \<citation name>)” where \<citation name> can be found as one of the source_name of one of the external_references. |
305
+ | `x_mitre_last_seen_citation` | string | One to many citations for when the Campaign was last reported in the form “(Citation: \<citation name>)” where \<citation name> can be found as one of the source_name of one of the external_references.
306
+
307
+ #### Relationships
308
+
309
+ Objects in ATT&CK are related to each other via STIX [relationship](https://docs.oasis-open.org/cti/stix/v2.0/csprd01/part2-stix-objects/stix-v2.0-csprd01-part2-stix-objects.html#_Toc476230970) objects. These relationships convey concepts like groups using techniques (also called "procedure examples" on the technique pages), the hierarchy of techniques and sub-techniques, and so on.
310
+
311
+ <img src="https://raw.githubusercontent.com/mitre-attack/attack-website/master/modules/resources/docs/visualizations/data-model/stix-relationships.png" alt="relationships data model" width="750px">
312
+
313
+ Unlike other objects in the dataset, relationships cannot be revoked or deprecated. Relationships are considered deprecated/revoked if one of the objects it is attached to is revoked or deprecated. See [Working with deprecated and revoked objects](#Working-with-deprecated-and-revoked-objects) for more information on revoked objects.
314
+
315
+ Relationships oftentimes have descriptions which contextualize the relationship between the objects.
316
+
317
+ | Source Type | Relationship Type | Target Type | Custom Type? | About |
318
+ |:------------|:------------------|:------------|:----|:------|
319
+ | `intrusion-set` | `uses` | `malware` or `tool` | No | Group using a software. |
320
+ | `intrusion-set` | `uses` | `attack-pattern` | No | Group using a technique, which is also considered a procedure example. |
321
+ | `malware` or `tool` | `uses` | `attack-pattern` | No | Software using a technique, which is also considered a procedure example. |
322
+ | `campaign` | `uses` | `malware` or `tool` | No | Campaign using a software. |
323
+ | `campaign` | `uses` | `attack-pattern` | No | Campaign using a technique, which is also considered a procedure example. |
324
+ | `campaign` | `attributed-to` | `intrusion-set` | No | Campaign attributed to a group. |
325
+ | `course-of-action` | `mitigates` | `attack-pattern` | No | Mitigation mitigating a technique. |
326
+ | `attack-pattern` | `subtechnique-of` | `attack-pattern` | Yes | Sub-technique of a technique, where the `source_ref` is the sub-technique and the `target_ref` is the parent technique. |
327
+ | `x-mitre-data-component` | `detects` | `attack-pattern` | Yes | Data component detecting a technique. |
328
+ | any type | `revoked-by` | any type | Yes | The target object is a replacement for the source object. Only occurs where the objects are of the same type, and the source object will have the property `revoked = true`. See [Working with deprecated and revoked objects](#Working-with-deprecated-and-revoked-objects) for more information on revoked objects. |
329
+
330
+ Note that because groups use software and software uses techniques, groups can be considered indirect users of techniques used by their software. See [Getting techniques used by a group's software](#Getting-techniques-used-by-a-groups-software).
331
+
332
+ ## Accessing ATT&CK data in python
333
+
334
+ There are several ways to acquire the ATT&CK data in Python. All of them will provide an object
335
+ implementing the DataStore API and can be used interchangeably with the recipes provided in the [Python recipes](#Python-Recipes) section.
336
+
337
+ This section utilizes the [stix2 python library](https://github.com/oasis-open/cti-python-stix2). Please refer to the [STIX2 Python API Documentation](https://stix2.readthedocs.io/en/latest/) for more information on how to work with STIX programmatically.
338
+
339
+ ### Requirements and imports
340
+
341
+ Before installing requirements, we recommend setting up a virtual environment:
342
+
343
+ 1. Create virtual environment:
344
+ - macOS and Linux: `python3 -m venv env`
345
+ - Windows: `py -m venv env`
346
+ 2. Activate the virtual environment:
347
+ - macOS and Linux: `source env/bin/activate`
348
+ - Windows: `env/Scripts/activate.bat`
349
+
350
+ #### stix2
351
+
352
+ [stix2 can be installed by following the instructions on their repository](https://github.com/oasis-open/cti-python-stix2#installation). Imports for the recipes in this repository can be done from the base package, for example:
353
+
354
+ ```python
355
+ from stix2 import Filter
356
+ ```
357
+
358
+ However, if you are aiming to extend the ATT&CK dataset with new objects or implement complex workflows, you may need to use the `v20` specifier for some imports. This ensures that the objects use the STIX 2.0 API instead of the STIX 2.1 API. For example:
359
+
360
+ ```python
361
+ from stix2.v20 import AttackPattern
362
+ ```
363
+
364
+ You can see a full list of the classes which have versioned imports [here](https://stix2.readthedocs.io/en/latest/api/stix2.v20.html).
365
+
366
+ #### taxii2client
367
+
368
+ [taxii2-client can be installed by following the instructions on their repository](https://github.com/oasis-open/cti-taxii-client#installation). The ATT&CK TAXII server implements the 2.0 version of the TAXII specification, but the default import of `taxii2client` (version 2.0.0 and above) uses the 2.1 version of the TAXII specification, which can lead to 406 responses when connecting to our TAXII server if not accounted for.
369
+
370
+ If the TAXII Client is getting a 406 Response, make sure you are running the latest version (`pip install --upgrade stix2` or `pip install --upgrade taxii2-client`). In addition, make sure you are running the 2.0 version of the client (using the `v20` import) as shown below in order to communicate with the ATT&CK TAXII 2.0 Server.
371
+
372
+ ```python
373
+ from taxii2client.v20 import Collection
374
+ ```
375
+
376
+ ### Access local content
377
+
378
+ Many users may opt to access the ATT&CK content via a local copy of the STIX data on this repo. This can be advantageous for several reasons:
379
+
380
+ - Doesn't require internet access after the initial download
381
+ - User can modify the ATT&CK content if desired
382
+ - Downloaded copy is static, so updates to the ATT&CK catalog won't cause bugs in automated workflows. User can still manually update by cloning a fresh version of the data
383
+
384
+ #### Access via FileSystemSource
385
+
386
+ Each domain in this repo is formatted according to the [STIX2 FileSystem spec](https://stix2.readthedocs.io/en/latest/guide/filesystem.html).
387
+ Therefore you can use a `FileSystemSource` to load a domain, for example to load the enterprise-attack domain:
388
+
389
+ ```python
390
+ from stix2 import FileSystemSource
391
+
392
+ src = FileSystemSource('./cti/enterprise-attack')
393
+ ```
394
+
395
+ #### Access via bundle
396
+
397
+ If you instead prefer to download just the domain bundle, e.g [enterprise-attack.json](/enterprise-attack/enterprise-attack.json), you can still load this using a MemoryStore:
398
+
399
+ ```python
400
+ from stix2 import MemoryStore
401
+
402
+ src = MemoryStore()
403
+ src.load_from_file("enterprise-attack.json")
404
+ ```
405
+
406
+ ### Access live content
407
+
408
+ Some users may instead prefer to access "live" ATT&CK content over the internet. This is advantageous for several reasons:
409
+
410
+ - Always stays up to date with the evolving ATT&CK catalog
411
+ - Doesn't require an initial download of the ATT&CK content, generally requires less setup
412
+
413
+ #### Access from the ATT&CK TAXII server
414
+
415
+ Users can access the ATT&CK data from the official ATT&CK TAXII server. In TAXII, the ATT&CK domains are represented as collections with static IDs:
416
+
417
+ | domain | collection ID |
418
+ |:-------|:--------------|
419
+ | `enterprise-attack` | `95ecc380-afe9-11e4-9b6c-751b66dd541e` |
420
+ | `mobile-attack` | `2f669986-b40b-4423-b720-4396ca6a462b` |
421
+ | `ics-attack` | `02c3ef24-9cd4-48f3-a99f-b74ce24f1d34` |
422
+
423
+ You can also get a list of available collection from the server directly:
424
+
425
+ ```python
426
+ from taxii2client.v20 import Server # only specify v20 if your installed version is >= 2.0.0
427
+
428
+ server = Server("https://cti-taxii.mitre.org/taxii/")
429
+ api_root = server.api_roots[0]
430
+ # Print name and ID of all ATT&CK domains available as collections
431
+ for collection in api_root.collections:
432
+ print(collection.title.ljust(20) + collection.id)
433
+ ```
434
+
435
+ The following recipe demonstrates how to access the enterprise-attack data from the TAXII server.
436
+
437
+ ```python
438
+ from stix2 import TAXIICollectionSource
439
+ from taxii2client.v20 import Collection # only specify v20 if your installed version is >= 2.0.0
440
+
441
+ collections = {
442
+ "enterprise_attack": "95ecc380-afe9-11e4-9b6c-751b66dd541e",
443
+ "mobile_attack": "2f669986-b40b-4423-b720-4396ca6a462b",
444
+ "ics-attack": "02c3ef24-9cd4-48f3-a99f-b74ce24f1d34"
445
+ }
446
+
447
+ collection = Collection(f"https://cti-taxii.mitre.org/stix/collections/{collections['enterprise_attack']}/")
448
+ src = TAXIICollectionSource(collection)
449
+ ```
450
+
451
+ For more about TAXII, please see oasis-open's [Introduction to TAXII](https://oasis-open.github.io/cti-documentation/taxii/intro).
452
+
453
+ #### Access from Github via requests
454
+
455
+ Users can alternatively access the data from MITRE/CTI using HTTP requests, and load the resulting content into a MemoryStore.
456
+ While typically the TAXII method is more desirable for "live" access, this method can be useful if you want to
457
+ access data on a branch of the MITRE/CTI repo (the TAXII server only holds the master branch) or in the case of a TAXII server outage.
458
+
459
+ ```python
460
+ import requests
461
+ from stix2 import MemoryStore
462
+
463
+ def get_data_from_branch(domain, branch="master"):
464
+ """get the ATT&CK STIX data from MITRE/CTI. Domain should be 'enterprise-attack', 'mobile-attack' or 'ics-attack'. Branch should typically be master."""
465
+ stix_json = requests.get(f"https://raw.githubusercontent.com/mitre/cti/{branch}/{domain}/{domain}.json").json()
466
+ return MemoryStore(stix_data=stix_json["objects"])
467
+
468
+ src = get_data_from_branch("enterprise-attack")
469
+ ```
470
+
471
+ ### Access a specific version of ATT&CK
472
+
473
+ ATT&CK versions are tracked on the MITRE/CTI repo using [tags](https://github.com/mitre/cti/tags). Tags prefixed with `ATT&CK-v` correspond to ATT&CK versions and tags prefixed with `CAPEC-v` correspond to CAPEC versions. You can find more information about ATT&CK versions on the [versions of ATT&CK page](https://attack.mitre.org/resources/versions/) on the ATT&CK website.
474
+
475
+ In addition to checking out the repo under the tag for a given version or downloading the STIX from github using your browser, you can also use a variation on the [requests method](#access-from-github-via-requests) to access a particular version of ATT&CK:
476
+
477
+ ```python
478
+ import requests
479
+ from stix2 import MemoryStore
480
+
481
+ def get_data_from_version(domain, version):
482
+ """get the ATT&CK STIX data for the given version from MITRE/CTI. Domain should be 'enterprise-attack', 'mobile-attack' or 'ics-attack'."""
483
+ stix_json = requests.get(f"https://raw.githubusercontent.com/mitre/cti/ATT%26CK-v{version}/{domain}/{domain}.json").json()
484
+ return MemoryStore(stix_data=stix_json["objects"])
485
+
486
+ src = get_data_from_version("enterprise-attack", "5.2")
487
+ ```
488
+
489
+ You can get a list of ATT&CK versions programmatically using the github API:
490
+
491
+ ```python
492
+ import requests
493
+ import re
494
+
495
+ refToTag = re.compile(r"ATT&CK-v(.*)")
496
+ tags = requests.get("https://api.github.com/repos/mitre/cti/git/refs/tags").json()
497
+ versions = list(map(lambda tag: refToTag.search(tag["ref"]).groups()[0] , filter(lambda tag: "ATT&CK-v" in tag["ref"], tags)))
498
+ # versions = ["1.0", "2.0", ...]
499
+ ```
500
+
501
+ ### Access multiple domains simultaneously
502
+
503
+ Because ATT&CK is stored in multiple domains (as of this writing, enterprise-attack, mobile-attack and ics-attack), the above methodologies will only allow you to work
504
+ with a single domain at a time. While oftentimes the hard separation of domains is advantageous, occasionally it is useful to combine
505
+ domains into a single DataStore. Use any of the methods above to acquire the individual datastores, and then use the following approach to combine them into
506
+ a single CompositeDataSource:
507
+
508
+ ```python
509
+ from stix2 import CompositeDataSource
510
+
511
+ src = CompositeDataSource()
512
+ src.add_data_sources([enterprise_attack_src, mobile_attack_src, ics_attack_src])
513
+ ```
514
+
515
+ You can then use this CompositeDataSource just as you would the DataSource for an individual domain.
516
+
517
+ ## Python recipes
518
+
519
+ Below are example python recipes which can be used to work with ATT&CK data. They assume the existence of an object implementing the DataStore API. Any of the methods outlined in the [Accessing ATT&CK data in python](#accessing-ATTCK-Data-in-Python) section should provide an object implementing this API.
520
+
521
+ This section utilizes the [stix2 python library](https://github.com/oasis-open/cti-python-stix2). Please refer to the [STIX2 Python API Documentation](https://stix2.readthedocs.io/en/latest/) for more information on how to work with STIX programmatically. See also the section on [Requirements and imports](#requirements-and-imports).
522
+
523
+ ### Getting an object
524
+
525
+ The recipes in this section address how to query the dataset for a single object.
526
+
527
+ #### By STIX ID
528
+
529
+ The following recipe can be used to retrieve an object according to its STIX ID. This is typically the preferred way to retrieve objects when working with ATT&CK data because STIX IDs are guaranteed to be unique.
530
+
531
+ ```python
532
+ g0075 = src.get("intrusion-set--f40eb8ce-2a74-4e56-89a1-227021410142")
533
+ ```
534
+
535
+ #### By ATT&CK ID
536
+
537
+ The following recipe can be used to retrieve an object according to its ATT&CK ID:
538
+
539
+ ```python
540
+ from stix2 import Filter
541
+
542
+ g0075 = src.query([ Filter("external_references.external_id", "=", "G0075") ])[0]
543
+ ```
544
+
545
+ Note: in prior versions of ATT&CK, mitigations had 1:1 relationships with techniques and shared their technique's ID. Therefore the above method does not work properly for techniques because technique ATTT&CK IDs are not truly unique. By specifying the STIX type you're looking for as `attack-pattern` you can avoid this issue.
546
+
547
+ ```python
548
+ from stix2 import Filter
549
+
550
+ t1134 = src.query([
551
+ Filter("external_references.external_id", "=", "T1134"),
552
+ Filter("type", "=", "attack-pattern")
553
+ ])[0]
554
+ ```
555
+
556
+ The old 1:1 mitigations causing this issue are deprecated, so you can also filter them out that way — see [Removing revoked and deprecated objects](#Removing-revoked-and-deprecated-objects).
557
+
558
+ #### By name
559
+
560
+ The following recipe retrieves an object according to its name:
561
+
562
+ ```python
563
+ from stix2 import Filter
564
+
565
+ def get_technique_by_name(thesrc, name):
566
+ filt = [
567
+ Filter('type', '=', 'attack-pattern'),
568
+ Filter('name', '=', name)
569
+ ]
570
+ return thesrc.query(filt)
571
+ # get the technique titled "System Information Discovery"
572
+ get_technique_by_name(src, 'System Information Discovery')
573
+ ```
574
+
575
+ #### By alias
576
+
577
+ The following methodology can be used to find the group corresponding to a given alias:
578
+
579
+ ```python
580
+ from stix2 import Filter
581
+
582
+ def get_group_by_alias(thesrc, alias):
583
+ return thesrc.query([
584
+ Filter('type', '=', 'intrusion-set'),
585
+ Filter('aliases', '=', alias)
586
+ ])[0]
587
+
588
+ get_group_by_alias(src, 'Cozy Bear')
589
+ ```
590
+
591
+ ### Getting multiple objects
592
+
593
+ The recipes in this section address how to query the dataset for multiple objects.
594
+
595
+ &#9888; When working with queries to return objects based on a set of characteristics, it is likely that you'll end up with a few objects which are no longer maintained by ATT&CK. These are objects marked as deprecated or revoked. We keep these outdated objects around so that workflows depending on them don't break, but we recommend you avoid using them when possible. Please see the section [Working with deprecated and revoked objects](#Working-with-deprecated-and-revoked-objects) for more information.
596
+
597
+ #### Objects by type
598
+
599
+ See [The ATT&CK data model](#The-ATTCK-Data-Model) for mappings of ATT&CK type to STIX type.
600
+
601
+ ```python
602
+ from stix2 import Filter
603
+
604
+ # use the appropriate STIX type in the query according to the desired ATT&CK type
605
+ groups = src.query([ Filter("type", "=", "intrusion-set") ])
606
+ ```
607
+
608
+ ##### Getting techniques or sub-techniques
609
+
610
+ ATT&CK Techniques and sub-techniques are both represented as `attack-pattern` objects. Therefore further parsing is necessary to get specifically techniques or sub-techniques.
611
+
612
+ ```python
613
+ from stix2 import Filter
614
+
615
+ def get_techniques_or_subtechniques(thesrc, include="both"):
616
+ """Filter Techniques or Sub-Techniques from ATT&CK Enterprise Domain.
617
+ include argument has three options: "techniques", "subtechniques", or "both"
618
+ depending on the intended behavior."""
619
+ if include == "techniques":
620
+ query_results = thesrc.query([
621
+ Filter('type', '=', 'attack-pattern'),
622
+ Filter('x_mitre_is_subtechnique', '=', False)
623
+ ])
624
+ elif include == "subtechniques":
625
+ query_results = thesrc.query([
626
+ Filter('type', '=', 'attack-pattern'),
627
+ Filter('x_mitre_is_subtechnique', '=', True)
628
+ ])
629
+ elif include == "both":
630
+ query_results = thesrc.query([
631
+ Filter('type', '=', 'attack-pattern')
632
+ ])
633
+ else:
634
+ raise RuntimeError("Unknown option %s!" % include)
635
+
636
+ return query_results
637
+
638
+
639
+ subtechniques = get_techniques_or_subtechniques(src, "subtechniques")
640
+ subtechniques = remove_revoked_deprecated(subtechniques) # see https://github.com/mitre/cti/blob/master/USAGE.md#removing-revoked-and-deprecated-objects
641
+ ```
642
+
643
+ ##### Getting software
644
+
645
+ Because software are the union of two STIX types (`tool` and `malware`), the process for accessing software is slightly more complicated.
646
+
647
+ ```python
648
+ from itertools import chain
649
+ from stix2 import Filter
650
+
651
+ def get_software(thesrc):
652
+ return list(chain.from_iterable(
653
+ thesrc.query(f) for f in [
654
+ Filter("type", "=", "tool"),
655
+ Filter("type", "=", "malware")
656
+ ]
657
+ ))
658
+
659
+ get_software(src)
660
+ ```
661
+
662
+ #### Objects by content
663
+
664
+ Sometimes it may be useful to query objects by the content of their description:
665
+
666
+ ```python
667
+ from stix2 import Filter
668
+
669
+ def get_techniques_by_content(thesrc, content):
670
+ techniques = src.query([ Filter('type', '=', 'attack-pattern') ])
671
+ return list(filter(lambda t: content.lower() in t.description.lower(), techniques))
672
+
673
+ # Get all techniques where the string LSASS appears in the description
674
+ get_techniques_by_content(src, 'LSASS')
675
+ ```
676
+
677
+ #### Techniques by platform
678
+
679
+ Techniques are associated with one or more platforms. You can query the techniques
680
+ under a specific platform with the following code:
681
+
682
+ ```python
683
+ from stix2 import Filter
684
+
685
+ def get_techniques_by_platform(thesrc, platform):
686
+ return thesrc.query([
687
+ Filter('type', '=', 'attack-pattern'),
688
+ Filter('x_mitre_platforms', '=', platform)
689
+ ])
690
+
691
+ # get techniques in the windows platform
692
+ get_techniques_by_platform(src, 'Windows')
693
+ ```
694
+
695
+ #### Techniques by tactic
696
+
697
+ Techniques are related to tactics by their kill_chain_phases property.
698
+ The `phase_name` of each kill chain phase corresponds to the `x_mitre_shortname` of a tactic.
699
+
700
+ ```python
701
+ from stix2 import Filter
702
+
703
+ def get_tactic_techniques(thesrc, tactic):
704
+ # double checking the kill chain is MITRE ATT&CK
705
+ # note: kill_chain_name is different for other domains:
706
+ # - enterprise: "mitre-attack"
707
+ # - mobile: "mitre-mobile-attack"
708
+ # - ics: "mitre-ics-attack"
709
+ return thesrc.query([
710
+ Filter('type', '=', 'attack-pattern'),
711
+ Filter('kill_chain_phases.phase_name', '=', tactic),
712
+ Filter('kill_chain_phases.kill_chain_name', '=', 'mitre-attack'),
713
+ ])
714
+
715
+
716
+ # use the x_mitre_shortname as argument
717
+ get_tactic_techniques(src, 'defense-evasion')
718
+ ```
719
+
720
+ #### Tactics by matrix
721
+
722
+ The tactics are individual objects (`x-mitre-tactic`), and their order in a matrix (`x-mitre-matrix`) is
723
+ found within the `tactic_refs` property in a matrix. The order of the tactics in that list matches
724
+ the ordering of the tactics in that matrix. The following recipe returns a structured list of tactics within each matrix of the input DataStore.
725
+
726
+ ```python
727
+ from stix2 import Filter
728
+
729
+ def getTacticsByMatrix(thesrc):
730
+ tactics = {}
731
+ matrix = thesrc.query([
732
+ Filter('type', '=', 'x-mitre-matrix'),
733
+ ])
734
+
735
+ for i in range(len(matrix)):
736
+ tactics[matrix[i]['name']] = []
737
+ for tactic_id in matrix[i]['tactic_refs']:
738
+ tactics[matrix[i]['name']].append(thesrc.get(tactic_id))
739
+
740
+ return tactics
741
+
742
+ # get tactic layout
743
+ getTacticsByMatrix(src)
744
+ ```
745
+
746
+ #### Objects created or modified since a given date
747
+
748
+ Sometimes you may want to get a list of objects which have been created or modified after a certain time.
749
+
750
+ ```python
751
+ from stix2 import Filter
752
+
753
+ def get_created_after(thesrc, timestamp):
754
+ filt = [
755
+ Filter('created', '>', timestamp)
756
+ ]
757
+ return thesrc.query(filt)
758
+
759
+ get_created_after(src, "2018-10-01T00:14:20.652Z")
760
+
761
+
762
+ def get_modified_after(thesrc, timestamp):
763
+ filt = [
764
+ Filter('modified', '>', timestamp)
765
+ ]
766
+ return thesrc.query(filt)
767
+
768
+ get_modified_after(src, "2018-10-01T00:14:20.652Z")
769
+ ```
770
+
771
+ We don't recommend you use this method to detect a change to the contents of the knowledge base. For detecting an update to the overall knowledge base we recommend using requests to [check the list of released versions of ATT&CK](https://github.com/mitre/cti/blob/master/USAGE.md#access-a-specific-version-of-attck).
772
+
773
+ ### Getting related objects
774
+
775
+ A large part of working with ATT&CK revolves around parsing relationships between objects. It is useful
776
+ to track not only the related object but the relationship itself because a description is often
777
+ present to contextualize the nature of the relationship. The following recipes demonstrate
778
+ some common uses of relationships.
779
+
780
+ #### Relationships microlibrary
781
+
782
+ NOTE: The following code is intended to be used with the ATT&CK v12 release which includes Campaign Objects.
783
+ The examples are backwards-compatible for previous versions af ATT&CK that omit those objects.
784
+
785
+ This microlibrary can be used to build a lookup table of stixID to related objects and relationships.
786
+ The argument to each accessor function is a STIX2 MemoryStore to build the relationship mappings from.
787
+
788
+ ```python
789
+ from pprint import pprint
790
+ from stix2 import MemoryStore, Filter
791
+
792
+ # See section below on "Removing revoked and deprecated objects"
793
+ def remove_revoked_deprecated(stix_objects):
794
+ """Remove any revoked or deprecated objects from queries made to the data source"""
795
+ # Note we use .get() because the property may not be present in the JSON data. The default is False
796
+ # if the property is not set.
797
+ return list(
798
+ filter(
799
+ lambda x: x.get("x_mitre_deprecated", False) is False and x.get("revoked", False) is False,
800
+ stix_objects
801
+ )
802
+ )
803
+
804
+ def get_related(thesrc, src_type, rel_type, target_type, reverse=False):
805
+ """build relationship mappings
806
+ params:
807
+ thesrc: MemoryStore to build relationship lookups for
808
+ src_type: source type for the relationships, e.g "attack-pattern"
809
+ rel_type: relationship type for the relationships, e.g "uses"
810
+ target_type: target type for the relationship, e.g "intrusion-set"
811
+ reverse: build reverse mapping of target to source
812
+ """
813
+
814
+ relationships = thesrc.query([
815
+ Filter('type', '=', 'relationship'),
816
+ Filter('relationship_type', '=', rel_type),
817
+ Filter('revoked', '=', False),
818
+ ])
819
+
820
+ # See section below on "Removing revoked and deprecated objects"
821
+ relationships = remove_revoked_deprecated(relationships)
822
+
823
+ # stix_id => [ { relationship, related_object_id } for each related object ]
824
+ id_to_related = {}
825
+
826
+ # build the dict
827
+ for relationship in relationships:
828
+ if src_type in relationship.source_ref and target_type in relationship.target_ref:
829
+ if (relationship.source_ref in id_to_related and not reverse) or (relationship.target_ref in id_to_related and reverse):
830
+ # append to existing entry
831
+ if not reverse:
832
+ id_to_related[relationship.source_ref].append({
833
+ "relationship": relationship,
834
+ "id": relationship.target_ref
835
+ })
836
+ else:
837
+ id_to_related[relationship.target_ref].append({
838
+ "relationship": relationship,
839
+ "id": relationship.source_ref
840
+ })
841
+ else:
842
+ # create a new entry
843
+ if not reverse:
844
+ id_to_related[relationship.source_ref] = [{
845
+ "relationship": relationship,
846
+ "id": relationship.target_ref
847
+ }]
848
+ else:
849
+ id_to_related[relationship.target_ref] = [{
850
+ "relationship": relationship,
851
+ "id": relationship.source_ref
852
+ }]
853
+ # all objects of relevant type
854
+ if not reverse:
855
+ targets = thesrc.query([
856
+ Filter('type', '=', target_type),
857
+ Filter('revoked', '=', False)
858
+ ])
859
+ else:
860
+ targets = thesrc.query([
861
+ Filter('type', '=', src_type),
862
+ Filter('revoked', '=', False)
863
+ ])
864
+
865
+ # build lookup of stixID to stix object
866
+ id_to_target = {}
867
+ for target in targets:
868
+ id_to_target[target.id] = target
869
+
870
+ # build final output mappings
871
+ output = {}
872
+ for stix_id in id_to_related:
873
+ value = []
874
+ for related in id_to_related[stix_id]:
875
+ if not related["id"] in id_to_target:
876
+ continue # targeting a revoked object
877
+ value.append({
878
+ "object": id_to_target[related["id"]],
879
+ "relationship": related["relationship"]
880
+ })
881
+ output[stix_id] = value
882
+ return output
883
+
884
+ # software:group
885
+ def software_used_by_groups(thesrc):
886
+ """returns group_id => {software, relationship} for each software used by the group and each software used by campaigns attributed to the group."""
887
+ # get all software used by groups
888
+ tools_used_by_group = get_related(thesrc, "intrusion-set", "uses", "tool")
889
+ malware_used_by_group = get_related(thesrc, "intrusion-set", "uses", "malware")
890
+ software_used_by_group = {**tools_used_by_group, **malware_used_by_group} # group_id -> [{software, relationship}]
891
+
892
+ # get groups attributing to campaigns and all software used by campaigns
893
+ software_used_by_campaign = get_related(thesrc, "campaign", "uses", "tool")
894
+ malware_used_by_campaign = get_related(thesrc, "campaign", "uses", "malware")
895
+ for id in malware_used_by_campaign:
896
+ if id in software_used_by_campaign:
897
+ software_used_by_campaign[id].extend(malware_used_by_campaign[id])
898
+ else:
899
+ software_used_by_campaign[id] = malware_used_by_campaign[id]
900
+ campaigns_attributed_to_group = {
901
+ "campaigns": get_related(thesrc, "campaign", "attributed-to", "intrusion-set", reverse=True), # group_id => {campaign, relationship}
902
+ "software": software_used_by_campaign # campaign_id => {software, relationship}
903
+ }
904
+
905
+ for group_id in campaigns_attributed_to_group["campaigns"]:
906
+ software_used_by_campaigns = []
907
+ # check if attributed campaign is using software
908
+ for campaign in campaigns_attributed_to_group["campaigns"][group_id]:
909
+ campaign_id = campaign["object"]["id"]
910
+ if campaign_id in campaigns_attributed_to_group["software"]:
911
+ software_used_by_campaigns.extend(campaigns_attributed_to_group["software"][campaign_id])
912
+
913
+ # update software used by group to include software used by a groups attributed campaign
914
+ if group_id in software_used_by_group:
915
+ software_used_by_group[group_id].extend(software_used_by_campaigns)
916
+ else:
917
+ software_used_by_group[group_id] = software_used_by_campaigns
918
+ return software_used_by_group
919
+
920
+ def groups_using_software(thesrc):
921
+ """returns software_id => {group, relationship} for each group using the software and each software used by attributed campaigns."""
922
+ # get all groups using software
923
+ groups_using_tool = get_related(thesrc, "intrusion-set", "uses", "tool", reverse=True)
924
+ groups_using_malware = get_related(thesrc, "intrusion-set", "uses", "malware", reverse=True)
925
+ groups_using_software = {**groups_using_tool, **groups_using_malware} # software_id => {group, relationship}
926
+
927
+ # get campaigns attributed to groups and all campaigns using software
928
+ campaigns_using_software = get_related(thesrc, "campaign", "uses", "tool", reverse=True)
929
+ campaigns_using_malware = get_related(thesrc, "campaign", "uses", "malware", reverse=True)
930
+ for id in campaigns_using_malware:
931
+ if id in campaigns_using_software:
932
+ campaigns_using_software[id].extend(campaigns_using_malware[id])
933
+ else:
934
+ campaigns_using_software[id] = campaigns_using_malware[id]
935
+ groups_attributing_to_campaigns = {
936
+ "campaigns": campaigns_using_software,# software_id => {campaign, relationship}
937
+ "groups": get_related(thesrc, "campaign", "attributed-to", "intrusion-set") # campaign_id => {group, relationship}
938
+ }
939
+
940
+ for software_id in groups_attributing_to_campaigns["campaigns"]:
941
+ groups_attributed_to_campaigns = []
942
+ # check if campaign is attributed to group
943
+ for campaign in groups_attributing_to_campaigns["campaigns"][software_id]:
944
+ campaign_id = campaign["object"]["id"]
945
+ if campaign_id in groups_attributing_to_campaigns["groups"]:
946
+ groups_attributed_to_campaigns.extend(groups_attributing_to_campaigns["groups"][campaign_id])
947
+
948
+ # update groups using software to include software used by a groups attributed campaign
949
+ if software_id in groups_using_software:
950
+ groups_using_software[software_id].extend(groups_attributed_to_campaigns)
951
+ else:
952
+ groups_using_software[software_id] = groups_attributed_to_campaigns
953
+ return groups_using_software
954
+
955
+ # software:campaign
956
+ def software_used_by_campaigns(thesrc):
957
+ """returns campaign_id => {software, relationship} for each software used by the campaign."""
958
+ tools_used_by_campaign = get_related(thesrc, "campaign", "uses", "tool")
959
+ malware_used_by_campaign = get_related(thesrc, "campaign", "uses", "malware")
960
+ return {**tools_used_by_campaign, **malware_used_by_campaign}
961
+
962
+ def campaigns_using_software(thesrc):
963
+ """returns software_id => {campaign, relationship} for each campaign using the software."""
964
+ campaigns_using_tool = get_related(thesrc, "campaign", "uses", "tool", reverse=True)
965
+ campaigns_using_malware = get_related(thesrc, "campaign", "uses", "malware", reverse=True)
966
+ return {**campaigns_using_tool, **campaigns_using_malware}
967
+
968
+ # campaign:group
969
+ def groups_attributing_to_campaign(thesrc):
970
+ """returns campaign_id => {group, relationship} for each group attributing to the campaign."""
971
+ return get_related(thesrc, "campaign", "attributed-to", "intrusion-set")
972
+
973
+ def campaigns_attributed_to_group(thesrc):
974
+ """returns group_id => {campaign, relationship} for each campaign attributed to the group."""
975
+ return get_related(thesrc, "campaign", "attributed-to", "intrusion-set", reverse=True)
976
+
977
+ # technique:group
978
+ def techniques_used_by_groups(thesrc):
979
+ """returns group_id => {technique, relationship} for each technique used by the group and each
980
+ technique used by campaigns attributed to the group."""
981
+ # get all techniques used by groups
982
+ techniques_used_by_groups = get_related(thesrc, "intrusion-set", "uses", "attack-pattern") # group_id => {technique, relationship}
983
+
984
+ # get groups attributing to campaigns and all techniques used by campaigns
985
+ campaigns_attributed_to_group = {
986
+ "campaigns": get_related(thesrc, "campaign", "attributed-to", "intrusion-set", reverse=True), # group_id => {campaign, relationship}
987
+ "techniques": get_related(thesrc, "campaign", "uses", "attack-pattern") # campaign_id => {technique, relationship}
988
+ }
989
+
990
+ for group_id in campaigns_attributed_to_group["campaigns"]:
991
+ techniques_used_by_campaigns = []
992
+ # check if attributed campaign is using technique
993
+ for campaign in campaigns_attributed_to_group["campaigns"][group_id]:
994
+ campaign_id = campaign["object"]["id"]
995
+ if campaign_id in campaigns_attributed_to_group["techniques"]:
996
+ techniques_used_by_campaigns.extend(campaigns_attributed_to_group["techniques"][campaign_id])
997
+
998
+ # update techniques used by groups to include techniques used by a groups attributed campaign
999
+ if group_id in techniques_used_by_groups:
1000
+ techniques_used_by_groups[group_id].extend(techniques_used_by_campaigns)
1001
+ else:
1002
+ techniques_used_by_groups[group_id] = techniques_used_by_campaigns
1003
+ return techniques_used_by_groups
1004
+
1005
+ def groups_using_technique(thesrc):
1006
+ """returns technique_id => {group, relationship} for each group using the technique and each campaign attributed to groups using the technique."""
1007
+ # get all groups using techniques
1008
+ groups_using_techniques = get_related(thesrc, "intrusion-set", "uses", "attack-pattern", reverse=True) # technique_id => {group, relationship}
1009
+
1010
+ # get campaigns attributed to groups and all campaigns using techniques
1011
+ groups_attributing_to_campaigns = {
1012
+ "campaigns": get_related(thesrc, "campaign", "uses", "attack-pattern", reverse=True), # technique_id => {campaign, relationship}
1013
+ "groups": get_related(thesrc, "campaign", "attributed-to", "intrusion-set") # campaign_id => {group, relationship}
1014
+ }
1015
+
1016
+ for technique_id in groups_attributing_to_campaigns["campaigns"]:
1017
+ campaigns_attributed_to_group = []
1018
+ # check if campaign is attributed to group
1019
+ for campaign in groups_attributing_to_campaigns["campaigns"][technique_id]:
1020
+ campaign_id = campaign["object"]["id"]
1021
+ if campaign_id in groups_attributing_to_campaigns["groups"]:
1022
+ campaigns_attributed_to_group.extend(groups_attributing_to_campaigns["groups"][campaign_id])
1023
+
1024
+ # update groups using techniques to include techniques used by a groups attributed campaign
1025
+ if technique_id in groups_using_techniques:
1026
+ groups_using_techniques[technique_id].extend(campaigns_attributed_to_group)
1027
+ else:
1028
+ groups_using_techniques[technique_id] = campaigns_attributed_to_group
1029
+ return groups_using_techniques
1030
+
1031
+ # technique:campaign
1032
+ def techniques_used_by_campaigns(thesrc):
1033
+ """returns campaign_id => {technique, relationship} for each technique used by the campaign."""
1034
+ return get_related(thesrc, "campaign", "uses", "attack-pattern")
1035
+
1036
+ def campaigns_using_technique(thesrc):
1037
+ """returns technique_id => {campaign, relationship} for each campaign using the technique."""
1038
+ return get_related(thesrc, "campaign", "uses", "attack-pattern", reverse=True)
1039
+
1040
+ # technique:software
1041
+ def techniques_used_by_software(thesrc):
1042
+ """return software_id => {technique, relationship} for each technique used by the software."""
1043
+ techniques_by_tool = get_related(thesrc, "tool", "uses", "attack-pattern")
1044
+ techniques_by_malware = get_related(thesrc, "malware", "uses", "attack-pattern")
1045
+ return {**techniques_by_tool, **techniques_by_malware}
1046
+
1047
+ def software_using_technique(thesrc):
1048
+ """return technique_id => {software, relationship} for each software using the technique."""
1049
+ tools_by_technique_id = get_related(thesrc, "tool", "uses", "attack-pattern", reverse=True)
1050
+ malware_by_technique_id = get_related(thesrc, "malware", "uses", "attack-pattern", reverse=True)
1051
+ return {**tools_by_technique_id, **malware_by_technique_id}
1052
+
1053
+ # technique:mitigation
1054
+ def mitigation_mitigates_techniques(thesrc):
1055
+ """return mitigation_id => {technique, relationship} for each technique mitigated by the mitigation."""
1056
+ return get_related(thesrc, "course-of-action", "mitigates", "attack-pattern", reverse=False)
1057
+
1058
+ def technique_mitigated_by_mitigations(thesrc):
1059
+ """return technique_id => {mitigation, relationship} for each mitigation of the technique."""
1060
+ return get_related(thesrc, "course-of-action", "mitigates", "attack-pattern", reverse=True)
1061
+
1062
+ # technique:sub-technique
1063
+ def subtechniques_of(thesrc):
1064
+ """return technique_id => {subtechnique, relationship} for each subtechnique of the technique."""
1065
+ return get_related(thesrc, "attack-pattern", "subtechnique-of", "attack-pattern", reverse=True)
1066
+
1067
+ def parent_technique_of(thesrc):
1068
+ """return subtechnique_id => {technique, relationship} describing the parent technique of the subtechnique"""
1069
+ return get_related(thesrc, "attack-pattern", "subtechnique-of", "attack-pattern")[0]
1070
+
1071
+ # technique:data-component
1072
+ def datacomponent_detects_techniques(thesrc):
1073
+ """return datacomponent_id => {technique, relationship} describing the detections of each data component"""
1074
+ return get_related(thesrc, "x-mitre-data-component", "detects", "attack-pattern")
1075
+
1076
+ def technique_detected_by_datacomponents(thesrc):
1077
+ """return technique_id => {datacomponent, relationship} describing the data components that can detect the technique"""
1078
+ return get_related(thesrc, "x-mitre-data-component", "detects", "attack-pattern", reverse=True)
1079
+
1080
+ # Example usage:
1081
+ src = MemoryStore()
1082
+ src.load_from_file("path/to/enterprise-attack.json")
1083
+
1084
+ group_id_to_software = software_used_by_groups(src)
1085
+ pprint(group_id_to_software["intrusion-set--2a158b0a-7ef8-43cb-9985-bf34d1e12050"]) # G0019
1086
+ # [
1087
+ # {
1088
+ # "object": Malware, # S0061
1089
+ # "relationship": Relationship # relationship between G0019 and S0061
1090
+ # },
1091
+ # {
1092
+ # ...
1093
+ # }
1094
+ # ]
1095
+ ```
1096
+
1097
+ #### Getting techniques used by a group's software
1098
+
1099
+ Because a group uses software, and software uses techniques, groups can be considered indirect users of techniques used by their software.
1100
+ These techniques are oftentimes distinct from the techniques used directly by a group, although there are occasionally intersections in these two sets of techniques.
1101
+
1102
+ The following recipe can be used to retrieve the techniques used by a group's software:
1103
+
1104
+ ```python
1105
+ from stix2.utils import get_type_from_id
1106
+ from stix2 import Filter
1107
+
1108
+ def get_techniques_by_group_software(thesrc, group_stix_id):
1109
+ # get the malware, tools that the group uses
1110
+ group_uses = [
1111
+ r for r in thesrc.relationships(group_stix_id, 'uses', source_only=True)
1112
+ if get_type_from_id(r.target_ref) in ['malware', 'tool']
1113
+ ]
1114
+
1115
+ # get the technique stix ids that the malware, tools use
1116
+ software_uses = thesrc.query([
1117
+ Filter('type', '=', 'relationship'),
1118
+ Filter('relationship_type', '=', 'uses'),
1119
+ Filter('source_ref', 'in', [r.source_ref for r in group_uses])
1120
+ ])
1121
+
1122
+ #get the techniques themselves
1123
+ return thesrc.query([
1124
+ Filter('type', '=', 'attack-pattern'),
1125
+ Filter('id', 'in', [r.target_ref for r in software_uses])
1126
+ ])
1127
+
1128
+ get_techniques_by_group_software(src, "intrusion-set--f047ee18-7985-4946-8bfb-4ed754d3a0dd")
1129
+ ```
1130
+
1131
+ ### Working with deprecated and revoked objects
1132
+
1133
+ Objects that are deemed no longer beneficial to track as part of the knowledge base are marked as deprecated, and objects which are replaced by a different object are revoked. In both cases, the old object is marked with a field (either `x_mitre_deprecated` or `revoked`) noting their status. In the case of revoked objects, a relationship of type `revoked-by` is also created targeting the replacing object.
1134
+
1135
+ Unlike other objects in the dataset, relationships cannot be revoked or deprecated. Relationships are considered deprecated/revoked if one of the objects it is attached to is revoked or deprecated.
1136
+
1137
+ #### Removing revoked and deprecated objects
1138
+
1139
+ Revoked and deprecated objects are kept in the knowledge base so that workflows relying on those objects are not
1140
+ broken. We recommend you filter out revoked and deprecated objects from your views whenever possible since they are no
1141
+ longer maintained by ATT&CK.
1142
+
1143
+ We recommend _not_ using built-in STIX filters for removing revoked objects (e.g `Filter('revoked', '=', False)`). This is because the behavior of this specific filter is inconsistent depending on the method of access (using local data or accessing via the TAXII server). We recommend using the following code example to filter revoked objects instead. See [issue #127](https://github.com/mitre/cti/issues/127) for more details.
1144
+
1145
+ ```python
1146
+ from stix2 import Filter
1147
+
1148
+ def remove_revoked_deprecated(stix_objects):
1149
+ """Remove any revoked or deprecated objects from queries made to the data source"""
1150
+ # Note we use .get() because the property may not be present in the JSON data. The default is False
1151
+ # if the property is not set.
1152
+ return list(
1153
+ filter(
1154
+ lambda x: x.get("x_mitre_deprecated", False) is False and x.get("revoked", False) is False,
1155
+ stix_objects
1156
+ )
1157
+ )
1158
+
1159
+ mitigations = src.query([ Filter("type", "=", "course-of-action") ])
1160
+ mitigations = remove_revoked_deprecated(mitigations)
1161
+ ```
1162
+
1163
+ #### Getting a revoking object
1164
+
1165
+ When an object is replaced by another object, it is marked with the field `revoked` and a relationship of type `revoked-by` is created where the `source_ref` is the revoked object and the `target_ref` is the revoking object. This relationship can be followed to find the replacing object:
1166
+
1167
+ ```python
1168
+ from stix2 import Filter
1169
+
1170
+ def getRevokedBy(stix_id, thesrc):
1171
+ relations = thesrc.relationships(stix_id, 'revoked-by', source_only=True)
1172
+ revoked_by = thesrc.query([
1173
+ Filter('id', 'in', [r.target_ref for r in relations]),
1174
+ Filter('revoked', '=', False)
1175
+ ])
1176
+ if revoked_by is not None:
1177
+ revoked_by = revoked_by[0]
1178
+
1179
+ return revoked_by
1180
+
1181
+ getRevokedBy("attack-pattern--c16e5409-ee53-4d79-afdc-4099dc9292df", src)
1182
+ ```
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--00268a75-3243-477d-9166-8c78fddf6df6.json ADDED
@@ -0,0 +1,88 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--3854e44a-10ea-4970-8e82-5db4b70ba65e",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker employs forceful browsing (direct URL entry) to access portions of a website that are otherwise unreachable. Usually, a front controller or similar design pattern is employed to protect access to portions of a web application. Forceful browsing enables an attacker to access information, perform privileged operations and otherwise reach sections of the web application that have been improperly protected.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-87",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/87.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-425",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/425.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-285",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/285.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-693",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/693.html"
28
+ },
29
+ {
30
+ "description": "Predictable Resource Location",
31
+ "external_id": "34",
32
+ "source_name": "WASC",
33
+ "url": "http://projects.webappsec.org/Predictable-Resource-Location"
34
+ },
35
+ {
36
+ "description": "Forced browsing",
37
+ "source_name": "OWASP Attacks",
38
+ "url": "https://owasp.org/www-community/attacks/Forced_browsing"
39
+ }
40
+ ],
41
+ "id": "attack-pattern--00268a75-3243-477d-9166-8c78fddf6df6",
42
+ "modified": "2020-12-17T00:00:00.000Z",
43
+ "name": "Forceful Browsing",
44
+ "object_marking_refs": [
45
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
46
+ ],
47
+ "type": "attack-pattern",
48
+ "x_capec_abstraction": "Standard",
49
+ "x_capec_child_of_refs": [
50
+ "attack-pattern--8f665166-dfd1-40cb-91e8-b78bee1ceb6a"
51
+ ],
52
+ "x_capec_consequences": {
53
+ "Access_Control": [
54
+ "Bypass Protection Mechanism"
55
+ ],
56
+ "Authorization": [
57
+ "Bypass Protection Mechanism"
58
+ ],
59
+ "Confidentiality": [
60
+ "Read Data",
61
+ "Bypass Protection Mechanism"
62
+ ]
63
+ },
64
+ "x_capec_domains": [
65
+ "Software"
66
+ ],
67
+ "x_capec_example_instances": [
68
+ "\n <xhtml:p>A bulletin board application provides an administrative interface at admin.aspx when the user logging in belongs to the administrators group.</xhtml:p>\n <xhtml:p>An attacker can access the admin.aspx interface by making a direct request to the page. Not having access to the interface appropriately protected allows the attacker to perform administrative functions without having to authenticate themself in that role.</xhtml:p>\n "
69
+ ],
70
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Spider: </b>Using an automated tool, an attacker follows all public links on a web site. They record all the links they find.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use a spidering tool to follow and record all links.</td></tr><tr><td>Use a proxy tool to record all links visited during a manual traversal of the web application.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Attempt well-known or guessable resource locations: </b>Using an automated tool, an attacker requests a variety of well-known URLs that correspond to administrative, debugging, or other useful internal actions. They record all the positive responses from the server.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use a spidering tool to follow and record attempts on well-known URLs.</td></tr><tr><td>Use a proxy tool to record all links visited during a manual traversal of attempts on well-known URLs.</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Use unauthorized resources: </b>By visiting the unprotected resource, the attacker makes use of unauthorized functionality.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Access unprotected functions and execute them.</td></tr></tbody></table><li> <p> <b>View unauthorized data: </b>The attacker discovers and views unprotected sensitive data.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Direct request of protected pages that directly access database back-ends. (e.g., list.jsp, accounts.jsp, status.jsp, etc.)</td></tr></tbody></table></ol></div>",
71
+ "x_capec_likelihood_of_attack": "High",
72
+ "x_capec_prerequisites": [
73
+ "The forcibly browseable pages or accessible resources must be discoverable and improperly protected."
74
+ ],
75
+ "x_capec_resources_required": [
76
+ "None: No specialized resources are required to execute this type of attack. A directory listing is helpful, but not a requirement."
77
+ ],
78
+ "x_capec_skills_required": {
79
+ "Low": "Forcibly browseable pages can be discovered by using a number of automated tools. Doing the same manually is tedious but by no means difficult."
80
+ },
81
+ "x_capec_status": "Draft",
82
+ "x_capec_typical_severity": "High",
83
+ "x_capec_version": "3.9"
84
+ }
85
+ ],
86
+ "spec_version": "2.0",
87
+ "type": "bundle"
88
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0082c733-5245-47ca-a349-6c9fe34114f1.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--e5816f1d-9092-4885-a6c2-a171216583ed",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack pattern has been deprecated as it was deemed not to be a legitimate attack pattern. Please refer to CAPEC-118 : Collect and Analyze Information.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-409",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/409.html"
13
+ }
14
+ ],
15
+ "id": "attack-pattern--0082c733-5245-47ca-a349-6c9fe34114f1",
16
+ "modified": "2018-07-31T00:00:00.000Z",
17
+ "name": "DEPRECATED: Information Gathering from Non-Traditional Sources",
18
+ "object_marking_refs": [
19
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
20
+ ],
21
+ "type": "attack-pattern",
22
+ "x_capec_abstraction": "Meta",
23
+ "x_capec_status": "Deprecated",
24
+ "x_capec_version": "3.9"
25
+ }
26
+ ],
27
+ "spec_version": "2.0",
28
+ "type": "bundle"
29
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--00c93895-c68e-4d27-a1ec-0dddce68ed97.json ADDED
@@ -0,0 +1,45 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--1fb1c501-9ddd-4631-957c-e93abe88c5c6",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker uses techniques and methods to bypass physical security measures of a building or facility. Physical locks may range from traditional lock and key mechanisms, cable locks used to secure laptops or servers, locks on server cases, or other such devices. Techniques such as lock bumping, lock forcing via snap guns, or lock picking can be employed to bypass those locks and gain access to the facilities or devices they protect, although stealth, evidence of tampering, and the integrity of the lock following an attack, are considerations that may determine the method employed. Physical locks are limited by the complexity of the locking mechanism. While some locks may offer protections such as shock resistant foam to prevent bumping or lock forcing methods, many commonly employed locks offer no such countermeasures.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-391",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/391.html"
13
+ },
14
+ {
15
+ "description": "Stuart McClure, Joel Scambray, George Kurtz, Hacking Exposed: Network Security Secrets & Solutions (6th Edition), 2009, McGraw Hill",
16
+ "external_id": "REF-33",
17
+ "source_name": "reference_from_CAPEC"
18
+ }
19
+ ],
20
+ "id": "attack-pattern--00c93895-c68e-4d27-a1ec-0dddce68ed97",
21
+ "modified": "2019-09-30T00:00:00.000Z",
22
+ "name": "Bypassing Physical Locks",
23
+ "object_marking_refs": [
24
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
25
+ ],
26
+ "type": "attack-pattern",
27
+ "x_capec_abstraction": "Standard",
28
+ "x_capec_child_of_refs": [
29
+ "attack-pattern--8ba08815-66fb-4150-a7fa-8ab6d1472b5f"
30
+ ],
31
+ "x_capec_domains": [
32
+ "Physical Security"
33
+ ],
34
+ "x_capec_parent_of_refs": [
35
+ "attack-pattern--4068bee0-b331-49e8-872e-98429a3c374a",
36
+ "attack-pattern--9996317e-313b-456c-8bc8-491dbb53b368",
37
+ "attack-pattern--aea87f07-9619-4bc5-9790-01bf3423c494"
38
+ ],
39
+ "x_capec_status": "Draft",
40
+ "x_capec_version": "3.9"
41
+ }
42
+ ],
43
+ "spec_version": "2.0",
44
+ "type": "bundle"
45
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--00d91a4c-2645-4bf1-8db7-e7448ef25f17.json ADDED
@@ -0,0 +1,77 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--da81b06e-418a-4798-97f9-f4c8cb5d3327",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack relies on the adversary using unexpected formats for representing IP addresses. Networked applications may expect network location information in a specific format, such as fully qualified domains names (FQDNs), URL, IP address, or IP Address ranges. If the location information is not validated against a variety of different possible encodings and formats, the adversary can use an alternate format to bypass application access control.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-4",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/4.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-291",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/291.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-173",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/173.html"
23
+ },
24
+ {
25
+ "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley",
26
+ "external_id": "REF-1",
27
+ "source_name": "reference_from_CAPEC"
28
+ }
29
+ ],
30
+ "id": "attack-pattern--00d91a4c-2645-4bf1-8db7-e7448ef25f17",
31
+ "modified": "2022-02-22T00:00:00.000Z",
32
+ "name": "Using Alternative IP Address Encodings",
33
+ "object_marking_refs": [
34
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
35
+ ],
36
+ "type": "attack-pattern",
37
+ "x_capec_abstraction": "Detailed",
38
+ "x_capec_child_of_refs": [
39
+ "attack-pattern--a1af7c24-25cb-46e5-a27b-ed316e1f91ce"
40
+ ],
41
+ "x_capec_consequences": {
42
+ "Access_Control": [
43
+ "Gain Privileges"
44
+ ],
45
+ "Authorization": [
46
+ "Gain Privileges"
47
+ ],
48
+ "Confidentiality": [
49
+ "Gain Privileges"
50
+ ]
51
+ },
52
+ "x_capec_domains": [
53
+ "Software"
54
+ ],
55
+ "x_capec_example_instances": [
56
+ "An adversary identifies an application server that applies a security policy based on the domain and application name. For example, the access control policy covers authentication and authorization for anyone accessing http://example.domain:8080/application. However, by using the IP address of the host instead (http://192.168.0.1:8080/application), the application authentication and authorization controls may be bypassed. The adversary relies on the victim applying policy to the namespace abstraction and not having a default deny policy in place to manage exceptions."
57
+ ],
58
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Survey the application for IP addresses as user input: </b>Using a browser, an automated tool or by inspecting the application, an adversary records all entry points to the application where IP addresses are used.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use a spidering tool to follow and record all links and analyze the web pages to find entry points. Make special note of any links that include parameters in the URL.</td></tr><tr><td>Use a proxy tool to record all user input entry points visited during a manual traversal of the web application.</td></tr><tr><td>Use a browser to manually explore the website and analyze how it is constructed. Many browsers' plugins are available to facilitate the analysis or automate the discovery.</td></tr><tr><td>Manually inspect the application to find entry points.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Probe entry points to locate vulnerabilities: </b>The adversary uses the entry points gathered in the \"Explore\" phase as a target list and attempts alternate IP address encodings, observing application behavior. The adversary will also attempt to access the application through an alternate IP address encoding to see if access control changes</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Instead of using a URL, use the IP address that the URL resolves to</td></tr><tr><td>Specify a port directly to a URL input</td></tr><tr><td>Omit or add \"http://\" or \"https://\" to a URL to see if the application behaves differently</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Bypass access control: </b>Using an alternate IP address encoding, the adversary will either access the application or give the alternate encoding as input, bypassing access control restrictions.</p></li></ol></div>",
59
+ "x_capec_likelihood_of_attack": "Medium",
60
+ "x_capec_prerequisites": [
61
+ "The target software must fail to anticipate all of the possible valid encodings of an IP/web address.",
62
+ "The adversary must have the ability to communicate with the server."
63
+ ],
64
+ "x_capec_resources_required": [
65
+ "The adversary needs to have knowledge of an alternative IP address encoding that bypasses the access control policy of an application. Alternatively, the adversary can simply try to brute-force various encoding possibilities."
66
+ ],
67
+ "x_capec_skills_required": {
68
+ "Low": "The adversary has only to try IP address format combinations."
69
+ },
70
+ "x_capec_status": "Draft",
71
+ "x_capec_typical_severity": "High",
72
+ "x_capec_version": "3.9"
73
+ }
74
+ ],
75
+ "spec_version": "2.0",
76
+ "type": "bundle"
77
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0123fa83-2d47-4398-85f1-30ce114abb9a.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--fe6f08e4-c5b7-46a8-bcba-74e070e9a67f",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker uses deceptive methods to cause a user or an automated process to download and install dangerous code that originates from an attacker controlled source. There are several variations to this strategy of attack.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-185",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/185.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-494",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/494.html"
18
+ }
19
+ ],
20
+ "id": "attack-pattern--0123fa83-2d47-4398-85f1-30ce114abb9a",
21
+ "modified": "2022-09-29T00:00:00.000Z",
22
+ "name": "Malicious Software Download",
23
+ "object_marking_refs": [
24
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
25
+ ],
26
+ "type": "attack-pattern",
27
+ "x_capec_abstraction": "Standard",
28
+ "x_capec_can_follow_refs": [
29
+ "attack-pattern--d16af13f-5e0f-4a6b-bc1f-23f733d2229b"
30
+ ],
31
+ "x_capec_can_precede_refs": [
32
+ "attack-pattern--558870ad-9433-4e39-a0b0-d9b5c4691862"
33
+ ],
34
+ "x_capec_child_of_refs": [
35
+ "attack-pattern--582f33d6-0aa7-4f34-a91e-d767a65adad1"
36
+ ],
37
+ "x_capec_domains": [
38
+ "Software"
39
+ ],
40
+ "x_capec_status": "Draft",
41
+ "x_capec_typical_severity": "Very High",
42
+ "x_capec_version": "3.9"
43
+ }
44
+ ],
45
+ "spec_version": "2.0",
46
+ "type": "bundle"
47
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--012db73f-2f3c-49f3-bdf3-12ec3eee01ce.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--0a37fa8f-a546-401d-abbe-86fb154ca01e",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker manipulates an existing credential in order to gain access to a target application. Session credentials allow users to identify themselves to a service after an initial authentication without needing to resend the authentication information (usually a username and password) with every message. An attacker may be able to manipulate a credential sniffed from an existing connection in order to gain access to a target server.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-226",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/226.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-565",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/565.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-472",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/472.html"
23
+ }
24
+ ],
25
+ "id": "attack-pattern--012db73f-2f3c-49f3-bdf3-12ec3eee01ce",
26
+ "modified": "2022-02-22T00:00:00.000Z",
27
+ "name": "Session Credential Falsification through Manipulation",
28
+ "object_marking_refs": [
29
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
30
+ ],
31
+ "type": "attack-pattern",
32
+ "x_capec_abstraction": "Detailed",
33
+ "x_capec_child_of_refs": [
34
+ "attack-pattern--414d0884-4f46-4a51-b4ea-72125c7f5f9e"
35
+ ],
36
+ "x_capec_domains": [
37
+ "Software"
38
+ ],
39
+ "x_capec_extended_description": "\n <xhtml:p>For example, a credential in the form of a web cookie might have a field that indicates the access rights of a user. By manually tweaking this cookie, a user might be able to increase their access rights to the server. Alternately an attacker may be able to manipulate an existing credential to appear as a different user. This attack differs from falsification through prediction in that the user bases their modified credentials off existing credentials instead of using patterns detected in prior credentials to create a new credential that is accepted because it fits the pattern. As a result, an attacker may be able to impersonate other users or elevate their permissions to a targeted service.</xhtml:p>\n ",
40
+ "x_capec_prerequisites": [
41
+ "The targeted application must use session credentials to identify legitimate users."
42
+ ],
43
+ "x_capec_resources_required": [
44
+ "An attacker will need tools to sniff existing credentials (possibly their own) in order to retrieve a base credential for modification. They will need to understand how the components of the credential affect server behavior and how to manipulate this behavior by changing the credential. Finally, they will need tools to allow them to craft and transmit a modified credential."
45
+ ],
46
+ "x_capec_status": "Draft",
47
+ "x_capec_typical_severity": "Medium",
48
+ "x_capec_version": "3.9"
49
+ }
50
+ ],
51
+ "spec_version": "2.0",
52
+ "type": "bundle"
53
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--014e5fc2-7564-4775-94aa-220601522b05.json ADDED
@@ -0,0 +1,47 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--ec12a87d-bd00-4882-b543-f429cf18fae4",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker removes or modifies the logic on a client associated with monetary calculations resulting in incorrect information being sent to the server. A server may rely on a client to correctly compute monetary information. For example, a server might supply a price for an item and then rely on the client to correctly compute the total cost of a purchase given the number of items the user is buying. If the attacker can remove or modify the logic that controls these calculations, they can return incorrect values to the server. The attacker can use this to make purchases for a fraction of the legitimate cost or otherwise avoid correct billing for activities.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-208",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/208.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-602",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/602.html"
18
+ }
19
+ ],
20
+ "id": "attack-pattern--014e5fc2-7564-4775-94aa-220601522b05",
21
+ "modified": "2017-08-04T00:00:00.000Z",
22
+ "name": "Removing/short-circuiting 'Purse' logic: removing/mutating 'cash' decrements",
23
+ "object_marking_refs": [
24
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
25
+ ],
26
+ "type": "attack-pattern",
27
+ "x_capec_abstraction": "Detailed",
28
+ "x_capec_child_of_refs": [
29
+ "attack-pattern--3c404955-b160-423f-b148-d4fa4727e3a9"
30
+ ],
31
+ "x_capec_domains": [
32
+ "Software"
33
+ ],
34
+ "x_capec_prerequisites": [
35
+ "The targeted server must rely on the client to correctly perform monetary calculations and must fail to detect errors in these calculations."
36
+ ],
37
+ "x_capec_resources_required": [
38
+ "The attacker must have access to the client for the targeted service (this step is trivial for most web-based services). The attacker must also be able to reverse engineer the client in order to locate and modify the client's purse logic. Reverse engineering tools would be necessary for this."
39
+ ],
40
+ "x_capec_status": "Draft",
41
+ "x_capec_typical_severity": "Medium",
42
+ "x_capec_version": "3.9"
43
+ }
44
+ ],
45
+ "spec_version": "2.0",
46
+ "type": "bundle"
47
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0184fd4d-9134-42c0-b073-5e614773d408.json ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--1769491d-4eb9-4e12-9f8c-3d73dabca10d",
3
+ "objects": [
4
+ {
5
+ "created": "2017-02-01T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack pattern combines malicious Javascript and a legitimate webpage loaded into a concealed iframe. The malicious Javascript is then able to interact with a legitimate webpage in a manner that is unknown to the user. This attack usually leverages some element of social engineering in that an attacker must convinces a user to visit a web page that the attacker controls.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-587",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/587.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-1021",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/1021.html"
18
+ },
19
+ {
20
+ "description": "Cross Frame Scripting",
21
+ "source_name": "OWASP Attacks",
22
+ "url": "https://owasp.org/www-community/attacks/Cross_Frame_Scripting"
23
+ },
24
+ {
25
+ "description": "Cross Frame Scripting, 2016, OWASP",
26
+ "external_id": "REF-469",
27
+ "source_name": "reference_from_CAPEC",
28
+ "url": "https://www.owasp.org/index.php/Cross_Frame_Scripting"
29
+ },
30
+ {
31
+ "description": "Gustave Rydstedt, Elie Bursztein, Dan Boneh, and Collin Jackson, Busting Frame Busting: a Study of Clickjacking Vulnerabilities on Popular Sites, 2010--07---20",
32
+ "external_id": "REF-470",
33
+ "source_name": "reference_from_CAPEC",
34
+ "url": "https://seclab.stanford.edu/websec/framebusting/framebust.pdf"
35
+ }
36
+ ],
37
+ "id": "attack-pattern--0184fd4d-9134-42c0-b073-5e614773d408",
38
+ "modified": "2023-01-24T00:00:00.000Z",
39
+ "name": "Cross Frame Scripting (XFS)",
40
+ "object_marking_refs": [
41
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
42
+ ],
43
+ "type": "attack-pattern",
44
+ "x_capec_abstraction": "Detailed",
45
+ "x_capec_child_of_refs": [
46
+ "attack-pattern--ec41b2b3-a3b6-4af0-be65-69e82907dfef"
47
+ ],
48
+ "x_capec_consequences": {
49
+ "Confidentiality": [
50
+ "Read Data (Cross Frame Scripting allows an adversary to steal sensitive data from a legitimate site.)"
51
+ ]
52
+ },
53
+ "x_capec_domains": [
54
+ "Social Engineering",
55
+ "Software"
56
+ ],
57
+ "x_capec_example_instances": [
58
+ "An adversary-controlled webpage contains malicious Javascript and a concealed iframe containing a legitimate website login (i.e., the concealed iframe would make it appear as though the actual legitimate website was loaded). When the user interacts with the legitimate website in the iframe, the malicious Javascript collects that sensitive information."
59
+ ],
60
+ "x_capec_prerequisites": [
61
+ "The user's browser must have vulnerabilities in its implementation of the same-origin policy. It allows certain data in a loaded page to originate from different servers/domains."
62
+ ],
63
+ "x_capec_status": "Draft",
64
+ "x_capec_typical_severity": "High",
65
+ "x_capec_version": "3.9"
66
+ }
67
+ ],
68
+ "spec_version": "2.0",
69
+ "type": "bundle"
70
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--01a08342-5c58-4f61-b8e1-997e444b3a59.json ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--a48ef11c-e5a4-47c1-a10f-ec909efbc56b",
3
+ "objects": [
4
+ {
5
+ "created": "2022-09-29T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary may exploit vulnerable code (i.e., firmware or ROM) that is unpatchable. Unpatchable devices exist due to manufacturers intentionally or inadvertently designing devices incapable of updating their software. Additionally, with updatable devices, the manufacturer may decide not to support the device and stop making updates to their software.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-682",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/682.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-1277",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/1277.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-1310",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/1310.html"
23
+ },
24
+ {
25
+ "description": "Alex Scroxton, Alarm bells ring, the IoT is listening, 2019--12---13, TechTarget",
26
+ "external_id": "REF-723",
27
+ "source_name": "reference_from_CAPEC",
28
+ "url": "https://www.computerweekly.com/news/252475324/Alarm-bells-ring-the-IoT-is-listening"
29
+ },
30
+ {
31
+ "description": "Matthew Hughes, Bad news: KeyWe Smart Lock is easily bypassed and can't be fixed, 2019--12---11, Situation Publishing",
32
+ "external_id": "REF-724",
33
+ "source_name": "reference_from_CAPEC",
34
+ "url": "https://www.theregister.com/2019/12/11/f_secure_keywe/"
35
+ },
36
+ {
37
+ "description": "Brian Krebs, Zyxel Flaw Powers New Mirai IoT Botnet Strain, 2020--03---20, Krebs on Security",
38
+ "external_id": "REF-725",
39
+ "source_name": "reference_from_CAPEC",
40
+ "url": "https://krebsonsecurity.com/2020/03/zxyel-flaw-powers-new-mirai-iot-botnet-strain/"
41
+ },
42
+ {
43
+ "description": "Colin Schulz, Stefan Raff, Sebastian Kortmann, Nikolaus Obwegeser, Digital Age Organizations: Uncovering Over-the-Air Updates in the Smart Product Realm, 2021--12, International Conference on Information Systems (ICIS) 2021",
44
+ "external_id": "REF-726",
45
+ "source_name": "reference_from_CAPEC",
46
+ "url": "https://www.researchgate.net/publication/356065917_Digital_Age_Organizations_Uncovering_Over-the-Air_Updates_in_the_Smart_Product_Realm"
47
+ }
48
+ ],
49
+ "id": "attack-pattern--01a08342-5c58-4f61-b8e1-997e444b3a59",
50
+ "modified": "2022-09-29T00:00:00.000Z",
51
+ "name": "Exploitation of Firmware or ROM Code with Unpatchable Vulnerabilities",
52
+ "object_marking_refs": [
53
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
54
+ ],
55
+ "type": "attack-pattern",
56
+ "x_capec_abstraction": "Standard",
57
+ "x_capec_child_of_refs": [
58
+ "attack-pattern--c727c058-2c9d-4021-a1ec-81dd030dea59"
59
+ ],
60
+ "x_capec_consequences": {
61
+ "Access_Control": [
62
+ "Gain Privileges"
63
+ ],
64
+ "Authorization": [
65
+ "Gain Privileges"
66
+ ],
67
+ "Confidentiality": [
68
+ "Read Data"
69
+ ],
70
+ "Integrity": [
71
+ "Modify Data"
72
+ ]
73
+ },
74
+ "x_capec_domains": [
75
+ "Software",
76
+ "Hardware"
77
+ ],
78
+ "x_capec_example_instances": [
79
+ "\n <xhtml:p>An IoT company comes out with a line of smart products for home use such as home cameras, vacuums, and smart bulbs. The products become popular, and millions of consumers install these devices in their homes. All the devices use a custom module for encryption that is stored on a ROM chip, which is immutable memory and can't be changed. An adversary discovers that there is a vulnerability in the encryption module code that allows authentication bypass, gaining access to any device. The adversary then develops botnet code that is remotely downloaded onto the infected devices. This code scans the internet for nearby devices from the same product line and exploits the vulnerability, loading the botnet code onto these new devices. Over time, the adversary now has a botnet of devices that can carry out malicious activity such as a DDoS attacks. Once the vulnerability is found, it is impossible to remediate because the vulnerable code is unable to be updated.</xhtml:p>\n ",
80
+ "\n <xhtml:p>Older smartphones can become out of date and manufacturers may stop putting out security updates as they focus on newer models. If an adversary discovers a vulnerability in an old smartphone there is a chance that a security update will not be made to mitigate it. This leaves anyone using the old smartphone vulnerable.</xhtml:p>\n "
81
+ ],
82
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Determine vulnerable firmware or ROM code: </b>An adversary will attempt to find device models that are known to have unpatchable firmware or ROM code, or are deemed “end-of-support” where a patch will not be made. The adversary looks for vulnerabilities in firmware or ROM code for the identified devices, or looks for devices which have known vulnerabilities</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Many botnets use wireless scanning to discover nearby devices that might have default credentials or commonly used passwords. Once these devices are infected, they can search for other nearby devices and so on.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Determine plan of attack: </b>An adversary identifies a specific device/model that they wish to attack. They will also investigate similar devices to determine if the vulnerable firmware or ROM code is also present.</p></li></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Carry out attack: </b>An adversary exploits the vulnerable firmware or ROM code on the identified device(s) to achieve their desired goal.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Install malware on a device to recruit it for a botnet.</td></tr><tr><td>Install malware on the device and use it for a ransomware attack.</td></tr><tr><td>Gain root access and steal information stored on the device.</td></tr><tr><td>Manipulate the device to behave in unexpected ways which would benefit the adversary.</td></tr></tbody></table></ol></div>",
83
+ "x_capec_extended_description": "When a vulnerability is found in a device that has no means of patching, the attack may be used against an entire class of devices. Devices from the same manufacturer often use similar or identical firmware, which could lead to widespread attacks. Devices of this nature are prime targets for botnet attacks. Consumer devices are frequently targeted for this attack due to the complexities of updating firmware once manufacturers no longer have physical access to a device. When exploiting a found vulnerability, adversaries often try to gain root access on a device. This allows them to use the device for any malicious purpose. Some example exploits are stealing device data, using the device for a ransomware attack, or recruiting the device for a botnet.",
84
+ "x_capec_likelihood_of_attack": "Medium",
85
+ "x_capec_prerequisites": [
86
+ "Awareness of the hardware being leveraged.",
87
+ "Access to the hardware being leveraged, either physically or remotely."
88
+ ],
89
+ "x_capec_skills_required": {
90
+ "High": "Ability to identify physical entry points such as debug interfaces if the device is not being accessed remotely",
91
+ "Medium": "Knowledge of various wireless protocols to enable remote access to vulnerable devices"
92
+ },
93
+ "x_capec_status": "Draft",
94
+ "x_capec_typical_severity": "High",
95
+ "x_capec_version": "3.9"
96
+ }
97
+ ],
98
+ "spec_version": "2.0",
99
+ "type": "bundle"
100
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--02570621-96aa-4525-b782-8e3939affac3.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--fab6fa4f-6c5e-4e4a-ad4b-d3c31a9390a9",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker implants malicious software into the system in the supply chain distribution channel, with purpose of causing malicious disruption or allowing for additional compromise when the system is deployed.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-523",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/523.html"
13
+ },
14
+ {
15
+ "description": "Supply Chain Compromise: Compromise Software Supply Chain",
16
+ "external_id": "T1195.002",
17
+ "source_name": "ATTACK",
18
+ "url": "https://attack.mitre.org/wiki/Technique/T1195/002"
19
+ },
20
+ {
21
+ "description": "John F. Miller, Supply Chain Attack Framework and Attack Patterns, 2013, The MITRE Corporation",
22
+ "external_id": "REF-439",
23
+ "source_name": "reference_from_CAPEC",
24
+ "url": "http://www.mitre.org/sites/default/files/publications/supply-chain-attack-framework-14-0228.pdf"
25
+ },
26
+ {
27
+ "description": "Daniel Simpson, Dani Halfin, Andrews Mariano Gorzelany, Beth Woodbury, Supply chain attacks, 2021--10---28, Microsoft",
28
+ "external_id": "REF-716",
29
+ "source_name": "reference_from_CAPEC",
30
+ "url": "https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/supply-chain-malware"
31
+ }
32
+ ],
33
+ "id": "attack-pattern--02570621-96aa-4525-b782-8e3939affac3",
34
+ "modified": "2022-09-29T00:00:00.000Z",
35
+ "name": "Malicious Software Implanted",
36
+ "object_marking_refs": [
37
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
38
+ ],
39
+ "type": "attack-pattern",
40
+ "x_capec_abstraction": "Standard",
41
+ "x_capec_child_of_refs": [
42
+ "attack-pattern--59ba3504-6764-48b4-980a-40e4adff2030"
43
+ ],
44
+ "x_capec_domains": [
45
+ "Supply Chain"
46
+ ],
47
+ "x_capec_example_instances": [
48
+ "An attacker has created a piece of malicious software designed to function as a backdoor in a system that is to be deployed at the victim location. During shipment of the system, the attacker has physical access to the system at a loading dock of an integrator for a short time. The attacker unpacks and powers up the system and installs the malicious piece of software, and configures it to run upon system boot. The system is repackaged and returned to its place on the loading dock, and is shipped and installed at the victim location with the malicious software in place, allowing the attacker to bypass firewalls and remotely gain access to the victim's network for further malicious activities."
49
+ ],
50
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Determine Entry Point: </b>The adversary must first identify a system that they wish to target and search for an entry point they can use to install the malicious software. This could be a system which they have prior knowledge of, giving them insight into the software and environment.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use a JTAGulator to identify exposed JTAG and UART interfaces in smaller embedded systems.</td></tr><tr><td>Identify exposed USB connectors that could be used to load software.</td></tr></tbody></table><li> <p> <b>Discover Vulnerability in Supply Chain: </b>The adversary maps out the supply chain for the targeted system. They look for ooportunities to gain physical access to the system after it has left the manufacturer, but before it is deployed to the victim.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Procure a system and observe the steps it takes in the shipment process.</td></tr><tr><td>Identify possible warehouses that systems are stored after manufacturing.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Test Malicious Software: </b>Before performing the attack in the wild, an adversary will test the attack on a system they have procured to ensure that the desired outcome will be achieved.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Design malicious software that will give an adversary a backdoor into the system once it is deployed to the victim.</td></tr><tr><td>Obtain already designed malicious software that just need to be placed into the system.</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Implant Software in the Supply Chain: </b>Using the vulnerability in the supply chain of the system discovered in the explore phase, the adversary implants the malicious software into the system. This results in the adversary gaining unintended access to systems once they reach the victim and can lead to a variety of follow up attacks.</p></li></ol></div>",
51
+ "x_capec_likelihood_of_attack": "Low",
52
+ "x_capec_prerequisites": [
53
+ "Physical access to the system after it has left the manufacturer but before it is deployed at the victim location."
54
+ ],
55
+ "x_capec_skills_required": {
56
+ "High": "Malicious software creation."
57
+ },
58
+ "x_capec_status": "Draft",
59
+ "x_capec_typical_severity": "High",
60
+ "x_capec_version": "3.9"
61
+ }
62
+ ],
63
+ "spec_version": "2.0",
64
+ "type": "bundle"
65
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--03093798-f245-4ed2-a085-88e69d303b11.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--b8cd0bd1-eed2-47b2-a25b-4a9ca536499c",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack pattern has been deprecated as it is a duplicate of the existing attack pattern \"CAPEC-407 : Social Information Gathering via Pretexting\". Please refer to this other CAPEC going forward.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-411",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/411.html"
13
+ }
14
+ ],
15
+ "id": "attack-pattern--03093798-f245-4ed2-a085-88e69d303b11",
16
+ "modified": "2017-08-04T00:00:00.000Z",
17
+ "name": "DEPRECATED: Pretexting",
18
+ "object_marking_refs": [
19
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
20
+ ],
21
+ "type": "attack-pattern",
22
+ "x_capec_abstraction": "Meta",
23
+ "x_capec_status": "Deprecated",
24
+ "x_capec_version": "3.9"
25
+ }
26
+ ],
27
+ "spec_version": "2.0",
28
+ "type": "bundle"
29
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--03a731ef-751b-43de-9159-9667d4be4d1a.json ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--430ad2b5-d745-4d87-8bc4-aa14b8e2f12d",
3
+ "objects": [
4
+ {
5
+ "created": "2020-07-30T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "\n <xhtml:p>An adversary tries known username/password combinations against different systems, applications, or services to gain additional authenticated access. Credential Stuffing attacks rely upon the fact that many users leverage the same username/password combination for multiple systems, applications, and services.</xhtml:p>\n ",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-600",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/600.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-522",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/522.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-307",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/307.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-308",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/308.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-309",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/309.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-262",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/262.html"
38
+ },
39
+ {
40
+ "external_id": "CWE-263",
41
+ "source_name": "cwe",
42
+ "url": "http://cwe.mitre.org/data/definitions/263.html"
43
+ },
44
+ {
45
+ "external_id": "CWE-654",
46
+ "source_name": "cwe",
47
+ "url": "http://cwe.mitre.org/data/definitions/654.html"
48
+ },
49
+ {
50
+ "description": "Brute Force:Credential Stuffing",
51
+ "external_id": "T1110.004",
52
+ "source_name": "ATTACK",
53
+ "url": "https://attack.mitre.org/wiki/Technique/T1110/004"
54
+ },
55
+ {
56
+ "description": "Credential stuffing",
57
+ "source_name": "OWASP Attacks",
58
+ "url": "https://owasp.org/www-community/attacks/Credential_stuffing"
59
+ },
60
+ {
61
+ "description": "Alert (TA18-086A): Brute Force Attacks Conducted by Cyber Actors, 2018--03---27, Cybersecurity and Infrastructure Security Agency (CISA)",
62
+ "external_id": "REF-567",
63
+ "source_name": "reference_from_CAPEC",
64
+ "url": "https://www.us-cert.gov/ncas/alerts/TA18-086A"
65
+ },
66
+ {
67
+ "description": "Credential stuffing, Open Web Application Security Project (OWASP)",
68
+ "external_id": "REF-568",
69
+ "source_name": "reference_from_CAPEC",
70
+ "url": "https://owasp.org/www-community/attacks/Credential_stuffing"
71
+ },
72
+ {
73
+ "description": "Jessica Silver-Greenberg, Matthew Goldstein, Nicole Perlroth, JPMorgan Chase Hacking Affects 76 Million Households, 2014--10---02, The New York Times",
74
+ "external_id": "REF-569",
75
+ "source_name": "reference_from_CAPEC",
76
+ "url": "https://dealbook.nytimes.com/2014/10/02/jpmorgan-discovers-further-cyber-security-issues/"
77
+ }
78
+ ],
79
+ "id": "attack-pattern--03a731ef-751b-43de-9159-9667d4be4d1a",
80
+ "modified": "2022-09-29T00:00:00.000Z",
81
+ "name": "Credential Stuffing",
82
+ "object_marking_refs": [
83
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
84
+ ],
85
+ "type": "attack-pattern",
86
+ "x_capec_abstraction": "Standard",
87
+ "x_capec_can_follow_refs": [
88
+ "attack-pattern--4e7abad3-5853-4e4b-a64e-7f23f10f8656",
89
+ "attack-pattern--a9dc4914-409a-4f71-80df-c5cc3923d112",
90
+ "attack-pattern--8d88a81c-bde9-4fb3-acbe-901c783d6427",
91
+ "attack-pattern--addd93c9-9278-4185-b402-e505d632c815",
92
+ "attack-pattern--a390cb72-b4de-4750-ae05-be556c89f4be",
93
+ "attack-pattern--f724f0f3-20e6-450c-be4a-f373ea08834d",
94
+ "attack-pattern--fab7fb48-4503-4e03-980f-9bc827be929f",
95
+ "attack-pattern--8c7bab16-5ecd-4778-9b04-c185bceed170"
96
+ ],
97
+ "x_capec_can_precede_refs": [
98
+ "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b",
99
+ "attack-pattern--2618d0a4-06d0-4bde-8271-2df61ed8297a"
100
+ ],
101
+ "x_capec_child_of_refs": [
102
+ "attack-pattern--886a7175-e28a-4e6d-bd22-3b1497e31dc7"
103
+ ],
104
+ "x_capec_consequences": {
105
+ "Access_Control": [
106
+ "Gain Privileges"
107
+ ],
108
+ "Authentication": [
109
+ "Gain Privileges"
110
+ ],
111
+ "Authorization": [
112
+ "Read Data"
113
+ ],
114
+ "Confidentiality": [
115
+ "Gain Privileges",
116
+ "Read Data"
117
+ ],
118
+ "Integrity": [
119
+ "Modify Data"
120
+ ]
121
+ },
122
+ "x_capec_domains": [
123
+ "Software"
124
+ ],
125
+ "x_capec_example_instances": [
126
+ "A user leverages the password \"Password123\" for a handful of application logins. An adversary obtains a victim's username/password combination from a breach of a social media application and executes a Credential Stuffing attack against multiple banking and credit card applications. Since the user leverages the same credentials for their bank account login, the adversary successfully authenticates to the user's bank account and transfer money to an offshore account.",
127
+ "In October 2014 J.P. Morgan's Corporate Challenge website was breached, resulting in adversaries obtaining multiple username/password pairs. A Credential Stuffing attack was then executed against J.P. Morgan Chase, which resulted in over 76 million households having their accounts compromised."
128
+ ],
129
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Acquire known credentials: </b>The adversary must obtain known credentials in order to access the target system, application, or service.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>An adversary purchases breached username/password combinations or leaked hashed passwords from the dark web.</td></tr><tr><td>An adversary leverages a key logger or phishing attack to steal user credentials as they are provided.</td></tr><tr><td>An adversary conducts a sniffing attack to steal credentials as they are transmitted.</td></tr><tr><td>An adversary gains access to a database and exfiltrates password hashes.</td></tr><tr><td>An adversary examines outward-facing configuration and properties files to discover hardcoded credentials.</td></tr></tbody></table><li> <p> <b>Determine target's password policy: </b>Determine the password policies of the target system/application to determine if the known credentials fit within the specified criteria.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Determine minimum and maximum allowed password lengths.</td></tr><tr><td>Determine format of allowed passwords (whether they are required or allowed to contain numbers, special characters, etc., or whether they are allowed to contain words from the dictionary).</td></tr><tr><td>Determine account lockout policy (a strict account lockout policy will prevent brute force attacks if multiple passwords are known for a single user account).</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Attempt authentication: </b>Try each username/password combination until the target grants access.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Manually or automatically enter each username/password combination through the target's interface.</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Impersonate: </b>An adversary can use successful experiments or authentications to impersonate an authorized user or system or to laterally move within a system or application</p></li><li> <p> <b>Spoofing: </b>Malicious data can be injected into the target system or into a victim user's system by an adversary. The adversary can also pose as a legitimate user to perform social engineering attacks.</p></li><li> <p> <b>Data Exfiltration: </b>The adversary can obtain sensitive data contained within the system or application.</p></li></ol></div>",
130
+ "x_capec_extended_description": "\n <xhtml:p>Attacks of this kind often target management services over commonly used ports such as SSH, FTP, Telnet, LDAP, Kerberos, MySQL, and more. Additional targets include Single Sign-On (SSO) or cloud-based applications/services that utilize federated authentication protocols, and externally facing applications.</xhtml:p>\n <xhtml:p>The primary goal of Credential Stuffing is to achieve lateral movement and gain authenticated access to additional systems, applications, and/or services. A successfully executed Credential Stuffing attack could result in the adversary impersonating the victim or executing any action that the victim is authorized to perform.</xhtml:p>\n <xhtml:p>Although not technically a brute force attack, Credential Stuffing attacks can function as such if an adversary possess multiple known passwords for the same user account. This may occur in the event where an adversary obtains user credentials from multiple sources or if the adversary obtains a user's password history for an account.</xhtml:p>\n <xhtml:p>Credential Stuffing attacks are similar to Password Spraying attacks (CAPEC-565) regarding their targets and their overall goals. However, Password Spraying attacks do not have any insight into known username/password combinations and instead leverage common or expected passwords. This also means that Password Spraying attacks must avoid inducing account lockouts, which is generally not a worry of Credential Stuffing attacks. Password Spraying attacks may additionally lead to Credential Stuffing attacks, once a successful username/password combination is discovered.</xhtml:p>\n ",
131
+ "x_capec_likelihood_of_attack": "High",
132
+ "x_capec_prerequisites": [
133
+ "The system/application uses one factor password based authentication, SSO, and/or cloud-based authentication.",
134
+ "The system/application does not have a sound password policy that is being enforced.",
135
+ "The system/application does not implement an effective password throttling mechanism.",
136
+ "The adversary possesses a list of known user accounts and corresponding passwords that may exist on the target."
137
+ ],
138
+ "x_capec_resources_required": [
139
+ "A machine with sufficient resources for the job (e.g. CPU, RAM, HD).",
140
+ "A known list of username/password combinations.",
141
+ "A custom script that leverages the credential list to launch the attack."
142
+ ],
143
+ "x_capec_skills_required": {
144
+ "Low": "A Credential Stuffing attack is very straightforward."
145
+ },
146
+ "x_capec_status": "Stable",
147
+ "x_capec_typical_severity": "High",
148
+ "x_capec_version": "3.9"
149
+ }
150
+ ],
151
+ "spec_version": "2.0",
152
+ "type": "bundle"
153
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--056a463d-6303-438e-a43f-992cee52fb95.json ADDED
@@ -0,0 +1,139 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--88f28930-9fa6-42d1-9bd4-aa7b8d8527a9",
3
+ "objects": [
4
+ {
5
+ "created": "2018-07-31T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary obtains (i.e. steals or purchases) legitimate Windows domain credential hash values to access systems within the domain that leverage the Lan Man (LM) and/or NT Lan Man (NTLM) authentication protocols.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-644",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/644.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-522",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/522.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-836",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/836.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-308",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/308.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-294",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/294.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-308",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/308.html"
38
+ },
39
+ {
40
+ "description": "Use Alternate Authentication Material:Pass The Hash",
41
+ "external_id": "T1550.002",
42
+ "source_name": "ATTACK",
43
+ "url": "https://attack.mitre.org/wiki/Technique/T1550/002"
44
+ },
45
+ {
46
+ "description": "Dan Goodin, Attackers can use Zoom to steal users’ Windows credentials with no warning, 2020--04---01, Ars Technica",
47
+ "external_id": "REF-575",
48
+ "source_name": "reference_from_CAPEC",
49
+ "url": "https://arstechnica.com/information-technology/2020/04/unpatched-zoom-bug-lets-attackers-steal-windows-credentials-with-no-warning/"
50
+ },
51
+ {
52
+ "description": "Mor Levi, Assaf Dahan, Amit Serper, Operation Soft Cell: A Worldwide Campaign Against Telecommunications Providers, 2019--06---25, CyberReason",
53
+ "external_id": "REF-580",
54
+ "source_name": "reference_from_CAPEC",
55
+ "url": "https://www.cybereason.com/blog/operation-soft-cell-a-worldwide-campaign-against-telecommunications-providers"
56
+ },
57
+ {
58
+ "description": "Mitigating Pass-the-Hash and Other Credential Theft v2, Microsoft Corporation",
59
+ "external_id": "REF-581",
60
+ "source_name": "reference_from_CAPEC",
61
+ "url": "https://docs.microsoft.com/en-us/previous-versions/dn785092(v=msdn.10)?redirectedfrom=MSDN"
62
+ },
63
+ {
64
+ "description": "How Pass-the-Hash works, Microsoft Corporation",
65
+ "external_id": "REF-582",
66
+ "source_name": "reference_from_CAPEC",
67
+ "url": "https://docs.microsoft.com/en-us/previous-versions/dn785092(v=msdn.10)?redirectedfrom=MSDN"
68
+ },
69
+ {
70
+ "description": "Bashar Ewaida, Pass-the-hash attacks: Tools and Mitigation, 2010--02---23, The SANS Institute",
71
+ "external_id": "REF-583",
72
+ "source_name": "reference_from_CAPEC",
73
+ "url": "https://www.sans.org/reading-room/whitepapers/testing/paper/33283"
74
+ }
75
+ ],
76
+ "id": "attack-pattern--056a463d-6303-438e-a43f-992cee52fb95",
77
+ "modified": "2022-09-29T00:00:00.000Z",
78
+ "name": "Use of Captured Hashes (Pass The Hash)",
79
+ "object_marking_refs": [
80
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
81
+ ],
82
+ "type": "attack-pattern",
83
+ "x_capec_abstraction": "Detailed",
84
+ "x_capec_can_precede_refs": [
85
+ "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b",
86
+ "attack-pattern--f8533ce1-5f23-4660-8f70-1a05af2c70d3",
87
+ "attack-pattern--2c74d7f3-ccb4-4aea-b7fc-8a4da900ec80",
88
+ "attack-pattern--191fbdab-d3b3-4ffd-8829-51331c20eaa7"
89
+ ],
90
+ "x_capec_child_of_refs": [
91
+ "attack-pattern--2618d0a4-06d0-4bde-8271-2df61ed8297a"
92
+ ],
93
+ "x_capec_consequences": {
94
+ "Access_Control": [
95
+ "Gain Privileges"
96
+ ],
97
+ "Authentication": [
98
+ "Gain Privileges"
99
+ ],
100
+ "Authorization": [
101
+ "Read Data"
102
+ ],
103
+ "Confidentiality": [
104
+ "Gain Privileges",
105
+ "Read Data"
106
+ ],
107
+ "Integrity": [
108
+ "Modify Data"
109
+ ]
110
+ },
111
+ "x_capec_domains": [
112
+ "Software"
113
+ ],
114
+ "x_capec_example_instances": [
115
+ "Adversaries exploited the Zoom video conferencing application during the 2020 COVID-19 pandemic to exfiltrate Windows domain credential hash value pairs from a target system. The attack entailed sending Universal Naming Convention (UNC) paths within the Zoom chat window of an unprotected Zoom call. If the victim clicked on the link, their Windows usernames and the corresponding Net-NTLM-v2 hashes were sent to the address contained in the link. The adversary was then able to infiltrate and laterally move within the Windows domain by passing the acquired credentials to shared network resources. This further provided adversaries with access to Outlook servers and network storage devices. [REF-575]",
116
+ "Operation Soft Cell, which has been underway since at least 2012, leveraged a modified Mimikatz that dumped NTLM hashes. The acquired hashes were then used to authenticate to other systems within the network via Pass The Hash attacks. [REF-580]"
117
+ ],
118
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Acquire known Windows credential hash value pairs: </b>The adversary must obtain known Windows credential hash value pairs of accounts that exist on the domain.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>An adversary purchases breached Windows credential hash value pairs from the dark web.</td></tr><tr><td>An adversary conducts a sniffing attack to steal Windows credential hash value pairs as they are transmitted.</td></tr><tr><td>An adversary gains access to a Windows domain system/files and exfiltrates Windows credential hash value pairs.</td></tr><tr><td>An adversary examines outward-facing configuration and properties files to discover hardcoded Windows credential hash value pairs.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Attempt domain authentication: </b>Try each Windows credential hash value pair until the target grants access.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Manually or automatically enter each Windows credential hash value pair through the target's interface.</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Impersonate: </b>An adversary can use successful experiments or authentications to impersonate an authorized user or system, or to laterally move within the domain</p></li><li> <p> <b>Spoofing: </b>Malicious data can be injected into the target system or into other systems on the domain. The adversary can also pose as a legitimate domain user to perform social engineering attacks.</p></li><li> <p> <b>Data Exfiltration: </b>The adversary can obtain sensitive data contained within domain systems or applications.</p></li></ol></div>",
119
+ "x_capec_extended_description": "\n <xhtml:p>When authenticating via LM or NTLM, an authenticating account's plaintext credentials are not required by the protocols for successful authentication. Instead, the hashed credentials are used to determine if an authentication attempt is valid. If an adversary can obtain an account's hashed credentials, the hash values can then be passed to a system or service to authenticate, without needing to brute-force the hashes to obtain their cleartext values. Successful Pass The Hash attacks result in the adversary fully authenticating as the targeted account, which can further allow the adversary to laterally move within the network, impersonate a legitimate user, and/or download/install malware to systems within the domain. This technique can be performed against any operating system that leverages the LM or NTLM protocols even if the operating system is not Windows-based, since these systems/accounts may still authenticate to a Windows domain.</xhtml:p>\n ",
120
+ "x_capec_likelihood_of_attack": "Medium",
121
+ "x_capec_prerequisites": [
122
+ "The system/application is connected to the Windows domain.",
123
+ "The system/application leverages the Lan Man (LM) and/or NT Lan Man (NTLM) authentication protocols.",
124
+ "The adversary possesses known Windows credential hash value pairs that exist on the target domain."
125
+ ],
126
+ "x_capec_resources_required": [
127
+ "A list of known Window credential hash value pairs for the targeted domain."
128
+ ],
129
+ "x_capec_skills_required": {
130
+ "Low": "Once an adversary obtains a known Windows credential hash value pair, leveraging it is trivial."
131
+ },
132
+ "x_capec_status": "Stable",
133
+ "x_capec_typical_severity": "High",
134
+ "x_capec_version": "3.9"
135
+ }
136
+ ],
137
+ "spec_version": "2.0",
138
+ "type": "bundle"
139
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--05740120-81ef-4224-9805-2f0b54d1111f.json ADDED
@@ -0,0 +1,83 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--ac9e8470-4635-4e2b-b6ed-f46e5ee678c1",
3
+ "objects": [
4
+ {
5
+ "created": "2018-07-31T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary uses stolen Kerberos tickets to access systems/resources that leverage the Kerberos authentication protocol. The Kerberos authentication protocol centers around a ticketing system which is used to request/grant access to services and to then access the requested services. An adversary can obtain any one of these tickets (e.g. Service Ticket, Ticket Granting Ticket, Silver Ticket, or Golden Ticket) to authenticate to a system/resource without needing the account's credentials. Depending on the ticket obtained, the adversary may be able to access a particular resource or generate TGTs for any account within an Active Directory Domain.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-645",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/645.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-522",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/522.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-294",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/294.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-308",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/308.html"
28
+ },
29
+ {
30
+ "description": "Use Alternate Authentication Material:Pass The Ticket",
31
+ "external_id": "T1550.003",
32
+ "source_name": "ATTACK",
33
+ "url": "https://attack.mitre.org/wiki/Technique/T1550/003"
34
+ },
35
+ {
36
+ "description": "BRONZE BUTLER Targets Japanese Enterprises, 2017--10---12, Secureworks® Counter Threat Unit™ Threat Intelligence",
37
+ "external_id": "REF-584",
38
+ "source_name": "reference_from_CAPEC",
39
+ "url": "https://www.secureworks.com/research/bronze-butler-targets-japanese-businesses"
40
+ }
41
+ ],
42
+ "id": "attack-pattern--05740120-81ef-4224-9805-2f0b54d1111f",
43
+ "modified": "2020-07-30T00:00:00.000Z",
44
+ "name": "Use of Captured Tickets (Pass The Ticket)",
45
+ "object_marking_refs": [
46
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
47
+ ],
48
+ "type": "attack-pattern",
49
+ "x_capec_abstraction": "Detailed",
50
+ "x_capec_can_precede_refs": [
51
+ "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b"
52
+ ],
53
+ "x_capec_child_of_refs": [
54
+ "attack-pattern--755bb5ac-2eee-4e54-9864-92812666120c"
55
+ ],
56
+ "x_capec_consequences": {
57
+ "Integrity": [
58
+ "Gain Privileges"
59
+ ]
60
+ },
61
+ "x_capec_domains": [
62
+ "Software"
63
+ ],
64
+ "x_capec_example_instances": [
65
+ "Bronze Butler (also known as Tick), has been shown to leverage forged Kerberos Ticket Granting Tickets (TGTs) and Ticket Granting Service (TGS) tickets to maintain administrative access on a number of systems. [REF-584]"
66
+ ],
67
+ "x_capec_likelihood_of_attack": "Low",
68
+ "x_capec_prerequisites": [
69
+ "The adversary needs physical access to the victim system.",
70
+ "The use of a third-party credential harvesting tool."
71
+ ],
72
+ "x_capec_skills_required": {
73
+ "High": "The adversary uses a third-party tool to obtain the necessary tickets to execute the attack.",
74
+ "Low": "Determine if Kerberos authentication is used on the server."
75
+ },
76
+ "x_capec_status": "Stable",
77
+ "x_capec_typical_severity": "High",
78
+ "x_capec_version": "3.9"
79
+ }
80
+ ],
81
+ "spec_version": "2.0",
82
+ "type": "bundle"
83
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0618a68a-c6e1-4370-82d3-c76fa2745905.json ADDED
@@ -0,0 +1,42 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--da039cb2-0553-4b45-b243-bbbcef385587",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-435",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/435.html"
13
+ },
14
+ {
15
+ "description": "The Official Social Engineering Portal, Social-Engineer.org, Tick Tock Computers, LLC",
16
+ "external_id": "REF-348",
17
+ "source_name": "reference_from_CAPEC",
18
+ "url": "http://www.social-engineer.org"
19
+ }
20
+ ],
21
+ "id": "attack-pattern--0618a68a-c6e1-4370-82d3-c76fa2745905",
22
+ "modified": "2014-06-23T00:00:00.000Z",
23
+ "name": "Target Influence via Instant Rapport",
24
+ "object_marking_refs": [
25
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
26
+ ],
27
+ "type": "attack-pattern",
28
+ "x_capec_abstraction": "Detailed",
29
+ "x_capec_child_of_refs": [
30
+ "attack-pattern--9e487767-c1e6-45f9-ae01-1fb1e2d6f030"
31
+ ],
32
+ "x_capec_domains": [
33
+ "Social Engineering"
34
+ ],
35
+ "x_capec_status": "Draft",
36
+ "x_capec_typical_severity": "Low",
37
+ "x_capec_version": "3.9"
38
+ }
39
+ ],
40
+ "spec_version": "2.0",
41
+ "type": "bundle"
42
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--06e8782a-87af-4863-b6b1-99e09edda3be.json ADDED
@@ -0,0 +1,96 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--166a8c6c-2412-4410-bede-9eea8069da67",
3
+ "objects": [
4
+ {
5
+ "created": "2015-11-09T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This pattern of attack involves an adversary that uses stolen credentials to leverage remote services such as RDP, telnet, SSH, and VNC to log into a system. Once access is gained, any number of malicious activities could be performed.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-555",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/555.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-522",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/522.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-308",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/308.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-309",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/309.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-294",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/294.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-263",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/263.html"
38
+ },
39
+ {
40
+ "external_id": "CWE-262",
41
+ "source_name": "cwe",
42
+ "url": "http://cwe.mitre.org/data/definitions/262.html"
43
+ },
44
+ {
45
+ "external_id": "CWE-521",
46
+ "source_name": "cwe",
47
+ "url": "http://cwe.mitre.org/data/definitions/521.html"
48
+ },
49
+ {
50
+ "description": "Remote Services",
51
+ "external_id": "T1021",
52
+ "source_name": "ATTACK",
53
+ "url": "https://attack.mitre.org/wiki/Technique/T1021"
54
+ },
55
+ {
56
+ "description": "Email Collection:Remote Email Collection",
57
+ "external_id": "T1114.002",
58
+ "source_name": "ATTACK",
59
+ "url": "https://attack.mitre.org/wiki/Technique/T1114/002"
60
+ },
61
+ {
62
+ "description": "External Remote Services",
63
+ "external_id": "T1133",
64
+ "source_name": "ATTACK",
65
+ "url": "https://attack.mitre.org/wiki/Technique/T1133"
66
+ }
67
+ ],
68
+ "id": "attack-pattern--06e8782a-87af-4863-b6b1-99e09edda3be",
69
+ "modified": "2022-09-29T00:00:00.000Z",
70
+ "name": "Remote Services with Stolen Credentials",
71
+ "object_marking_refs": [
72
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
73
+ ],
74
+ "type": "attack-pattern",
75
+ "x_capec_abstraction": "Standard",
76
+ "x_capec_can_precede_refs": [
77
+ "attack-pattern--22802ed6-ddc6-4da7-b6be-60b10d26198b"
78
+ ],
79
+ "x_capec_child_of_refs": [
80
+ "attack-pattern--886a7175-e28a-4e6d-bd22-3b1497e31dc7"
81
+ ],
82
+ "x_capec_domains": [
83
+ "Software"
84
+ ],
85
+ "x_capec_example_instances": [
86
+ "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). There are other implementations and third-party tools that provide graphical access Remote Services similar to RDS. Adversaries 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.",
87
+ "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). It may be called with the winrm command or by any number of programs such as PowerShell."
88
+ ],
89
+ "x_capec_status": "Stable",
90
+ "x_capec_typical_severity": "Very High",
91
+ "x_capec_version": "3.9"
92
+ }
93
+ ],
94
+ "spec_version": "2.0",
95
+ "type": "bundle"
96
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--071baf4e-1d72-497e-8ac4-edb513262aca.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--d09b00cd-66be-4092-a8bf-3dd885546af6",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack pattern has been deprecated as it is a duplicate of the existing attack pattern \"CAPEC-13 : Subverting Environment Variable Values\". Please refer to this other CAPEC going forward.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-264",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/264.html"
13
+ }
14
+ ],
15
+ "id": "attack-pattern--071baf4e-1d72-497e-8ac4-edb513262aca",
16
+ "modified": "2017-05-01T00:00:00.000Z",
17
+ "name": "DEPRECATED: Environment Variable Manipulation",
18
+ "object_marking_refs": [
19
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
20
+ ],
21
+ "type": "attack-pattern",
22
+ "x_capec_abstraction": "Meta",
23
+ "x_capec_status": "Deprecated",
24
+ "x_capec_version": "3.9"
25
+ }
26
+ ],
27
+ "spec_version": "2.0",
28
+ "type": "bundle"
29
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--074a7522-162a-4656-8c50-36ce5ee5adc6.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--adb95240-6b88-4395-8777-7e2a6197220d",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary engages in UDP scanning to gather information about UDP port status on the target system. UDP scanning methods involve sending a UDP datagram to the target port and looking for evidence that the port is closed. Open UDP ports usually do not respond to UDP datagrams as there is no stateful mechanism within the protocol that requires building or establishing a session. Responses to UDP datagrams are therefore application specific and cannot be relied upon as a method of detecting an open port. UDP scanning relies heavily upon ICMP diagnostic messages in order to determine the status of a remote port.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-308",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/308.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-200",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/200.html"
18
+ },
19
+ {
20
+ "description": "Stuart McClure, Joel Scambray, George Kurtz, Hacking Exposed: Network Security Secrets & Solutions (6th Edition), 2009, McGraw Hill",
21
+ "external_id": "REF-33",
22
+ "source_name": "reference_from_CAPEC"
23
+ },
24
+ {
25
+ "description": "J. Postel, RFC768 - User Datagram Protocol, 1980--08---28",
26
+ "external_id": "REF-158",
27
+ "source_name": "reference_from_CAPEC",
28
+ "url": "http://www.faqs.org/rfcs/rfc768.html"
29
+ },
30
+ {
31
+ "description": "Gordon \"Fyodor\" Lyon, Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning (3rd \"Zero Day\" Edition,), 2008, Insecure.com LLC, ISBN: 978-0-9799587-1-7",
32
+ "external_id": "REF-34",
33
+ "source_name": "reference_from_CAPEC"
34
+ },
35
+ {
36
+ "description": "Gordon \"Fyodor\" Lyon, The Art of Port Scanning (Volume: 7, Issue. 51), Phrack Magazine, 1997",
37
+ "external_id": "REF-130",
38
+ "source_name": "reference_from_CAPEC",
39
+ "url": "http://phrack.org/issues/51/11.html"
40
+ }
41
+ ],
42
+ "id": "attack-pattern--074a7522-162a-4656-8c50-36ce5ee5adc6",
43
+ "modified": "2022-02-22T00:00:00.000Z",
44
+ "name": "UDP Scan",
45
+ "object_marking_refs": [
46
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
47
+ ],
48
+ "type": "attack-pattern",
49
+ "x_capec_abstraction": "Detailed",
50
+ "x_capec_child_of_refs": [
51
+ "attack-pattern--9ca34308-a8e4-40b6-becd-3ff95bac628a"
52
+ ],
53
+ "x_capec_consequences": {
54
+ "Access_Control": [
55
+ "Bypass Protection Mechanism",
56
+ "Hide Activities"
57
+ ],
58
+ "Authorization": [
59
+ "Bypass Protection Mechanism",
60
+ "Hide Activities"
61
+ ],
62
+ "Confidentiality": [
63
+ "Other",
64
+ "Bypass Protection Mechanism",
65
+ "Hide Activities"
66
+ ]
67
+ },
68
+ "x_capec_domains": [
69
+ "Communications",
70
+ "Software"
71
+ ],
72
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Experiment</h3><ol><li> <p>An adversary sends UDP packets to target ports.</p></li><li> <p>An adversary uses the response from the target to determine the port's state. Whether a port responds to a UDP packet is dependant on what application is listening on that port. No response does not indicate the port is not open.</p></li></ol></div>",
73
+ "x_capec_extended_description": "\n <xhtml:p>During a UDP scan, a datagram is sent to a target port. If an 'ICMP Type 3 Port unreachable' error message is returned then the port is considered closed. Different types of ICMP messages can indicate a filtered port. UDP scanning is slower than TCP scanning. The protocol characteristics of UDP make port scanning inherently more difficult than with TCP, as well as dependent upon ICMP for accurate scanning. Due to ambiguities that can arise between open ports and filtered ports, UDP scanning results often require a high degree of interpretation and further testing to refine. In general, UDP scanning results are less reliable or accurate than TCP-based scanning.</xhtml:p>\n ",
74
+ "x_capec_prerequisites": [
75
+ "The ability to send UDP datagrams to a host and receive ICMP error messages from that host. In cases where particular types of ICMP messaging is disallowed, the reliability of UDP scanning drops off sharply."
76
+ ],
77
+ "x_capec_resources_required": [
78
+ "The ability to craft custom UDP Packets for use during network reconnaissance. This can be accomplished via the use of a port scanner, or via socket manipulation in a programming or scripting language. Packet injection tools are also useful. It is also necessary to trap ICMP diagnostic messages during this process. Depending upon the method used it may be necessary to sniff the network in order to see the response."
79
+ ],
80
+ "x_capec_status": "Stable",
81
+ "x_capec_typical_severity": "Low",
82
+ "x_capec_version": "3.9"
83
+ }
84
+ ],
85
+ "spec_version": "2.0",
86
+ "type": "bundle"
87
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--08c74bd3-c5ad-4d6c-a8bb-bb93d7503ddb.json ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--2ea1bdda-a06e-4a67-9a5f-a12e922a0e90",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "Generally these are manually edited files that are not in the preview of the system administrators, any ability on the attackers' behalf to modify these files, for example in a CVS repository, gives unauthorized access directly to the application, the same as authorized users.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-75",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/75.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-349",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/349.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-99",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/99.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-77",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/77.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-346",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/346.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-353",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/353.html"
38
+ },
39
+ {
40
+ "external_id": "CWE-354",
41
+ "source_name": "cwe",
42
+ "url": "http://cwe.mitre.org/data/definitions/354.html"
43
+ },
44
+ {
45
+ "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley",
46
+ "external_id": "REF-1",
47
+ "source_name": "reference_from_CAPEC"
48
+ }
49
+ ],
50
+ "id": "attack-pattern--08c74bd3-c5ad-4d6c-a8bb-bb93d7503ddb",
51
+ "modified": "2022-09-29T00:00:00.000Z",
52
+ "name": "Manipulating Writeable Configuration Files",
53
+ "object_marking_refs": [
54
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
55
+ ],
56
+ "type": "attack-pattern",
57
+ "x_capec_abstraction": "Standard",
58
+ "x_capec_child_of_refs": [
59
+ "attack-pattern--f9f65fdd-5857-4a57-a725-066465397601"
60
+ ],
61
+ "x_capec_consequences": {
62
+ "Access_Control": [
63
+ "Gain Privileges"
64
+ ],
65
+ "Authorization": [
66
+ "Gain Privileges"
67
+ ],
68
+ "Confidentiality": [
69
+ "Gain Privileges"
70
+ ]
71
+ },
72
+ "x_capec_domains": [
73
+ "Software"
74
+ ],
75
+ "x_capec_example_instances": [
76
+ "\n <xhtml:p>The BEA Weblogic server uses a config.xml file to store configuration data. If this file is not properly protected by the system access control, an attacker can write configuration information to redirect server output through system logs, database connections, malicious URLs and so on. Access to the Weblogic server may be from a so-called Custom realm which manages authentication and authorization privileges on behalf of user principals. Given write access, the attacker can insert a pointer to a custom realm jar file in the config.xml</xhtml:p>\n <xhtml:div style=\"margin-left:1em;\" class=\"informative\">< CustomRealm<xhtml:div style=\"margin-left:1em;\">ConfigurationData=\"java.util.Properties\"Name=\"CustomRealm\"RealmClassName=\"Maliciousrealm.jar\"/></xhtml:div>\n </xhtml:div>\n <xhtml:p>The main issue with configuration files is that the attacker can leverage all the same functionality the server has, but for malicious means. Given the complexity of server configuration, these changes may be very hard for administrators to detect.</xhtml:p>\n "
77
+ ],
78
+ "x_capec_likelihood_of_attack": "High",
79
+ "x_capec_prerequisites": [
80
+ "Configuration files must be modifiable by the attacker"
81
+ ],
82
+ "x_capec_skills_required": {
83
+ "Medium": "To identify vulnerable configuration files, and understand how to manipulate servers and erase forensic evidence"
84
+ },
85
+ "x_capec_status": "Draft",
86
+ "x_capec_typical_severity": "Very High",
87
+ "x_capec_version": "3.9"
88
+ }
89
+ ],
90
+ "spec_version": "2.0",
91
+ "type": "bundle"
92
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0939f361-ea31-454b-ae3d-4af2411b756d.json ADDED
@@ -0,0 +1,116 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--de716e2a-a3d4-40b8-a3da-527be75f6a35",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker crafts malicious web links and distributes them (via web pages, email, etc.), typically in a targeted manner, hoping to induce users to click on the link and execute the malicious action against some third-party application. If successful, the action embedded in the malicious link will be processed and accepted by the targeted application with the users' privilege level. This type of attack leverages the persistence and implicit trust placed in user session cookies by many web applications today. In such an architecture, once the user authenticates to an application and a session cookie is created on the user's system, all following transactions for that session are authenticated using that cookie including potential actions initiated by an attacker and simply \"riding\" the existing session cookie.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-62",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/62.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-352",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/352.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-306",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/306.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-664",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/664.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-732",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/732.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-1275",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/1275.html"
38
+ },
39
+ {
40
+ "description": "Cross-Site Request Forgery",
41
+ "external_id": "09",
42
+ "source_name": "WASC",
43
+ "url": "http://projects.webappsec.org/Cross-Site-Request-Forgery"
44
+ },
45
+ {
46
+ "description": "Cross Site Request Forgery (CSRF)",
47
+ "source_name": "OWASP Attacks",
48
+ "url": "https://owasp.org/www-community/attacks/csrf"
49
+ },
50
+ {
51
+ "description": "Thomas Schreiber, Session Riding: A Widespread Vulnerability in Today's Web Applications, SecureNet GmbH",
52
+ "external_id": "REF-62",
53
+ "source_name": "reference_from_CAPEC",
54
+ "url": "https://crypto.stanford.edu/cs155old/cs155-spring08/papers/Session_Riding.pdf"
55
+ },
56
+ {
57
+ "description": "OWASP Web Security Testing Guide, The Open Web Application Security Project (OWASP)",
58
+ "external_id": "REF-602",
59
+ "source_name": "reference_from_CAPEC",
60
+ "url": "https://owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/06-Session_Management_Testing/05-Testing_for_Cross_Site_Request_Forgery.html"
61
+ }
62
+ ],
63
+ "id": "attack-pattern--0939f361-ea31-454b-ae3d-4af2411b756d",
64
+ "modified": "2021-06-24T00:00:00.000Z",
65
+ "name": "Cross Site Request Forgery",
66
+ "object_marking_refs": [
67
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
68
+ ],
69
+ "type": "attack-pattern",
70
+ "x_capec_abstraction": "Standard",
71
+ "x_capec_alternate_terms": [
72
+ "Session Riding"
73
+ ],
74
+ "x_capec_child_of_refs": [
75
+ "attack-pattern--2351ee64-dd85-4bc3-bb43-aaa2ca5c1228"
76
+ ],
77
+ "x_capec_consequences": {
78
+ "Access_Control": [
79
+ "Gain Privileges"
80
+ ],
81
+ "Authorization": [
82
+ "Gain Privileges"
83
+ ],
84
+ "Confidentiality": [
85
+ "Gain Privileges",
86
+ "Read Data"
87
+ ],
88
+ "Integrity": [
89
+ "Modify Data"
90
+ ]
91
+ },
92
+ "x_capec_domains": [
93
+ "Software"
94
+ ],
95
+ "x_capec_example_instances": [
96
+ "\n <xhtml:p>While a user is logged into their bank account, an attacker can send an email with some potentially interesting content and require the user to click on a link in the email.</xhtml:p>\n <xhtml:p>The link points to or contains an attacker setup script, probably even within an iFrame, that mimics an actual user form submission to perform a malicious activity, such as transferring funds from the victim's account.</xhtml:p>\n <xhtml:p>The attacker can have the script embedded in, or targeted by, the link perform any arbitrary action as the authenticated user. When this script is executed, the targeted application authenticates and accepts the actions based on the victims existing session cookie.</xhtml:p>See also: Cross-site request forgery (CSRF) vulnerability in util.pl in @Mail WebMail 4.51 allows remote attackers to modify arbitrary settings and perform unauthorized actions as an arbitrary user, as demonstrated using a settings action in the SRC attribute of an IMG element in an HTML e-mail."
97
+ ],
98
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Explore target website: </b>The attacker first explores the target website to determine pieces of functionality that are of interest to them (e.g. money transfers). The attacker will need a legitimate user account on the target website. It would help to have two accounts.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use web application debugging tool such as WebScarab, Tamper Data or TamperIE to analyze the information exchanged between the client and the server</td></tr><tr><td>Use network sniffing tool such as Wireshark to analyze the information exchanged between the client and the server</td></tr><tr><td>View HTML source of web pages that contain links or buttons that perform actions of interest.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Create a link that when clicked on, will execute the interesting functionality.: </b>The attacker needs to create a link that will execute some interesting functionality such as transfer money, change a password, etc.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Create a GET request containing all required parameters (e.g. https://www.somebank.com/members/transfer.asp?to=012345678901&amt=10000)</td></tr><tr><td>Create a form that will submit a POST request (e.g. <form method=\"POST\" action=\"https://www.somebank.com/members/transfer.asp\"><input type=\"hidden\" Name=\"to\" value=\"012345678901\"/><input type=\"hidden\" Name=\"amt\" value=\"10000\"/><input type=\"submit\" src=\"clickhere.jpg\"/></form></td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Convince user to click on link: </b>Finally, the attacker needs to convince a user that is logged into the target website to click on a link to execute the CSRF attack.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Execute a phishing attack and send the user an e-mail convincing them to click on a link.</td></tr><tr><td>Execute a stored XSS attack on a website to permanently embed the malicious link into the website.</td></tr><tr><td>Execute a stored XSS attack on a website where an XMLHTTPRequest object will automatically execute the attack as soon as a user visits the page. This removes the step of convincing a user to click on a link.</td></tr><tr><td>Include the malicious link on the attackers' own website where the user may have to click on the link, or where an XMLHTTPRequest object may automatically execute the attack when a user visits the site.</td></tr></tbody></table></ol></div>",
99
+ "x_capec_likelihood_of_attack": "High",
100
+ "x_capec_parent_of_refs": [
101
+ "attack-pattern--c50d5a35-0010-422d-b6f7-d4b963c9bad4"
102
+ ],
103
+ "x_capec_resources_required": [
104
+ "All the attacker needs is the exact representation of requests to be made to the application and to be able to get the malicious link across to a victim."
105
+ ],
106
+ "x_capec_skills_required": {
107
+ "Medium": "The attacker needs to figure out the exact invocation of the targeted malicious action and then craft a link that performs the said action. Having the user click on such a link is often accomplished by sending an email or posting such a link to a bulletin board or the likes."
108
+ },
109
+ "x_capec_status": "Draft",
110
+ "x_capec_typical_severity": "Very High",
111
+ "x_capec_version": "3.9"
112
+ }
113
+ ],
114
+ "spec_version": "2.0",
115
+ "type": "bundle"
116
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0a765348-6b5a-4797-9724-44b4fc4f9c55.json ADDED
@@ -0,0 +1,49 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--846f1965-3494-4a8f-af2b-e10356d8a807",
3
+ "objects": [
4
+ {
5
+ "created": "2017-01-12T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "In this attack pattern, an adversary physically disables networking hardware by powering it down or disconnecting critical equipment. Disabling or shutting off critical system resources prevents them from performing their service as intended, which can have direct and indirect consequences on other systems. This attack pattern is considerably less technical than the selective blocking used in most obstruction attacks.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-583",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/583.html"
13
+ },
14
+ {
15
+ "description": "Analysis of Country-wide Internet Outages Caused by Censorship, 2011, Center for Applied Internet Data Analysis",
16
+ "external_id": "REF-464",
17
+ "source_name": "reference_from_CAPEC",
18
+ "url": "http://www.caida.org/publications/papers/2011/outages_censorship/outages_censorship.pdf"
19
+ }
20
+ ],
21
+ "id": "attack-pattern--0a765348-6b5a-4797-9724-44b4fc4f9c55",
22
+ "modified": "2019-09-30T00:00:00.000Z",
23
+ "name": "Disabling Network Hardware",
24
+ "object_marking_refs": [
25
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
26
+ ],
27
+ "type": "attack-pattern",
28
+ "x_capec_abstraction": "Detailed",
29
+ "x_capec_child_of_refs": [
30
+ "attack-pattern--795c323b-cae6-4846-99f1-dad3fe0ab8e8"
31
+ ],
32
+ "x_capec_consequences": {
33
+ "Availability": [
34
+ "Other (Denial of Service)"
35
+ ]
36
+ },
37
+ "x_capec_domains": [
38
+ "Hardware"
39
+ ],
40
+ "x_capec_prerequisites": [
41
+ "The adversary requires physical access to the targeted communications equipment (networking devices, cables, etc.), which may be spread over a wide area."
42
+ ],
43
+ "x_capec_status": "Draft",
44
+ "x_capec_version": "3.9"
45
+ }
46
+ ],
47
+ "spec_version": "2.0",
48
+ "type": "bundle"
49
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0a899aed-6271-4cc9-8ffc-5c9575776731.json ADDED
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--acca830b-0515-460e-80ab-4681e294b274",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker hosts or joins an event or transaction within an application framework in order to change the content of messages or items that are being exchanged. Performing this attack allows the attacker to manipulate content in such a way as to produce messages or content that look authentic but may contain deceptive links, substitute one item or another, spoof an existing item and conduct a false exchange, or otherwise change the amounts or identity of what is being exchanged. The techniques require use of specialized software that allow the attacker to man-in-the-middle communications between the web browser and the remote system in order to change the content of various application elements. Often, items exchanged in game can be monetized via sales for coin, virtual dollars, etc. The purpose of the attack is for the attack to scam the victim by trapping the data packets involved the exchange and altering the integrity of the transfer process.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-385",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/385.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-471",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/471.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-345",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/345.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-346",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/346.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-602",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/602.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-311",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/311.html"
38
+ },
39
+ {
40
+ "description": "Tom Stracener, Sean Barnum, So Many Ways [...]: Exploiting Facebook and YoVille, 2010, Defcon 18",
41
+ "external_id": "REF-327",
42
+ "source_name": "reference_from_CAPEC"
43
+ }
44
+ ],
45
+ "id": "attack-pattern--0a899aed-6271-4cc9-8ffc-5c9575776731",
46
+ "modified": "2021-06-24T00:00:00.000Z",
47
+ "name": "Transaction or Event Tampering via Application API Manipulation",
48
+ "object_marking_refs": [
49
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
50
+ ],
51
+ "type": "attack-pattern",
52
+ "x_capec_abstraction": "Detailed",
53
+ "x_capec_child_of_refs": [
54
+ "attack-pattern--ea07b1ea-c1b0-4923-8d25-a8fc39da040a"
55
+ ],
56
+ "x_capec_domains": [
57
+ "Communications",
58
+ "Software"
59
+ ],
60
+ "x_capec_prerequisites": [
61
+ "Targeted software is utilizing application framework APIs"
62
+ ],
63
+ "x_capec_resources_required": [
64
+ "A software program that allows the use of adversary-in-the-middle communications (CAPEC-94) between the client and server, such as a man-in-the-middle proxy."
65
+ ],
66
+ "x_capec_status": "Draft",
67
+ "x_capec_typical_severity": "Medium",
68
+ "x_capec_version": "3.9"
69
+ }
70
+ ],
71
+ "spec_version": "2.0",
72
+ "type": "bundle"
73
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0a8ef002-1cb8-46e1-bc44-efd0a39b2a67.json ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--8340da62-8f2a-4c99-a71c-1d8f3bc6323f",
3
+ "objects": [
4
+ {
5
+ "created": "2023-01-24T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An Adversary can eavesdrop on the content of an external monitor through the air without modifying any cable or installing software, just capturing this signal emitted by the cable or video port, with this the attacker will be able to impact the confidentiality of the data without being detected by traditional security tools",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-699",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/699.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-1300",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/1300.html"
18
+ },
19
+ {
20
+ "description": "TempestSDR: An SDR Tool For Eavesdropping on Computer Screens Via Unintentionally Radiated RF",
21
+ "external_id": "REF-744",
22
+ "source_name": "reference_from_CAPEC",
23
+ "url": "https://www.rtl-sdr.com/tempestsdr-a-sdr-tool-for-eavesdropping-on-computer-screens-via-unintentionally-radiated-rf/"
24
+ },
25
+ {
26
+ "description": "Dan Maloney, Exposing Computer Monitor Side-Channel Vulnerabilities with TempestSDR",
27
+ "external_id": "REF-745",
28
+ "source_name": "reference_from_CAPEC",
29
+ "url": "https://hackaday.com/2020/07/15/exposing-computer-monitor-side-channel-vulnerabilities-with-tempestsdr/"
30
+ }
31
+ ],
32
+ "id": "attack-pattern--0a8ef002-1cb8-46e1-bc44-efd0a39b2a67",
33
+ "modified": "2023-01-24T00:00:00.000Z",
34
+ "name": "Eavesdropping on a Monitor",
35
+ "object_marking_refs": [
36
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
37
+ ],
38
+ "type": "attack-pattern",
39
+ "x_capec_abstraction": "Meta",
40
+ "x_capec_child_of_refs": [
41
+ "attack-pattern--94e596d2-6844-4031-80c3-8522642aaff8"
42
+ ],
43
+ "x_capec_consequences": {
44
+ "Confidentiality": [
45
+ "Read Data"
46
+ ]
47
+ },
48
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Survey Target: </b>The adversary surveys the target location, looking for exposed display cables and locations to hide an SDR. This also includes looking for display cables or monitors placed close to a wall, where the SDR can be in range while behind the wall. The adversary also attempts to discover the resolution and refresh rate of the targeted display.</p></li></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Find target using SDR: </b>The adversary sets up an SDR near the target display cable or monitor. They use the SDR software to locate the corresponding frequency of the display cable. This is done by looking for interference peaks that change depending on what the screen is showing. The adversary notes down the possible frequencies of unintentional emission.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>An adversary can make use of many different commercially available SDR devices which are easy to setup such as a HackRF, Ubertooth, RTL-SDR, and many others.</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Visualize Monitor Image: </b>Once the SDR software has been used to identify the target, the adversary will record the transmissions and visualize the monitor image using these transmissions, which allows them to eavesdrop on the information visible on the monitor.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>The TempestSDR software can be used in conjunction an SDR device to visualize the monitor image. The adversary will specify the known monitor resolution and refresh rate, or if those are not known they can use the provided auto-correlation graphs to help predict these values. The adversary will then try the different frequencies recorded from the experiment phase, looking for a viewing monitor display. Low pass filters and gain can be manipulated to make the display image clearer.</td></tr></tbody></table></ol></div>",
49
+ "x_capec_extended_description": "\n <xhtml:p>This attack gives the adversary the ability to view an external monitor with an insignificant delay. There is also no indicator of compromise from the victim visible on the monitor.</xhtml:p>\n <xhtml:p>The eavesdrop is possible due to a signal leakage, that is produced at different points of the connection, including the source port, the connection between the cable and PC, the cable itself, and the connection between the cable and the monitor. That signal leakage can be captured near any of the leak points, but also in a near location, like the next room or a few meters away, using an SDR (Software-defined Radio) device and the correspondent software, that process and interpret the signal to show attackers what the monitor is displaying.</xhtml:p>\n <xhtml:p>From the victim’s point of view, this specified attack might cause a high risk, and from the other hand, from the attacker’s point of view, the attack is excellent, since the specified attack method can be used without investing too much effort or require too many skills, as long as the right attack tool is in right place, this allows attackers to completely compromise the confidentiality of the data; also giving the attacker the advantage of being undetectable by not only traditional security products but also from bug sweep because the SDR device is acting in passive mode.</xhtml:p>\n ",
50
+ "x_capec_likelihood_of_attack": "Medium",
51
+ "x_capec_prerequisites": [
52
+ "Victim should use an external monitor device",
53
+ "Physical access to the target location and devices"
54
+ ],
55
+ "x_capec_resources_required": [
56
+ "SDR device set with the correspondent antenna",
57
+ "Computer with SDR Software"
58
+ ],
59
+ "x_capec_skills_required": {
60
+ "Low": "Understanding of computing hardware, to identify the video cable and video ports",
61
+ "Medium": "Knowledge of how to use the SDR and related software: With this knowledge, the adversary will find the correct frequency where the signal is being leaked"
62
+ },
63
+ "x_capec_status": "Draft",
64
+ "x_capec_typical_severity": "High",
65
+ "x_capec_version": "3.9"
66
+ }
67
+ ],
68
+ "spec_version": "2.0",
69
+ "type": "bundle"
70
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0b08a46d-d680-4f3d-91ad-f97e00878780.json ADDED
@@ -0,0 +1,110 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--5e35451a-bdcf-469a-b35e-217164fc7416",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "Web Logs Tampering attacks involve an attacker injecting, deleting or otherwise tampering with the contents of web logs typically for the purposes of masking other malicious behavior. Additionally, writing malicious data to log files may target jobs, filters, reports, and other agents that process the logs in an asynchronous attack pattern. This pattern of attack is similar to \"Log Injection-Tampering-Forging\" except that in this case, the attack is targeting the logs of the web server and not the application.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-81",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/81.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-117",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/117.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-93",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/93.html"
23
+ },
24
+ {
25
+ "external_id": "CWE-75",
26
+ "source_name": "cwe",
27
+ "url": "http://cwe.mitre.org/data/definitions/75.html"
28
+ },
29
+ {
30
+ "external_id": "CWE-221",
31
+ "source_name": "cwe",
32
+ "url": "http://cwe.mitre.org/data/definitions/221.html"
33
+ },
34
+ {
35
+ "external_id": "CWE-96",
36
+ "source_name": "cwe",
37
+ "url": "http://cwe.mitre.org/data/definitions/96.html"
38
+ },
39
+ {
40
+ "external_id": "CWE-20",
41
+ "source_name": "cwe",
42
+ "url": "http://cwe.mitre.org/data/definitions/20.html"
43
+ },
44
+ {
45
+ "external_id": "CWE-150",
46
+ "source_name": "cwe",
47
+ "url": "http://cwe.mitre.org/data/definitions/150.html"
48
+ },
49
+ {
50
+ "external_id": "CWE-276",
51
+ "source_name": "cwe",
52
+ "url": "http://cwe.mitre.org/data/definitions/276.html"
53
+ },
54
+ {
55
+ "external_id": "CWE-279",
56
+ "source_name": "cwe",
57
+ "url": "http://cwe.mitre.org/data/definitions/279.html"
58
+ },
59
+ {
60
+ "external_id": "CWE-116",
61
+ "source_name": "cwe",
62
+ "url": "http://cwe.mitre.org/data/definitions/116.html"
63
+ },
64
+ {
65
+ "description": "G. Hoglund, G. McGraw, Exploiting Software: How to Break Code, 2004--02, Addison-Wesley",
66
+ "external_id": "REF-1",
67
+ "source_name": "reference_from_CAPEC"
68
+ }
69
+ ],
70
+ "id": "attack-pattern--0b08a46d-d680-4f3d-91ad-f97e00878780",
71
+ "modified": "2022-09-29T00:00:00.000Z",
72
+ "name": "Web Server Logs Tampering",
73
+ "object_marking_refs": [
74
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
75
+ ],
76
+ "type": "attack-pattern",
77
+ "x_capec_abstraction": "Detailed",
78
+ "x_capec_child_of_refs": [
79
+ "attack-pattern--b3eaa7aa-9601-406c-ae82-0a0e2ea16116"
80
+ ],
81
+ "x_capec_consequences": {
82
+ "Integrity": [
83
+ "Modify Data"
84
+ ]
85
+ },
86
+ "x_capec_domains": [
87
+ "Software"
88
+ ],
89
+ "x_capec_example_instances": [
90
+ "Most web servers have a public interface, even if the majority of the site is password protected, there is usually at least a login site and brochureware that is publicly available. HTTP requests to the site are also generally logged to a Web log. From an attacker point of view, standard HTTP requests containing a malicious payload can be sent to the public website (with no other access required), when those requests appear in the log (such as http://victimsite/index.html?< malicious script> if they are followed by an administrator this may be sufficient to probe the administrator's host or local network."
91
+ ],
92
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Determine Application Web Server Log File Format: </b>The attacker observes the system and looks for indicators of which logging utility is being used by the web server.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Determine logging utility being used by application web server (e.g. log4j), only possible if the application is known by the attacker or if the application returns error messages with logging utility information.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Determine Injectable Content: </b>The attacker launches various logged actions with malicious data to determine what sort of log injection is possible.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Attacker triggers logged actions with maliciously crafted data as inputs, parameters, arguments, etc.</td></tr></tbody></table></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Manipulate Log Files: </b>The attacker alters the log contents either directly through manipulation or forging or indirectly through injection of specially crafted request that the web server will receive and write into the logs. This type of attack typically follows another attack and is used to try to cover the traces of the previous attack.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>\n <xhtml:p>Indirectly through injection, use carriage return and/or line feed characters to start a new line in the log file, and then, add a fake entry.</xhtml:p>\n <xhtml:p>For example: The HTTP request for \"/index.html%0A%0DIP_ADDRESS- - DATE_FORMAT] \"GET /forged-path HTTP/1.1\" 200 - \"-\" USER_AGENT\" may add the log line into Apache \"access_log\" (for example). Different applications may require different encodings of the carriage return and line feed characters.</xhtml:p>\n </td></tr><tr><td>\n <xhtml:p>Directly through log file or database manipulation, use carriage return and/or line feed characters to start a new line in the log file, and then, add a fake entry.</xhtml:p>\n <xhtml:p>For example: The HTTP request for \"/index.html%0A%0DIP_ADDRESS- - DATE_FORMAT] \"GET /forged-path HTTP/1.1\" 200 - \"-\" USER_AGENT\" may add the log line into Apache \"access_log\" (for example). Different applications may require different encodings of the carriage return and line feed characters.</xhtml:p>\n </td></tr><tr><td>Directly through log file or database manipulation, modify existing log entries.</td></tr></tbody></table></ol></div>",
93
+ "x_capec_likelihood_of_attack": "Medium",
94
+ "x_capec_prerequisites": [
95
+ "Target server software must be a HTTP server that performs web logging."
96
+ ],
97
+ "x_capec_resources_required": [
98
+ "Ability to send specially formatted HTTP request to web server"
99
+ ],
100
+ "x_capec_skills_required": {
101
+ "Low": "To input faked entries into Web logs"
102
+ },
103
+ "x_capec_status": "Draft",
104
+ "x_capec_typical_severity": "High",
105
+ "x_capec_version": "3.9"
106
+ }
107
+ ],
108
+ "spec_version": "2.0",
109
+ "type": "bundle"
110
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0cf857f6-afa4-4f0c-850f-58a4f11df157.json ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--2f7ae244-5d8b-45d0-b28a-06555424ecba",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker sends a series of probes to a web application in order to elicit version-dependent and type-dependent behavior that assists in identifying the target. An attacker could learn information such as software versions, error pages, and response headers, variations in implementations of the HTTP protocol, directory structures, and other similar information about the targeted service. This information can then be used by an attacker to formulate a targeted attack plan. While web application fingerprinting is not intended to be damaging (although certain activities, such as network scans, can sometimes cause disruptions to vulnerable applications inadvertently) it may often pave the way for more damaging attacks.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-170",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/170.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-497",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/497.html"
18
+ },
19
+ {
20
+ "description": "Saumil Shah, An Introduction to HTTP fingerprinting",
21
+ "external_id": "REF-36",
22
+ "source_name": "reference_from_CAPEC",
23
+ "url": "http://www.net-square.com/httprint_paper.html"
24
+ },
25
+ {
26
+ "description": "OWASP Web Security Testing Guide (v4 [DRAFT]), The Open Web Application Security Project (OWASP)",
27
+ "external_id": "REF-37",
28
+ "source_name": "reference_from_CAPEC",
29
+ "url": "https://www.owasp.org/www-project-web-security-testing-guide/latest/4-Web_Application_Security_Testing/01-Information_Gathering/08-Fingerprint_Web_Application_Framework"
30
+ },
31
+ {
32
+ "description": "HTTP 1.1 Specification (RFC 2616), IETF RFC",
33
+ "external_id": "REF-38",
34
+ "source_name": "reference_from_CAPEC",
35
+ "url": "http://www.ietf.org/rfc/rfc2616.txt"
36
+ },
37
+ {
38
+ "description": "WASC Threat Classification 2.0, 2010, The Web Application Security Consortium (WASC)",
39
+ "external_id": "REF-39",
40
+ "source_name": "reference_from_CAPEC",
41
+ "url": "http://projects.webappsec.org/Fingerprinting"
42
+ }
43
+ ],
44
+ "id": "attack-pattern--0cf857f6-afa4-4f0c-850f-58a4f11df157",
45
+ "modified": "2022-09-29T00:00:00.000Z",
46
+ "name": "Web Application Fingerprinting",
47
+ "object_marking_refs": [
48
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
49
+ ],
50
+ "type": "attack-pattern",
51
+ "x_capec_abstraction": "Detailed",
52
+ "x_capec_child_of_refs": [
53
+ "attack-pattern--e7eec058-4cd9-4fa0-8784-ed961d8d7290"
54
+ ],
55
+ "x_capec_consequences": {
56
+ "Confidentiality": [
57
+ "Other (Information Leakage)"
58
+ ]
59
+ },
60
+ "x_capec_domains": [
61
+ "Software"
62
+ ],
63
+ "x_capec_example_instances": [
64
+ "\n <xhtml:p>An attacker sends malformed requests or requests of nonexistent pages to the server. Consider the following HTTP responses.</xhtml:p>\n <xhtml:b>Response from Apache 1.3.23</xhtml:b>\n <xhtml:div style=\"margin-left:1em;\" class=\"informative\">$ nc apache.server.com80 GET / HTTP/3.0\n HTTP/1.1 400 Bad RequestDate: Sun, 15 Jun 2003 17:12: 37 GMTServer: Apache/1.3.23Connection: closeTransfer: chunkedContent-Type: text/HTML; charset=iso-8859-1</xhtml:div>\n <xhtml:b>Response from IIS 5.0</xhtml:b>\n <xhtml:div style=\"margin-left:1em;\" class=\"informative\">$ nc iis.server.com 80GET / HTTP/3.0\n HTTP/1.1 200 OKServer: Microsoft-IIS/5.0Content-Location: http://iis.example.com/Default.htmDate: Fri, 01 Jan 1999 20:14: 02 GMTContent-Type: text/HTMLAccept-Ranges: bytes Last-Modified: Fri, 01 Jan 1999 20:14: 02 GMTETag: W/e0d362a4c335be1: ae1Content-Length: 133</xhtml:div>\n <xhtml:p>[REF-37]</xhtml:p>\n "
65
+ ],
66
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Request fingerprinting: </b>Use automated tools or send web server specific commands to web server and wait for server's response.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use automated tools or send web server specific commands to web server and then receive server's response.</td></tr></tbody></table></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Increase the accuracy of server fingerprinting of Web servers: </b>Attacker usually needs to send several different commands to accurately identify the web server. Attacker can also use automated tools to send requests to the server. The responses of the server may be different in terms of protocol behavior.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Observe the ordering of the several HTTP response headers. The ordering of the header of each server may have unique identities.</td></tr><tr><td>Send bad requests or requests of nonexistent pages to the server.</td></tr><tr><td>Attacker takes existing automated tools to recognize the type and the version of the web server in use.</td></tr></tbody></table><li> <p> <b>Identify Web Application Software: </b>After the web server platform software has been identified, the attacker start to identify web application technologies such as ASP, .NET, PHP and Java on the server.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Examine the file name extensions in URL, for example .php indicates PHP script interfaced with Apache server.</td></tr><tr><td>Examine the HTTP Response Headers. This may leak information about software signatures</td></tr><tr><td>Examine Cookies that may contain server's software information.</td></tr><tr><td>Check error pages.</td></tr></tbody></table><li> <p> <b>Identify Backend Database Version: </b>Determining the database engine type can assist attackers' attempt to successfully execute SQL injection. Some database API such as ODBC will show a database type as part of the driver information when reporting an error.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Use tools to send bogus SQL query to the server and check error pages.</td></tr></tbody></table></ol></div>",
67
+ "x_capec_likelihood_of_attack": "High",
68
+ "x_capec_prerequisites": [
69
+ "Any web application can be fingerprinted. However, some configuration choices can limit the useful information an attacker may collect during a fingerprinting attack."
70
+ ],
71
+ "x_capec_resources_required": [
72
+ "While simple fingerprinting can be accomplished with only a web browser, for more thorough fingerprinting an attacker requires a variety of tools to collect information about the target. These tools might include protocol analyzers, web-site crawlers, and fuzzing tools. Footprinting a service adequately may also take a few days if the attacker wishes the footprinting attempt to go undetected."
73
+ ],
74
+ "x_capec_skills_required": {
75
+ "Low": "Attacker knows how to send HTTP request, SQL query to a web application."
76
+ },
77
+ "x_capec_status": "Draft",
78
+ "x_capec_typical_severity": "Low",
79
+ "x_capec_version": "3.9"
80
+ }
81
+ ],
82
+ "spec_version": "2.0",
83
+ "type": "bundle"
84
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0d249bf9-13b3-4c13-9423-bcb1ea73c067.json ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--fdfdc2b9-1600-4cde-b9e8-6a591b35740f",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "Adversary creates duplicates of legitimate websites. When users visit a counterfeit site, the site can gather information or upload malware.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-543",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/543.html"
13
+ },
14
+ {
15
+ "description": "Masquerading: Match Legitimate Name or Location",
16
+ "external_id": "T1036.005",
17
+ "source_name": "ATTACK",
18
+ "url": "https://attack.mitre.org/wiki/Technique/T1036/005"
19
+ }
20
+ ],
21
+ "id": "attack-pattern--0d249bf9-13b3-4c13-9423-bcb1ea73c067",
22
+ "modified": "2022-09-29T00:00:00.000Z",
23
+ "name": "Counterfeit Websites",
24
+ "object_marking_refs": [
25
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
26
+ ],
27
+ "type": "attack-pattern",
28
+ "x_capec_abstraction": "Detailed",
29
+ "x_capec_can_follow_refs": [
30
+ "attack-pattern--a69b641a-dff7-4dad-b9b1-e00f80b083a2",
31
+ "attack-pattern--b6f0fd7e-6068-4557-976c-fd34914b11bf",
32
+ "attack-pattern--a2cad567-3a04-4ef3-8b62-25924c93b53f",
33
+ "attack-pattern--c4e18b3f-0445-49e8-9bf1-d47a23082501",
34
+ "attack-pattern--a00c2cc2-bd4f-4594-9ec1-b021b62ac896"
35
+ ],
36
+ "x_capec_can_precede_refs": [
37
+ "attack-pattern--5dec633b-7b10-4bfe-9270-e68b98112285"
38
+ ],
39
+ "x_capec_child_of_refs": [
40
+ "attack-pattern--862d18f1-a87c-4f1b-acc2-882697d5d6e5"
41
+ ],
42
+ "x_capec_domains": [
43
+ "Social Engineering"
44
+ ],
45
+ "x_capec_prerequisites": [
46
+ "None"
47
+ ],
48
+ "x_capec_status": "Draft",
49
+ "x_capec_typical_severity": "High",
50
+ "x_capec_version": "3.9"
51
+ }
52
+ ],
53
+ "spec_version": "2.0",
54
+ "type": "bundle"
55
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0d2d1e18-6e28-4c58-b442-c5450e6c1112.json ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--7b20b768-0707-4aa2-b71f-06e623a4cb00",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker exploits the functionality of Microsoft NTFS Alternate Data Streams (ADS) to undermine system security. ADS allows multiple \"files\" to be stored in one directory entry referenced as filename:streamname. One or more alternate data streams may be stored in any file or directory. Normal Microsoft utilities do not show the presence of an ADS stream attached to a file. The additional space for the ADS is not recorded in the displayed file size. The additional space for ADS is accounted for in the used space on the volume. An ADS can be any type of file. ADS are copied by standard Microsoft utilities between NTFS volumes. ADS can be used by an attacker or intruder to hide tools, scripts, and data from detection by normal system utilities. Many anti-virus programs do not check for or scan ADS. Windows Vista does have a switch (-R) on the command line DIR command that will display alternate streams.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-168",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/168.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-212",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/212.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-69",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/69.html"
23
+ },
24
+ {
25
+ "description": "Windows alternate data stream",
26
+ "source_name": "OWASP Attacks",
27
+ "url": "https://owasp.org/www-community/attacks/Windows_alternate_data_stream"
28
+ }
29
+ ],
30
+ "id": "attack-pattern--0d2d1e18-6e28-4c58-b442-c5450e6c1112",
31
+ "modified": "2020-12-17T00:00:00.000Z",
32
+ "name": "Windows ::DATA Alternate Data Stream",
33
+ "object_marking_refs": [
34
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
35
+ ],
36
+ "type": "attack-pattern",
37
+ "x_capec_abstraction": "Detailed",
38
+ "x_capec_child_of_refs": [
39
+ "attack-pattern--7f2c0e10-0afe-4edf-bb23-43d6f29ec932"
40
+ ],
41
+ "x_capec_domains": [
42
+ "Software"
43
+ ],
44
+ "x_capec_prerequisites": [
45
+ "The target must be running the Microsoft NTFS file system."
46
+ ],
47
+ "x_capec_resources_required": [
48
+ "The attacker must have command line or programmatic access to the target's files system with write/read permissions."
49
+ ],
50
+ "x_capec_status": "Draft",
51
+ "x_capec_typical_severity": "Medium",
52
+ "x_capec_version": "3.9"
53
+ }
54
+ ],
55
+ "spec_version": "2.0",
56
+ "type": "bundle"
57
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0e475610-f909-4927-a93c-04f08b1781b3.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--9c23af26-b581-44a2-89aa-c1f7f893926d",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack pattern has been deprecated as it is a duplicate of the existing attack pattern \"CAPEC-65 : Sniff Application Code\". Please refer to this other CAPEC going forward.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-259",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/259.html"
13
+ }
14
+ ],
15
+ "id": "attack-pattern--0e475610-f909-4927-a93c-04f08b1781b3",
16
+ "modified": "2017-08-04T00:00:00.000Z",
17
+ "name": "DEPRECATED: Passively Sniffing and Capturing Application Code Bound for an Authorized Client During Patching",
18
+ "object_marking_refs": [
19
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
20
+ ],
21
+ "type": "attack-pattern",
22
+ "x_capec_abstraction": "Standard",
23
+ "x_capec_status": "Deprecated",
24
+ "x_capec_version": "3.9"
25
+ }
26
+ ],
27
+ "spec_version": "2.0",
28
+ "type": "bundle"
29
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--0fda524b-2218-4aec-bf3e-6f345d13e459.json ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--4d7e6793-b3bc-4a92-96ca-fc95d834d373",
3
+ "objects": [
4
+ {
5
+ "created": "2015-11-09T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "Attacks that reveal the password/passcode pattern on a touchscreen device by detecting oil smudges left behind by the user’s fingers.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-626",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/626.html"
13
+ }
14
+ ],
15
+ "id": "attack-pattern--0fda524b-2218-4aec-bf3e-6f345d13e459",
16
+ "modified": "2019-09-30T00:00:00.000Z",
17
+ "name": "Smudge Attack",
18
+ "object_marking_refs": [
19
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
20
+ ],
21
+ "type": "attack-pattern",
22
+ "x_capec_abstraction": "Detailed",
23
+ "x_capec_child_of_refs": [
24
+ "attack-pattern--5e808864-44b1-478c-8cb0-75c55cd51e2b"
25
+ ],
26
+ "x_capec_consequences": {
27
+ "Access_Control": [
28
+ "Bypass Protection Mechanism"
29
+ ]
30
+ },
31
+ "x_capec_domains": [
32
+ "Physical Security"
33
+ ],
34
+ "x_capec_prerequisites": [
35
+ "The attacker must have physical access to the device."
36
+ ],
37
+ "x_capec_skills_required": {
38
+ "Medium": "The attacker must know how to make use of these smudges."
39
+ },
40
+ "x_capec_status": "Draft",
41
+ "x_capec_version": "3.9"
42
+ }
43
+ ],
44
+ "spec_version": "2.0",
45
+ "type": "bundle"
46
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--1059e91f-43ff-4a00-bc74-4110979f5247.json ADDED
@@ -0,0 +1,87 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--a33feb37-d5fc-4db7-b136-45158b8c7eae",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary uses a technique to generate an ICMP Error message (Port Unreachable, Destination Unreachable, Redirect, Source Quench, Time Exceeded, Parameter Problem) from a target and then analyze the amount of data returned or \"Quoted\" from the originating request that generated the ICMP error message.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-329",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/329.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-200",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/200.html"
18
+ },
19
+ {
20
+ "description": "Stuart McClure, Joel Scambray, George Kurtz, Hacking Exposed: Network Security Secrets & Solutions (6th Edition), 2009, McGraw Hill",
21
+ "external_id": "REF-33",
22
+ "source_name": "reference_from_CAPEC"
23
+ },
24
+ {
25
+ "description": "J. Postel, RFC792 - Internet Control Messaging Protocol, 1981--09, Defense Advanced Research Projects Agency (DARPA)",
26
+ "external_id": "REF-123",
27
+ "source_name": "reference_from_CAPEC",
28
+ "url": "http://www.faqs.org/rfcs/rfc792.html"
29
+ },
30
+ {
31
+ "description": "R. Braden, Ed., RFC1122 - Requirements for Internet Hosts - Communication Layers, 1989--10",
32
+ "external_id": "REF-124",
33
+ "source_name": "reference_from_CAPEC",
34
+ "url": "http://www.faqs.org/rfcs/rfc1122.html"
35
+ },
36
+ {
37
+ "description": "Ofir Arkin, A Remote Active OS Fingerprinting Tool using ICMP, 2002--04, The Sys-Security Group",
38
+ "external_id": "REF-262",
39
+ "source_name": "reference_from_CAPEC",
40
+ "url": "http://ofirarkin.files.wordpress.com/2008/11/login.pdf"
41
+ }
42
+ ],
43
+ "id": "attack-pattern--1059e91f-43ff-4a00-bc74-4110979f5247",
44
+ "modified": "2022-02-22T00:00:00.000Z",
45
+ "name": "ICMP Error Message Quoting Probe",
46
+ "object_marking_refs": [
47
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
48
+ ],
49
+ "type": "attack-pattern",
50
+ "x_capec_abstraction": "Detailed",
51
+ "x_capec_child_of_refs": [
52
+ "attack-pattern--6227a1fc-7504-4a5f-b5b2-4c4f1fe38617"
53
+ ],
54
+ "x_capec_consequences": {
55
+ "Access_Control": [
56
+ "Bypass Protection Mechanism",
57
+ "Hide Activities"
58
+ ],
59
+ "Authorization": [
60
+ "Bypass Protection Mechanism",
61
+ "Hide Activities"
62
+ ],
63
+ "Confidentiality": [
64
+ "Read Data",
65
+ "Bypass Protection Mechanism",
66
+ "Hide Activities"
67
+ ]
68
+ },
69
+ "x_capec_domains": [
70
+ "Software"
71
+ ],
72
+ "x_capec_extended_description": "\n <xhtml:p>For this purpose \"Port Unreachable\" error messages are often used, as generating them requires the adversary to send a UDP datagram to a closed port on the target. The goal of this analysis to make inferences about the type of operating system or firmware that sent the error message in reply.</xhtml:p>\n <xhtml:p>This is useful for identifying unique characteristics of operating systems because the RFC-1122 expected behavior reads: \"Every ICMP error message includes the Internet header and at least the first 8 data octets of the datagram that triggered the error; more than 8 octets MAY be sent [...].\" This contrasts with RFC-792 expected behavior, which limited the quoted text to 64 bits (8 octets). Given the latitude in the specification the resulting RFC-1122 stack implementations often respond with a high degree of variability in the amount of data quoted in the error message because \"older\" or \"legacy\" stacks may comply with the RFC-792 specification, while other stacks may choose a longer format in accordance with RFC-1122. As a general rule most operating systems or firmware will quote the first 8 bytes of the datagram triggering the error, but some IP stacks will quote more than the first 8 bytes of data.</xhtml:p>\n ",
73
+ "x_capec_likelihood_of_attack": "Medium",
74
+ "x_capec_prerequisites": [
75
+ "The ability to monitor and interact with network communications.Access to at least one host, and the privileges to interface with the network interface card."
76
+ ],
77
+ "x_capec_resources_required": [
78
+ "A tool capable of sending/receiving UDP datagram packets from a remote system to a closed port and receive an ICMP Error Message Type 3, \"Port Unreachable.."
79
+ ],
80
+ "x_capec_status": "Stable",
81
+ "x_capec_typical_severity": "Low",
82
+ "x_capec_version": "3.9"
83
+ }
84
+ ],
85
+ "spec_version": "2.0",
86
+ "type": "bundle"
87
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--10ce28bf-9f93-4a45-a39e-6407141a34d4.json ADDED
@@ -0,0 +1,64 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--d630fe85-698a-4959-8ba0-64319c6b597c",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary intercepts an implicit intent sent to launch a Android-based trusted activity and instead launches a counterfeit activity in its place. The malicious activity is then used to mimic the trusted activity's user interface and prompt the target to enter sensitive data as if they were interacting with the trusted activity.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-501",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/501.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-923",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/923.html"
18
+ },
19
+ {
20
+ "description": "Erika Chin, Adrienne Porter Felt, Kate Greenwood, David Wagner, Analyzing Inter-Application Communication in Android, 2011, International Conference on Mobile Systems, Applications, and Services (MobiSys)",
21
+ "external_id": "REF-427",
22
+ "source_name": "reference_from_CAPEC",
23
+ "url": "https://people.eecs.berkeley.edu/~daw/papers/intents-mobisys11.pdf"
24
+ }
25
+ ],
26
+ "id": "attack-pattern--10ce28bf-9f93-4a45-a39e-6407141a34d4",
27
+ "modified": "2021-10-21T00:00:00.000Z",
28
+ "name": "Android Activity Hijack",
29
+ "object_marking_refs": [
30
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
31
+ ],
32
+ "type": "attack-pattern",
33
+ "x_capec_abstraction": "Detailed",
34
+ "x_capec_child_of_refs": [
35
+ "attack-pattern--48f21dcd-2490-49c6-9690-1cb586b201f4",
36
+ "attack-pattern--fc3a9a6f-66c9-4363-8ebd-9bd18725fff8"
37
+ ],
38
+ "x_capec_consequences": {
39
+ "Confidentiality": [
40
+ "Read Data"
41
+ ]
42
+ },
43
+ "x_capec_domains": [
44
+ "Software",
45
+ "Software"
46
+ ],
47
+ "x_capec_execution_flow": "<h2> Execution Flow </h2><div><h3>Explore</h3><ol><li> <p> <b>Find an android application that uses implicit intents: </b>Since this attack only works on android applications that use implicit intents, rather than explicit intents, an adversary must first identify an app that uses implicit intents to launch an Android-based trusted activity, and what that activity is.</p></li></ol></div><div><h3>Experiment</h3><ol><li> <p> <b>Create a malicious app: </b>The adversary must create a malicious android app meant to intercept implicit intents to launch an Adroid-based trusted activity. This malicious app will mimic the trusted activiy's user interface to get the user to enter sensitive data.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Specify the type of intent wished to be intercepted in the malicious app's manifest file using an intent filter</td></tr></tbody></table><li> <p> <b>Get user to download malicious app: </b>The adversary must get a user using the targeted app to download the malicious app by any means necessary</p></li></ol></div><div><h3>Exploit</h3><ol><li> <p> <b>Gather sensitive data through malicious app: </b>Once the target application sends an implicit intent to launch a trusted activity, the malicious app will be launched instead that looks identical to the interface of that activity. When the user enters sensitive information it will be captured by the malicious app.</p></li><table><tbody><tr><th>Techniques</th></tr><tr><td>Gather login information from a user using a malicious app</td></tr></tbody></table></ol></div>",
48
+ "x_capec_prerequisites": [
49
+ "The adversary must have previously installed the malicious application onto the Android device that will run in place of the trusted activity."
50
+ ],
51
+ "x_capec_resources_required": [
52
+ "Malware capable of acting on the adversary's objectives."
53
+ ],
54
+ "x_capec_skills_required": {
55
+ "High": "The adversary must typically overcome network and host defenses in order to place malware on the system."
56
+ },
57
+ "x_capec_status": "Draft",
58
+ "x_capec_typical_severity": "Medium",
59
+ "x_capec_version": "3.9"
60
+ }
61
+ ],
62
+ "spec_version": "2.0",
63
+ "type": "bundle"
64
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--11d7e0d6-5655-4fc7-aee8-e2e0fc6c5088.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--0a006e5e-ce77-4270-a01c-eafbfe068116",
3
+ "objects": [
4
+ {
5
+ "created": "2015-11-09T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "In this attack scenario, the attacker passively listens for WiFi management frame messages containing the Service Set Identifier (SSID) for the WiFi network. These messages are frequently transmitted by WiFi access points (e.g., the retransmission device) as well as by clients that are accessing the network (e.g., the handset/mobile device). Once the attacker is able to associate an SSID with a particular user or set of users (for example, when attending a public event), the attacker can then scan for this SSID to track that user in the future.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-613",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/613.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-201",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/201.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-300",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/300.html"
23
+ }
24
+ ],
25
+ "id": "attack-pattern--11d7e0d6-5655-4fc7-aee8-e2e0fc6c5088",
26
+ "modified": "2019-09-30T00:00:00.000Z",
27
+ "name": "WiFi SSID Tracking",
28
+ "object_marking_refs": [
29
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
30
+ ],
31
+ "type": "attack-pattern",
32
+ "x_capec_abstraction": "Detailed",
33
+ "x_capec_child_of_refs": [
34
+ "attack-pattern--d780db94-413f-402d-a4d9-cf179b316c8c"
35
+ ],
36
+ "x_capec_domains": [
37
+ "Communications",
38
+ "Software"
39
+ ],
40
+ "x_capec_prerequisites": [
41
+ "None"
42
+ ],
43
+ "x_capec_skills_required": {
44
+ "Low": "Open source and commercial software tools are available and open databases of known WiFi SSID addresses are available online."
45
+ },
46
+ "x_capec_status": "Draft",
47
+ "x_capec_typical_severity": "Low",
48
+ "x_capec_version": "3.9"
49
+ }
50
+ ],
51
+ "spec_version": "2.0",
52
+ "type": "bundle"
53
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--123b3182-a540-4b15-ac28-0fbf607f9ebf.json ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--2ad6b4ba-4549-4dd2-bc9b-b9f4c3c567c4",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This attack pattern has been deprecated as it was deemed not to be a legitimate attack pattern.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-257",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/257.html"
13
+ }
14
+ ],
15
+ "id": "attack-pattern--123b3182-a540-4b15-ac28-0fbf607f9ebf",
16
+ "modified": "2018-07-31T00:00:00.000Z",
17
+ "name": "DEPRECATED: Abuse of Transaction Data Structure",
18
+ "object_marking_refs": [
19
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
20
+ ],
21
+ "type": "attack-pattern",
22
+ "x_capec_abstraction": "Meta",
23
+ "x_capec_status": "Deprecated",
24
+ "x_capec_version": "3.9"
25
+ }
26
+ ],
27
+ "spec_version": "2.0",
28
+ "type": "bundle"
29
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--12d80b47-8e4c-4646-bcc3-2bd7059a44e1.json ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--a3bf3520-5f52-4328-971d-a978a4de3dc0",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "This type of operating system probe attempts to determine an estimate for how predictable the sequence number generation algorithm is for a remote host. Statistical techniques, such as standard deviation, can be used to determine how predictable the sequence number generation is for a system. This result can then be compared to a database of operating system behaviors to determine a likely match for operating system and version.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-324",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/324.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-200",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/200.html"
18
+ },
19
+ {
20
+ "description": "Stuart McClure, Joel Scambray, George Kurtz, Hacking Exposed: Network Security Secrets & Solutions (6th Edition), 2009, McGraw Hill",
21
+ "external_id": "REF-33",
22
+ "source_name": "reference_from_CAPEC"
23
+ },
24
+ {
25
+ "description": "Defense Advanced Research Projects Agency Information Processing Techniques Office, Information Sciences Institute University of Southern California, RFC793 - Transmission Control Protocol, 1981--09, Defense Advanced Research Projects Agency (DARPA)",
26
+ "external_id": "REF-128",
27
+ "source_name": "reference_from_CAPEC",
28
+ "url": "http://www.faqs.org/rfcs/rfc793.html"
29
+ },
30
+ {
31
+ "description": "Gordon \"Fyodor\" Lyon, Nmap Network Scanning: The Official Nmap Project Guide to Network Discovery and Security Scanning (3rd \"Zero Day\" Edition,), 2008, Insecure.com LLC",
32
+ "external_id": "REF-212",
33
+ "source_name": "reference_from_CAPEC"
34
+ },
35
+ {
36
+ "description": "Gordon \"Fyodor\" Lyon, The Art of Port Scanning (Volume: 7, Issue. 51), Phrack Magazine, 1997",
37
+ "external_id": "REF-130",
38
+ "source_name": "reference_from_CAPEC",
39
+ "url": "http://phrack.org/issues/51/11.html"
40
+ }
41
+ ],
42
+ "id": "attack-pattern--12d80b47-8e4c-4646-bcc3-2bd7059a44e1",
43
+ "modified": "2018-07-31T00:00:00.000Z",
44
+ "name": "TCP (ISN) Sequence Predictability Probe",
45
+ "object_marking_refs": [
46
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
47
+ ],
48
+ "type": "attack-pattern",
49
+ "x_capec_abstraction": "Detailed",
50
+ "x_capec_child_of_refs": [
51
+ "attack-pattern--6227a1fc-7504-4a5f-b5b2-4c4f1fe38617"
52
+ ],
53
+ "x_capec_consequences": {
54
+ "Access_Control": [
55
+ "Bypass Protection Mechanism",
56
+ "Hide Activities"
57
+ ],
58
+ "Authorization": [
59
+ "Bypass Protection Mechanism",
60
+ "Hide Activities"
61
+ ],
62
+ "Confidentiality": [
63
+ "Read Data",
64
+ "Bypass Protection Mechanism",
65
+ "Hide Activities"
66
+ ]
67
+ },
68
+ "x_capec_domains": [
69
+ "Software"
70
+ ],
71
+ "x_capec_likelihood_of_attack": "Medium",
72
+ "x_capec_prerequisites": [
73
+ "The ability to monitor and interact with network communications.Access to at least one host, and the privileges to interface with the network interface card."
74
+ ],
75
+ "x_capec_resources_required": [
76
+ "A tool capable of sending and receiving packets from a remote system."
77
+ ],
78
+ "x_capec_status": "Stable",
79
+ "x_capec_typical_severity": "Low",
80
+ "x_capec_version": "3.9"
81
+ }
82
+ ],
83
+ "spec_version": "2.0",
84
+ "type": "bundle"
85
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--12de9227-495b-49b2-859f-334a20197ba3.json ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--bd4bd57c-622a-4776-8dee-6cf204fcd9de",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary exploits weaknesses in input validation by manipulating resource identifiers enabling the unintended modification or specification of a resource.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-240",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/240.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-99",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/99.html"
18
+ },
19
+ {
20
+ "description": "Resource Injection",
21
+ "source_name": "OWASP Attacks",
22
+ "url": "https://owasp.org/www-community/attacks/Resource_Injection"
23
+ }
24
+ ],
25
+ "id": "attack-pattern--12de9227-495b-49b2-859f-334a20197ba3",
26
+ "modified": "2020-12-17T00:00:00.000Z",
27
+ "name": "Resource Injection",
28
+ "object_marking_refs": [
29
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
30
+ ],
31
+ "type": "attack-pattern",
32
+ "x_capec_abstraction": "Meta",
33
+ "x_capec_consequences": {
34
+ "Confidentiality": [
35
+ "Read Data"
36
+ ],
37
+ "Integrity": [
38
+ "Modify Data"
39
+ ]
40
+ },
41
+ "x_capec_domains": [
42
+ "Communications",
43
+ "Software"
44
+ ],
45
+ "x_capec_likelihood_of_attack": "High",
46
+ "x_capec_parent_of_refs": [
47
+ "attack-pattern--b5cd5231-d7ef-4366-b713-a44d3f1134b4"
48
+ ],
49
+ "x_capec_prerequisites": [
50
+ "The target application allows the user to both specify the identifier used to access a system resource. Through this permission, the user gains the capability to perform actions on that resource (e.g., overwrite the file)"
51
+ ],
52
+ "x_capec_status": "Stable",
53
+ "x_capec_typical_severity": "High",
54
+ "x_capec_version": "3.9"
55
+ }
56
+ ],
57
+ "spec_version": "2.0",
58
+ "type": "bundle"
59
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--1339dbbe-fe41-467a-b43c-7d56d22a9fe4.json ADDED
@@ -0,0 +1,65 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--f5965262-a64c-465b-8d62-96b3d3ad1008",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker modifies a technology, product, or component during a stage in its manufacture for the purpose of carrying out an attack against some entity involved in the supply chain lifecycle. There are an almost limitless number of ways an attacker can modify a technology when they are involved in its manufacture, as the attacker has potential inroads to the software composition, hardware design and assembly, firmware, or basic design mechanics. Additionally, manufacturing of key components is often outsourced with the final product assembled by the primary manufacturer. The greatest risk, however, is deliberate manipulation of design specifications to produce malicious hardware or devices. There are billions of transistors in a single integrated circuit and studies have shown that fewer than 10 transistors are required to create malicious functionality.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-438",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/438.html"
13
+ },
14
+ {
15
+ "description": "Supply Chain Compromise",
16
+ "external_id": "T1195",
17
+ "source_name": "ATTACK",
18
+ "url": "https://attack.mitre.org/wiki/Technique/T1195"
19
+ },
20
+ {
21
+ "description": "Jon Boyens, Angela Smith, Nadya Bartol, Kris Winkler, Alex Holbrook, Matthew Fallon, Cybersecurity Supply Chain Risk Management Practices for Systems and Organizations (2nd Draft), 2021--10---28, National Institute of Standards and Technology (NIST)",
22
+ "external_id": "REF-379",
23
+ "source_name": "reference_from_CAPEC",
24
+ "url": "https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-161r1-draft2.pdf"
25
+ },
26
+ {
27
+ "description": "Marcus Sachs, Supply Chain Attacks: Can We Secure Information Technology Supply Chain in the Age of Globalization, Verizon, Inc.",
28
+ "external_id": "REF-380",
29
+ "source_name": "reference_from_CAPEC"
30
+ },
31
+ {
32
+ "description": "Thea Reilkoff, Hardware Trojans: A Novel Attack Meets a New Defense, 2010, Yale School of Engineering and Applied Science",
33
+ "external_id": "REF-381",
34
+ "source_name": "reference_from_CAPEC"
35
+ },
36
+ {
37
+ "description": "Marianne Swanson, Nadya Bartol, Rama Moorthy, Piloting Supply Chain Risk Management Practices for Federal Information Systems (Draft NISTIR 7622), 2010, National Institute of Standards and Technology",
38
+ "external_id": "REF-382",
39
+ "source_name": "reference_from_CAPEC"
40
+ }
41
+ ],
42
+ "id": "attack-pattern--1339dbbe-fe41-467a-b43c-7d56d22a9fe4",
43
+ "modified": "2021-06-24T00:00:00.000Z",
44
+ "name": "Modification During Manufacture",
45
+ "object_marking_refs": [
46
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
47
+ ],
48
+ "type": "attack-pattern",
49
+ "x_capec_abstraction": "Meta",
50
+ "x_capec_domains": [
51
+ "Supply Chain",
52
+ "Software",
53
+ "Hardware"
54
+ ],
55
+ "x_capec_parent_of_refs": [
56
+ "attack-pattern--efb74200-657d-438c-aaff-bbd9644dd72d",
57
+ "attack-pattern--cf550376-63ac-4b46-87d1-0e324c1c1c46"
58
+ ],
59
+ "x_capec_status": "Draft",
60
+ "x_capec_version": "3.9"
61
+ }
62
+ ],
63
+ "spec_version": "2.0",
64
+ "type": "bundle"
65
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--13b94aaa-9c95-487c-ad68-8c29d8ac0068.json ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--5689cc74-34df-4969-a05e-a8873b3fbae5",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An adversary installs or adds malicious logic (also known as malware) into a seemingly benign component of a fielded system. This logic is often hidden from the user of the system and works behind the scenes to achieve negative impacts. With the proliferation of mass digital storage and inexpensive multimedia devices, Bluetooth and 802.11 support, new attack vectors for spreading malware are emerging for things we once thought of as innocuous greeting cards, picture frames, or digital projectors. This pattern of attack focuses on systems already fielded and used in operation as opposed to systems and their components that are still under development and part of the supply chain.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-441",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/441.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-284",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/284.html"
18
+ }
19
+ ],
20
+ "id": "attack-pattern--13b94aaa-9c95-487c-ad68-8c29d8ac0068",
21
+ "modified": "2018-07-31T00:00:00.000Z",
22
+ "name": "Malicious Logic Insertion",
23
+ "object_marking_refs": [
24
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
25
+ ],
26
+ "type": "attack-pattern",
27
+ "x_capec_abstraction": "Meta",
28
+ "x_capec_consequences": {
29
+ "Authorization": [
30
+ "Execute Unauthorized Commands"
31
+ ]
32
+ },
33
+ "x_capec_domains": [
34
+ "Software",
35
+ "Hardware"
36
+ ],
37
+ "x_capec_likelihood_of_attack": "Medium",
38
+ "x_capec_parent_of_refs": [
39
+ "attack-pattern--66112136-aa17-4300-aef8-d7a42ebc6e38",
40
+ "attack-pattern--4cfba0b3-4740-49ae-bbb4-2dad27886239",
41
+ "attack-pattern--dc05cb9b-00ae-4fd0-8743-b1fb507ea1d3"
42
+ ],
43
+ "x_capec_prerequisites": [
44
+ "Access to the component currently deployed at a victim location."
45
+ ],
46
+ "x_capec_status": "Stable",
47
+ "x_capec_typical_severity": "High",
48
+ "x_capec_version": "3.9"
49
+ }
50
+ ],
51
+ "spec_version": "2.0",
52
+ "type": "bundle"
53
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--13d1d169-0023-41e2-952f-7d794844733b.json ADDED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--99c9f361-5e1c-43cb-a352-53633f050e9b",
3
+ "objects": [
4
+ {
5
+ "created": "2014-06-23T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "An attacker modifies the HTTP Verb (e.g. GET, PUT, TRACE, etc.) in order to bypass access restrictions. Some web environments allow administrators to restrict access based on the HTTP Verb used with requests. However, attackers can often provide a different HTTP Verb, or even provide a random string as a verb in order to bypass these protections. This allows the attacker to access data that should otherwise be protected.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-274",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/274.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-302",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/302.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-654",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/654.html"
23
+ },
24
+ {
25
+ "description": "Arshan Dabirsiaghi, Bypassing Web Authentication and Authorization with HTTP Verb Tampering: How to inadvertently allow attackers full access to your web application, Aspect Security",
26
+ "external_id": "REF-118",
27
+ "source_name": "reference_from_CAPEC",
28
+ "url": "http://mirror.transact.net.au/sourceforge/w/project/wa/waspap/waspap/Core/Bypassing_VBAAC_with_HTTP_Verb_Tampering.pdf"
29
+ }
30
+ ],
31
+ "id": "attack-pattern--13d1d169-0023-41e2-952f-7d794844733b",
32
+ "modified": "2019-09-30T00:00:00.000Z",
33
+ "name": "HTTP Verb Tampering",
34
+ "object_marking_refs": [
35
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
36
+ ],
37
+ "type": "attack-pattern",
38
+ "x_capec_abstraction": "Detailed",
39
+ "x_capec_child_of_refs": [
40
+ "attack-pattern--9c983530-1927-43ca-addd-63d149cda4a7"
41
+ ],
42
+ "x_capec_domains": [
43
+ "Software"
44
+ ],
45
+ "x_capec_prerequisites": [
46
+ "The targeted system must attempt to filter access based on the HTTP verb used in requests."
47
+ ],
48
+ "x_capec_resources_required": [
49
+ "The attacker requires a tool that allows them to manually control the HTTP verb used to send messages to the targeted server."
50
+ ],
51
+ "x_capec_status": "Draft",
52
+ "x_capec_typical_severity": "Medium",
53
+ "x_capec_version": "3.9"
54
+ }
55
+ ],
56
+ "spec_version": "2.0",
57
+ "type": "bundle"
58
+ }
cti-ATT-CK-v13.1/capec/2.0/attack-pattern/attack-pattern--13e147c3-7baa-4ec4-aafd-9135d46545cc.json ADDED
@@ -0,0 +1,51 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "id": "bundle--10793f96-eabc-406f-85f1-25ea3bd8a085",
3
+ "objects": [
4
+ {
5
+ "created": "2015-11-09T00:00:00.000Z",
6
+ "created_by_ref": "identity--e50ab59c-5c4f-4d40-bf6a-d58418d89bcd",
7
+ "description": "When an operating system starts, it also starts programs called services or daemons. Modifying existing services may break existing services or may enable services that are disabled/not commonly used.",
8
+ "external_references": [
9
+ {
10
+ "external_id": "CAPEC-551",
11
+ "source_name": "capec",
12
+ "url": "https://capec.mitre.org/data/definitions/551.html"
13
+ },
14
+ {
15
+ "external_id": "CWE-284",
16
+ "source_name": "cwe",
17
+ "url": "http://cwe.mitre.org/data/definitions/284.html"
18
+ },
19
+ {
20
+ "external_id": "CWE-522",
21
+ "source_name": "cwe",
22
+ "url": "http://cwe.mitre.org/data/definitions/522.html"
23
+ },
24
+ {
25
+ "description": "Create or Modify System Process",
26
+ "external_id": "T1543",
27
+ "source_name": "ATTACK",
28
+ "url": "https://attack.mitre.org/wiki/Technique/T1543"
29
+ }
30
+ ],
31
+ "id": "attack-pattern--13e147c3-7baa-4ec4-aafd-9135d46545cc",
32
+ "modified": "2022-09-29T00:00:00.000Z",
33
+ "name": "Modify Existing Service",
34
+ "object_marking_refs": [
35
+ "marking-definition--17d82bb2-eeeb-4898-bda5-3ddbcd2b799d"
36
+ ],
37
+ "type": "attack-pattern",
38
+ "x_capec_abstraction": "Detailed",
39
+ "x_capec_child_of_refs": [
40
+ "attack-pattern--482cb9fc-0122-49f0-b6df-6d2d42098b0a"
41
+ ],
42
+ "x_capec_domains": [
43
+ "Software"
44
+ ],
45
+ "x_capec_status": "Draft",
46
+ "x_capec_version": "3.9"
47
+ }
48
+ ],
49
+ "spec_version": "2.0",
50
+ "type": "bundle"
51
+ }