metasploit_data_models 3.0.10 → 4.0.0

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 (215) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.gitignore +1 -1
  5. data/.travis.yml +1 -1
  6. data/Gemfile +6 -4
  7. data/Rakefile +1 -1
  8. data/app/models/mdm/api_key.rb +1 -1
  9. data/app/models/mdm/async_callback.rb +1 -1
  10. data/app/models/mdm/client.rb +1 -1
  11. data/app/models/mdm/cred.rb +1 -1
  12. data/app/models/mdm/event.rb +1 -1
  13. data/app/models/mdm/exploit_attempt.rb +1 -1
  14. data/app/models/mdm/exploited_host.rb +1 -1
  15. data/app/models/mdm/host.rb +2 -2
  16. data/app/models/mdm/host_detail.rb +2 -2
  17. data/app/models/mdm/host_tag.rb +1 -1
  18. data/app/models/mdm/listener.rb +1 -1
  19. data/app/models/mdm/loot.rb +1 -1
  20. data/app/models/mdm/macro.rb +1 -1
  21. data/app/models/mdm/mod_ref.rb +1 -1
  22. data/app/models/mdm/module/action.rb +1 -1
  23. data/app/models/mdm/module/arch.rb +1 -1
  24. data/app/models/mdm/module/author.rb +1 -1
  25. data/app/models/mdm/module/detail.rb +1 -1
  26. data/app/models/mdm/module/mixin.rb +1 -1
  27. data/app/models/mdm/module/platform.rb +1 -1
  28. data/app/models/mdm/module/ref.rb +1 -1
  29. data/app/models/mdm/module/target.rb +1 -1
  30. data/app/models/mdm/nexpose_console.rb +1 -1
  31. data/app/models/mdm/note.rb +1 -1
  32. data/app/models/mdm/payload.rb +1 -1
  33. data/app/models/mdm/profile.rb +1 -1
  34. data/app/models/mdm/ref.rb +1 -1
  35. data/app/models/mdm/route.rb +1 -1
  36. data/app/models/mdm/service.rb +2 -2
  37. data/app/models/mdm/session.rb +1 -1
  38. data/app/models/mdm/session_event.rb +1 -1
  39. data/app/models/mdm/tag.rb +1 -1
  40. data/app/models/mdm/task.rb +1 -1
  41. data/app/models/mdm/task_cred.rb +1 -1
  42. data/app/models/mdm/task_host.rb +1 -1
  43. data/app/models/mdm/task_service.rb +1 -1
  44. data/app/models/mdm/task_session.rb +1 -1
  45. data/app/models/mdm/user.rb +2 -2
  46. data/app/models/mdm/vuln.rb +2 -2
  47. data/app/models/mdm/vuln_attempt.rb +1 -1
  48. data/app/models/mdm/vuln_detail.rb +1 -1
  49. data/app/models/mdm/vuln_ref.rb +1 -1
  50. data/app/models/mdm/web_form.rb +1 -1
  51. data/app/models/mdm/web_page.rb +1 -1
  52. data/app/models/mdm/web_site.rb +1 -1
  53. data/app/models/mdm/web_vuln.rb +1 -1
  54. data/app/models/mdm/wmap_request.rb +1 -1
  55. data/app/models/mdm/wmap_target.rb +1 -1
  56. data/app/models/mdm/workspace.rb +6 -6
  57. data/app/models/metasploit_data_models/automatic_exploitation/match.rb +1 -1
  58. data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +1 -1
  59. data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +1 -1
  60. data/app/models/metasploit_data_models/automatic_exploitation/run.rb +2 -2
  61. data/app/models/metasploit_data_models/module_run.rb +1 -1
  62. data/bin/rails +14 -0
  63. data/config/initializers/arel_helper.rb +2 -2
  64. data/config/initializers/ipaddr.rb +11 -6
  65. data/db/migrate/000_create_tables.rb +1 -1
  66. data/db/migrate/001_add_wmap_tables.rb +1 -1
  67. data/db/migrate/002_add_workspaces.rb +1 -1
  68. data/db/migrate/003_move_notes.rb +1 -1
  69. data/db/migrate/004_add_events_table.rb +1 -1
  70. data/db/migrate/005_expand_info.rb +1 -1
  71. data/db/migrate/006_add_timestamps.rb +1 -1
  72. data/db/migrate/007_add_loots.rb +1 -1
  73. data/db/migrate/008_create_users.rb +1 -1
  74. data/db/migrate/009_add_loots_ctype.rb +1 -1
  75. data/db/migrate/010_add_alert_fields.rb +1 -1
  76. data/db/migrate/011_add_reports.rb +1 -1
  77. data/db/migrate/012_add_tasks.rb +1 -1
  78. data/db/migrate/013_add_tasks_result.rb +1 -1
  79. data/db/migrate/014_add_loots_fields.rb +1 -1
  80. data/db/migrate/015_rename_user.rb +1 -1
  81. data/db/migrate/016_add_host_purpose.rb +1 -1
  82. data/db/migrate/017_expand_info2.rb +1 -1
  83. data/db/migrate/018_add_workspace_user_info.rb +1 -1
  84. data/db/migrate/019_add_workspace_desc.rb +1 -1
  85. data/db/migrate/020_add_user_preferences.rb +1 -1
  86. data/db/migrate/021_standardize_info_and_data.rb +1 -1
  87. data/db/migrate/022_enlarge_event_info.rb +1 -1
  88. data/db/migrate/023_add_report_downloaded_at.rb +1 -1
  89. data/db/migrate/024_convert_service_info_to_text.rb +1 -1
  90. data/db/migrate/025_add_user_admin.rb +1 -1
  91. data/db/migrate/026_add_creds_table.rb +1 -1
  92. data/db/migrate/20100819123300_migrate_cred_data.rb +1 -1
  93. data/db/migrate/20100824151500_add_exploited_table.rb +1 -1
  94. data/db/migrate/20100908001428_add_owner_to_workspaces.rb +1 -1
  95. data/db/migrate/20100911122000_add_report_templates.rb +1 -1
  96. data/db/migrate/20100916151530_require_admin_flag.rb +1 -1
  97. data/db/migrate/20100916175000_add_campaigns_and_templates.rb +1 -1
  98. data/db/migrate/20100920012100_add_generate_exe_column.rb +1 -1
  99. data/db/migrate/20100926214000_add_template_prefs.rb +1 -1
  100. data/db/migrate/20101001000000_add_web_tables.rb +1 -1
  101. data/db/migrate/20101002000000_add_query.rb +1 -1
  102. data/db/migrate/20101007000000_add_vuln_info.rb +1 -1
  103. data/db/migrate/20101008111800_add_clients_to_campaigns.rb +1 -1
  104. data/db/migrate/20101009023300_add_campaign_attachments.rb +1 -1
  105. data/db/migrate/20101104135100_add_imported_creds.rb +1 -1
  106. data/db/migrate/20101203000000_fix_web_tables.rb +1 -1
  107. data/db/migrate/20101203000001_expand_host_comment.rb +1 -1
  108. data/db/migrate/20101206212033_add_limit_to_network_to_workspaces.rb +1 -1
  109. data/db/migrate/20110112154300_add_module_uuid_to_tasks.rb +1 -1
  110. data/db/migrate/20110204112800_add_host_tags.rb +1 -1
  111. data/db/migrate/20110317144932_add_session_table.rb +4 -4
  112. data/db/migrate/20110414180600_add_local_id_to_session_table.rb +1 -1
  113. data/db/migrate/20110415175705_add_routes_table.rb +1 -1
  114. data/db/migrate/20110422000000_convert_binary.rb +3 -3
  115. data/db/migrate/20110425095900_add_last_seen_to_sessions.rb +1 -1
  116. data/db/migrate/20110513143900_track_successful_exploits.rb +3 -3
  117. data/db/migrate/20110517160800_rename_and_prune_nessus_vulns.rb +2 -2
  118. data/db/migrate/20110527000000_add_task_id_to_reports_table.rb +1 -1
  119. data/db/migrate/20110527000001_add_api_keys_table.rb +1 -1
  120. data/db/migrate/20110606000001_add_macros_table.rb +1 -1
  121. data/db/migrate/20110622000000_add_settings_to_tasks_table.rb +1 -1
  122. data/db/migrate/20110624000001_add_listeners_table.rb +1 -1
  123. data/db/migrate/20110625000001_add_macro_to_listeners_table.rb +1 -1
  124. data/db/migrate/20110630000001_add_nexpose_consoles_table.rb +1 -1
  125. data/db/migrate/20110630000002_add_name_to_nexpose_consoles_table.rb +1 -1
  126. data/db/migrate/20110717000001_add_profiles_table.rb +1 -1
  127. data/db/migrate/20110727163801_expand_cred_ptype_column.rb +1 -1
  128. data/db/migrate/20110730000001_add_initial_indexes.rb +1 -1
  129. data/db/migrate/20110812000001_prune_indexes.rb +1 -1
  130. data/db/migrate/20110922000000_expand_notes.rb +1 -1
  131. data/db/migrate/20110928101300_add_mod_ref_table.rb +1 -1
  132. data/db/migrate/20111011110000_add_display_name_to_reports_table.rb +2 -2
  133. data/db/migrate/20111203000000_inet_columns.rb +1 -1
  134. data/db/migrate/20111204000000_more_inet_columns.rb +1 -1
  135. data/db/migrate/20111210000000_add_scope_to_hosts.rb +1 -1
  136. data/db/migrate/20120126110000_add_virtual_host_to_hosts.rb +1 -1
  137. data/db/migrate/20120411173220_rename_workspace_members.rb +1 -1
  138. data/db/migrate/20120601152442_add_counter_caches_to_hosts.rb +2 -2
  139. data/db/migrate/20120625000000_add_vuln_details.rb +1 -1
  140. data/db/migrate/20120625000001_add_host_details.rb +1 -1
  141. data/db/migrate/20120625000002_expand_details.rb +1 -1
  142. data/db/migrate/20120625000003_expand_details2.rb +1 -1
  143. data/db/migrate/20120625000004_add_vuln_attempts.rb +1 -1
  144. data/db/migrate/20120625000005_add_vuln_and_host_counter_caches.rb +1 -1
  145. data/db/migrate/20120625000006_add_module_details.rb +1 -1
  146. data/db/migrate/20120625000007_add_exploit_attempts.rb +1 -1
  147. data/db/migrate/20120625000008_add_fail_message.rb +1 -1
  148. data/db/migrate/20120718202805_add_owner_and_payload_to_web_vulns.rb +1 -1
  149. data/db/migrate/20130412154159_change_foreign_key_in_module_actions.rb +1 -1
  150. data/db/migrate/20130412171844_change_foreign_key_in_module_archs.rb +1 -1
  151. data/db/migrate/20130412173121_change_foreign_key_in_module_authors.rb +1 -1
  152. data/db/migrate/20130412173640_change_foreign_key_in_module_mixins.rb +1 -1
  153. data/db/migrate/20130412174254_change_foreign_key_in_module_platforms.rb +1 -1
  154. data/db/migrate/20130412174719_change_foreign_key_in_module_refs.rb +1 -1
  155. data/db/migrate/20130412175040_change_foreign_key_in_module_targets.rb +1 -1
  156. data/db/migrate/20130423211152_add_creds_counter_cache.rb +1 -1
  157. data/db/migrate/20130430162145_enforce_address_uniqueness_in_workspace_in_hosts.rb +6 -6
  158. data/db/migrate/20130510021637_remove_campaigns.rb +1 -1
  159. data/db/migrate/20130515164311_change_web_vulns_confidence_to_integer.rb +1 -1
  160. data/db/migrate/20130515172727_valid_mdm_web_vuln_params.rb +1 -1
  161. data/db/migrate/20130516204810_making_vulns_refs_a_real_ar_model.rb +2 -2
  162. data/db/migrate/20130522001343_create_task_creds.rb +1 -1
  163. data/db/migrate/20130522032517_create_task_hosts.rb +1 -1
  164. data/db/migrate/20130522041110_create_task_services.rb +1 -1
  165. data/db/migrate/20130525015035_remove_campaign_id_from_clients.rb +1 -1
  166. data/db/migrate/20130525212420_drop_table_imported_creds.rb +1 -1
  167. data/db/migrate/20130531144949_making_host_tags_a_real_ar_model.rb +1 -1
  168. data/db/migrate/20130604145732_create_task_sessions.rb +1 -1
  169. data/db/migrate/20130717150737_remove_pname_validation.rb +1 -1
  170. data/db/migrate/20131002004641_create_automatic_exploitation_matches.rb +1 -1
  171. data/db/migrate/20131002164449_create_automatic_exploitation_match_sets.rb +1 -1
  172. data/db/migrate/20131008213344_create_automatic_exploitation_runs.rb +1 -1
  173. data/db/migrate/20131011184338_module_detail_on_automatic_exploitation_match.rb +1 -1
  174. data/db/migrate/20131017150735_create_automatic_exploitation_match_results.rb +1 -1
  175. data/db/migrate/20131021185657_make_match_polymorphic.rb +1 -1
  176. data/db/migrate/20140905031549_add_detected_arch_to_host.rb +1 -1
  177. data/db/migrate/20150112203945_remove_duplicate_services.rb +1 -1
  178. data/db/migrate/20150205192745_drop_service_uniqueness_index.rb +1 -1
  179. data/db/migrate/20150209195939_add_vuln_id_to_note.rb +1 -1
  180. data/db/migrate/20150212214222_remove_duplicate_services2.rb +1 -1
  181. data/db/migrate/20150219173821_create_module_runs.rb +1 -1
  182. data/db/migrate/20150219215039_add_module_run_to_session.rb +1 -1
  183. data/db/migrate/20150226151459_add_module_run_fk_to_loot.rb +1 -1
  184. data/db/migrate/20150312155312_add_module_full_name_to_match.rb +1 -1
  185. data/db/migrate/20150317145455_rename_module_indices.rb +2 -2
  186. data/db/migrate/20150326183742_add_missing_ae_indices.rb +1 -1
  187. data/db/migrate/20150421211719_rename_automatic_exploitation_index.rb +3 -3
  188. data/db/migrate/20150514182921_add_origin_to_mdm_vuln.rb +1 -1
  189. data/db/migrate/20160415153312_remove_not_null_from_web_vuln_p_arams.rb +1 -1
  190. data/db/migrate/20161004165612_add_fingerprinted_to_workspace.rb +1 -1
  191. data/db/migrate/20161227212223_add_os_family_to_hosts.rb +1 -1
  192. data/db/migrate/20180904120211_create_payloads.rb +1 -1
  193. data/db/migrate/20190308134512_create_async_callbacks.rb +1 -1
  194. data/db/migrate/20190507120211_remove_payload_workspaces.rb +1 -1
  195. data/lib/metasploit_data_models.rb +0 -1
  196. data/lib/metasploit_data_models/automatic_exploitation.rb +1 -1
  197. data/lib/metasploit_data_models/base64_serializer.rb +1 -1
  198. data/lib/metasploit_data_models/change_required_columns_to_null_false.rb +2 -2
  199. data/lib/metasploit_data_models/engine.rb +1 -1
  200. data/lib/metasploit_data_models/version.rb +1 -1
  201. data/metasploit_data_models.gemspec +4 -8
  202. data/spec/app/models/mdm/exploit_attempt_spec.rb +2 -2
  203. data/spec/app/models/mdm/host_detail_spec.rb +1 -1
  204. data/spec/app/models/mdm/module/detail_spec.rb +18 -18
  205. data/spec/app/models/mdm/service_spec.rb +1 -0
  206. data/spec/app/models/mdm/vuln_attempt_spec.rb +1 -1
  207. data/spec/app/models/mdm/vuln_detail_spec.rb +1 -1
  208. data/spec/app/models/mdm/vuln_spec.rb +1 -1
  209. data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +4 -4
  210. data/spec/dummy/app/assets/config/manifest.js +1 -0
  211. data/spec/dummy/app/models/application_record.rb +3 -0
  212. data/spec/dummy/db/structure.sql +213 -329
  213. metadata +89 -98
  214. metadata.gz.sig +1 -3
  215. data/spec/dummy/config/initializers/secret_token.rb +0 -7
