metasploit-model 0.28.0-java → 0.29.0-java

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 (206) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -1
  3. data/config/locales/en.yml +0 -171
  4. data/lib/metasploit/model.rb +0 -2
  5. data/lib/metasploit/model/spec.rb +0 -130
  6. data/lib/metasploit/model/version.rb +1 -1
  7. data/spec/support/shared/examples/metasploit/model/search/operator/help.rb +4 -6
  8. data/spec/support/shared/examples/metasploit/model/translation.rb +1 -1
  9. data/spec/support/shared/examples/search_association.rb +1 -1
  10. data/spec/support/shared/examples/search_with.rb +4 -2
  11. metadata +2 -348
  12. data/app/models/metasploit/model/module/ancestor/spec/template.rb +0 -125
  13. data/app/models/metasploit/model/module/class/spec/template.rb +0 -92
  14. data/app/models/metasploit/model/module/instance/spec/template.rb +0 -97
  15. data/app/models/metasploit/model/spec/template.rb +0 -277
  16. data/app/validators/derivation_validator.rb +0 -17
  17. data/app/validators/dynamic_length_validator.rb +0 -45
  18. data/lib/metasploit/model/architecture.rb +0 -342
  19. data/lib/metasploit/model/author.rb +0 -54
  20. data/lib/metasploit/model/authority.rb +0 -141
  21. data/lib/metasploit/model/authority/bid.rb +0 -10
  22. data/lib/metasploit/model/authority/cve.rb +0 -10
  23. data/lib/metasploit/model/authority/msb.rb +0 -10
  24. data/lib/metasploit/model/authority/osvdb.rb +0 -10
  25. data/lib/metasploit/model/authority/pmasa.rb +0 -10
  26. data/lib/metasploit/model/authority/secunia.rb +0 -10
  27. data/lib/metasploit/model/authority/us_cert_vu.rb +0 -10
  28. data/lib/metasploit/model/authority/waraxe.rb +0 -31
  29. data/lib/metasploit/model/authority/zdi.rb +0 -10
  30. data/lib/metasploit/model/derivation.rb +0 -109
  31. data/lib/metasploit/model/derivation/full_name.rb +0 -19
  32. data/lib/metasploit/model/email_address.rb +0 -124
  33. data/lib/metasploit/model/module.rb +0 -20
  34. data/lib/metasploit/model/module/action.rb +0 -52
  35. data/lib/metasploit/model/module/ancestor.rb +0 -491
  36. data/lib/metasploit/model/module/ancestor/spec.rb +0 -6
  37. data/lib/metasploit/model/module/architecture.rb +0 -34
  38. data/lib/metasploit/model/module/author.rb +0 -40
  39. data/lib/metasploit/model/module/class.rb +0 -403
  40. data/lib/metasploit/model/module/class/spec.rb +0 -6
  41. data/lib/metasploit/model/module/handler.rb +0 -29
  42. data/lib/metasploit/model/module/instance.rb +0 -622
  43. data/lib/metasploit/model/module/instance/spec.rb +0 -6
  44. data/lib/metasploit/model/module/path.rb +0 -159
  45. data/lib/metasploit/model/module/platform.rb +0 -32
  46. data/lib/metasploit/model/module/rank.rb +0 -85
  47. data/lib/metasploit/model/module/reference.rb +0 -32
  48. data/lib/metasploit/model/module/stance.rb +0 -16
  49. data/lib/metasploit/model/module/target.rb +0 -78
  50. data/lib/metasploit/model/module/target/architecture.rb +0 -34
  51. data/lib/metasploit/model/module/target/platform.rb +0 -34
  52. data/lib/metasploit/model/module/type.rb +0 -38
  53. data/lib/metasploit/model/platform.rb +0 -246
  54. data/lib/metasploit/model/real_pathname.rb +0 -16
  55. data/lib/metasploit/model/reference.rb +0 -104
  56. data/spec/app/models/metasploit/model/module/ancestor/spec/template_spec.rb +0 -174
  57. data/spec/app/models/metasploit/model/module/class/spec/template_spec.rb +0 -222
  58. data/spec/app/models/metasploit/model/module/instance/spec/template_spec.rb +0 -201
  59. data/spec/app/models/metasploit/model/search/operator/deprecated/app_spec.rb +0 -62
  60. data/spec/app/models/metasploit/model/search/operator/deprecated/author_spec.rb +0 -197
  61. data/spec/app/models/metasploit/model/search/operator/deprecated/authority_spec.rb +0 -135
  62. data/spec/app/models/metasploit/model/search/operator/deprecated/platform_spec.rb +0 -124
  63. data/spec/app/models/metasploit/model/search/operator/deprecated/ref_spec.rb +0 -387
  64. data/spec/app/models/metasploit/model/search/operator/deprecated/text_spec.rb +0 -399
  65. data/spec/app/models/metasploit/model/spec/template_spec.rb +0 -23
  66. data/spec/app/validators/derivation_validator_spec.rb +0 -92
  67. data/spec/app/validators/dynamic_length_validator_spec.rb +0 -293
  68. data/spec/dummy/app/models/dummy/architecture.rb +0 -92
  69. data/spec/dummy/app/models/dummy/author.rb +0 -15
  70. data/spec/dummy/app/models/dummy/authority.rb +0 -130
  71. data/spec/dummy/app/models/dummy/email_address.rb +0 -27
  72. data/spec/dummy/app/models/dummy/module/action.rb +0 -25
  73. data/spec/dummy/app/models/dummy/module/ancestor.rb +0 -67
  74. data/spec/dummy/app/models/dummy/module/architecture.rb +0 -19
  75. data/spec/dummy/app/models/dummy/module/author.rb +0 -28
  76. data/spec/dummy/app/models/dummy/module/class.rb +0 -69
  77. data/spec/dummy/app/models/dummy/module/instance.rb +0 -209
  78. data/spec/dummy/app/models/dummy/module/path.rb +0 -64
  79. data/spec/dummy/app/models/dummy/module/platform.rb +0 -19
  80. data/spec/dummy/app/models/dummy/module/rank.rb +0 -44
  81. data/spec/dummy/app/models/dummy/module/reference.rb +0 -19
  82. data/spec/dummy/app/models/dummy/module/target.rb +0 -62
  83. data/spec/dummy/app/models/dummy/module/target/architecture.rb +0 -19
  84. data/spec/dummy/app/models/dummy/module/target/platform.rb +0 -19
  85. data/spec/dummy/app/models/dummy/platform.rb +0 -58
  86. data/spec/dummy/app/models/dummy/reference.rb +0 -31
  87. data/spec/dummy/spec/factories/dummy/architectures.rb +0 -13
  88. data/spec/dummy/spec/factories/dummy/authorities.rb +0 -32
  89. data/spec/dummy/spec/factories/dummy/authors.rb +0 -8
  90. data/spec/dummy/spec/factories/dummy/email_addresses.rb +0 -8
  91. data/spec/dummy/spec/factories/dummy/module/actions.rb +0 -13
  92. data/spec/dummy/spec/factories/dummy/module/ancestors.rb +0 -45
  93. data/spec/dummy/spec/factories/dummy/module/architectures.rb +0 -35
  94. data/spec/dummy/spec/factories/dummy/module/authors.rb +0 -10
  95. data/spec/dummy/spec/factories/dummy/module/classes.rb +0 -40
  96. data/spec/dummy/spec/factories/dummy/module/instances.rb +0 -86
  97. data/spec/dummy/spec/factories/dummy/module/paths.rb +0 -16
  98. data/spec/dummy/spec/factories/dummy/module/platforms.rb +0 -35
  99. data/spec/dummy/spec/factories/dummy/module/ranks.rb +0 -14
  100. data/spec/dummy/spec/factories/dummy/module/references.rb +0 -17
  101. data/spec/dummy/spec/factories/dummy/module/target/architectures.rb +0 -40
  102. data/spec/dummy/spec/factories/dummy/module/target/platforms.rb +0 -41
  103. data/spec/dummy/spec/factories/dummy/module/targets.rb +0 -46
  104. data/spec/dummy/spec/factories/dummy/platforms.rb +0 -3
  105. data/spec/dummy/spec/factories/dummy/references.rb +0 -26
  106. data/spec/factories/metasploit/model/architectures.rb +0 -6
  107. data/spec/factories/metasploit/model/authorities.rb +0 -28
  108. data/spec/factories/metasploit/model/authors.rb +0 -9
  109. data/spec/factories/metasploit/model/email_addresses.rb +0 -14
  110. data/spec/factories/metasploit/model/module/actions.rb +0 -9
  111. data/spec/factories/metasploit/model/module/ancestors.rb +0 -180
  112. data/spec/factories/metasploit/model/module/architectures.rb +0 -15
  113. data/spec/factories/metasploit/model/module/classes.rb +0 -47
  114. data/spec/factories/metasploit/model/module/handlers.rb +0 -3
  115. data/spec/factories/metasploit/model/module/instances.rb +0 -83
  116. data/spec/factories/metasploit/model/module/paths.rb +0 -51
  117. data/spec/factories/metasploit/model/module/platforms.rb +0 -15
  118. data/spec/factories/metasploit/model/module/ranks.rb +0 -9
  119. data/spec/factories/metasploit/model/module/references.rb +0 -11
  120. data/spec/factories/metasploit/model/module/stances.rb +0 -3
  121. data/spec/factories/metasploit/model/module/targets.rb +0 -22
  122. data/spec/factories/metasploit/model/module/types.rb +0 -5
  123. data/spec/factories/metasploit/model/references.rb +0 -88
  124. data/spec/lib/metasploit/model/architecture_spec.rb +0 -52
  125. data/spec/lib/metasploit/model/author_spec.rb +0 -6
  126. data/spec/lib/metasploit/model/authority/bid_spec.rb +0 -17
  127. data/spec/lib/metasploit/model/authority/cve_spec.rb +0 -17
  128. data/spec/lib/metasploit/model/authority/msb_spec.rb +0 -17
  129. data/spec/lib/metasploit/model/authority/osvdb_spec.rb +0 -17
  130. data/spec/lib/metasploit/model/authority/pmasa_spec.rb +0 -17
  131. data/spec/lib/metasploit/model/authority/secunia_spec.rb +0 -17
  132. data/spec/lib/metasploit/model/authority/us_cert_vu_spec.rb +0 -17
  133. data/spec/lib/metasploit/model/authority/waraxe_spec.rb +0 -51
  134. data/spec/lib/metasploit/model/authority/zdi_spec.rb +0 -21
  135. data/spec/lib/metasploit/model/authority_spec.rb +0 -10
  136. data/spec/lib/metasploit/model/derivation/full_name_spec.rb +0 -75
  137. data/spec/lib/metasploit/model/derivation_spec.rb +0 -217
  138. data/spec/lib/metasploit/model/email_address_spec.rb +0 -19
  139. data/spec/lib/metasploit/model/module/action_spec.rb +0 -6
  140. data/spec/lib/metasploit/model/module/ancestor_spec.rb +0 -6
  141. data/spec/lib/metasploit/model/module/architecture_spec.rb +0 -9
  142. data/spec/lib/metasploit/model/module/author_spec.rb +0 -6
  143. data/spec/lib/metasploit/model/module/class_spec.rb +0 -19
  144. data/spec/lib/metasploit/model/module/handler_spec.rb +0 -61
  145. data/spec/lib/metasploit/model/module/instance_spec.rb +0 -183
  146. data/spec/lib/metasploit/model/module/path_spec.rb +0 -6
  147. data/spec/lib/metasploit/model/module/platform_spec.rb +0 -9
  148. data/spec/lib/metasploit/model/module/rank_spec.rb +0 -29
  149. data/spec/lib/metasploit/model/module/reference_spec.rb +0 -9
  150. data/spec/lib/metasploit/model/module/stance_spec.rb +0 -30
  151. data/spec/lib/metasploit/model/module/target/architecture_spec.rb +0 -9
  152. data/spec/lib/metasploit/model/module/target/platform_spec.rb +0 -9
  153. data/spec/lib/metasploit/model/module/target_spec.rb +0 -9
  154. data/spec/lib/metasploit/model/module/type_spec.rb +0 -125
  155. data/spec/lib/metasploit/model/platform_spec.rb +0 -100
  156. data/spec/lib/metasploit/model/reference_spec.rb +0 -21
  157. data/spec/support/shared/contexts/metasploit/model/module/ancestor/contents/metasploit_module.rb +0 -12
  158. data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents.rb +0 -10
  159. data/spec/support/shared/contexts/metasploit/model/module/ancestor/factory/contents/metasploit_module.rb +0 -15
  160. data/spec/support/shared/examples/derives.rb +0 -115
  161. data/spec/support/shared/examples/metasploit/model/architecture.rb +0 -425
  162. data/spec/support/shared/examples/metasploit/model/architecture/seed.rb +0 -25
  163. data/spec/support/shared/examples/metasploit/model/author.rb +0 -27
  164. data/spec/support/shared/examples/metasploit/model/authority.rb +0 -124
  165. data/spec/support/shared/examples/metasploit/model/authority/seed.rb +0 -49
  166. data/spec/support/shared/examples/metasploit/model/email_address.rb +0 -220
  167. data/spec/support/shared/examples/metasploit/model/module/action.rb +0 -26
  168. data/spec/support/shared/examples/metasploit/model/module/ancestor.rb +0 -2004
  169. data/spec/support/shared/examples/metasploit/model/module/ancestor/payload_factory.rb +0 -63
  170. data/spec/support/shared/examples/metasploit/model/module/architecture.rb +0 -36
  171. data/spec/support/shared/examples/metasploit/model/module/author.rb +0 -29
  172. data/spec/support/shared/examples/metasploit/model/module/class.rb +0 -1514
  173. data/spec/support/shared/examples/metasploit/model/module/handler.rb +0 -21
  174. data/spec/support/shared/examples/metasploit/model/module/instance.rb +0 -1384
  175. data/spec/support/shared/examples/metasploit/model/module/instance/class_methods.rb +0 -537
  176. data/spec/support/shared/examples/metasploit/model/module/instance/is_not_stanced_with_module_type.rb +0 -22
  177. data/spec/support/shared/examples/metasploit/model/module/instance/is_stanced_with_module_type.rb +0 -38
  178. data/spec/support/shared/examples/metasploit/model/module/instance/validates/dynamic_length_of.rb +0 -131
  179. data/spec/support/shared/examples/metasploit/model/module/path.rb +0 -493
  180. data/spec/support/shared/examples/metasploit/model/module/platform.rb +0 -36
  181. data/spec/support/shared/examples/metasploit/model/module/rank.rb +0 -92
  182. data/spec/support/shared/examples/metasploit/model/module/reference.rb +0 -16
  183. data/spec/support/shared/examples/metasploit/model/module/target.rb +0 -29
  184. data/spec/support/shared/examples/metasploit/model/module/target/architecture.rb +0 -56
  185. data/spec/support/shared/examples/metasploit/model/module/target/platform.rb +0 -56
  186. data/spec/support/shared/examples/metasploit/model/platform.rb +0 -213
  187. data/spec/support/shared/examples/metasploit/model/real_pathname.rb +0 -29
  188. data/spec/support/shared/examples/metasploit/model/reference.rb +0 -410
  189. data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/app.rb +0 -44
  190. data/spec/support/shared/examples/search/query/metasploit/model/search/operator/deprecated/authority.rb +0 -72
  191. data/spec/support/templates/metasploit/model/module/ancestors/_attributes.rb.erb +0 -9
  192. data/spec/support/templates/metasploit/model/module/ancestors/_methods.rb.erb +0 -8
  193. data/spec/support/templates/metasploit/model/module/ancestors/_validations.rb.erb +0 -6
  194. data/spec/support/templates/metasploit/model/module/ancestors/base.rb.erb +0 -3
  195. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_auxiliary.rb.erb +0 -1
  196. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_encoder.rb.erb +0 -1
  197. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_exploit.rb.erb +0 -1
  198. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_non_payload.rb.erb +0 -5
  199. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_nop.rb.erb +0 -1
  200. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_payload.rb.erb +0 -4
  201. data/spec/support/templates/metasploit/model/module/ancestors/module_types/_post.rb.erb +0 -1
  202. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_handled.rb.erb +0 -20
  203. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_single.rb.erb +0 -1
  204. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stage.rb.erb +0 -0
  205. data/spec/support/templates/metasploit/model/module/ancestors/payload_types/_stager.rb.erb +0 -1
  206. data/spec/support/templates/metasploit/model/module/classes/_methods.rb.erb +0 -9
