wg-metasploit_data_models 4.1.4.01 → 4.1.4.02

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 (440) hide show
  1. checksums.yaml +4 -4
  2. data/.coveralls.yml +1 -0
  3. data/.github/workflows/verify.yml +68 -0
  4. data/.gitignore +29 -0
  5. data/.rspec +3 -0
  6. data/.simplecov +38 -0
  7. data/.yardopts +4 -0
  8. data/CHANGELOG.md +6 -0
  9. data/CONTRIBUTING.md +133 -0
  10. data/Gemfile +46 -0
  11. data/LICENSE +27 -0
  12. data/README.md +65 -0
  13. data/RELEASING.md +82 -0
  14. data/Rakefile +72 -0
  15. data/UPGRADING.md +1 -0
  16. data/app/models/mdm/api_key.rb +61 -0
  17. data/app/models/mdm/async_callback.rb +64 -0
  18. data/app/models/mdm/client.rb +50 -0
  19. data/app/models/mdm/cred.rb +205 -0
  20. data/app/models/mdm/event.rb +83 -0
  21. data/app/models/mdm/exploit_attempt.rb +105 -0
  22. data/app/models/mdm/exploited_host.rb +42 -0
  23. data/app/models/mdm/host.rb +619 -0
  24. data/app/models/mdm/host_detail.rb +62 -0
  25. data/app/models/mdm/host_tag.rb +49 -0
  26. data/app/models/mdm/listener.rb +82 -0
  27. data/app/models/mdm/loot.rb +161 -0
  28. data/app/models/mdm/macro.rb +62 -0
  29. data/app/models/mdm/mod_ref.rb +24 -0
  30. data/app/models/mdm/module/action.rb +33 -0
  31. data/app/models/mdm/module/arch.rb +28 -0
  32. data/app/models/mdm/module/author.rb +34 -0
  33. data/app/models/mdm/module/detail.rb +388 -0
  34. data/app/models/mdm/module/mixin.rb +31 -0
  35. data/app/models/mdm/module/platform.rb +29 -0
  36. data/app/models/mdm/module/ref.rb +42 -0
  37. data/app/models/mdm/module/target.rb +37 -0
  38. data/app/models/mdm/nexpose_console.rb +121 -0
  39. data/app/models/mdm/note.rb +125 -0
  40. data/app/models/mdm/payload.rb +103 -0
  41. data/app/models/mdm/profile.rb +45 -0
  42. data/app/models/mdm/ref.rb +48 -0
  43. data/app/models/mdm/route.rb +28 -0
  44. data/app/models/mdm/service.rb +267 -0
  45. data/app/models/mdm/session.rb +203 -0
  46. data/app/models/mdm/session_event.rb +44 -0
  47. data/app/models/mdm/tag.rb +114 -0
  48. data/app/models/mdm/task.rb +168 -0
  49. data/app/models/mdm/task_cred.rb +45 -0
  50. data/app/models/mdm/task_host.rb +41 -0
  51. data/app/models/mdm/task_service.rb +41 -0
  52. data/app/models/mdm/task_session.rb +41 -0
  53. data/app/models/mdm/user.rb +230 -0
  54. data/app/models/mdm/vuln.rb +204 -0
  55. data/app/models/mdm/vuln_attempt.rb +76 -0
  56. data/app/models/mdm/vuln_detail.rb +156 -0
  57. data/app/models/mdm/vuln_ref.rb +21 -0
  58. data/app/models/mdm/web_form.rb +53 -0
  59. data/app/models/mdm/web_page.rb +92 -0
  60. data/app/models/mdm/web_site.rb +113 -0
  61. data/app/models/mdm/web_vuln.rb +193 -0
  62. data/app/models/mdm/wmap_request.rb +101 -0
  63. data/app/models/mdm/wmap_target.rb +56 -0
  64. data/app/models/mdm/workspace.rb +286 -0
  65. data/app/models/metasploit_data_models/automatic_exploitation/match.rb +43 -0
  66. data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +71 -0
  67. data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +40 -0
  68. data/app/models/metasploit_data_models/automatic_exploitation/run.rb +29 -0
  69. data/app/models/metasploit_data_models/ip_address/v4/cidr.rb +14 -0
  70. data/app/models/metasploit_data_models/ip_address/v4/nmap.rb +14 -0
  71. data/app/models/metasploit_data_models/ip_address/v4/range.rb +12 -0
  72. data/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list.rb +125 -0
  73. data/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range.rb +12 -0
  74. data/app/models/metasploit_data_models/ip_address/v4/segment/single.rb +123 -0
  75. data/app/models/metasploit_data_models/ip_address/v4/segmented.rb +200 -0
  76. data/app/models/metasploit_data_models/ip_address/v4/single.rb +53 -0
  77. data/app/models/metasploit_data_models/module_run.rb +213 -0
  78. data/app/models/metasploit_data_models/search/operation/ip_address.rb +60 -0
  79. data/app/models/metasploit_data_models/search/operation/port/number.rb +25 -0
  80. data/app/models/metasploit_data_models/search/operation/port/range.rb +79 -0
  81. data/app/models/metasploit_data_models/search/operation/range.rb +56 -0
  82. data/app/models/metasploit_data_models/search/operator/ip_address.rb +33 -0
  83. data/app/models/metasploit_data_models/search/operator/multitext.rb +73 -0
  84. data/app/models/metasploit_data_models/search/operator/port/list.rb +67 -0
  85. data/app/models/metasploit_data_models/search/visitor/attribute.rb +17 -0
  86. data/app/models/metasploit_data_models/search/visitor/includes.rb +47 -0
  87. data/app/models/metasploit_data_models/search/visitor/joins.rb +67 -0
  88. data/app/models/metasploit_data_models/search/visitor/method.rb +16 -0
  89. data/app/models/metasploit_data_models/search/visitor/relation.rb +91 -0
  90. data/app/models/metasploit_data_models/search/visitor/where.rb +128 -0
  91. data/config/initializers/arel_helper.rb +5 -0
  92. data/config/initializers/ipaddr.rb +29 -0
  93. data/config/locales/en.yml +94 -0
  94. data/console_db.yml +9 -0
  95. data/db/migrate/000_create_tables.rb +79 -0
  96. data/db/migrate/001_add_wmap_tables.rb +35 -0
  97. data/db/migrate/002_add_workspaces.rb +36 -0
  98. data/db/migrate/003_move_notes.rb +20 -0
  99. data/db/migrate/004_add_events_table.rb +16 -0
  100. data/db/migrate/005_expand_info.rb +58 -0
  101. data/db/migrate/006_add_timestamps.rb +26 -0
  102. data/db/migrate/007_add_loots.rb +20 -0
  103. data/db/migrate/008_create_users.rb +16 -0
  104. data/db/migrate/009_add_loots_ctype.rb +10 -0
  105. data/db/migrate/010_add_alert_fields.rb +16 -0
  106. data/db/migrate/011_add_reports.rb +19 -0
  107. data/db/migrate/012_add_tasks.rb +24 -0
  108. data/db/migrate/013_add_tasks_result.rb +10 -0
  109. data/db/migrate/014_add_loots_fields.rb +12 -0
  110. data/db/migrate/015_rename_user.rb +16 -0
  111. data/db/migrate/016_add_host_purpose.rb +10 -0
  112. data/db/migrate/017_expand_info2.rb +58 -0
  113. data/db/migrate/018_add_workspace_user_info.rb +29 -0
  114. data/db/migrate/019_add_workspace_desc.rb +23 -0
  115. data/db/migrate/020_add_user_preferences.rb +11 -0
  116. data/db/migrate/021_standardize_info_and_data.rb +18 -0
  117. data/db/migrate/022_enlarge_event_info.rb +10 -0
  118. data/db/migrate/023_add_report_downloaded_at.rb +10 -0
  119. data/db/migrate/024_convert_service_info_to_text.rb +12 -0
  120. data/db/migrate/025_add_user_admin.rb +19 -0
  121. data/db/migrate/026_add_creds_table.rb +19 -0
  122. data/db/migrate/20100819123300_migrate_cred_data.rb +154 -0
  123. data/db/migrate/20100824151500_add_exploited_table.rb +16 -0
  124. data/db/migrate/20100908001428_add_owner_to_workspaces.rb +9 -0
  125. data/db/migrate/20100911122000_add_report_templates.rb +18 -0
  126. data/db/migrate/20100916151530_require_admin_flag.rb +15 -0
  127. data/db/migrate/20100916175000_add_campaigns_and_templates.rb +61 -0
  128. data/db/migrate/20100920012100_add_generate_exe_column.rb +8 -0
  129. data/db/migrate/20100926214000_add_template_prefs.rb +11 -0
  130. data/db/migrate/20101001000000_add_web_tables.rb +57 -0
  131. data/db/migrate/20101002000000_add_query.rb +10 -0
  132. data/db/migrate/20101007000000_add_vuln_info.rb +15 -0
  133. data/db/migrate/20101008111800_add_clients_to_campaigns.rb +10 -0
  134. data/db/migrate/20101009023300_add_campaign_attachments.rb +15 -0
  135. data/db/migrate/20101104135100_add_imported_creds.rb +17 -0
  136. data/db/migrate/20101203000000_fix_web_tables.rb +34 -0
  137. data/db/migrate/20101203000001_expand_host_comment.rb +12 -0
  138. data/db/migrate/20101206212033_add_limit_to_network_to_workspaces.rb +9 -0
  139. data/db/migrate/20110112154300_add_module_uuid_to_tasks.rb +9 -0
  140. data/db/migrate/20110204112800_add_host_tags.rb +28 -0
  141. data/db/migrate/20110317144932_add_session_table.rb +110 -0
  142. data/db/migrate/20110414180600_add_local_id_to_session_table.rb +11 -0
  143. data/db/migrate/20110415175705_add_routes_table.rb +18 -0
  144. data/db/migrate/20110422000000_convert_binary.rb +73 -0
  145. data/db/migrate/20110425095900_add_last_seen_to_sessions.rb +8 -0
  146. data/db/migrate/20110513143900_track_successful_exploits.rb +31 -0
  147. data/db/migrate/20110517160800_rename_and_prune_nessus_vulns.rb +26 -0
  148. data/db/migrate/20110527000000_add_task_id_to_reports_table.rb +11 -0
  149. data/db/migrate/20110527000001_add_api_keys_table.rb +12 -0
  150. data/db/migrate/20110606000001_add_macros_table.rb +16 -0
  151. data/db/migrate/20110622000000_add_settings_to_tasks_table.rb +12 -0
  152. data/db/migrate/20110624000001_add_listeners_table.rb +19 -0
  153. data/db/migrate/20110625000001_add_macro_to_listeners_table.rb +12 -0
  154. data/db/migrate/20110630000001_add_nexpose_consoles_table.rb +21 -0
  155. data/db/migrate/20110630000002_add_name_to_nexpose_consoles_table.rb +12 -0
  156. data/db/migrate/20110717000001_add_profiles_table.rb +15 -0
  157. data/db/migrate/20110727163801_expand_cred_ptype_column.rb +9 -0
  158. data/db/migrate/20110730000001_add_initial_indexes.rb +85 -0
  159. data/db/migrate/20110812000001_prune_indexes.rb +23 -0
  160. data/db/migrate/20110922000000_expand_notes.rb +9 -0
  161. data/db/migrate/20110928101300_add_mod_ref_table.rb +17 -0
  162. data/db/migrate/20111011110000_add_display_name_to_reports_table.rb +24 -0
  163. data/db/migrate/20111203000000_inet_columns.rb +13 -0
  164. data/db/migrate/20111204000000_more_inet_columns.rb +17 -0
  165. data/db/migrate/20111210000000_add_scope_to_hosts.rb +9 -0
  166. data/db/migrate/20120126110000_add_virtual_host_to_hosts.rb +9 -0
  167. data/db/migrate/20120411173220_rename_workspace_members.rb +9 -0
  168. data/db/migrate/20120601152442_add_counter_caches_to_hosts.rb +21 -0
  169. data/db/migrate/20120625000000_add_vuln_details.rb +34 -0
  170. data/db/migrate/20120625000001_add_host_details.rb +16 -0
  171. data/db/migrate/20120625000002_expand_details.rb +16 -0
  172. data/db/migrate/20120625000003_expand_details2.rb +24 -0
  173. data/db/migrate/20120625000004_add_vuln_attempts.rb +19 -0
  174. data/db/migrate/20120625000005_add_vuln_and_host_counter_caches.rb +14 -0
  175. data/db/migrate/20120625000006_add_module_details.rb +118 -0
  176. data/db/migrate/20120625000007_add_exploit_attempts.rb +26 -0
  177. data/db/migrate/20120625000008_add_fail_message.rb +12 -0
  178. data/db/migrate/20120718202805_add_owner_and_payload_to_web_vulns.rb +13 -0
  179. data/db/migrate/20130228214900_change_required_columns_to_null_false_in_web_vulns.rb +19 -0
  180. data/db/migrate/20130412154159_change_foreign_key_in_module_actions.rb +25 -0
  181. data/db/migrate/20130412171844_change_foreign_key_in_module_archs.rb +25 -0
  182. data/db/migrate/20130412173121_change_foreign_key_in_module_authors.rb +25 -0
  183. data/db/migrate/20130412173640_change_foreign_key_in_module_mixins.rb +25 -0
  184. data/db/migrate/20130412174254_change_foreign_key_in_module_platforms.rb +25 -0
  185. data/db/migrate/20130412174719_change_foreign_key_in_module_refs.rb +25 -0
  186. data/db/migrate/20130412175040_change_foreign_key_in_module_targets.rb +25 -0
  187. data/db/migrate/20130423211152_add_creds_counter_cache.rb +24 -0
  188. data/db/migrate/20130430151353_change_required_columns_to_null_false_in_hosts.rb +11 -0
  189. data/db/migrate/20130430162145_enforce_address_uniqueness_in_workspace_in_hosts.rb +101 -0
  190. data/db/migrate/20130510021637_remove_campaigns.rb +11 -0
  191. data/db/migrate/20130515164311_change_web_vulns_confidence_to_integer.rb +48 -0
  192. data/db/migrate/20130515172727_valid_mdm_web_vuln_params.rb +30 -0
  193. data/db/migrate/20130516204810_making_vulns_refs_a_real_ar_model.rb +5 -0
  194. data/db/migrate/20130522001343_create_task_creds.rb +9 -0
  195. data/db/migrate/20130522032517_create_task_hosts.rb +9 -0
  196. data/db/migrate/20130522041110_create_task_services.rb +9 -0
  197. data/db/migrate/20130525015035_remove_campaign_id_from_clients.rb +9 -0
  198. data/db/migrate/20130525212420_drop_table_imported_creds.rb +14 -0
  199. data/db/migrate/20130531144949_making_host_tags_a_real_ar_model.rb +6 -0
  200. data/db/migrate/20130604145732_create_task_sessions.rb +9 -0
  201. data/db/migrate/20130717150737_remove_pname_validation.rb +7 -0
  202. data/db/migrate/20131002004641_create_automatic_exploitation_matches.rb +13 -0
  203. data/db/migrate/20131002164449_create_automatic_exploitation_match_sets.rb +12 -0
  204. data/db/migrate/20131008213344_create_automatic_exploitation_runs.rb +11 -0
  205. data/db/migrate/20131011184338_module_detail_on_automatic_exploitation_match.rb +10 -0
  206. data/db/migrate/20131017150735_create_automatic_exploitation_match_results.rb +11 -0
  207. data/db/migrate/20131021185657_make_match_polymorphic.rb +11 -0
  208. data/db/migrate/20140905031549_add_detected_arch_to_host.rb +5 -0
  209. data/db/migrate/20150112203945_remove_duplicate_services.rb +17 -0
  210. data/db/migrate/20150205192745_drop_service_uniqueness_index.rb +5 -0
  211. data/db/migrate/20150209195939_add_vuln_id_to_note.rb +6 -0
  212. data/db/migrate/20150212214222_remove_duplicate_services2.rb +17 -0
  213. data/db/migrate/20150219173821_create_module_runs.rb +23 -0
  214. data/db/migrate/20150219215039_add_module_run_to_session.rb +8 -0
  215. data/db/migrate/20150226151459_add_module_run_fk_to_loot.rb +8 -0
  216. data/db/migrate/20150312155312_add_module_full_name_to_match.rb +6 -0
  217. data/db/migrate/20150317145455_rename_module_indices.rb +29 -0
  218. data/db/migrate/20150326183742_add_missing_ae_indices.rb +13 -0
  219. data/db/migrate/20150421211719_rename_automatic_exploitation_index.rb +16 -0
  220. data/db/migrate/20150514182921_add_origin_to_mdm_vuln.rb +13 -0
  221. data/db/migrate/20160415153312_remove_not_null_from_web_vuln_p_arams.rb +5 -0
  222. data/db/migrate/20161004165612_add_fingerprinted_to_workspace.rb +5 -0
  223. data/db/migrate/20161227212223_add_os_family_to_hosts.rb +5 -0
  224. data/db/migrate/20180904120211_create_payloads.rb +21 -0
  225. data/db/migrate/20190308134512_create_async_callbacks.rb +13 -0
  226. data/db/migrate/20190507120211_remove_payload_workspaces.rb +5 -0
  227. data/lib/mdm/host/operating_system_normalization.rb +942 -0
  228. data/lib/mdm/module.rb +13 -0
  229. data/lib/mdm.rb +57 -0
  230. data/lib/metasploit_data_models/automatic_exploitation.rb +25 -0
  231. data/lib/metasploit_data_models/base64_serializer.rb +99 -0
  232. data/lib/metasploit_data_models/change_required_columns_to_null_false.rb +21 -0
  233. data/lib/metasploit_data_models/engine.rb +32 -0
  234. data/lib/metasploit_data_models/ip_address/cidr.rb +174 -0
  235. data/lib/metasploit_data_models/ip_address/range.rb +181 -0
  236. data/lib/metasploit_data_models/ip_address/v4/segment/nmap.rb +7 -0
  237. data/lib/metasploit_data_models/ip_address/v4/segment.rb +7 -0
  238. data/lib/metasploit_data_models/ip_address/v4.rb +11 -0
  239. data/lib/metasploit_data_models/ip_address.rb +9 -0
  240. data/lib/metasploit_data_models/match/child.rb +48 -0
  241. data/lib/metasploit_data_models/match/parent.rb +103 -0
  242. data/lib/metasploit_data_models/match.rb +8 -0
  243. data/lib/metasploit_data_models/search/operation/port.rb +9 -0
  244. data/lib/metasploit_data_models/search/operation.rb +9 -0
  245. data/lib/metasploit_data_models/search/operator/port.rb +6 -0
  246. data/lib/metasploit_data_models/search/operator.rb +8 -0
  247. data/lib/metasploit_data_models/search/visitor.rb +11 -0
  248. data/lib/metasploit_data_models/search.rb +8 -0
  249. data/lib/metasploit_data_models/serialized_prefs.rb +27 -0
  250. data/lib/metasploit_data_models/version.rb +13 -0
  251. data/lib/metasploit_data_models.rb +56 -0
  252. data/metasploit_data_models.gemspec +65 -0
  253. data/script/rails +8 -0
  254. data/spec/app/models/mdm/api_key_spec.rb +3 -0
  255. data/spec/app/models/mdm/client_spec.rb +43 -0
  256. data/spec/app/models/mdm/cred_spec.rb +346 -0
  257. data/spec/app/models/mdm/event_spec.rb +90 -0
  258. data/spec/app/models/mdm/exploit_attempt_spec.rb +59 -0
  259. data/spec/app/models/mdm/exploited_host_spec.rb +44 -0
  260. data/spec/app/models/mdm/host_detail_spec.rb +48 -0
  261. data/spec/app/models/mdm/host_spec.rb +1139 -0
  262. data/spec/app/models/mdm/host_tag_spec.rb +69 -0
  263. data/spec/app/models/mdm/listener_spec.rb +107 -0
  264. data/spec/app/models/mdm/loot_spec.rb +84 -0
  265. data/spec/app/models/mdm/macro_spec.rb +3 -0
  266. data/spec/app/models/mdm/mod_ref_spec.rb +3 -0
  267. data/spec/app/models/mdm/module/action_spec.rb +34 -0
  268. data/spec/app/models/mdm/module/arch_spec.rb +34 -0
  269. data/spec/app/models/mdm/module/author_spec.rb +52 -0
  270. data/spec/app/models/mdm/module/detail_spec.rb +746 -0
  271. data/spec/app/models/mdm/module/mixin_spec.rb +34 -0
  272. data/spec/app/models/mdm/module/platform_spec.rb +34 -0
  273. data/spec/app/models/mdm/module/ref_spec.rb +58 -0
  274. data/spec/app/models/mdm/module/target_spec.rb +36 -0
  275. data/spec/app/models/mdm/nexpose_console_spec.rb +146 -0
  276. data/spec/app/models/mdm/note_spec.rb +91 -0
  277. data/spec/app/models/mdm/profile_spec.rb +3 -0
  278. data/spec/app/models/mdm/ref_spec.rb +71 -0
  279. data/spec/app/models/mdm/route_spec.rb +35 -0
  280. data/spec/app/models/mdm/service_spec.rb +232 -0
  281. data/spec/app/models/mdm/session_event_spec.rb +42 -0
  282. data/spec/app/models/mdm/session_spec.rb +118 -0
  283. data/spec/app/models/mdm/tag_spec.rb +116 -0
  284. data/spec/app/models/mdm/task_cred_spec.rb +51 -0
  285. data/spec/app/models/mdm/task_host_spec.rb +50 -0
  286. data/spec/app/models/mdm/task_service_spec.rb +50 -0
  287. data/spec/app/models/mdm/task_session_spec.rb +46 -0
  288. data/spec/app/models/mdm/task_spec.rb +71 -0
  289. data/spec/app/models/mdm/user_spec.rb +50 -0
  290. data/spec/app/models/mdm/vuln_attempt_spec.rb +53 -0
  291. data/spec/app/models/mdm/vuln_detail_spec.rb +65 -0
  292. data/spec/app/models/mdm/vuln_ref_spec.rb +46 -0
  293. data/spec/app/models/mdm/vuln_spec.rb +299 -0
  294. data/spec/app/models/mdm/web_form_spec.rb +46 -0
  295. data/spec/app/models/mdm/web_page_spec.rb +101 -0
  296. data/spec/app/models/mdm/web_site_spec.rb +85 -0
  297. data/spec/app/models/mdm/web_vuln_spec.rb +312 -0
  298. data/spec/app/models/mdm/wmap_request_spec.rb +5 -0
  299. data/spec/app/models/mdm/wmap_target_spec.rb +5 -0
  300. data/spec/app/models/mdm/workspace_spec.rb +500 -0
  301. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb +86 -0
  302. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb +46 -0
  303. data/spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb +37 -0
  304. data/spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb +38 -0
  305. data/spec/app/models/metasploit_data_models/ip_address/v4/cidr_spec.rb +119 -0
  306. data/spec/app/models/metasploit_data_models/ip_address/v4/nmap_spec.rb +149 -0
  307. data/spec/app/models/metasploit_data_models/ip_address/v4/range_spec.rb +298 -0
  308. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list_spec.rb +276 -0
  309. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb +302 -0
  310. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/segmented_spec.rb +27 -0
  311. data/spec/app/models/metasploit_data_models/ip_address/v4/segment/single_spec.rb +324 -0
  312. data/spec/app/models/metasploit_data_models/ip_address/v4/single_spec.rb +181 -0
  313. data/spec/app/models/metasploit_data_models/module_run_spec.rb +134 -0
  314. data/spec/app/models/metasploit_data_models/search/operation/ip_address_spec.rb +180 -0
  315. data/spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb +39 -0
  316. data/spec/app/models/metasploit_data_models/search/operation/port/range_spec.rb +138 -0
  317. data/spec/app/models/metasploit_data_models/search/operation/range_spec.rb +233 -0
  318. data/spec/app/models/metasploit_data_models/search/operator/ip_address_spec.rb +17 -0
  319. data/spec/app/models/metasploit_data_models/search/operator/multitext_spec.rb +160 -0
  320. data/spec/app/models/metasploit_data_models/search/operator/port/list_spec.rb +162 -0
  321. data/spec/app/models/metasploit_data_models/search/visitor/attribute_spec.rb +96 -0
  322. data/spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb +175 -0
  323. data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +396 -0
  324. data/spec/app/models/metasploit_data_models/search/visitor/method_spec.rb +49 -0
  325. data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +925 -0
  326. data/spec/app/models/metasploit_data_models/search/visitor/where_spec.rb +187 -0
  327. data/spec/dummy/Rakefile +7 -0
  328. data/spec/dummy/app/assets/config/manifest.js +1 -0
  329. data/spec/dummy/app/assets/javascripts/application.js +15 -0
  330. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  331. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  332. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  333. data/spec/dummy/app/mailers/.gitkeep +0 -0
  334. data/spec/dummy/app/models/.gitkeep +0 -0
  335. data/spec/dummy/app/models/application_record.rb +3 -0
  336. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  337. data/spec/dummy/bin/bundle +3 -0
  338. data/spec/dummy/bin/rails +4 -0
  339. data/spec/dummy/bin/rake +4 -0
  340. data/spec/dummy/config/application.rb +61 -0
  341. data/spec/dummy/config/boot.rb +4 -0
  342. data/spec/dummy/config/database.yml.example +22 -0
  343. data/spec/dummy/config/database.yml.github_actions +21 -0
  344. data/spec/dummy/config/environment.rb +5 -0
  345. data/spec/dummy/config/environments/development.rb +37 -0
  346. data/spec/dummy/config/environments/production.rb +78 -0
  347. data/spec/dummy/config/environments/test.rb +39 -0
  348. data/spec/dummy/config/initializers/active_record_migrations.rb +4 -0
  349. data/spec/dummy/config/initializers/assets.rb +8 -0
  350. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  351. data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
  352. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  353. data/spec/dummy/config/initializers/inflections.rb +16 -0
  354. data/spec/dummy/config/initializers/mime_types.rb +4 -0
  355. data/spec/dummy/config/initializers/session_store.rb +3 -0
  356. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  357. data/spec/dummy/config/locales/en.yml +23 -0
  358. data/spec/dummy/config/routes.rb +2 -0
  359. data/spec/dummy/config.ru +4 -0
  360. data/spec/dummy/db/structure.sql +3430 -0
  361. data/spec/dummy/db/structure.sql.from_rails_3 +3403 -0
  362. data/spec/dummy/lib/assets/.gitkeep +0 -0
  363. data/spec/dummy/log/.gitkeep +0 -0
  364. data/spec/dummy/public/404.html +26 -0
  365. data/spec/dummy/public/422.html +26 -0
  366. data/spec/dummy/public/500.html +25 -0
  367. data/spec/dummy/public/favicon.ico +0 -0
  368. data/spec/dummy/script/rails +6 -0
  369. data/spec/factories/mdm/addresses.rb +12 -0
  370. data/spec/factories/mdm/clients.rb +8 -0
  371. data/spec/factories/mdm/creds.rb +17 -0
  372. data/spec/factories/mdm/events.rb +15 -0
  373. data/spec/factories/mdm/exploit_attempts.rb +8 -0
  374. data/spec/factories/mdm/exploited_hosts.rb +7 -0
  375. data/spec/factories/mdm/fingerprints/nessus_fingerprints.rb +6 -0
  376. data/spec/factories/mdm/fingerprints/nexpose_fingerprints.rb +6 -0
  377. data/spec/factories/mdm/fingerprints/nmap_fingerprints.rb +6 -0
  378. data/spec/factories/mdm/fingerprints/retina_fingerprints.rb +6 -0
  379. data/spec/factories/mdm/fingerprints/session_fingerprints.rb +6 -0
  380. data/spec/factories/mdm/host_details.rb +8 -0
  381. data/spec/factories/mdm/host_tags.rb +9 -0
  382. data/spec/factories/mdm/hosts.rb +85 -0
  383. data/spec/factories/mdm/listeners.rb +12 -0
  384. data/spec/factories/mdm/loots.rb +11 -0
  385. data/spec/factories/mdm/module/actions.rb +14 -0
  386. data/spec/factories/mdm/module/archs.rb +14 -0
  387. data/spec/factories/mdm/module/authors.rb +22 -0
  388. data/spec/factories/mdm/module/details.rb +73 -0
  389. data/spec/factories/mdm/module/mixins.rb +14 -0
  390. data/spec/factories/mdm/module/platforms.rb +14 -0
  391. data/spec/factories/mdm/module/refs.rb +14 -0
  392. data/spec/factories/mdm/module/targets.rb +19 -0
  393. data/spec/factories/mdm/nexpose_consoles.rb +15 -0
  394. data/spec/factories/mdm/notes.rb +12 -0
  395. data/spec/factories/mdm/refs.rb +9 -0
  396. data/spec/factories/mdm/routes.rb +36 -0
  397. data/spec/factories/mdm/services.rb +41 -0
  398. data/spec/factories/mdm/session_events.rb +8 -0
  399. data/spec/factories/mdm/sessions.rb +13 -0
  400. data/spec/factories/mdm/tags.rb +14 -0
  401. data/spec/factories/mdm/task.rb +16 -0
  402. data/spec/factories/mdm/task_creds.rb +9 -0
  403. data/spec/factories/mdm/task_hosts.rb +9 -0
  404. data/spec/factories/mdm/task_services.rb +8 -0
  405. data/spec/factories/mdm/task_sessions.rb +8 -0
  406. data/spec/factories/mdm/users.rb +22 -0
  407. data/spec/factories/mdm/vuln_attempts.rb +8 -0
  408. data/spec/factories/mdm/vuln_details.rb +8 -0
  409. data/spec/factories/mdm/vuln_refs.rb +4 -0
  410. data/spec/factories/mdm/vulns.rb +20 -0
  411. data/spec/factories/mdm/web_forms.rb +33 -0
  412. data/spec/factories/mdm/web_pages.rb +64 -0
  413. data/spec/factories/mdm/web_sites.rb +8 -0
  414. data/spec/factories/mdm/web_vulns.rb +64 -0
  415. data/spec/factories/mdm/workspaces.rb +23 -0
  416. data/spec/factories/metasploit_data_models/automatic_exploitation/match_results.rb +7 -0
  417. data/spec/factories/metasploit_data_models/automatic_exploitation/match_sets.rb +8 -0
  418. data/spec/factories/metasploit_data_models/automatic_exploitation/matches.rb +7 -0
  419. data/spec/factories/metasploit_data_models/automatic_exploitation/runs.rb +6 -0
  420. data/spec/factories/module_runs.rb +40 -0
  421. data/spec/lib/base64_serializer_spec.rb +172 -0
  422. data/spec/lib/ipaddr_spec.rb +29 -0
  423. data/spec/lib/metasploit_data_models/ip_address/cidr_spec.rb +356 -0
  424. data/spec/lib/metasploit_data_models/ip_address/range_spec.rb +75 -0
  425. data/spec/lib/metasploit_data_models/match/child_spec.rb +59 -0
  426. data/spec/lib/metasploit_data_models/match/parent_spec.rb +153 -0
  427. data/spec/lib/metasploit_data_models_spec.rb +13 -0
  428. data/spec/spec_helper.rb +148 -0
  429. data/spec/support/matchers/match_regex_exactly.rb +28 -0
  430. data/spec/support/shared/contexts/rex/text.rb +15 -0
  431. data/spec/support/shared/examples/coerces_inet_column_type_to_string.rb +15 -0
  432. data/spec/support/shared/examples/mdm/module/detail/does_not_support_stance_with_mtype.rb +20 -0
  433. data/spec/support/shared/examples/mdm/module/detail/supports_stance_with_mtype.rb +36 -0
  434. data/spec/support/shared/examples/metasploit_data_models/search/operation/ipaddress/match.rb +109 -0
  435. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_children.rb +38 -0
  436. data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_metasploit_model_search_operation_base.rb +26 -0
  437. data/spec/support/shared/examples/metasploit_data_models/search/visitor/relation/visit/matching_record.rb +50 -0
  438. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_equality.rb +34 -0
  439. data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_metasploit_model_search_group_base.rb +51 -0
  440. metadata +444 -6