@@ -1,5 +1,5 @@
1
1
  # An attempt to exploit a {#vuln}.
2
- class Mdm::VulnAttempt < ActiveRecord::Base
2
+ class Mdm::VulnAttempt < ApplicationRecord
3
3
 
4
4
  #
5
5
  # Associations
@@ -1,5 +1,5 @@
1
1
  # {Mdm::Vuln Vulnerability details} supplied from an external source, such as Nexpose.
2
- class Mdm::VulnDetail < ActiveRecord::Base
2
+ class Mdm::VulnDetail < ApplicationRecord
3
3
  #
4
4
  # Associations
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # Join model between {Mdm::Vuln} and {Mdm::Ref}.
2
- class Mdm::VulnRef < ActiveRecord::Base
2
+ class Mdm::VulnRef < ApplicationRecord
3
3
  self.table_name = 'vulns_refs'
4
4
 
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # A filled-in form on a {#web_site}.
2
- class Mdm::WebForm < ActiveRecord::Base
2
+ class Mdm::WebForm < ApplicationRecord
3
3
 
4
4
  #
5
5
  # Associations
@@ -1,5 +1,5 @@
1
1
  # Web page requested from a {#web_site}.
2
- class Mdm::WebPage < ActiveRecord::Base
2
+ class Mdm::WebPage < ApplicationRecord
3
3
 
