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,29 @@
1
+ module IPAddrExtensions
2
+ extend ActiveSupport::Concern
3
+
4
+ def coerce(other)
5
+ begin
6
+ case other
7
+ when IPAddr
8
+ other
9
+ when String
10
+ self.class.new(other)
11
+ else
12
+ self.class.new(other, @family)
13
+ end
14
+ rescue ArgumentError => e
15
+ OpenStruct.new(family: false, to_i: false)
16
+ end
17
+ end
18
+
19
+ def include?(other)
20
+ begin
21
+ super(other)
22
+ rescue IPAddr::InvalidAddressError
23
+ false
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ IPAddr.send(:prepend, IPAddrExtensions)
@@ -0,0 +1,94 @@
1
+ en:
2
+ activerecord:
3
+ ancestors:
4
+ mdm/service:
5
+ search:
6
+ operator:
7
+ names:
8
+ info:
9
+ help: "Filters the results by service information or banners that contain the specified value."
10
+ name:
11
+ help: "Filters the results by service name."
12
+ proto:
13
+ help: "Filters the results by transport protocol."
14
+ port:
15
+ help: "Filters the results by port number."
16
+ mdm/host:
17
+ search:
18
+ operator:
19
+ names:
20
+ name:
21
+ help: "Filters the results by host name."
22
+ address:
23
+ help: "Filters the results by IP address or range."
24
+ os:
25
+ help: "Filters the results by operating system."
26
+ os_name:
27
+ help: "Filters the results by operating system."
28
+ mdm/tag:
29
+ model:
30
+ errors:
31
+ messages:
32
+ character: "Tag names can only contain alphanumeric characters, dots, dashes, and underscores."
33
+ length: "desc must be less than 8k."
34
+
35
+ search:
36
+ operator:
37
+ names:
38
+ name:
39
+ help: "Filters the results by tag."
40
+ desc:
41
+ help: "Filters the results by the description field of an associated tag."
42
+ metasploit:
43
+ model:
44
+ errors:
45
+ messages:
46
+ # have to duplicate activerecord.model.errors.message.taken because of the different i18n_scope
47
+ taken: "has already been taken"
48
+ models:
49
+ metasploit_data_models/ip_address/range:
50
+ attributes:
51
+ value:
52
+ order: "beginning of range (%{begin}) cannot be after end of range (%{end})"
53
+ metasploit_data_models/ip_address/v4/segmented:
54
+ attributes:
55
+ segments:
56
+ segment_invalid: "has invalid segment (%{segment}) at index %{index}"
57
+ wrong_length: "is the wrong length (should be %{count} segments)"
58
+ metasploit_data_models/ip_address/v4/segment/nmap/list:
59
+ attributes:
60
+ value:
61
+ array: "is not an Array"
62
+ element: "has invalid element (%{element}) at index %{index}"
63
+ metasploit_data_models/ip_address/v4/segment/nmap/range:
64
+ attributes:
65
+ value:
66
+ order: "beginning of range (%{begin}) cannot be after end of range (%{end})"
67
+ metasploit_data_models/search/operation/ip_address/invalid_range:
68
+ attributes:
69
+ value:
70
+ format: "does not match any known formats (IPv4, IPv4 CIDR, IPv4 NMAP, IPv4 Range, IPv6, IPv6 CIDR, IPv6 Range)"
71
+ metasploit_data_models/search/operation/ip_address/v4/range:
72
+ attributes:
73
+ value:
74
+ extreme: "%{extreme} (%{extreme_value}) is not an IPAddr"
75
+ order: "beginning of range (%{begin}) cannot be after end of range (%{end})"
76
+ type: "is not a range"
77
+ metasploit_data_models/search/operation/ip_address/v4/single:
78
+ attributes:
79
+ value:
80
+ format: "does not match IPv4 dotted decimal format"
81
+ metasploit_data_models/search/operation/port/range:
82
+ attributes:
83
+ value:
84
+ port_range_extreme_inclusion: "has extreme (%{extreme}) value (%{extreme_value}) outside range (%{minimum}-%{maximum})."
85
+ port_range_extreme_not_an_integer: "has extreme (%{extreme}) value (%{extreme_value}) that is not an integer."
86
+ metasploit_data_models/search/operation/range:
87
+ attributes:
88
+ value:
89
+ order: "is not in order: begin (%{begin} is greater than end (%{end})."
90
+ range: "is not a range"
91
+ metasploit_data_models/search/operator/multitext:
92
+ attributes:
93
+ operator_names:
94
+ too_short: "is too short (minimum is %{count} operator names)"
data/console_db.yml ADDED
@@ -0,0 +1,9 @@
1
+ development:
2
+ adapter: postgresql
3
+ database: msf3_dev
4
+ host: localhost
5
+ port: 5432
6
+ username: msf3
7
+ password: pass123
8
+ pool: 5
9
+ timeout: 5
@@ -0,0 +1,79 @@
1
+ class CreateTables < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+
5
+ create_table :hosts do |t|
6
+ t.timestamp :created
7
+ t.string :address, :limit => 16 # unique
8
+ t.string :address6
9
+ t.string :mac
10
+ t.string :comm
11
+ t.string :name
12
+ t.string :state
13
+ t.string :info, :limit => 1024
14
+ t.string :os_name
15
+ t.string :os_flavor
16
+ t.string :os_sp
17
+ t.string :os_lang
18
+ t.string :arch
19
+ end
20
+
21
+ add_index :hosts, :address, :unique => true
22
+
23
+ create_table :clients do |t|
24
+ t.integer :host_id
25
+ t.timestamp :created
26
+ t.string :ua_string, :limit => 1024, :null => false
27
+ t.string :ua_name, :limit => 64
28
+ t.string :ua_ver, :limit => 32
29
+ end
30
+
31
+ create_table :services do |t|
32
+ t.integer :host_id
33
+ t.timestamp :created
34
+ t.integer :port, :null => false
35
+ t.string :proto, :limit => 16, :null => false
36
+ t.string :state
37
+ t.string :name
38
+ t.string :info, :limit => 1024
39
+ end
40
+
41
+ create_table :vulns do |t|
42
+ t.integer :host_id
43
+ t.integer :service_id
44
+ t.timestamp :created
45
+ t.string :name
46
+ t.text :data
47
+ end
48
+
49
+ create_table :refs do |t|
50
+ t.integer :ref_id
51
+ t.timestamp :created
52
+ t.string :name, :limit => 512
53
+ end
54
+
55
+ create_table :vulns_refs, :id => false do |t|
56
+ t.integer :ref_id
57
+ t.integer :vuln_id
58
+ end
59
+
60
+ create_table :notes do |t|
61
+ t.integer :host_id
62
+ t.timestamp :created
63
+ t.string :ntype, :limit => 512
64
+ t.text :data
65
+ end
66
+
67
+ end
68
+
69
+ def self.down
70
+ drop_table :hosts
71
+ drop_table :clients
72
+ drop_table :services
73
+ drop_table :vulns
74
+ drop_table :refs
75
+ drop_table :vulns_refs
76
+ drop_table :notes
77
+ end
78
+
79
+ end
@@ -0,0 +1,35 @@
1
+ class AddWmapTables < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ create_table :wmap_targets do |t|
4
+ t.string :host # vhost
5
+ t.string :address, :limit => 16 # unique
6
+ t.string :address6
7
+ t.integer :port
8
+ t.integer :ssl
9
+ t.integer :selected
10
+ end
11
+
12
+ create_table :wmap_requests do |t|
13
+ t.string :host # vhost
14
+ t.string :address, :limit => 16 # unique
15
+ t.string :address6
16
+ t.integer :port
17
+ t.integer :ssl
18
+ t.string :meth, :limit => 32
19
+ t.text :path
20
+ t.text :headers
21
+ t.text :query
22
+ t.text :body
23
+ t.string :respcode, :limit => 16
24
+ t.text :resphead
25
+ t.text :response
26
+ t.timestamp :created
27
+ end
28
+ end
29
+
30
+ def self.down
31
+ drop_table :wmap_targets
32
+ drop_table :wmap_requests
33
+ end
34
+ end
35
+
@@ -0,0 +1,36 @@
1
+ class AddWorkspaces < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :workspaces do |t|
5
+ t.string :name
6
+ t.timestamps null: false
7
+ end
8
+
9
+ change_table :hosts do |t|
10
+ t.integer :workspace_id, :required => true
11
+ end
12
+
13
+ remove_index :hosts, :column => :address
14
+
15
+ #
16
+ # This was broken after 018_add_workspace_user_info was introduced
17
+ # because of the new boundary column. For some reason, the
18
+ # find_or_create_by_name that .default eventually calls here tries to
19
+ # create a record with the boundary field that doesn't exist yet.
20
+ # See #1724
21
+ #
22
+ #w = Msf::DBManager::Workspace.default
23
+ #Msf::DBManager::Host.update_all ["workspace_id = ?", w.id]
24
+ end
25
+
26
+ def self.down
27
+ drop_table :workspaces
28
+
29
+ change_table :hosts do |t|
30
+ t.remove :workspace_id
31
+ end
32
+
33
+ add_index :hosts, :address, :unique => true
34
+ end
35
+
36
+ end
@@ -0,0 +1,20 @@
1
+ class MoveNotes < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ # Remove the host requirement. We'll add the column back in below.
4
+ remove_column :notes, :host_id
5
+ change_table :notes do |t|
6
+ t.integer :workspace_id, :null => false, :default => 1
7
+ t.integer :service_id
8
+ t.integer :host_id
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ remove_column :notes, :workspace_id
14
+ remove_column :notes, :service_id
15
+ change_table :notes do |t|
16
+ t.integer :host_id, :null => false
17
+ end
18
+ end
19
+ end
20
+
@@ -0,0 +1,16 @@
1
+ class AddEventsTable < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ create_table :events do |t|
4
+ t.integer :workspace_id
5
+ t.integer :host_id
6
+ t.timestamp :created_at
7
+ t.string :user
8
+ t.string :name
9
+ t.string :info
10
+ end
11
+ end
12
+ def self.down
13
+ drop_table :events
14
+ end
15
+ end
16
+
@@ -0,0 +1,58 @@
1
+ class ExpandInfo < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ remove_column :events, :info
4
+ change_table :events do |t|
5
+ t.string :info, :limit => 4096
6
+ end
7
+
8
+ remove_column :notes, :data
9
+ change_table :notes do |t|
10
+ t.string :data, :limit => 4096
11
+ end
12
+
13
+ remove_column :vulns, :data
14
+ change_table :vulns do |t|
15
+ t.string :data, :limit => 4096
16
+ end
17
+
18
+ remove_column :hosts, :info
19
+ change_table :hosts do |t|
20
+ t.string :info, :limit => 4096
21
+ end
22
+
23
+ remove_column :services, :info
24
+ change_table :services do |t|
25
+ t.string :info, :limit => 4096
26
+ end
27
+ end
28
+
29
+ def self.down
30
+
31
+ remove_column :events, :info
32
+ change_table :events do |t|
33
+ t.string :info
34
+ end
35
+
36
+ remove_column :notes, :data
37
+ change_table :notes do |t|
38
+ t.string :data, :limit => 1024
39
+ end
40
+
41
+ remove_column :hosts, :info
42
+ change_table :hosts do |t|
43
+ t.string :info, :limit => 1024
44
+ end
45
+
46
+ remove_column :vulns, :data
47
+ change_table :hosts do |t|
48
+ t.string :data, :limit => 1024
49
+ end
50
+
51
+ remove_column :services, :info
52
+ change_table :services do |t|
53
+ t.string :info, :limit => 1024
54
+ end
55
+
56
+ end
57
+ end
58
+
@@ -0,0 +1,26 @@
1
+
2
+ # Adds 'created_at' and 'updated_at' columns to every primary table.
3
+ #
4
+ class AddTimestamps < ActiveRecord::Migration[4.2]
5
+
6
+ @@TABLES_NEEDING_RENAME = [:clients, :hosts, :notes, :refs, :services, :vulns, :wmap_requests]
7
+ @@TABLES_NEEDING_CREATED_AT = [:wmap_targets]
8
+ @@TABLES_NEEDING_UPDATED_AT = [:clients, :events, :hosts, :notes, :refs, :services, :vulns, :wmap_requests, :wmap_targets]
9
+
10
+ def self.up
11
+ @@TABLES_NEEDING_RENAME.each { |t| rename_column t, :created, :created_at }
12
+
13
+ @@TABLES_NEEDING_CREATED_AT.each { |t| add_column t, :created_at, :datetime }
14
+
15
+ @@TABLES_NEEDING_UPDATED_AT.each { |t| add_column t, :updated_at, :datetime }
16
+ end
17
+
18
+ def self.down
19
+ @@TABLES_NEEDING_RENAME.each { |t| rename_column t, :created_at, :created }
20
+
21
+ @@TABLES_NEEDING_CREATED_AT.each { |t| remove_column t, :created_at }
22
+
23
+ @@TABLES_NEEDING_UPDATED_AT.each { |t| remove_column t, :updated_at }
24
+ end
25
+ end
26
+
@@ -0,0 +1,20 @@
1
+ class AddLoots < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :loots do |t|
5
+ t.integer :workspace_id, :null => false, :default => 1
6
+ t.integer :host_id
7
+ t.integer :service_id
8
+ t.string :ltype, :limit => 512
9
+ t.string :path, :limit => 1024
10
+ t.text :data
11
+ t.timestamps null: false
12
+ end
13
+ end
14
+
15
+ def self.down
16
+ drop_table :loots
17
+ end
18
+
19
+ end
20
+
@@ -0,0 +1,16 @@
1
+ class CreateUsers < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ create_table :users do |t|
4
+ t.string :username
5
+ t.string :crypted_password
6
+ t.string :password_salt
7
+ t.string :persistence_token
8
+
9
+ t.timestamps null: false
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :users
15
+ end
16
+ end
@@ -0,0 +1,10 @@
1
+ class AddLootsCtype < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :loots, :content_type, :string
4
+ end
5
+
6
+ def self.down
7
+ remove_column :loots, :content_type
8
+ end
9
+ end
10
+
@@ -0,0 +1,16 @@
1
+ class AddAlertFields < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :notes, :critical, :boolean
4
+ add_column :notes, :seen, :boolean
5
+ add_column :events, :critical, :boolean
6
+ add_column :events, :seen, :boolean
7
+ end
8
+
9
+ def self.down
10
+ remove_column :notes, :critical
11
+ remove_column :notes, :seen
12
+ remove_column :events, :critical
13
+ remove_column :events, :seen
14
+ end
15
+ end
16
+
@@ -0,0 +1,19 @@
1
+ class AddReports < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :reports do |t|
5
+ t.integer :workspace_id, :null => false, :default => 1
6
+ t.string :created_by
7
+ t.string :rtype
8
+ t.string :path, :limit => 1024
9
+ t.text :options
10
+ t.timestamps null: false
11
+ end
12
+ end
13
+
14
+ def self.down
15
+ drop_table :reports
16
+ end
17
+
18
+ end
19
+
@@ -0,0 +1,24 @@
1
+ class AddTasks < ActiveRecord::Migration[4.2]
2
+
3
+ def self.up
4
+ create_table :tasks do |t|
5
+ t.integer :workspace_id, :null => false, :default => 1
6
+ t.string :created_by
7
+ t.string :module
8
+ t.datetime :completed_at
9
+ t.string :path, :limit => 1024
10
+ t.string :info
11
+ t.string :description
12
+ t.integer :progress
13
+ t.text :options
14
+ t.text :error
15
+ t.timestamps null: false
16
+ end
17
+ end
18
+
19
+ def self.down
20
+ drop_table :tasks
21
+ end
22
+
23
+ end
24
+
@@ -0,0 +1,10 @@
1
+ class AddTasksResult < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :tasks, :result, :text
4
+ end
5
+
6
+ def self.down
7
+ remove_column :tasks, :result
8
+ end
9
+ end
10
+
@@ -0,0 +1,12 @@
1
+ class AddLootsFields < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :loots, :name, :text
4
+ add_column :loots, :info, :text
5
+ end
6
+
7
+ def self.down
8
+ remove_column :loots, :name
9
+ remove_column :loots, :info
10
+ end
11
+ end
12
+
@@ -0,0 +1,16 @@
1
+ class RenameUser < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ remove_column :events, :user
4
+ change_table :events do |t|
5
+ t.string :username
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ remove_column :events, :username
11
+ change_table :events do |t|
12
+ t.string :user
13
+ end
14
+ end
15
+ end
16
+
@@ -0,0 +1,10 @@
1
+ class AddHostPurpose < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ add_column :hosts, :purpose, :text
4
+ end
5
+
6
+ def self.down
7
+ remove_column :hosts, :purpose
8
+ end
9
+ end
10
+
@@ -0,0 +1,58 @@
1
+ class ExpandInfo2 < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ remove_column :events, :info
4
+ change_table :events do |t|
5
+ t.string :info, :limit => 65536
6
+ end
7
+
8
+ remove_column :notes, :data
9
+ change_table :notes do |t|
10
+ t.string :data, :limit => 65536
11
+ end
12
+
13
+ remove_column :vulns, :data
14
+ change_table :vulns do |t|
15
+ t.string :data, :limit => 65536
16
+ end
17
+
18
+ remove_column :hosts, :info
19
+ change_table :hosts do |t|
20
+ t.string :info, :limit => 65536
21
+ end
22
+
23
+ remove_column :services, :info
24
+ change_table :services do |t|
25
+ t.string :info, :limit => 65536
26
+ end
27
+ end
28
+
29
+ def self.down
30
+
31
+ remove_column :events, :info
32
+ change_table :events do |t|
33
+ t.string :info
34
+ end
35
+
36
+ remove_column :notes, :data
37
+ change_table :notes do |t|
38
+ t.string :data, :limit => 4096
39
+ end
40
+
41
+ remove_column :hosts, :info
42
+ change_table :hosts do |t|
43
+ t.string :info, :limit => 4096
44
+ end
45
+
46
+ remove_column :vulns, :data
47
+ change_table :vulns do |t|
48
+ t.string :data, :limit => 4096
49
+ end
50
+
51
+ remove_column :services, :info
52
+ change_table :services do |t|
53
+ t.string :info, :limit => 4096
54
+ end
55
+
56
+ end
57
+ end
58
+
@@ -0,0 +1,29 @@
1
+ class AddWorkspaceUserInfo < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ change_table :workspaces do |t|
4
+ t.string :boundary, :limit => 4096
5
+ end
6
+
7
+ change_table :users do |t|
8
+ t.string :fullname
9
+ t.string :email
10
+ t.string :phone
11
+ t.string :company
12
+ end
13
+ end
14
+
15
+ def self.down
16
+ change_table :workspaces do |t|
17
+ t.remove :boundary
18
+ end
19
+
20
+ change_table :users do |t|
21
+ t.remove :fullname
22
+ t.remove :email
23
+ t.remove :phone
24
+ t.remove :company
25
+ end
26
+ end
27
+
28
+ end
29
+
@@ -0,0 +1,23 @@
1
+ class AddWorkspaceDesc < ActiveRecord::Migration[4.2]
2
+ def self.up
3
+ change_table :workspaces do |t|
4
+ t.string :description, :limit => 4096
5
+ end
6
+
7
+ change_table :hosts do |t|
8
+ t.string :comments, :limit => 4096
9
+ end
10
+ end
11
+
12
+ def self.down
13
+ change_table :workspaces do |t|
14
+ t.remove :description
15
+ end
16
+
17
+ change_table :hosts do |t|
18
+ t.remove :comments
19
+ end
20
+ end
21
+
22
+ end
23
+