txt2stix 1.1.2__tar.gz → 1.1.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. {txt2stix-1.1.2 → txt2stix-1.1.3}/.github/workflows/run-tests.yml +1 -0
  2. {txt2stix-1.1.2 → txt2stix-1.1.3}/PKG-INFO +1 -1
  3. {txt2stix-1.1.2 → txt2stix-1.1.3}/docs/stix-mapping.md +22 -22
  4. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/extractions/ai/config.yaml +8 -8
  5. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/extractions/pattern/config.yaml +14 -14
  6. {txt2stix-1.1.2 → txt2stix-1.1.3}/pyproject.toml +1 -1
  7. {txt2stix-1.1.2 → txt2stix-1.1.3}/requirements.txt +1 -1
  8. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_attack_flow.py +1 -3
  9. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_bundler.py +124 -36
  10. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_indicator.py +41 -29
  11. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/attack_flow.py +1 -3
  12. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/bundler.py +58 -26
  13. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/indicator.py +47 -32
  14. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/discover_card_extractor.py +1 -1
  15. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/retriever.py +8 -2
  16. {txt2stix-1.1.2 → txt2stix-1.1.3}/.env.example +0 -0
  17. {txt2stix-1.1.2 → txt2stix-1.1.3}/.env.markdown +0 -0
  18. {txt2stix-1.1.2 → txt2stix-1.1.3}/.github/workflows/create-release.yml +0 -0
  19. {txt2stix-1.1.2 → txt2stix-1.1.3}/.gitignore +0 -0
  20. {txt2stix-1.1.2 → txt2stix-1.1.3}/LICENSE +0 -0
  21. {txt2stix-1.1.2 → txt2stix-1.1.3}/README.md +0 -0
  22. {txt2stix-1.1.2 → txt2stix-1.1.3}/docs/README.md +0 -0
  23. {txt2stix-1.1.2 → txt2stix-1.1.3}/docs/txt2stix.png +0 -0
  24. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/__init__.py +0 -0
  25. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/extractions/lookup/config.yaml +0 -0
  26. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/helpers/mimetype_filename_extension_list.csv +0 -0
  27. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/helpers/stix_relationship_types.txt +0 -0
  28. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/helpers/tlds.txt +0 -0
  29. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/helpers/windows_registry_key_prefix.txt +0 -0
  30. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/_README.md +0 -0
  31. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/_generate_lookups.py +0 -0
  32. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/attack_pattern.txt +0 -0
  33. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/campaign.txt +0 -0
  34. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/country_iso3166_alpha2.txt +0 -0
  35. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/course_of_action.txt +0 -0
  36. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/disarm_id_v1_5.txt +0 -0
  37. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/disarm_name_v1_5.txt +0 -0
  38. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/extensions.txt +0 -0
  39. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/identity.txt +0 -0
  40. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/infrastructure.txt +0 -0
  41. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/intrusion_set.txt +0 -0
  42. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/malware.txt +0 -0
  43. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_atlas_id_v4_5_2.txt +0 -0
  44. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_atlas_name_v4_5_2.txt +0 -0
  45. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_enterprise_aliases_v16_0.txt +0 -0
  46. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_enterprise_id_v16_0.txt +0 -0
  47. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_enterprise_name_v16_0.txt +0 -0
  48. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_ics_aliases_v16_0.txt +0 -0
  49. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_ics_id_v16_0.txt +0 -0
  50. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_ics_name_v16_0.txt +0 -0
  51. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_mobile_aliases_v16_0.txt +0 -0
  52. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_mobile_id_v16_0.txt +0 -0
  53. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_attack_mobile_name_v16_0.txt +0 -0
  54. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_capec_id_v3_9.txt +0 -0
  55. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_capec_name_v3_9.txt +0 -0
  56. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_cwe_id_v4_15.txt +0 -0
  57. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/mitre_cwe_name_v4_15.txt +0 -0
  58. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/threat_actor.txt +0 -0
  59. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/tld.txt +0 -0
  60. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/lookups/tool.txt +0 -0
  61. {txt2stix-1.1.2 → txt2stix-1.1.3}/includes/tests/test_cases.yaml +0 -0
  62. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/README.md +0 -0
  63. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/ai_country.txt +0 -0
  64. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/ai_mitre_attack_enterprise.txt +0 -0
  65. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/ai_mitre_attack_ics.txt +0 -0
  66. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/ai_mitre_attack_mobile.txt +0 -0
  67. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/ai_mitre_capec.txt +0 -0
  68. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/ai_mitre_cwe.txt +0 -0
  69. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/all_cases.txt +0 -0
  70. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_autonomous_system_number.txt +0 -0
  71. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_all.txt +0 -0
  72. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_amex.txt +0 -0
  73. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_diners.txt +0 -0
  74. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_discover.txt +0 -0
  75. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_jcb.txt +0 -0
  76. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_mastercard.txt +0 -0
  77. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_union_pay.txt +0 -0
  78. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_bank_card_visa.txt +0 -0
  79. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_country_alpha2.txt +0 -0
  80. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cpe_uri.txt +0 -0
  81. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cryptocurrency_btc_transaction.txt +0 -0
  82. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cryptocurrency_btc_wallet.txt +0 -0
  83. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cryptocurrency_eth_transaction.txt +0 -0
  84. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cryptocurrency_eth_wallet.txt +0 -0
  85. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cryptocurrency_xmr_transaction.txt +0 -0
  86. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cryptocurrency_xmr_wallet.txt +0 -0
  87. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_cve_id.txt +0 -0
  88. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_directory_unix.txt +0 -0
  89. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_directory_unix_file.txt +0 -0
  90. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_directory_windows.txt +0 -0
  91. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_directory_windows_with_file.txt +0 -0
  92. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_disarm.txt +0 -0
  93. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_disarm_name.txt +0 -0
  94. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_domain_name_only.txt +0 -0
  95. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_domain_name_subdomain.txt +0 -0
  96. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_email_address.txt +0 -0
  97. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_hash_md5.txt +0 -0
  98. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_hash_sha_1.txt +0 -0
  99. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_hash_sha_224.txt +0 -0
  100. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_hash_sha_256.txt +0 -0
  101. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_hash_sha_384.txt +0 -0
  102. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_hash_sha_512.txt +0 -0
  103. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_file_name.txt +0 -0
  104. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_host_name.txt +0 -0
  105. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_host_name_file.txt +0 -0
  106. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_host_name_path.txt +0 -0
  107. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_host_name_subdomain.txt +0 -0
  108. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_host_name_url.txt +0 -0
  109. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_iban_number.txt +0 -0
  110. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_ipv4_address_cidr.txt +0 -0
  111. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_ipv4_address_only.txt +0 -0
  112. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_ipv4_address_port.txt +0 -0
  113. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_ipv6_address_cidr.txt +0 -0
  114. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_ipv6_address_only.txt +0 -0
  115. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_ipv6_address_port.txt +0 -0
  116. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mac_address.txt +0 -0
  117. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_atlas.txt +0 -0
  118. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_atlas_name.txt +0 -0
  119. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_enterprise.txt +0 -0
  120. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_enterprise_aliases.txt +0 -0
  121. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_enterprise_name.txt +0 -0
  122. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_ics.txt +0 -0
  123. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_ics_aliases.txt +0 -0
  124. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_ics_name.txt +0 -0
  125. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_mobile.txt +0 -0
  126. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_mobile_aliases.txt +0 -0
  127. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_attack_mobile_name.txt +0 -0
  128. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_capec.txt +0 -0
  129. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_capec_name.txt +0 -0
  130. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_cwe.txt +0 -0
  131. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_mitre_cwe_name.txt +0 -0
  132. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_phone_number.txt +0 -0
  133. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_url.txt +0 -0
  134. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_url_file.txt +0 -0
  135. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_url_path.txt +0 -0
  136. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_user_agent.txt +0 -0
  137. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/generic_windows_registry_key.txt +0 -0
  138. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_attack_pattern.txt +0 -0
  139. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_campaign.txt +0 -0
  140. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_course_of_action.txt +0 -0
  141. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_identity.txt +0 -0
  142. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_infrastructure.txt +0 -0
  143. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_intrusion_set.txt +0 -0
  144. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_malware.txt +0 -0
  145. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_threat_actor.txt +0 -0
  146. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/extraction_types/lookup_tool.txt +0 -0
  147. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/ai_index_position.txt +0 -0
  148. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/attack_flow_demo.txt +0 -0
  149. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/attack_navigator_demo.txt +0 -0
  150. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/bad_vulmatch_lookups.txt +0 -0
  151. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/basic_relationship.txt +0 -0
  152. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/char_length_too_long.txt +0 -0
  153. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/descriptive_for_ai_relationships_1.txt +0 -0
  154. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/disarm_demo.txt +0 -0
  155. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/embedded_img_ignore.txt +0 -0
  156. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/embedded_link_ignore.txt +0 -0
  157. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/ip1.txt +0 -0
  158. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/ip2.txt +0 -0
  159. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/known_whitelist_match.txt +0 -0
  160. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/mitre_attack_enterprise_ai_demo.txt +0 -0
  161. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/mitre_attack_enterprise_lookup_demo.txt +0 -0
  162. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/mixed_extractions.txt +0 -0
  163. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/not_security_content.txt +0 -0
  164. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/test_ai_hash_error_with_stix2_lib.txt +0 -0
  165. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/test_aliases.txt +0 -0
  166. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/test_extraction_boundary.txt +0 -0
  167. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/manually_generated_reports/test_extraction_escapes.txt +0 -0
  168. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/APT28-Center-of-Storm-2017.txt +0 -0
  169. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/Bitdefender-Labs-Report-X-creat6958-en-EN.txt +0 -0
  170. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/FireEyeAPT39.txt +0 -0
  171. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/France_CERT_APT31_Pakdoor_TLPWHITE.txt +0 -0
  172. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/Group-IB_Ransomware_Uncovered_whitepaper_eng.txt +0 -0
  173. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/JOINT_CSA_HUNTING_RU_INTEL_SNAKE_MALWARE_20230509.txt +0 -0
  174. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/TA22-0126-QAKBOT-analysis-TLP-GREEN.txt +0 -0
  175. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/dinners_card.txt +0 -0
  176. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/mandiant-apt1.txt +0 -0
  177. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/data/real_intel_reports/mykings_report_final.txt +0 -0
  178. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/manual-tests/cases-ai-relationships.md +0 -0
  179. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/manual-tests/cases-extraction-type-ai.md +0 -0
  180. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/manual-tests/cases-extraction-type-lookup.md +0 -0
  181. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/manual-tests/cases-extraction-type-pattern.md +0 -0
  182. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/manual-tests/cases-standard-tests.md +0 -0
  183. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/scripts/generate_simple_extraction_test_cases_txt_files.py +0 -0
  184. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/__init__.py +0 -0
  185. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_extractors.py +0 -0
  186. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_lookups.py +0 -0
  187. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_main.py +0 -0
  188. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_retriever.py +0 -0
  189. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_run_txt2stix.py +0 -0
  190. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/test_utils.py +0 -0
  191. {txt2stix-1.1.2 → txt2stix-1.1.3}/tests/src/utils.py +0 -0
  192. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/__init__.py +0 -0
  193. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/__init__.py +0 -0
  194. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/anthropic.py +0 -0
  195. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/base.py +0 -0
  196. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/deepseek.py +0 -0
  197. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/gemini.py +0 -0
  198. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/openai.py +0 -0
  199. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/openrouter.py +0 -0
  200. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/prompts.py +0 -0
  201. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/ai_extractor/utils.py +0 -0
  202. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/common.py +0 -0
  203. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/credential_checker.py +0 -0
  204. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/extractions.py +0 -0
  205. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/lookups.py +0 -0
  206. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/__init__.py +0 -0
  207. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/__init__.py +0 -0
  208. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/base_extractor.py +0 -0
  209. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/README.md +0 -0
  210. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/__init__.py +0 -0
  211. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/amex_card_extractor.py +0 -0
  212. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/diners_card_extractor.py +0 -0
  213. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/jcb_card_extractor.py +0 -0
  214. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/master_card_extractor.py +0 -0
  215. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/union_card_extractor.py +0 -0
  216. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/card/visa_card_extractor.py +0 -0
  217. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/crypto/__init__.py +0 -0
  218. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/crypto/btc_extractor.py +0 -0
  219. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/directory/__init__.py +0 -0
  220. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/directory/unix_directory_extractor.py +0 -0
  221. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/directory/unix_file_path_extractor.py +0 -0
  222. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/directory/windows_directory_path_extractor.py +0 -0
  223. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/directory/windows_file_path_extractor.py +0 -0
  224. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/domain/__init__.py +0 -0
  225. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/domain/domain_extractor.py +0 -0
  226. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/domain/hostname_extractor.py +0 -0
  227. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/domain/sub_domain_extractor.py +0 -0
  228. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/__init__.py +0 -0
  229. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/md5_extractor.py +0 -0
  230. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/sha1_extractor.py +0 -0
  231. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/sha224_extractor.py +0 -0
  232. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/sha2_256_exactor.py +0 -0
  233. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/sha2_512_exactor.py +0 -0
  234. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/sha3_256_exactor.py +0 -0
  235. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/hashes/sha3_512_exactor.py +0 -0
  236. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/helper.py +0 -0
  237. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/__init__.py +0 -0
  238. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/ipv4_cidr_extractor.py +0 -0
  239. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/ipv4_extractor.py +0 -0
  240. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/ipv4_port_extractor.py +0 -0
  241. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/ipv6_cidr_extractor.py +0 -0
  242. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/ipv6_extractor.py +0 -0
  243. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/ip/ipv6_port_extractor.py +0 -0
  244. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/__init__.py +0 -0
  245. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/asn_extractor.py +0 -0
  246. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/cpe_extractor.py +0 -0
  247. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/cve_extractor.py +0 -0
  248. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/email_extractor.py +0 -0
  249. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/filename_extractor.py +0 -0
  250. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/iban_extractor.py +0 -0
  251. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/mac_address_extractor.py +0 -0
  252. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/phonenumber_extractor.py +0 -0
  253. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/user_agent_extractor.py +0 -0
  254. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/others/windows_registry_key_extractor.py +0 -0
  255. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/url/__init__.py +0 -0
  256. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/url/url_extractor.py +0 -0
  257. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/url/url_file_extractor.py +0 -0
  258. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/pattern/extractors/url/url_path_extractor.py +0 -0
  259. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/stix.py +0 -0
  260. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/txt2stix.py +0 -0
  261. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix/utils.py +0 -0
  262. {txt2stix-1.1.2 → txt2stix-1.1.3}/txt2stix.py +0 -0