4
4
  #
5
5
  # Associations
@@ -1,5 +1,5 @@
1
1
  # A Web Site running on a {#service}.
2
- class Mdm::WebSite < ActiveRecord::Base
2
+ class Mdm::WebSite < ApplicationRecord
3
3
 
4
4
  #
5
5
  # Associations
@@ -10,7 +10,7 @@
10
10
  # "#{confidence}%"
11
11
  # end
12
12
  # end
13
- class Mdm::WebVuln < ActiveRecord::Base
13
+ class Mdm::WebVuln < ApplicationRecord
14
14
 
15
15
  #
16
16
  # CONSTANTS
@@ -1,5 +1,5 @@
1
1
  # Request sent to a {Mdm::WmapTarget}. WMAP is a plugin to metasploit-framework.
2
- class Mdm::WmapRequest < ActiveRecord::Base
2
+ class Mdm::WmapRequest < ApplicationRecord
3
3
  #
4
4
  #
5
5
  # Attributes
@@ -1,5 +1,5 @@
1
1
  # WMAP target. WMAP is a plugin to metasploit-framework.
2
- class Mdm::WmapTarget < ActiveRecord::Base
2
+ class Mdm::WmapTarget < ApplicationRecord
3
3
  #
4
4
  # Attributes
5
5
  #