@@ -1,15 +0,0 @@
1
- # Implementation of {Metasploit::Model::Author} to allow testing of {Metasploit::Model::Author} using an in-memory
2
- # ActiveModel and use of factories.
3
- class Dummy::Author < Metasploit::Model::Base
4
- include Metasploit::Model::Author
5
-
6
- #
7
- # Attributes
8
- #
9
-
10
- # @!attribute [rw] name
11
- # Full name (First + Last name) or handle of author.
12
- #
13
- # @return [String]
14
- attr_accessor :name
15
- end
@@ -1,130 +0,0 @@
1
- # Implementation of {Metasploit::Model::Authority} to allow testing of {Metasploit::Model::Authority} using an in-memory
2
- # ActiveModel and use of factories.
3
- class Dummy::Authority < Metasploit::Model::Base
4
- include Metasploit::Model::Authority
5
-
6
- #
7
- # CONSTANTS
8
- #
9
-
10
- SEED_ATTRIBUTES = [
11
- {
12
- :abbreviation => 'BID',
13
- :obsolete => false,
14
- :summary => 'BuqTraq ID',
15
- :url => 'http://www.securityfocus.com/bid'
16
- },
17
- {
18
- :abbreviation => 'CVE',
19
- :obsolete => false,
20
- :summary => 'Common Vulnerabilities and Exposures',
21
- :url => 'http://cvedetails.com'
22
- },
23
- {
24
- :abbreviation => 'MIL',
25
- :obsolete => true,
26
- :summary => 'milw0rm',
27
- :url => 'https://en.wikipedia.org/wiki/Milw0rm'
28
- },
29
- {
30
- :abbreviation => 'MSB',
31
- :obsolete => false,
32
- :summary => 'Microsoft Security Bulletin',
33
- :url => 'http://www.microsoft.com/technet/security/bulletin'
34
- },
35
- {
36
- :abbreviation => 'OSVDB',
37
- :obsolete => false,
38
- :summary => 'Open Sourced Vulnerability Database',
39
- :url => 'http://osvdb.org'
40
- },
41
- {
42
- :abbreviation => 'PMASA',
43
- :obsolete => false,
44
- :summary => 'phpMyAdmin Security Announcement',
45
- :url => 'http://www.phpmyadmin.net/home_page/security/'
46
- },
47
- {
48
- :abbreviation => 'SECUNIA',
49
- :obsolete => false,
50
- :summary => 'Secunia',
51
- :url => 'https://secunia.com/advisories'
52
- },
53
- {
54
- :abbreviation => 'US-CERT-VU',
55
- :obsolete => false,
56
- :summary => 'United States Computer Emergency Readiness Team Vulnerability Notes Database',
57
- :url => 'http://www.kb.cert.org/vuls'
58
- },
59
- {
60
- :abbreviation => 'waraxe',
61
- :obsolete => false,
62
- :summary => 'Waraxe Advisories',
63
- :url => 'http://www.waraxe.us/content-cat-1.html'
64
- },
65
- {
66
- abbreviation: 'ZDI',
67
- obsolete: false,
68
- summary: 'Zero Day Initiative',
69
- url: 'http://www.zerodayinitiative.com/advisories'
70
- }
71
- ]
72
-
73
- #
74
- # Attributes
75
- #
76
-
77
- # @!attribute [rw] abbreviation
78
- # Abbreviation or initialism for authority, such as CVE for 'Common Vulnerability and Exposures'.
79
- #
80
- # @return [String]
81
- attr_accessor :abbreviation
82
-
83
- # @!attribute [rw] obsolete
84
- # Whether this authority is obsolete and no longer exists on the internet.
85
- #
86
- # @return [false]
87
- # @return [true] {#url} may be `nil` because authory no longer has a web site.
88
- attr_accessor :obsolete
89
-
90
- # @!attribute [rw] summary
91
- # An expansion of the {#abbreviation}.
92
- #
93
- # @return [String, nil]
94
- attr_accessor :summary
95
-
96
- # @!attribute [rw] url
97
- # URL to the authority's home page or root URL for their {#references} database.
98
- #
99
- # @return [String, nil]
100
- attr_accessor :url
101
-
102
- #
103
- # Methods
104
- #
105
-
106
- # Keep single instance of each set of attributes in {SEED_ATTRIBUTES} to emulate unique database seeds in-memory.
107
- #
108
- # @param abbreviation [String] {#abbreviation}
109
- # @return [Dummy::Authority]
110
- def self.with_abbreviation(abbreviation)
111
- unless instance_variable_defined? :@instance_by_abbreviation
112
- @instance_by_abbreviation = {}
113
-
114
- SEED_ATTRIBUTES.each do |attributes|
115
- instance = new(attributes)
116
-
117
- unless instance.valid?
118
- raise Metasploit::Model::Invalid.new(instance)
119
- end
120
-
121
- # freeze object to prevent specs from modifying them and interfering with other specs.
122
- instance.freeze
123
-
124
- @instance_by_abbreviation[instance.abbreviation] = instance
125
- end
126
- end
127
-
128
- @instance_by_abbreviation.fetch(abbreviation)
129
- end
130
- end
@@ -1,27 +0,0 @@
1
- # Implementation of {Metasploit::Model::EmailAddress} to allow testing of {Metasploit::Model::EmailAddress} using an in-memory
2
- # ActiveModel and use of factories.
3
- class Dummy::EmailAddress < Metasploit::Model::Base
4
- include Metasploit::Model::EmailAddress
5
-
6
- #
7
- # Attributes
8
- #
9
-
10
- # @!attribute [rw] domain
11
- # The domain part of the email address after the `'@'`.
12
- #
13
- # @return [String]
14
- attr_accessor :domain
15
-
16
- # @!attribute [rw] full
17
- # The full email address.
18
- #
19
- # @return [String] <{#local}>@<{#domain}
20
- attr_accessor :full
21
-
22
- # @!attribute [rw] local
23
- # The local part of the email address before the `'@'`.
24
- #
25
- # @return [String]
26
- attr_accessor :local
27
- end
@@ -1,25 +0,0 @@
1
- # Implementation of {Metasploit::Model::Module::Action} to allow testing of {Metasploit::Model::Module::Action}
2
- # using an in-memory ActiveModel and use of factories.
3
- class Dummy::Module::Action < Metasploit::Model::Base
4
- include Metasploit::Model::Module::Action
5
-
6
- #
7
- # Associations
8
- #
9
-
10
- # @!attribute [rw] module_instance
11
- # Module that has this action.
12
- #
13
- # @return [Dummy::Module::Instance]
14
- attr_accessor :module_instance
15
-
16
- #
17
- # Attributes
18
- #
19
-
20
- # @!attribute [rw] name
21
- # The name of this action.
22
- #
23
- # @return [String]
24
- attr_accessor :name
25
- end
@@ -1,67 +0,0 @@
1
- # Implementation of {Metasploit::Model::Module::Ancestor} to allow testing of {Metasploit::Model::Module::Ancestor}
2
- # using an in-memory ActiveModel and use of factories.
3
- class Dummy::Module::Ancestor < Metasploit::Model::Base
4
- include Metasploit::Model::Module::Ancestor
5
-
6
- #
7
- # Attributes
8
- #
9
-
10
- # @!attribute [rw] full_name
11
- # Full name to module including {#module_type} and {#reference_name}
12
- #
13
- # @return [String] <module_type>/<reference_name>
14
- attr_accessor :full_name
15
-
16
- # @!attribute [rw] handler_type
17
- # The handler type (in the case of singles) or (in the case of stagers) the handler type alias. Handler type is
18
- # appended to the end of the single's or stage's {#reference_name} to get the
19
- # {Metasploit::Model::Module::Class#reference_name}.
20
- #
21
- # @return [String] if {#handled?} is `true`.
22
- # @return [nil] if {#handled?} is `false`.
23
- attr_accessor :handler_type
24
-
25
- # @!attribute [rw] module_type
26
- # The type of module of this ancestor.
27
- #
28
- # @return [String]
29
- attr_accessor :module_type
30
-
31
- # @!attribute [rw] parent_path
32
- # Module path on which this ancestor exists.
33
- #
34
- # @return [Metasploit::Model::Module::Path]
35
- attr_accessor :parent_path
36
-
37
- # @!attribute [rw] payload_type
38
- # The type of payload module this ancestor is.
39
- #
40
- # @return [String] if this is a payload module.
41
- # @return [nil] if this is not a payload module.
42
- attr_accessor :payload_type
43
-
44
- # @!attribute [rw] real_path
45
- # The real (absolute) path to this ancestor on-disk.
46
- #
47
- # @return [String]
48
- attr_accessor :real_path
49
-
50
- # @!attribute [rw] real_path_modified_at
51
- # The modification time of {#real_path}.
52
- #
53
- # @return [DateTime]
54
- attr_accessor :real_path_modified_at
55
-
56
- # @!attribute [rw] real_path_sha1_hex_digest
57
- # SHA1 hex digest of the contents of {#real_path}.
58
- #
59
- # @return [String]
60
- attr_accessor :real_path_sha1_hex_digest
61
-
62
- # @!attribute [rw] reference_name
63
- # Reference name to this ancestor, scoped to {#module_type}.
64
- #
65
- # @return [String]
66
- attr_accessor :reference_name
67
- end
@@ -1,19 +0,0 @@
1
- class Dummy::Module::Architecture < Metasploit::Model::Base
2
- include Metasploit::Model::Module::Architecture
3
-
4
- #
5
- # Attributes
6
- #
7
-
8
- # @!attribute [rw] architecture
9
- # The architecture supported by the {#module_instance}.
10
- #
11
- # @return [Metasploit::Model::Architecture]
12
- attr_accessor :architecture
13
-
14
- # @!attribute [rw] module_instance
15
- # The module instance that supports {#architecture}.
16
- #
17
- # @return [Metasploit::Model::Module::Instance]
18
- attr_accessor :module_instance
19
- end
@@ -1,28 +0,0 @@
1
- # Implementation of {Metasploit::Model::Module::Author} to allow testing of {Metasploit::Model::Module::Author}
2
- # using an in-memory ActiveModel and use of factories.
3
- class Dummy::Module::Author < Metasploit::Model::Base
4
- include Metasploit::Model::Module::Author
5
-
6
- #
7
- # Associations
8
- #
9
-
10
- # @!attribute [rw] author
11
- # Author who wrote the {#module_instance module}.
12
- #
13
- # @return [Dummy::Author]
14
- attr_accessor :author
15
-
16
- # @!attribute [rw] email_address
17
- # Email address {#author} used when writing {#module_instance module}.
18
- #
19
- # @return [Dummy::EmailAddress] if {#author} gave an email address.
20
- # @return [nil] if {#author} only gave a name.
21
- attr_accessor :email_address
22
-
23
- # @!attribute [rw] module_instance
24
- # Module written by {#author}.
25
- #
26
- # @return [Dummy::Module::Instance]
27
- attr_accessor :module_instance
28
- end
@@ -1,69 +0,0 @@
1
- # Implementation of {Metasploit::Model::Module::Class} to allow testing of {Metasploit::Model::Module::Class}
2
- # using an in-memory ActiveModel and use of factories.
3
- class Dummy::Module::Class < Metasploit::Model::Base
4
- include Metasploit::Model::Module::Class
5
-
6
- #
7
- # Associations
8
- #
9
-
10
- # @!attribute [rw] rank
11
- # The reliability of the module and likelyhood that the module won't knock over the service or host being
12
- # exploited. Bigger values is better.
13
- #
14
- # @return [Dummy::Module::Rank]
15
- attr_accessor :rank
16
-
17
- # @!attribute [r] ancestors
18
- # The Class or Modules that were loaded to make this module Class.
19
- #
20
- # @return [Array<Dummy::Module::Ancestor>]
21
- attr_writer :ancestors
22
-
23
- #
24
- # Attributes
25
- #
26
-
27
- # @!attribute [rw] full_name
28
- # The full name (type + reference) for the Class<Msf::Module>. This is merely a denormalized cache of
29
- # `"#{{#module_type}}/#{{#reference_name}}"` as full_name is used in numerous queries and reports.
30
- #
31
- # @return [String]
32
- attr_accessor :full_name
33
-
34
- # @!attribute [rw] module_type
35
- # A denormalized cache of the {Metasploit::Model::Module::Class#module_type ancestors' module_types}, which
36
- # must all be the same. This cache exists so that queries for modules of a given type don't need include the
37
- # {#ancestors}.
38
- #
39
- # @return [String]
40
- attr_accessor :module_type
41
-
42
- # @!attribute [rw] payload_type
43
- # For payload modules, the {PAYLOAD_TYPES type} of payload, either 'single' or 'staged'.
44
- #
45
- # @return [String] if {#payload?} is `true`.
46
- # @return [nil] if {#payload?} is `false`
47
- attr_accessor :payload_type
48
-
49
- # @!attribute [rw] reference_name
50
- # The reference name for the Class<Msf::Module>. For non-payloads, this will just be
51
- # {Mdm::Module::Ancestor#reference_name} for the only element in {#ancestors}. For payloads composed of a
52
- # stage and stager, the reference name will be derived from the
53
- # {Metasplit::Model::Module::Ancestor#reference_name} of each element {#ancestors} or an alias defined in
54
- # those Modules.
55
- #
56
- # @return [String
57
- attr_accessor :reference_name
58
-
59
- #
60
- # Methods
61
- #
62
-
63
- # List of ancestors included in this module Class.
64
- #
65
- # @return [Array<Dummy::Module::Ancestor>]
66
- def ancestors
67
- @ancestors ||= []
68
- end
69
- end
@@ -1,209 +0,0 @@
1
- # Implementation of {Metasploit::Model::Module::Instance} to allow testing of {Metasploit::Model::Module::Instance}
2
- # using an in-memory ActiveModel and use of factories.
3
- class Dummy::Module::Instance < Metasploit::Model::Base
4
- include Metasploit::Model::Association
5
- include Metasploit::Model::Module::Instance
6
-
7
- #
8
- #
9
- # Associations
10
- #
11
- #
12
-
13
- association :actions, :class_name => 'Dummy::Module::Action'
14
- association :architectures, :class_name => 'Dummy::Architecture'
15
- association :authorities, :class_name => 'Dummy::Authority'
16
- association :authors, :class_name => 'Dummy::Author'
17
- association :email_addresses, :class_name => 'Dummy::EmailAddress'
18
- association :module_class, :class_name => 'Dummy::Module::Class'
19
- association :platforms, :class_name => 'Dummy::Platform'
20
- association :rank, :class_name => 'Dummy::Module::Rank'
21
- association :references, :class_name => 'Dummy::Reference'
22
- association :targets, :class_name => 'Dummy::Module::Target'
23
-
24
- # @!attribute [rw] actions
25
- # Auxiliary actions to perform when this running this module.
26
- #
27
- # @return [Array<Dummy::Module::Action>]
28
- def actions
29
- @actions ||= []
30
- end
31
- attr_writer :actions
32
-
33
- # @!attribute [rw] default_action
34
- # The default action in {#actions}.
35
- #
36
- # @return [Dummy::Module::Action]
37
- attr_accessor :default_action
38
-
39
- # @!attribute [rw] default_target
40
- # The default target in {#targets}.
41
- #
42
- # @return [Dummy::Module::Target]
43
- attr_accessor :default_target
44
-
45
- # @!attribute [rw] module_architectures
46
- # Joins this module instance to the {#architectures} it supports.
47
- #
48
- # @return [Array<Dummy::Module::Architecture>]
49
- def module_architectures
50
- @module_architectures ||= []
51
- end
52
- attr_writer :module_architectures
53
-
54
- # @!attribute [rw] module_authors
55
- # Joins this with {#authors} and {#email_addresses} to model the name and email address used for an author
56
- # entry in the module metadata.
57
- #
58
- # @return [Array<Dummy::Module::Author>]
59
- def module_authors
60
- @module_authors ||= []
61
- end
62
- attr_writer :module_authors
63
-
64
- # @!attribute [rw] module_class
65
- # Class-derived metadata to go along with the instance-derived metadata in this model.
66
- #
67
- # @return [Dummy::Module::Class]
68
- attr_accessor :module_class
69
-
70
- # @!attribute [rw] module_platforms
71
- # Joins this with the {#platforms} it supports.
72
- #
73
- # @return [Array<Dummy::Module::Platform>]
74
- def module_platforms
75
- @module_platforms ||= []
76
- end
77
- attr_writer :module_platforms
78
-
79
- # @!attribute [rw] module_references
80
- # Joins this with the {#references} to the exploit of this module.
81
- #
82
- # @return [Array<Dummy::Module::Reference>]
83
- def module_references
84
- @module_references ||= []
85
- end
86
- attr_writer :module_references
87
-
88
- # @!attribute [rw] targets
89
- # Names of targets with different configurations that can be exploited by this module.
90
- #
91
- # @return [Array<Dummy::Module::Target>]
92
- def targets
93
- @targets ||= []
94
- end
95
- attr_writer :targets
96
-
97
- # @!attribute [r] architectures
98
- # The {Dummy::Architecture architectures} supported by this module.
99
- #
100
- # @return [Array<Dummy::Architecture>]
101
- def architectures
102
- module_architectures.map(&:architecture)
103
- end
104
-
105
- # @!attribute [r] authors
106
- # The names of the authors of this module.
107
- #
108
- # @return [Array<Dummy::Author>]
109
- def authors
110
- module_authors.map(&:author)
111
- end
112
-
113
- # @!attribute [r] email_addresses
114
- # The email addresses of the authors of this module.
115
- #
116
- # @return [Array<Dummy::EmailAddress>]
117
- def email_addresses
118
- module_authors.map(&email_addresses).uniq
119
- end
120
-
121
- # @!attribute [r] platforms
122
- # Platforms supported by this module.
123
- #
124
- # @return [Array<Dummy::Module::Platform>]
125
- def platforms
126
- module_platforms.map(&:platform)
127
- end
128
-
129
- # @!attribute [r] references
130
- # External references to the exploit or proof-of-concept (PoC) code in this module.
131
- #
132
- # @return [Array<Dummy::Reference>]
133
- def references
134
- module_references.map(&:reference)
135
- end
136
-
137
- # @!attribute [r] vulns
138
- # Vulnerabilities with same {Dummy::Reference reference} as this module.
139
- #
140
- # @return [Array<Dummy::Vuln>]
141
- def vulns
142
- references.inject(Set.new) { |vuln_set, reference|
143
- vuln_set.merge(reference.vulns)
144
- }
145
- end
146
-
147
- # @!attribute [r] vulnerable_hosts
148
- # Hosts vulnerable to this module.
149
- #
150
- # @return [Array<Dummy::Host>]
151
- def vulnerable_hosts
152
- vulns.inject(Set.new) { |host_set, vuln|
153
- host_set.add(vuln.host)
154
- }
155
- end
156
-
157
- # @!attribute [r] vulnerable_services
158
- # Services vulnerable to this module.
159
- #
160
- # @return [Array<Dummy::Service>]
161
- def vulnerable_services
162
- vulns.inject(Set.new) { |service_set, vuln|
163
- service_set.merge(vuln)
164
- }
165
- end
166
-
167
- #
168
- # Attributes
169
- #
170
-
171
- # @!attribute [rw] description
172
- # A long, paragraph description of what the module does.
173
- #
174
- # @return [String]
175
- attr_accessor :description
176
-
177
- # @!attribute [rw] disclosed_on
178
- # The date the vulnerability exploited by this module was disclosed to the public.
179
- #
180
- # @return [Date, nil]
181
- attr_accessor :disclosed_on
182
-
183
- # @!attribute [rw] license
184
- # The name of the software license for the module's code.
185
- #
186
- # @return [String]
187
- attr_accessor :license
188
-
189
- # @!attribute [rw] name
190
- # The human readable name of the module. It is unrelated to {Dummy::Module::Class#full_name} or
191
- # {Dummy::Module::Class#reference_name} and is better thought of as a short summary of the
192
- # {#description}.
193
- #
194
- # @return [String]
195
- attr_accessor :name
196
-
197
- # @!attribute [rw] privileged
198
- # Whether this module requires privileged access to run.
199
- #
200
- # @return [Boolean]
201
- attr_accessor :privileged
202
-
203
- # @!attribute [rw] stance
204
- # Whether the module is active or passive. `nil` if the
205
- # {Dummy::Module::Class#module_type module type} does not {#supports_stance? support stances}.
206
- #
207
- # @return ['active', 'passive', nil]
208
- attr_accessor :stance
209
- end