@@ -51,6 +51,7 @@ jobs:
51
51
  source .env;
52
52
  set +a;
53
53
  pip install -e .[tests]
54
+ pip install --force-reinstall https://github.com/muchdogesec/stix2extensions/archive/5258ee81355699b86c1e9ba670bf53fe3c37bcbc.zip
54
55
  pytest --cov --cov-branch --cov-report=xml --junitxml=junit.xml -o junit_family=legacy
55
56
 
56
57
  - name: Upload coverage reports to Codecov
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: txt2stix
3
- Version: 1.1.2
3
+ Version: 1.1.3
4
4
  Summary: txt2stix is a Python script that is designed to identify and extract IoCs and TTPs from text files, identify the relationships between them, convert them to STIX 2.1 objects, and output as a STIX 2.1 bundle.
5
5
  Project-URL: Homepage, https://github.com/muchdogesec/txt2stix
6
6
  Project-URL: Issues, https://github.com/muchdogesec/txt2stix/issues
@@ -871,7 +871,7 @@ Objects always created:
871
871
  ],
872
872
  "name": "User Agent: <EXTRACTED FULL USER AGENT STRING>",
873
873
  "pattern_type": "stix",
874
- "pattern": "[ user-agent:string = '<EXTRACTED FULL USER AGENT STRING>' ]",
874
+ "pattern": "[ user-agent:value = '<EXTRACTED FULL USER AGENT STRING>' ]",
875
875
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
876
876
  "object_marking_refs": [
877
877
  "marking-definition--<TLP LEVEL SET>",
@@ -895,7 +895,7 @@ Objects always created:
895
895
  "type": "user-agent",
896
896
  "spec_version": "2.1",
897
897
  "id": "user-agent--<GENERATED BY STIX2 LIBRARY>",
898
- "string": "<EXTRACTED FULL USER AGENT STRING>",
898
+ "value": "<EXTRACTED FULL USER AGENT STRING>",
899
899
  "extensions": {
900
900
  "extension-definition--7ca5afee-0e4e-5813-b643-de51538658cc" : {
901
901
  "extension_type" : "new-sco"
@@ -926,7 +926,7 @@ Objects always created:
926
926
  ],
927
927
  "name": "<CRYPTO TYPE> Wallet: <EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>",
928
928
  "pattern_type": "stix",
929
- "pattern": "[ cryptocurrency-wallet:address = '<EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>' ]",
929
+ "pattern": "[ cryptocurrency-wallet:value = '<EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>' ]",
930
930
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
931
931
  "object_marking_refs": [
932
932
  "marking-definition--<TLP LEVEL SET>",
@@ -945,7 +945,7 @@ Objects always created:
945
945
  }
946
946
  ```
947
947
 
948
- The `cryptocurrency-wallet` object is generated by [crypto2stix](https://github.com/muchdogesec/crypto2stix).
948
+ The `cryptocurrency-wallet` object is generated by [crypto2stix](https://github.com/muchdogesec/stix2extensions/blob/main/stix2extensions/tools/crypto2stix.py).
949
949
 
950
950
  The crypto2stix equivilant command is;
951
951
 
@@ -979,7 +979,7 @@ Objects always created:
979
979
  ],
980
980
  "name": "<CRYPTO TYPE> Wallet: <EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>",
981
981
  "pattern_type": "stix",
982
- "pattern": "[ cryptocurrency-wallet:address = '<EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>' ]",
982
+ "pattern": "[ cryptocurrency-wallet:value = '<EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>' ]",
983
983
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
984
984
  "object_marking_refs": [
985
985
  "marking-definition--<TLP LEVEL SET>",
@@ -998,7 +998,7 @@ Objects always created:
998
998
  }
999
999
  ```
1000
1000
 
1001
- The `cryptocurrency-transaction` object is generated by [crypto2stix](https://github.com/muchdogesec/crypto2stix).
1001
+ The `cryptocurrency-transaction` object is generated by [crypto2stix](https://github.com/muchdogesec/stix2extensions/blob/main/stix2extensions/tools/crypto2stix.py)
1002
1002
 
1003
1003
  The crypto2stix equivilant command is;
1004
1004
 
@@ -1032,7 +1032,7 @@ Objects always created:
1032
1032
  ],
1033
1033
  "name": "<CRYPTO TYPE> Transaction: <EXTRACTED TRANSACTION HASH>",
1034
1034
  "pattern_type": "stix",
1035
- "pattern": "[ cryptocurrency-transaction:hash = '<EXTRACTED CRYPTOCURRENCY HASH VALUE>' ]",
1035
+ "pattern": "[ cryptocurrency-transaction:value = '<EXTRACTED CRYPTOCURRENCY HASH VALUE>' ]",
1036
1036
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
1037
1037
  "object_marking_refs": [
1038
1038
  "marking-definition--<TLP LEVEL SET>",
@@ -1057,7 +1057,7 @@ Objects always created:
1057
1057
  "spec_version": "2.1",
1058
1058
  "id": "cryptocurrency-transaction--<UUIDV5>",
1059
1059
  "currency_symbol": "<EXTRACTED CRYPTOCURRENCY OBSERVABLE VALUE>",
1060
- "hash": "<EXTRACTED TRANSACTION HASH>",
1060
+ "value": "<EXTRACTED TRANSACTION HASH>",
1061
1061
  "timestamp": "2022-10-02T15:22:21Z",
1062
1062
  "extensions": {
1063
1063
  "extension-definition--151d042d-4dcf-5e44-843f-1024440318e5" : {
@@ -1067,7 +1067,7 @@ Objects always created:
1067
1067
  }
1068
1068
  ```
1069
1069
 
1070
- The `cryptocurrency-transaction` object is generated by [crypto2stix](https://github.com/muchdogesec/crypto2stix).
1070
+ The `cryptocurrency-transaction` object is generated by [crypto2stix](https://github.com/muchdogesec/stix2extensions/blob/main/stix2extensions/tools/crypto2stix.py)
1071
1071
 
1072
1072
  The crypto2stix equivilant command is;
1073
1073
 
@@ -1077,15 +1077,15 @@ python3 crypto2stix.py --transaction HASH
1077
1077
 
1078
1078
  This will also generate all `cryptocurrency-wallets` seen in the transaction.
1079
1079
 
1080
- ### stix-mapping: `bank-card`
1080
+ ### stix-mapping: `payment-card`
1081
1081
 
1082
1082
  Objects always created:
1083
1083
 
1084
1084
  * `indicator`
1085
- * `bank-card`
1086
- * `relationship` (`indicator` -> `bank-card`)
1087
- * `identity` (with `relationship` to `bank-card`) generated by creditcard2stix (is not always generated if lookup unsuccessful)
1088
- * `extension-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/bank-card.json
1085
+ * `payment-card`
1086
+ * `relationship` (`indicator` -> `payment-card`)
1087
+ * `identity` (with `relationship` to `payment-card`) generated by creditcard2stix (is not always generated if lookup unsuccessful)
1088
+ * `extension-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/payment-card.json
1089
1089
 
1090
1090
  ```json
1091
1091
  {
@@ -1100,7 +1100,7 @@ Objects always created:
1100
1100
  ],
1101
1101
  "name": "<CARD TYPE>: <EXTRACTED CREDIT CARD OBSERVABLE VALUE>",
1102
1102
  "pattern_type": "stix",
1103
- "pattern": "[ bank-card:number = '<EXTRACTED CREDIT CARD OBSERVABLE VALUE>' ]",
1103
+ "pattern": "[ payment-card:value = '<EXTRACTED CREDIT CARD OBSERVABLE VALUE>' ]",
1104
1104
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
1105
1105
  "object_marking_refs": [
1106
1106
  "marking-definition--<TLP LEVEL SET>",
@@ -1119,7 +1119,7 @@ Objects always created:
1119
1119
  }
1120
1120
  ```
1121
1121
 
1122
- The `bank-card` object is generated by [creditcard2stix](https://github.com/muchdogesec/creditcard2stix). This will require users to enter an `BIN_LIST_API_KEY` in the `.env` file.
1122
+ The `payment-card` object is generated by [creditcard2stix](https://github.com/muchdogesec/stix2extensions/blob/main/stix2extensions/tools/creditcard2stix.py). This will require users to enter an `BIN_LIST_API_KEY` and CTI Butler keys in the `.env` file.
1123
1123
 
1124
1124
  ### stix-mapping: `bank-account`
1125
1125
 
@@ -1127,7 +1127,7 @@ Objects always created:
1127
1127
 
1128
1128
  * `indicator`
1129
1129
  * `bank-account`
1130
- * `relationship` (`indicator` -> `bank-card`)
1130
+ * `relationship` (`indicator` -> `payment-card`)
1131
1131
  * `extension-definition`: https://raw.githubusercontent.com/muchdogesec/stix2extensions/main/extension-definitions/scos/bank-account.json
1132
1132
 
1133
1133
  ```json
@@ -1143,7 +1143,7 @@ Objects always created:
1143
1143
  ],
1144
1144
  "name": "Bank account: <EXTRACTED IBAN OBSERVABLE VALUE>",
1145
1145
  "pattern_type": "stix",
1146
- "pattern": "[ bank-account:iban_number = '<EXTRACTED IBAN OBSERVABLE VALUE>' ]",
1146
+ "pattern": "[ bank-account:iban = '<EXTRACTED IBAN OBSERVABLE VALUE>' ]",
1147
1147
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
1148
1148
  "object_marking_refs": [
1149
1149
  "marking-definition--<TLP LEVEL SET>",
@@ -1167,7 +1167,7 @@ Objects always created:
1167
1167
  "type": "bank-account",
1168
1168
  "spec_version": "2.1",
1169
1169
  "id": "bank-account--<UUIDV5>",
1170
- "iban_number": "<FULL IBAN NUMBER INCLUDING COUNTRY CODE>",
1170
+ "iban": "<FULL IBAN NUMBER INCLUDING COUNTRY CODE>",
1171
1171
  "extensions": {
1172
1172
  "extension-definition--f19f3291-6a84-5674-b311-d75a925d5bd9": {
1173
1173
  "extension_type" : "new-sco"
@@ -1179,7 +1179,7 @@ Objects always created:
1179
1179
  To ensure duplicate `bank-account` objects are not created for the same values, a UUIDv5 address is generated for the ID as follows;
1180
1180
 
1181
1181
  * Namespace = `00abedb4-aa42-466c-9c01-fed23315a9b7` (this is the default MITRE namespace used in the stix2 python lib https://github.com/oasis-open/cti-python-stix2/blob/50fd81fd6ba4f26824a864319305bc298e89bb45/stix2/base.py#L29)
1182
- * Value = `<iban_number>`
1182
+ * Value = `iban`
1183
1183
 
1184
1184
  ### stix-mapping: `phone-number`
1185
1185
 
@@ -1203,7 +1203,7 @@ Objects always created:
1203
1203
  ],
1204
1204
  "name": "Phone Number: <EXTRACTED PHONE OBSERVABLE VALUE>",
1205
1205
  "pattern_type": "stix",
1206
- "pattern": "[ phone-number:number = '<EXTRACTED PHONE OBSERVABLE VALUE>'",
1206
+ "pattern": "[ phone-number:value = '<EXTRACTED PHONE OBSERVABLE VALUE>'",
1207
1207
  "valid_from": "<REPORT CREATED PROPERTY VALUE>",
1208
1208
  "object_marking_refs": [
1209
1209
  "marking-definition--<TLP LEVEL SET>",
@@ -1227,7 +1227,7 @@ Objects always created:
1227
1227
  "type": "phone-number",
1228
1228
  "spec_version": "2.1",
1229
1229
  "id": "phone-number--<UUIDV5>",
1230
- "number": "<EXTRACTED PHONE OBSERVABLE VALUE>",
1230
+ "value": "<EXTRACTED PHONE OBSERVABLE VALUE>",
1231
1231
  "extensions": {
1232
1232
  "extension-definition--14a97ee2-e666-5ada-a6bd-b7177f79e211" : {
1233
1233
  "extension_type" : "new-sco"
@@ -622,7 +622,7 @@ ai_bank_card_all:
622
622
  prompt_helper: ''
623
623
  prompt_conversion: ''
624
624
  test_cases: generic_bank_card_mastercard
625
- stix_mapping: bank-card
625
+ stix_mapping: payment-card
626
626
 
627
627
  ai_bank_card_mastercard:
628
628
  type: ai
@@ -638,7 +638,7 @@ ai_bank_card_mastercard:
638
638
  prompt_helper: ''
639
639
  prompt_conversion: ''
640
640
  test_cases: generic_bank_card_mastercard
641
- stix_mapping: bank-card
641
+ stix_mapping: payment-card
642
642
 
643
643
  ai_bank_card_visa:
644
644
  type: ai
@@ -654,7 +654,7 @@ ai_bank_card_visa:
654
654
  prompt_helper: ''
655
655
  prompt_conversion: ''
656
656
  test_cases: generic_bank_card_visa
657
- stix_mapping: bank-card
657
+ stix_mapping: payment-card
658
658
 
659
659
  ai_bank_card_amex:
660
660
  type: ai
@@ -670,7 +670,7 @@ ai_bank_card_amex:
670
670
  prompt_helper: ''
671
671
  prompt_conversion: ''
672
672
  test_cases: generic_bank_card_amex
673
- stix_mapping: bank-card
673
+ stix_mapping: payment-card
674
674
 
675
675
  ai_bank_card_union_pay:
676
676
  type: ai
@@ -686,7 +686,7 @@ ai_bank_card_union_pay:
686
686
  prompt_helper: ''
687
687
  prompt_conversion: ''
688
688
  test_cases: generic_bank_card_union_pay
689
- stix_mapping: bank-card
689
+ stix_mapping: payment-card
690
690
 
691
691
  ai_bank_card_diners:
692
692
  type: ai
@@ -702,7 +702,7 @@ ai_bank_card_diners:
702
702
  prompt_helper: ''
703
703
  prompt_conversion: ''
704
704
  test_cases: generic_bank_card_diners
705
- stix_mapping: bank-card
705
+ stix_mapping: payment-card
706
706
 
707
707
  ai_bank_card_jcb:
708
708
  type: ai
@@ -718,7 +718,7 @@ ai_bank_card_jcb:
718
718
  prompt_helper: ''
719
719
  prompt_conversion: ''
720
720
  test_cases: generic_bank_card_jcb
721
- stix_mapping: bank-card
721
+ stix_mapping: payment-card
722
722
 
723
723
  ai_bank_card_discover:
724
724
  type: ai
@@ -734,7 +734,7 @@ ai_bank_card_discover:
734
734
  prompt_helper: ''
735
735
  prompt_conversion: ''
736
736
  test_cases: generic_bank_card_discover
737
- stix_mapping: bank-card
737
+ stix_mapping: payment-card
738
738
 
739
739
  ####### IBAN Extractions #######
740
740
 
@@ -491,92 +491,92 @@ pattern_bank_card_mastercard:
491
491
  type: pattern
492
492
  dogesec_web: true
493
493
  name: 'Bank Card Mastercard'
494
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
494
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
495
495
  notes: 'Also available: ai_bank_card_mastercard'
496
496
  created: 2020-01-01
497
497
  modified: 2020-01-01
498
498
  created_by: DOGESEC
499
499
  version: 1.0.0
500
500
  test_cases: generic_bank_card_mastercard
501
- stix_mapping: bank-card
501
+ stix_mapping: payment-card
502
502
 
503
503
  pattern_bank_card_visa:
504
504
  type: pattern
505
505
  dogesec_web: true
506
506
  name: 'Bank Card Visa'
507
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
507
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
508
508
  notes: 'Also available: ai_bank_card_visa'
509
509
  created: 2020-01-01
510
510
  modified: 2020-01-01
511
511
  created_by: DOGESEC
512
512
  version: 1.0.0
513
513
  test_cases: generic_bank_card_visa
514
- stix_mapping: bank-card
514
+ stix_mapping: payment-card
515
515
 
516
516
  pattern_bank_card_amex:
517
517
  type: pattern
518
518
  dogesec_web: true
519
519
  name: 'Bank Card American Express'
520
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
520
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
521
521
  notes: 'Also available: ai_bank_card_amex'
522
522
  created: 2020-01-01
523
523
  modified: 2020-01-01
524
524
  created_by: DOGESEC
525
525
  version: 1.0.0
526
526
  test_cases: generic_bank_card_amex
527
- stix_mapping: bank-card
527
+ stix_mapping: payment-card
528
528
 
529
529
  pattern_bank_card_union_pay:
530
530
  type: pattern
531
531
  dogesec_web: true
532
532
  name: 'Bank Card Union Pay'
533
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
533
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
534
534
  notes: 'Also available: ai_bank_card_union_pay'
535
535
  created: 2020-01-01
536
536
  modified: 2020-01-01
537
537
  created_by: DOGESEC
538
538
  version: 1.0.0
539
539
  test_cases: generic_bank_card_union_pay
540
- stix_mapping: bank-card
540
+ stix_mapping: payment-card
541
541
 
542
542
  pattern_bank_card_diners:
543
543
  type: pattern
544
544
  dogesec_web: true
545
545
  name: 'Bank Card Diners'
546
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
546
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
547
547
  notes: 'Also available: ai_bank_card_diners'
548
548
  created: 2020-01-01
549
549
  modified: 2020-01-01
550
550
  created_by: DOGESEC
551
551
  version: 1.0.0
552
552
  test_cases: generic_bank_card_diners
553
- stix_mapping: bank-card
553
+ stix_mapping: payment-card
554
554
 
555
555
  pattern_bank_card_jcb:
556
556
  type: pattern
557
557
  dogesec_web: true
558
558
  name: 'Bank Card JCB'
559
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
559
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
560
560
  notes: 'Also available: ai_bank_card_jcb'
561
561
  created: 2020-01-01
562
562
  modified: 2020-01-01
563
563
  created_by: DOGESEC
564
564
  version: 1.0.0
565
565
  test_cases: generic_bank_card_jcb
566
- stix_mapping: bank-card
566
+ stix_mapping: payment-card
567
567
 
568
568
  pattern_bank_card_discover:
569
569
  type: pattern
570
570
  dogesec_web: true
571
571
  name: 'Bank Card Discover'
572
- description: 'Will extract card numbers and create a bank-card object. Will also enrich card information if BIN List API key set'
572
+ description: 'Will extract card numbers and create a payment-card object. Will also enrich card information if BIN List API key set'
573
573
  notes: 'Also available: ai_bank_card_discover'
574
574
  created: 2020-01-01
575
575
  modified: 2020-01-01
576
576
  created_by: DOGESEC
577
577
  version: 1.0.0
578
578
  test_cases: generic_bank_card_discover
579
- stix_mapping: bank-card
579
+ stix_mapping: payment-card
580
580
 
581
581
  ####### IBAN Extractions #######
582
582
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "txt2stix"
7
- version = "1.1.2"
7
+ version = "1.1.3"
8
8
  authors = [{ name = "dogesec" }]
9
9
  maintainers = [{ name = "dogesec" }]
10
10
  description = "txt2stix is a Python script that is designed to identify and extract IoCs and TTPs from text files, identify the relationships between them, convert them to STIX 2.1 objects, and output as a STIX 2.1 bundle."
@@ -185,7 +185,7 @@ stix2==3.0.1
185
185
  # via stix2extensions
186
186
  stix2-patterns==2.0.0
187
187
  # via stix2
188
- stix2extensions==1.1.1
188
+ stix2extensions==1.2.0
189
189
  # via txt2stix (pyproject.toml)
190
190
  tenacity==9.1.2
191
191
  # via llama-index-core
@@ -1,7 +1,6 @@
1
1
  from types import SimpleNamespace
2
2
  import pytest
3
3
  from unittest.mock import MagicMock, patch
4
- from stix2extensions._extensions import attack_flow_ExtensionDefinitionSMO
5
4
 
6
5
  from txt2stix.ai_extractor.utils import AttackFlowList, AttackFlowItem
7
6
  from txt2stix.attack_flow import (
@@ -26,7 +25,6 @@ def test_parse_flow(dummy_report, dummy_objects, dummy_flow):
26
25
  "attack-pattern--1b22b676-9347-4c55-9a35-ef0dc653db5b",
27
26
  "x-mitre-tactic--298fe907-7931-4fd2-8131-2814dd493134",
28
27
  "attack-action--1fd63972-ef98-5da5-81f5-4090c7dfa585",
29
- "extension-definition--fb9c968a-745b-4ade-9b25-c324172197f4",
30
28
  "attack-pattern--1a80d097-54df-41d8-9d33-34e755ec5e72",
31
29
  "report--9c88fbcb-8c0d-4124-868b-3dcb1e9b696c",
32
30
  "attack-flow--bb21585c-5f82-55cf-b73d-89b5217ef092",
@@ -790,7 +788,7 @@ def dummy_report():
790
788
  "marking-definition--e828b379-4e03-4974-9ac4-e53a884c97c1",
791
789
  "marking-definition--f92e15d9-6afc-5ae2-bb3e-85a1fd83a3b5",
792
790
  ],
793
- "object_refs": [attack_flow_ExtensionDefinitionSMO.id],
791
+ "object_refs": ["identity--e828b379-4e03-4974-9ac4-e53a884c97c1"],
794
792
  "published": "2025-03-10T15:06:34.423036Z",
795
793
  "spec_version": "2.1",
796
794
  "type": "report",