@@ -1,6 +1,6 @@
1
1
  # Workspace to separate different collections of {#hosts}. Can be used to separate pentests against different networks
2
2
  # or different clients as reports are normally generated against all records in a workspace.
3
- class Mdm::Workspace < ActiveRecord::Base
3
+ class Mdm::Workspace < ApplicationRecord
4
4
  #
5
5
  # CONSTANTS
6
6
  #
@@ -52,7 +52,7 @@ class Mdm::Workspace < ActiveRecord::Base
52
52
  # Users that are allowed to use this workspace. Does not necessarily include all users, as an {Mdm::User#admin
53
53
  # administrator} can access any workspace, even ones where they are not a member.
54
54
  has_and_belongs_to_many :users,
55
- -> { uniq },
55
+ -> { distinct },
56
56
  class_name: 'Mdm::User',
57
57
  join_table: 'workspace_members'
58
58
 
@@ -210,7 +210,7 @@ class Mdm::Workspace < ActiveRecord::Base
210
210
  Mdm::WebSite.join_association(:service),
211
211
  Mdm::Service.join_association(:host),
212
212
  Mdm::Host.join_association(:workspace)
213
- ).where(Mdm::Workspace[:id].eq(id)).uniq
213
+ ).where(Mdm::Workspace[:id].eq(id)).distinct
214
214
  end