@@ -0,0 +1,11 @@
1
+ class AddUserPreferences < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :users, :prefs, :string, :limit => 524288
4
+ end
5
+
6
+ def self.down
7
+ remove_column :users, :prefs
8
+ end
9
+
10
+ end
11
+
@@ -0,0 +1,18 @@
1
+ class StandardizeInfoAndData < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ # Remove the host requirement. We'll add the column back in below.
4
+ remove_column :vulns, :data
5
+ change_table :vulns do |t|
6
+ t.string :info, :limit => 65536
7
+ end
8
+ end
9
+
10
+ def self.down
11
+ remove_column :vulns, :info
12
+ change_table :notes do |t|
13
+ t.string :data, :limit => 65536
14
+
15
+ end
16
+ end
17
+ end
18
+
@@ -0,0 +1,10 @@
1
+ class EnlargeEventInfo < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ change_column :events, :info, :text
4
+ end
5
+
6
+ def self.down
7
+ change_column :events, :info, :string, :limit => 65535
8
+ end
9
+ end
10
+
@@ -0,0 +1,10 @@
1
+ class AddReportDownloadedAt < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :reports, :downloaded_at, :timestamp
4
+ end
5
+
6
+ def self.down
7
+ remove_column :reports, :downloaded_at
8
+ end
9
+ end
10
+
@@ -0,0 +1,12 @@
1
+ class ConvertServiceInfoToText < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ change_column :services, :info, :text
5
+ end
6
+
7
+ def self.down
8
+ change_column :services, :info, :string, :limit => 65536
9
+ end
10
+
11
+ end
12
+
@@ -0,0 +1,19 @@
1
+ class AddUserAdmin < ActiveRecord::Migration[4.2]
2
+
3
+ # Add user admin flag and project member list.
4
+ def self.up
5
+ add_column :users, :admin, :boolean, :default => true
6
+
7
+ create_table :project_members, :id => false do |t|
8
+ t.integer :workspace_id, :null => false
9
+ t.integer :user_id, :null => false
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ remove_column :users, :admin
15
+
16
+ drop_table :project_members
17
+ end
18
+ end
19
+
@@ -0,0 +1,19 @@
1
+ class AddCredsTable < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ create_table :creds do |t|
4
+ t.integer :service_id, :null => false
5
+ t.timestamps null: false
6
+ t.string :user, :limit => 2048
7
+ t.string :pass, :limit => 4096
8
+ t.boolean :active, :default => true
9
+ t.string :proof, :limit => 4096
10
+ t.string :ptype, :limit => 16
11
+ t.integer :source_id
12
+ t.string :source_type
13
+ end
14
+ end
15
+ def self.down
16
+ drop_table :creds
17
+ end
18
+ end
19
+
@@ -0,0 +1,154 @@
1
+ class MigrateCredData < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ begin # Wrap the whole thing in a giant rescue.
5
+ skipped_notes = []
6
+ new_creds = []
7
+ Mdm::Note.all.each do |note|
8
+ next unless note.ntype[/^auth\.(.*)/]
9
+ service_name = $1
10
+ if !service_name
11
+ skipped_notes << note
12
+ next
13
+ end
14
+ if note.host and note.host.respond_to?(:address)
15
+ if note.service
16
+ svc_id = note.service.id
17
+ else
18
+ candidate_services = []
19
+ note.host.services.each do |service|
20
+ if service.name == service_name
21
+ candidate_services << service
22
+ end
23
+ end
24
+ # Use the default port, or the first port that matches the protocol name.
25
+ default_port = case service_name.downcase
26
+ when 'ftp'; 21
27
+ when /^smb/; 445
28
+ when /^imap/; 143
29
+ when 'telnet'; 23
30
+ when 'pop3'; 110
31
+ when 'http','domino','axis','wordpress','tomcat'; 80
32
+ when 'tns'; 1521
33
+ when 'snmp'; 161
34
+ when 'mssql'; 1433
35
+ when 'ssh'; 22
36
+ when 'https'; 443
37
+ when 'mysql'; 3306
38
+ when 'db2'; 50000
39
+ when 'postgres'; 5432
40
+ else nil
41
+ end
42
+ if !default_port
43
+ skipped_notes << note
44
+ next
45
+ end
46
+ if candidate_services.size == 1
47
+ svc_id = candidate_services.first.id
48
+ elsif candidate_services.empty?
49
+ Mdm::Service.new do |svc|
50
+ svc.host_id = note.host.id
51
+ svc.port = default_port
52
+ svc.proto = 'tcp'
53
+ svc.state = 'open'
54
+ svc.name = service_name.downcase
55
+ svc.save!
56
+ svc_id = svc.id
57
+ end
58
+ elsif candidate_services.size > 1
59
+ svc_ports = candidate_services.map{|s| s.port}
60
+ if svc_ports.index(default_port)
61
+ svc_id = candidate_services[svc_ports.index(default_port)].id
62
+ else
63
+ svc_id = candidate_services.first.id
64
+ end
65
+ end
66
+ end
67
+ else
68
+ skipped_notes << note
69
+ next
70
+ end
71
+ if note.data[:hash]
72
+ ptype = 'smb_hash'
73
+ pass = note.data[:hash]
74
+ elsif note.data[:ssh_key]
75
+ ptype = 'ssh_key'
76
+ pass = note.data[:extra]
77
+ else
78
+ ptype = 'password'
79
+ pass = note.data[:pass]
80
+ end
81
+ # Format domains and databases into the usernames.
82
+ if note.ntype == "auth.smb_challenge"
83
+ domain = note.data[:extra].match(/DOMAIN=([^\s]+)/)[1]
84
+ if domain
85
+ user = [domain, note.data[:user]].join("/")
86
+ else
87
+ user = note.data[:user]
88
+ end
89
+ elsif note.ntype =~ /auth\.(postgres|db2)/
90
+ if note.data[:database]
91
+ user = [note.data[:database], note.data[:user]].join("/")
92
+ else
93
+ user = note.data[:user]
94
+ end
95
+ else
96
+ user = note.data[:user]
97
+ end
98
+ # Not actually a credentials, convert to migrated notes
99
+ if service_name == 'smb' && note.data[:token]
100
+ skipped_notes << note
101
+ next
102
+ end
103
+ if service_name == 'tns' && note.data[:type] == "bruteforced_sid"
104
+ skipped_notes << note
105
+ next
106
+ end
107
+ # Special case for the bizarre reporting for aux/admin/oracle/oracle_login
108
+ if service_name == 'tns' && note.data[:type] == "bruteforced_account"
109
+ note.data[:data] =~ /([^\x2f]+)\x2f([^\s]+).*with sid (.*)/
110
+ user = "#{$3}/#{$1}"
111
+ pass = $2
112
+ end
113
+ new_creds << [svc_id, ptype, user, pass]
114
+ end
115
+
116
+ say "Migrating #{new_creds.size} credentials."
117
+ new_creds.uniq.each do |note|
118
+ Mdm::Cred.new do |cred|
119
+ cred.service_id = note[0]
120
+ cred.user = note[2]
121
+ cred.pass = note[3]
122
+ cred.ptype = note[1]
123
+ cred.save!
124
+ end
125
+ end
126
+
127
+ say "Migrating #{skipped_notes.size} notes."
128
+ skipped_notes.uniq.each do |note|
129
+ Mdm::Note.new do |new_note|
130
+ new_note.host_id = note.host_id
131
+ new_note.ntype = "migrated_auth"
132
+ new_note.data = note.data.merge(:migrated_auth_type => note.ntype)
133
+ new_note.save!
134
+ end
135
+ end
136
+
137
+ say "Deleting migrated auth notes."
138
+ Mdm::Note.all.each do |note|
139
+ next unless note.ntype[/^auth\.(.*)/]
140
+ note.delete
141
+ end
142
+ rescue
143
+ say "There was a problem migrating auth credentials. Skipping."
144
+ return true # Never fail!
145
+ end
146
+ end
147
+
148
+
149
+ def self.down
150
+ raise ActiveRecord::IrreversibleMigration
151
+ end
152
+
153
+ end
154
+
@@ -0,0 +1,16 @@
1
+ class AddExploitedTable < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ create_table :exploited_hosts do |t|
4
+ t.integer :host_id, :null => false
5
+ t.integer :service_id
6
+ t.string :session_uuid, :limit => 8
7
+ t.string :name, :limit => 2048
8
+ t.string :payload, :limit => 2048
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+ def self.down
13
+ drop_table :exploited_hosts
14
+ end
15
+ end
16
+
@@ -0,0 +1,9 @@
1
+ class AddOwnerToWorkspaces < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :workspaces, :owner_id, :integer
4
+ end
5
+
6
+ def self.down
7
+ remove_column :workspaces, :owner_id
8
+ end
9
+ end
@@ -0,0 +1,18 @@
1
+ class AddReportTemplates < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :report_templates do |t|
5
+ t.integer :workspace_id, :null => false, :default => 1
6
+ t.string :created_by
7
+ t.string :path, :limit => 1024
8
+ t.text :name
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :reports
15
+ end
16
+
17
+ end
18
+
@@ -0,0 +1,15 @@
1
+ class RequireAdminFlag < ActiveRecord::Migration[4.2]
2
+
3
+ # Make the admin flag required.
4
+ def self.up
5
+ # update any existing records
6
+ Mdm::User.where(:admin => true).update_all(:admin => nil)
7
+
8
+ change_column :users, :admin, :boolean, :null => false, :default => true
9
+ end
10
+
11
+ def self.down
12
+ change_column :users, :admin, :boolean, :default => true
13
+ end
14
+
15
+ end
@@ -0,0 +1,61 @@
1
+
2
+ class AddCampaignsAndTemplates < ActiveRecord::Migration[4.2]
3
+
4
+ def self.up
5
+ create_table :campaigns do |t|
6
+ t.integer :workspace_id, :null => false
7
+ t.string :name, :limit => 512
8
+ # Serialized, stores SMTP/other protocol config options etc.
9
+ t.text :prefs
10
+ t.integer :status, :default => 0
11
+ t.timestamp :started_at
12
+ t.timestamps null: false
13
+ end
14
+
15
+ create_table :email_templates do |t|
16
+ t.string :name, :limit => 512
17
+ t.string :subject, :limit => 1024
18
+ t.text :body
19
+ t.integer :parent_id
20
+ t.integer :campaign_id
21
+ end
22
+ create_table :attachments do |t|
23
+ t.string :name, :limit => 512
24
+ t.binary :data
25
+ t.string :content_type, :limit => 512
26
+ t.boolean :inline, :null => false, :default => true
27
+ t.boolean :zip, :null => false, :default => false
28
+ end
29
+ create_table :attachments_email_templates, :id => false do |t|
30
+ t.integer :attachment_id
31
+ t.integer :email_template_id
32
+ end
33
+
34
+ create_table :email_addresses do |t|
35
+ t.integer :campaign_id, :null => false
36
+ t.string :first_name, :limit => 512
37
+ t.string :last_name, :limit => 512
38
+ t.string :address, :limit => 512
39
+ t.boolean :sent, :null => false, :default => false
40
+ t.timestamp :clicked_at
41
+ end
42
+
43
+ create_table :web_templates do |t|
44
+ t.string :name, :limit => 512
45
+ t.string :title, :limit => 512
46
+ t.string :body, :limit => 524288
47
+ t.integer :campaign_id
48
+ end
49
+ end
50
+
51
+ def self.down
52
+ drop_table :campaigns
53
+ drop_table :email_templates
54
+ drop_table :attachments
55
+ drop_table :attachments_email_templates
56
+ drop_table :email_addresses
57
+ drop_table :web_templates
58
+ end
59
+
60
+ end
61
+
@@ -0,0 +1,8 @@
1
+ class AddGenerateExeColumn < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :email_templates, :generate_exe, :boolean, :null => false, :default => false
4
+ end
5
+ def self.down
6
+ remove_column :email_templates, :generate_exe
7
+ end
8
+ end
@@ -0,0 +1,11 @@
1
+ class AddTemplatePrefs < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ remove_column :email_templates, :generate_exe
4
+ add_column :email_templates, :prefs, :text
5
+ add_column :web_templates, :prefs, :text
6
+ end
7
+ def self.down
8
+ remove_column :email_templates, :prefs
9
+ remove_column :web_templates, :prefs
10
+ end
11
+ end
@@ -0,0 +1,57 @@
1
+ class AddWebTables < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :web_sites do |t|
5
+ t.integer :service_id, :null => false
6
+ t.timestamps null: false
7
+ t.string :vhost, :limit => 2048
8
+ t.text :comments
9
+ t.text :options
10
+ end
11
+
12
+ create_table :web_pages do |t|
13
+ t.integer :web_site_id, :null => false
14
+ t.timestamps null: false
15
+ t.text :path
16
+ t.text :query
17
+ t.integer :code, :null => false
18
+ t.text :cookie
19
+ t.text :auth
20
+ t.text :ctype
21
+ t.timestamp :mtime
22
+ t.text :location
23
+ t.text :body
24
+ t.text :headers
25
+ end
26
+
27
+ create_table :web_forms do |t|
28
+ t.integer :web_site_id, :null => false
29
+ t.timestamps null: false
30
+ t.text :path
31
+ t.string :method, :limit => 1024
32
+ t.text :params
33
+ end
34
+
35
+ create_table :web_vulns do |t|
36
+ t.integer :web_site_id, :null => false
37
+ t.timestamps null: false
38
+ t.text :path
39
+ t.string :method, :limit => 1024
40
+ t.text :params
41
+ t.text :pname
42
+ t.text :proof
43
+ t.integer :risk
44
+ t.string :name, :limit => 1024
45
+ end
46
+
47
+ end
48
+
49
+ def self.down
50
+ drop_table :web_sites
51
+ drop_table :web_pages
52
+ drop_table :web_forms
53
+ drop_table :web_vulns
54
+ end
55
+ end
56
+
57
+
@@ -0,0 +1,10 @@
1
+ class AddQuery < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :web_forms, :query, :text
4
+ add_column :web_vulns, :query, :text
5
+ end
6
+ def self.down
7
+ remove_column :web_forms, :query
8
+ remove_column :web_vulns, :query
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+ class AddVulnInfo < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :web_vulns, :category, :text
4
+ add_column :web_vulns, :confidence, :text
5
+ add_column :web_vulns, :description, :text
6
+ add_column :web_vulns, :blame, :text
7
+ end
8
+ def self.down
9
+ remove_column :web_forms, :category
10
+ remove_column :web_vulns, :confidence
11
+ remove_column :web_vulns, :description
12
+ remove_column :web_vulns, :blame
13
+ end
14
+ end
15
+
@@ -0,0 +1,10 @@
1
+
2
+ class AddClientsToCampaigns < ActiveRecord::Migration[4.2]
3
+ def self.up
4
+ add_column :clients, :campaign_id, :integer
5
+ end
6
+
7
+ def self.down
8
+ remove_column :clients, :campaign_id
9
+ end
10
+ end
@@ -0,0 +1,15 @@
1
+
2
+
3
+ class AddCampaignAttachments < ActiveRecord::Migration[4.2]
4
+
5
+ def self.up
6
+ add_column :attachments, :campaign_id, :integer
7
+ end
8
+
9
+ def self.down
10
+ remove_column :attachments, :campaign_id
11
+ end
12
+
13
+ end
14
+
15
+
@@ -0,0 +1,17 @@
1
+ class AddImportedCreds < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :imported_creds do |t|
5
+ t.integer :workspace_id, :null => false, :default => 1
6
+ t.string :user, :limit => 512
7
+ t.string :pass, :limit => 512
8
+ t.string :ptype, :limit => 16, :default => "password"
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ drop_table :imported_creds
14
+ end
15
+
16
+ end
17
+
@@ -0,0 +1,34 @@
1
+ class FixWebTables < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ change_column :web_pages, :path, :text
5
+ change_column :web_pages, :query, :text
6
+ change_column :web_pages, :cookie, :text
7
+ change_column :web_pages, :auth, :text
8
+ change_column :web_pages, :ctype, :text
9
+ change_column :web_pages, :location, :text
10
+ change_column :web_pages, :path, :text
11
+ change_column :web_vulns, :path, :text
12
+ change_column :web_vulns, :pname, :text
13
+
14
+ add_column :web_pages, :request, :text
15
+ add_column :web_vulns, :request, :text
16
+ end
17
+
18
+ def self.down
19
+ change_column :web_pages, :path, :text
20
+ change_column :web_pages, :query, :text
21
+ change_column :web_pages, :cookie, :text
22
+ change_column :web_pages, :auth, :text
23
+ change_column :web_pages, :ctype, :text
24
+ change_column :web_pages, :location, :text
25
+ change_column :web_pages, :path, :text
26
+ change_column :web_vulns, :path, :text
27
+ change_column :web_vulns, :pname, :text
28
+
29
+ remove_column :web_pages, :request
30
+ remove_column :web_vulns, :request
31
+ end
32
+ end
33
+
34
+
@@ -0,0 +1,12 @@
1
+ class ExpandHostComment < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ change_column :hosts, :comments, :text
5
+ end
6
+
7
+ def self.down
8
+ change_column :hosts, :comments, :string, :limit => 4096
9
+ end
10
+ end
11
+
12
+
@@ -0,0 +1,9 @@
1
+ class AddLimitToNetworkToWorkspaces < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :workspaces, :limit_to_network, :boolean, :null => false, :default => false
4
+ end
5
+
6
+ def self.down
7
+ remove_column :workspaces, :limit_to_network
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ class AddModuleUuidToTasks < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :tasks, :module_uuid, :string, :limit => 8
4
+ end
5
+
6
+ def self.down
7
+ remove_column :tasks, :module_uuid
8
+ end
9
+ end
@@ -0,0 +1,28 @@
1
+ class AddHostTags < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+
5
+ create_table :tags do |t|
6
+ t.integer :user_id
7
+ t.string :name, :limit => 1024
8
+ t.text :desc
9
+ t.boolean :report_summary, :null => false, :default => false
10
+ t.boolean :report_detail, :null => false, :default => false
11
+ t.boolean :critical, :null => false, :default => false
12
+ t.timestamps null: false
13
+ end
14
+
15
+ create_table :hosts_tags, :id => false do |t|
16
+ t.integer :host_id
17
+ t.integer :tag_id
18
+ end
19
+
20
+ end
21
+
22
+ def self.down
23
+ drop_table :hosts_tags
24
+ drop_table :tags
25
+ end
26
+
27
+ end
28
+