215
215
 
216
216
 
@@ -223,7 +223,7 @@ class Mdm::Workspace < ActiveRecord::Base
223
223
  Mdm::WebSite.join_association(:service),
224
224
  Mdm::Service.join_association(:host),
225
225
  Mdm::Host.join_association(:workspace)
226
- ).where(Mdm::Workspace[:id].eq(id)).uniq
226
+ ).where(Mdm::Workspace[:id].eq(id)).distinct
227
227
  end
228
228
 
229
229
  # Web sites running on {#services}.
@@ -234,7 +234,7 @@ class Mdm::Workspace < ActiveRecord::Base
234
234
  Mdm::WebSite.join_association(:service),
235
235
  Mdm::Service.join_association(:host),
236
236
  Mdm::Host.join_association(:workspace)
237
- ).where(Mdm::Workspace[:id].eq(id)).uniq
237
+ ).where(Mdm::Workspace[:id].eq(id)).distinct
238
238
  end
239
239
 
240
240
  # Web vulnerability found on {#web_sites}.
@@ -246,7 +246,7 @@ class Mdm::Workspace < ActiveRecord::Base
246
246
  Mdm::WebSite.join_association(:service),
247
247
  Mdm::Service.join_association(:host),
248
248
  Mdm::Host.join_association(:workspace)
249
- ).where(Mdm::Workspace[:id].eq(id)).uniq
249
+ ).where(Mdm::Workspace[:id].eq(id)).distinct
250
250
  end
251
251
 
252
252
  # Web forms on {#web_sites}.
@@ -1,5 +1,5 @@
1
1
  # Matches {#matchable} {Mdm::Service} or {Mdm::Vuln} to a {#module_detail Metasploit Module} that can exploit it.
2
- class MetasploitDataModels::AutomaticExploitation::Match < ActiveRecord::Base
2
+ class MetasploitDataModels::AutomaticExploitation::Match < ApplicationRecord
3
3
  #
4
4
  # Associations
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # The result of {#run running} a {#match}.
2
- class MetasploitDataModels::AutomaticExploitation::MatchResult < ActiveRecord::Base
2
+ class MetasploitDataModels::AutomaticExploitation::MatchResult < ApplicationRecord
3
3
  #
4
4
  # CONSTANTS
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # A set of {#matches automatic exploitation matches}.
2
- class MetasploitDataModels::AutomaticExploitation::MatchSet < ActiveRecord::Base
2
+ class MetasploitDataModels::AutomaticExploitation::MatchSet < ApplicationRecord
3
3
  #
4
4
  # Associations
5
5
  #
@@ -1,5 +1,5 @@
1
1
  # Runs a {#match_set set of matches} to produce {#match_results results}.
2
- class MetasploitDataModels::AutomaticExploitation::Run < ActiveRecord::Base
2
+ class MetasploitDataModels::AutomaticExploitation::Run < ApplicationRecord
3
3
  #
4
4
  # Associations
5
5
  #
@@ -26,4 +26,4 @@ class MetasploitDataModels::AutomaticExploitation::Run < ActiveRecord::Base
26
26
  inverse_of: :automatic_exploitation_runs
27
27
 
28
28
  Metasploit::Concern.run(self)
29
- end
29
+ end
@@ -6,7 +6,7 @@
6
6
  # There are also associations to {Mdm::Session} for two use cases: a `spawned_session` is a
7
7
  # session created by the ModuleRun. A `target_session` is a session that the ModuleRun
8
8
  # is acting upon (e.g.) for running a post module.
9
- class MetasploitDataModels::ModuleRun < ActiveRecord::Base
9
+ class MetasploitDataModels::ModuleRun < ApplicationRecord
10
10
  #
11
11
  # Constants
12
12
  #
data/bin/rails ADDED
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails gems
3
+ # installed from the root of your application.
4
+
5
+ ENGINE_ROOT = File.expand_path('..', __dir__)
6
+ ENGINE_PATH = File.expand_path('../lib/metasploit_data_models/engine', __dir__)
7
+ APP_PATH = File.expand_path('../test/dummy/config/application', __dir__)
8
+
9
+ # Set up gems listed in the Gemfile.
10
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__)
11
+ require 'bundler/setup' if File.exist?(ENV['BUNDLE_GEMFILE'])
12
+
13
+ require 'rails/all'
14
+ require 'rails/engine/commands'
@@ -1,5 +1,5 @@
1
1
  # Including arel-helpers in all active record models.
2
2
  # https://github.com/camertron/arel-helpers
3
3
 
4
- ActiveRecord::Base.send(:include, ArelHelpers::ArelTable)
5
- ActiveRecord::Base.send(:include, ArelHelpers::JoinAssociation)
4
+ ApplicationRecord.send(:include, ArelHelpers::ArelTable)
5
+ ApplicationRecord.send(:include, ArelHelpers::JoinAssociation)
@@ -1,10 +1,7 @@
1
1
  module IPAddrExtensions
2
2
  extend ActiveSupport::Concern
3
- included do
4
- alias_method_chain :coerce_other, :rescue
5
- end
6
-
7
- def coerce_other_with_rescue(other)
3
+
4
+ def coerce(other)
8
5
  begin
9
6
  case other
10
7
  when IPAddr
@@ -18,7 +15,15 @@ module IPAddrExtensions
18
15
  OpenStruct.new(family: false, to_i: false)
19
16
  end
20
17
  end
18
+
19
+ def include?(other)
20
+ begin
21
+ super(other)
22
+ rescue IPAddr::InvalidAddressError
23
+ false
24
+ end
25
+ end
21
26
 
22
27
  end
23
28
 
24
- IPAddr.send(:include, IPAddrExtensions)
29
+ IPAddr.send(:prepend, IPAddrExtensions)
@@ -1,4 +1,4 @@
1
- class CreateTables < ActiveRecord::Migration
1
+ class CreateTables < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
 
@@ -1,4 +1,4 @@
1
- class AddWmapTables < ActiveRecord::Migration
1
+ class AddWmapTables < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  create_table :wmap_targets do |t|
4
4
  t.string :host # vhost
@@ -1,4 +1,4 @@
1
- class AddWorkspaces < ActiveRecord::Migration
1
+ class AddWorkspaces < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
  create_table :workspaces do |t|
@@ -1,4 +1,4 @@
1
- class MoveNotes < ActiveRecord::Migration
1
+ class MoveNotes < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  # Remove the host requirement. We'll add the column back in below.
4
4
  remove_column :notes, :host_id
@@ -1,4 +1,4 @@
1
- class AddEventsTable < ActiveRecord::Migration
1
+ class AddEventsTable < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  create_table :events do |t|
4
4
  t.integer :workspace_id
@@ -1,4 +1,4 @@
1
- class ExpandInfo < ActiveRecord::Migration
1
+ class ExpandInfo < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  remove_column :events, :info
4
4
  change_table :events do |t|
@@ -1,7 +1,7 @@
1
1
 
2
2
  # Adds 'created_at' and 'updated_at' columns to every primary table.
3
3
  #
4
- class AddTimestamps < ActiveRecord::Migration
4
+ class AddTimestamps < ActiveRecord::Migration[4.2]
5
5
 
6
6
  @@TABLES_NEEDING_RENAME = [:clients, :hosts, :notes, :refs, :services, :vulns, :wmap_requests]
7
7
  @@TABLES_NEEDING_CREATED_AT = [:wmap_targets]
@@ -1,4 +1,4 @@
1
- class AddLoots < ActiveRecord::Migration
1
+ class AddLoots < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
  create_table :loots do |t|
@@ -1,4 +1,4 @@
1
- class CreateUsers < ActiveRecord::Migration
1
+ class CreateUsers < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  create_table :users do |t|
4
4
  t.string :username
@@ -1,4 +1,4 @@
1
- class AddLootsCtype < ActiveRecord::Migration
1
+ class AddLootsCtype < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :loots, :content_type, :string
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddAlertFields < ActiveRecord::Migration
1
+ class AddAlertFields < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :notes, :critical, :boolean
4
4
  add_column :notes, :seen, :boolean
@@ -1,4 +1,4 @@
1
- class AddReports < ActiveRecord::Migration
1
+ class AddReports < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
  create_table :reports do |t|
@@ -1,4 +1,4 @@
1
- class AddTasks < ActiveRecord::Migration
1
+ class AddTasks < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
  create_table :tasks do |t|
@@ -1,4 +1,4 @@
1
- class AddTasksResult < ActiveRecord::Migration
1
+ class AddTasksResult < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :tasks, :result, :text
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddLootsFields < ActiveRecord::Migration
1
+ class AddLootsFields < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :loots, :name, :text
4
4
  add_column :loots, :info, :text
@@ -1,4 +1,4 @@
1
- class RenameUser < ActiveRecord::Migration
1
+ class RenameUser < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  remove_column :events, :user
4
4
  change_table :events do |t|
@@ -1,4 +1,4 @@
1
- class AddHostPurpose < ActiveRecord::Migration
1
+ class AddHostPurpose < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :hosts, :purpose, :text
4
4
  end
@@ -1,4 +1,4 @@
1
- class ExpandInfo2 < ActiveRecord::Migration
1
+ class ExpandInfo2 < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  remove_column :events, :info
4
4
  change_table :events do |t|
@@ -1,4 +1,4 @@
1
- class AddWorkspaceUserInfo < ActiveRecord::Migration
1
+ class AddWorkspaceUserInfo < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  change_table :workspaces do |t|
4
4
  t.string :boundary, :limit => 4096
@@ -1,4 +1,4 @@
1
- class AddWorkspaceDesc < ActiveRecord::Migration
1
+ class AddWorkspaceDesc < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  change_table :workspaces do |t|
4
4
  t.string :description, :limit => 4096
@@ -1,4 +1,4 @@
1
- class AddUserPreferences < ActiveRecord::Migration
1
+ class AddUserPreferences < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :users, :prefs, :string, :limit => 524288
4
4
  end
@@ -1,4 +1,4 @@
1
- class StandardizeInfoAndData < ActiveRecord::Migration
1
+ class StandardizeInfoAndData < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  # Remove the host requirement. We'll add the column back in below.
4
4
  remove_column :vulns, :data
@@ -1,4 +1,4 @@
1
- class EnlargeEventInfo < ActiveRecord::Migration
1
+ class EnlargeEventInfo < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  change_column :events, :info, :text
4
4
  end
@@ -1,4 +1,4 @@
1
- class AddReportDownloadedAt < ActiveRecord::Migration
1
+ class AddReportDownloadedAt < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  add_column :reports, :downloaded_at, :timestamp
4
4
  end
@@ -1,4 +1,4 @@
1
- class ConvertServiceInfoToText < ActiveRecord::Migration
1
+ class ConvertServiceInfoToText < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
  change_column :services, :info, :text
@@ -1,4 +1,4 @@
1
- class AddUserAdmin < ActiveRecord::Migration
1
+ class AddUserAdmin < ActiveRecord::Migration[4.2]
2
2
 
3
3
  # Add user admin flag and project member list.
4
4
  def self.up
@@ -1,4 +1,4 @@
1
- class AddCredsTable < ActiveRecord::Migration
1
+ class AddCredsTable < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  create_table :creds do |t|
4
4
  t.integer :service_id, :null => false
@@ -1,4 +1,4 @@
1
- class MigrateCredData < ActiveRecord::Migration
1
+ class MigrateCredData < ActiveRecord::Migration[4.2]
2
2
 
3
3
  def self.up
4
4
  begin # Wrap the whole thing in a giant rescue.
@@ -1,4 +1,4 @@
1
- class AddExploitedTable < ActiveRecord::Migration
1
+ class AddExploitedTable < ActiveRecord::Migration[4.2]
2
2
  def self.up
3
3
  create_table :exploited_hosts do |t|
4
4
  t.integer :host_id, :null => false