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.
- checksums.yaml +4 -4
- data/.coveralls.yml +1 -0
- data/.github/workflows/verify.yml +68 -0
- data/.gitignore +29 -0
- data/.rspec +3 -0
- data/.simplecov +38 -0
- data/.yardopts +4 -0
- data/CHANGELOG.md +6 -0
- data/CONTRIBUTING.md +133 -0
- data/Gemfile +46 -0
- data/LICENSE +27 -0
- data/README.md +65 -0
- data/RELEASING.md +82 -0
- data/Rakefile +72 -0
- data/UPGRADING.md +1 -0
- data/app/models/mdm/api_key.rb +61 -0
- data/app/models/mdm/async_callback.rb +64 -0
- data/app/models/mdm/client.rb +50 -0
- data/app/models/mdm/cred.rb +205 -0
- data/app/models/mdm/event.rb +83 -0
- data/app/models/mdm/exploit_attempt.rb +105 -0
- data/app/models/mdm/exploited_host.rb +42 -0
- data/app/models/mdm/host.rb +619 -0
- data/app/models/mdm/host_detail.rb +62 -0
- data/app/models/mdm/host_tag.rb +49 -0
- data/app/models/mdm/listener.rb +82 -0
- data/app/models/mdm/loot.rb +161 -0
- data/app/models/mdm/macro.rb +62 -0
- data/app/models/mdm/mod_ref.rb +24 -0
- data/app/models/mdm/module/action.rb +33 -0
- data/app/models/mdm/module/arch.rb +28 -0
- data/app/models/mdm/module/author.rb +34 -0
- data/app/models/mdm/module/detail.rb +388 -0
- data/app/models/mdm/module/mixin.rb +31 -0
- data/app/models/mdm/module/platform.rb +29 -0
- data/app/models/mdm/module/ref.rb +42 -0
- data/app/models/mdm/module/target.rb +37 -0
- data/app/models/mdm/nexpose_console.rb +121 -0
- data/app/models/mdm/note.rb +125 -0
- data/app/models/mdm/payload.rb +103 -0
- data/app/models/mdm/profile.rb +45 -0
- data/app/models/mdm/ref.rb +48 -0
- data/app/models/mdm/route.rb +28 -0
- data/app/models/mdm/service.rb +267 -0
- data/app/models/mdm/session.rb +203 -0
- data/app/models/mdm/session_event.rb +44 -0
- data/app/models/mdm/tag.rb +114 -0
- data/app/models/mdm/task.rb +168 -0
- data/app/models/mdm/task_cred.rb +45 -0
- data/app/models/mdm/task_host.rb +41 -0
- data/app/models/mdm/task_service.rb +41 -0
- data/app/models/mdm/task_session.rb +41 -0
- data/app/models/mdm/user.rb +230 -0
- data/app/models/mdm/vuln.rb +204 -0
- data/app/models/mdm/vuln_attempt.rb +76 -0
- data/app/models/mdm/vuln_detail.rb +156 -0
- data/app/models/mdm/vuln_ref.rb +21 -0
- data/app/models/mdm/web_form.rb +53 -0
- data/app/models/mdm/web_page.rb +92 -0
- data/app/models/mdm/web_site.rb +113 -0
- data/app/models/mdm/web_vuln.rb +193 -0
- data/app/models/mdm/wmap_request.rb +101 -0
- data/app/models/mdm/wmap_target.rb +56 -0
- data/app/models/mdm/workspace.rb +286 -0
- data/app/models/metasploit_data_models/automatic_exploitation/match.rb +43 -0
- data/app/models/metasploit_data_models/automatic_exploitation/match_result.rb +71 -0
- data/app/models/metasploit_data_models/automatic_exploitation/match_set.rb +40 -0
- data/app/models/metasploit_data_models/automatic_exploitation/run.rb +29 -0
- data/app/models/metasploit_data_models/ip_address/v4/cidr.rb +14 -0
- data/app/models/metasploit_data_models/ip_address/v4/nmap.rb +14 -0
- data/app/models/metasploit_data_models/ip_address/v4/range.rb +12 -0
- data/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list.rb +125 -0
- data/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range.rb +12 -0
- data/app/models/metasploit_data_models/ip_address/v4/segment/single.rb +123 -0
- data/app/models/metasploit_data_models/ip_address/v4/segmented.rb +200 -0
- data/app/models/metasploit_data_models/ip_address/v4/single.rb +53 -0
- data/app/models/metasploit_data_models/module_run.rb +213 -0
- data/app/models/metasploit_data_models/search/operation/ip_address.rb +60 -0
- data/app/models/metasploit_data_models/search/operation/port/number.rb +25 -0
- data/app/models/metasploit_data_models/search/operation/port/range.rb +79 -0
- data/app/models/metasploit_data_models/search/operation/range.rb +56 -0
- data/app/models/metasploit_data_models/search/operator/ip_address.rb +33 -0
- data/app/models/metasploit_data_models/search/operator/multitext.rb +73 -0
- data/app/models/metasploit_data_models/search/operator/port/list.rb +67 -0
- data/app/models/metasploit_data_models/search/visitor/attribute.rb +17 -0
- data/app/models/metasploit_data_models/search/visitor/includes.rb +47 -0
- data/app/models/metasploit_data_models/search/visitor/joins.rb +67 -0
- data/app/models/metasploit_data_models/search/visitor/method.rb +16 -0
- data/app/models/metasploit_data_models/search/visitor/relation.rb +91 -0
- data/app/models/metasploit_data_models/search/visitor/where.rb +128 -0
- data/config/initializers/arel_helper.rb +5 -0
- data/config/initializers/ipaddr.rb +29 -0
- data/config/locales/en.yml +94 -0
- data/console_db.yml +9 -0
- data/db/migrate/000_create_tables.rb +79 -0
- data/db/migrate/001_add_wmap_tables.rb +35 -0
- data/db/migrate/002_add_workspaces.rb +36 -0
- data/db/migrate/003_move_notes.rb +20 -0
- data/db/migrate/004_add_events_table.rb +16 -0
- data/db/migrate/005_expand_info.rb +58 -0
- data/db/migrate/006_add_timestamps.rb +26 -0
- data/db/migrate/007_add_loots.rb +20 -0
- data/db/migrate/008_create_users.rb +16 -0
- data/db/migrate/009_add_loots_ctype.rb +10 -0
- data/db/migrate/010_add_alert_fields.rb +16 -0
- data/db/migrate/011_add_reports.rb +19 -0
- data/db/migrate/012_add_tasks.rb +24 -0
- data/db/migrate/013_add_tasks_result.rb +10 -0
- data/db/migrate/014_add_loots_fields.rb +12 -0
- data/db/migrate/015_rename_user.rb +16 -0
- data/db/migrate/016_add_host_purpose.rb +10 -0
- data/db/migrate/017_expand_info2.rb +58 -0
- data/db/migrate/018_add_workspace_user_info.rb +29 -0
- data/db/migrate/019_add_workspace_desc.rb +23 -0
- data/db/migrate/020_add_user_preferences.rb +11 -0
- data/db/migrate/021_standardize_info_and_data.rb +18 -0
- data/db/migrate/022_enlarge_event_info.rb +10 -0
- data/db/migrate/023_add_report_downloaded_at.rb +10 -0
- data/db/migrate/024_convert_service_info_to_text.rb +12 -0
- data/db/migrate/025_add_user_admin.rb +19 -0
- data/db/migrate/026_add_creds_table.rb +19 -0
- data/db/migrate/20100819123300_migrate_cred_data.rb +154 -0
- data/db/migrate/20100824151500_add_exploited_table.rb +16 -0
- data/db/migrate/20100908001428_add_owner_to_workspaces.rb +9 -0
- data/db/migrate/20100911122000_add_report_templates.rb +18 -0
- data/db/migrate/20100916151530_require_admin_flag.rb +15 -0
- data/db/migrate/20100916175000_add_campaigns_and_templates.rb +61 -0
- data/db/migrate/20100920012100_add_generate_exe_column.rb +8 -0
- data/db/migrate/20100926214000_add_template_prefs.rb +11 -0
- data/db/migrate/20101001000000_add_web_tables.rb +57 -0
- data/db/migrate/20101002000000_add_query.rb +10 -0
- data/db/migrate/20101007000000_add_vuln_info.rb +15 -0
- data/db/migrate/20101008111800_add_clients_to_campaigns.rb +10 -0
- data/db/migrate/20101009023300_add_campaign_attachments.rb +15 -0
- data/db/migrate/20101104135100_add_imported_creds.rb +17 -0
- data/db/migrate/20101203000000_fix_web_tables.rb +34 -0
- data/db/migrate/20101203000001_expand_host_comment.rb +12 -0
- data/db/migrate/20101206212033_add_limit_to_network_to_workspaces.rb +9 -0
- data/db/migrate/20110112154300_add_module_uuid_to_tasks.rb +9 -0
- data/db/migrate/20110204112800_add_host_tags.rb +28 -0
- data/db/migrate/20110317144932_add_session_table.rb +110 -0
- data/db/migrate/20110414180600_add_local_id_to_session_table.rb +11 -0
- data/db/migrate/20110415175705_add_routes_table.rb +18 -0
- data/db/migrate/20110422000000_convert_binary.rb +73 -0
- data/db/migrate/20110425095900_add_last_seen_to_sessions.rb +8 -0
- data/db/migrate/20110513143900_track_successful_exploits.rb +31 -0
- data/db/migrate/20110517160800_rename_and_prune_nessus_vulns.rb +26 -0
- data/db/migrate/20110527000000_add_task_id_to_reports_table.rb +11 -0
- data/db/migrate/20110527000001_add_api_keys_table.rb +12 -0
- data/db/migrate/20110606000001_add_macros_table.rb +16 -0
- data/db/migrate/20110622000000_add_settings_to_tasks_table.rb +12 -0
- data/db/migrate/20110624000001_add_listeners_table.rb +19 -0
- data/db/migrate/20110625000001_add_macro_to_listeners_table.rb +12 -0
- data/db/migrate/20110630000001_add_nexpose_consoles_table.rb +21 -0
- data/db/migrate/20110630000002_add_name_to_nexpose_consoles_table.rb +12 -0
- data/db/migrate/20110717000001_add_profiles_table.rb +15 -0
- data/db/migrate/20110727163801_expand_cred_ptype_column.rb +9 -0
- data/db/migrate/20110730000001_add_initial_indexes.rb +85 -0
- data/db/migrate/20110812000001_prune_indexes.rb +23 -0
- data/db/migrate/20110922000000_expand_notes.rb +9 -0
- data/db/migrate/20110928101300_add_mod_ref_table.rb +17 -0
- data/db/migrate/20111011110000_add_display_name_to_reports_table.rb +24 -0
- data/db/migrate/20111203000000_inet_columns.rb +13 -0
- data/db/migrate/20111204000000_more_inet_columns.rb +17 -0
- data/db/migrate/20111210000000_add_scope_to_hosts.rb +9 -0
- data/db/migrate/20120126110000_add_virtual_host_to_hosts.rb +9 -0
- data/db/migrate/20120411173220_rename_workspace_members.rb +9 -0
- data/db/migrate/20120601152442_add_counter_caches_to_hosts.rb +21 -0
- data/db/migrate/20120625000000_add_vuln_details.rb +34 -0
- data/db/migrate/20120625000001_add_host_details.rb +16 -0
- data/db/migrate/20120625000002_expand_details.rb +16 -0
- data/db/migrate/20120625000003_expand_details2.rb +24 -0
- data/db/migrate/20120625000004_add_vuln_attempts.rb +19 -0
- data/db/migrate/20120625000005_add_vuln_and_host_counter_caches.rb +14 -0
- data/db/migrate/20120625000006_add_module_details.rb +118 -0
- data/db/migrate/20120625000007_add_exploit_attempts.rb +26 -0
- data/db/migrate/20120625000008_add_fail_message.rb +12 -0
- data/db/migrate/20120718202805_add_owner_and_payload_to_web_vulns.rb +13 -0
- data/db/migrate/20130228214900_change_required_columns_to_null_false_in_web_vulns.rb +19 -0
- data/db/migrate/20130412154159_change_foreign_key_in_module_actions.rb +25 -0
- data/db/migrate/20130412171844_change_foreign_key_in_module_archs.rb +25 -0
- data/db/migrate/20130412173121_change_foreign_key_in_module_authors.rb +25 -0
- data/db/migrate/20130412173640_change_foreign_key_in_module_mixins.rb +25 -0
- data/db/migrate/20130412174254_change_foreign_key_in_module_platforms.rb +25 -0
- data/db/migrate/20130412174719_change_foreign_key_in_module_refs.rb +25 -0
- data/db/migrate/20130412175040_change_foreign_key_in_module_targets.rb +25 -0
- data/db/migrate/20130423211152_add_creds_counter_cache.rb +24 -0
- data/db/migrate/20130430151353_change_required_columns_to_null_false_in_hosts.rb +11 -0
- data/db/migrate/20130430162145_enforce_address_uniqueness_in_workspace_in_hosts.rb +101 -0
- data/db/migrate/20130510021637_remove_campaigns.rb +11 -0
- data/db/migrate/20130515164311_change_web_vulns_confidence_to_integer.rb +48 -0
- data/db/migrate/20130515172727_valid_mdm_web_vuln_params.rb +30 -0
- data/db/migrate/20130516204810_making_vulns_refs_a_real_ar_model.rb +5 -0
- data/db/migrate/20130522001343_create_task_creds.rb +9 -0
- data/db/migrate/20130522032517_create_task_hosts.rb +9 -0
- data/db/migrate/20130522041110_create_task_services.rb +9 -0
- data/db/migrate/20130525015035_remove_campaign_id_from_clients.rb +9 -0
- data/db/migrate/20130525212420_drop_table_imported_creds.rb +14 -0
- data/db/migrate/20130531144949_making_host_tags_a_real_ar_model.rb +6 -0
- data/db/migrate/20130604145732_create_task_sessions.rb +9 -0
- data/db/migrate/20130717150737_remove_pname_validation.rb +7 -0
- data/db/migrate/20131002004641_create_automatic_exploitation_matches.rb +13 -0
- data/db/migrate/20131002164449_create_automatic_exploitation_match_sets.rb +12 -0
- data/db/migrate/20131008213344_create_automatic_exploitation_runs.rb +11 -0
- data/db/migrate/20131011184338_module_detail_on_automatic_exploitation_match.rb +10 -0
- data/db/migrate/20131017150735_create_automatic_exploitation_match_results.rb +11 -0
- data/db/migrate/20131021185657_make_match_polymorphic.rb +11 -0
- data/db/migrate/20140905031549_add_detected_arch_to_host.rb +5 -0
- data/db/migrate/20150112203945_remove_duplicate_services.rb +17 -0
- data/db/migrate/20150205192745_drop_service_uniqueness_index.rb +5 -0
- data/db/migrate/20150209195939_add_vuln_id_to_note.rb +6 -0
- data/db/migrate/20150212214222_remove_duplicate_services2.rb +17 -0
- data/db/migrate/20150219173821_create_module_runs.rb +23 -0
- data/db/migrate/20150219215039_add_module_run_to_session.rb +8 -0
- data/db/migrate/20150226151459_add_module_run_fk_to_loot.rb +8 -0
- data/db/migrate/20150312155312_add_module_full_name_to_match.rb +6 -0
- data/db/migrate/20150317145455_rename_module_indices.rb +29 -0
- data/db/migrate/20150326183742_add_missing_ae_indices.rb +13 -0
- data/db/migrate/20150421211719_rename_automatic_exploitation_index.rb +16 -0
- data/db/migrate/20150514182921_add_origin_to_mdm_vuln.rb +13 -0
- data/db/migrate/20160415153312_remove_not_null_from_web_vuln_p_arams.rb +5 -0
- data/db/migrate/20161004165612_add_fingerprinted_to_workspace.rb +5 -0
- data/db/migrate/20161227212223_add_os_family_to_hosts.rb +5 -0
- data/db/migrate/20180904120211_create_payloads.rb +21 -0
- data/db/migrate/20190308134512_create_async_callbacks.rb +13 -0
- data/db/migrate/20190507120211_remove_payload_workspaces.rb +5 -0
- data/lib/mdm/host/operating_system_normalization.rb +942 -0
- data/lib/mdm/module.rb +13 -0
- data/lib/mdm.rb +57 -0
- data/lib/metasploit_data_models/automatic_exploitation.rb +25 -0
- data/lib/metasploit_data_models/base64_serializer.rb +99 -0
- data/lib/metasploit_data_models/change_required_columns_to_null_false.rb +21 -0
- data/lib/metasploit_data_models/engine.rb +32 -0
- data/lib/metasploit_data_models/ip_address/cidr.rb +174 -0
- data/lib/metasploit_data_models/ip_address/range.rb +181 -0
- data/lib/metasploit_data_models/ip_address/v4/segment/nmap.rb +7 -0
- data/lib/metasploit_data_models/ip_address/v4/segment.rb +7 -0
- data/lib/metasploit_data_models/ip_address/v4.rb +11 -0
- data/lib/metasploit_data_models/ip_address.rb +9 -0
- data/lib/metasploit_data_models/match/child.rb +48 -0
- data/lib/metasploit_data_models/match/parent.rb +103 -0
- data/lib/metasploit_data_models/match.rb +8 -0
- data/lib/metasploit_data_models/search/operation/port.rb +9 -0
- data/lib/metasploit_data_models/search/operation.rb +9 -0
- data/lib/metasploit_data_models/search/operator/port.rb +6 -0
- data/lib/metasploit_data_models/search/operator.rb +8 -0
- data/lib/metasploit_data_models/search/visitor.rb +11 -0
- data/lib/metasploit_data_models/search.rb +8 -0
- data/lib/metasploit_data_models/serialized_prefs.rb +27 -0
- data/lib/metasploit_data_models/version.rb +13 -0
- data/lib/metasploit_data_models.rb +56 -0
- data/metasploit_data_models.gemspec +65 -0
- data/script/rails +8 -0
- data/spec/app/models/mdm/api_key_spec.rb +3 -0
- data/spec/app/models/mdm/client_spec.rb +43 -0
- data/spec/app/models/mdm/cred_spec.rb +346 -0
- data/spec/app/models/mdm/event_spec.rb +90 -0
- data/spec/app/models/mdm/exploit_attempt_spec.rb +59 -0
- data/spec/app/models/mdm/exploited_host_spec.rb +44 -0
- data/spec/app/models/mdm/host_detail_spec.rb +48 -0
- data/spec/app/models/mdm/host_spec.rb +1139 -0
- data/spec/app/models/mdm/host_tag_spec.rb +69 -0
- data/spec/app/models/mdm/listener_spec.rb +107 -0
- data/spec/app/models/mdm/loot_spec.rb +84 -0
- data/spec/app/models/mdm/macro_spec.rb +3 -0
- data/spec/app/models/mdm/mod_ref_spec.rb +3 -0
- data/spec/app/models/mdm/module/action_spec.rb +34 -0
- data/spec/app/models/mdm/module/arch_spec.rb +34 -0
- data/spec/app/models/mdm/module/author_spec.rb +52 -0
- data/spec/app/models/mdm/module/detail_spec.rb +746 -0
- data/spec/app/models/mdm/module/mixin_spec.rb +34 -0
- data/spec/app/models/mdm/module/platform_spec.rb +34 -0
- data/spec/app/models/mdm/module/ref_spec.rb +58 -0
- data/spec/app/models/mdm/module/target_spec.rb +36 -0
- data/spec/app/models/mdm/nexpose_console_spec.rb +146 -0
- data/spec/app/models/mdm/note_spec.rb +91 -0
- data/spec/app/models/mdm/profile_spec.rb +3 -0
- data/spec/app/models/mdm/ref_spec.rb +71 -0
- data/spec/app/models/mdm/route_spec.rb +35 -0
- data/spec/app/models/mdm/service_spec.rb +232 -0
- data/spec/app/models/mdm/session_event_spec.rb +42 -0
- data/spec/app/models/mdm/session_spec.rb +118 -0
- data/spec/app/models/mdm/tag_spec.rb +116 -0
- data/spec/app/models/mdm/task_cred_spec.rb +51 -0
- data/spec/app/models/mdm/task_host_spec.rb +50 -0
- data/spec/app/models/mdm/task_service_spec.rb +50 -0
- data/spec/app/models/mdm/task_session_spec.rb +46 -0
- data/spec/app/models/mdm/task_spec.rb +71 -0
- data/spec/app/models/mdm/user_spec.rb +50 -0
- data/spec/app/models/mdm/vuln_attempt_spec.rb +53 -0
- data/spec/app/models/mdm/vuln_detail_spec.rb +65 -0
- data/spec/app/models/mdm/vuln_ref_spec.rb +46 -0
- data/spec/app/models/mdm/vuln_spec.rb +299 -0
- data/spec/app/models/mdm/web_form_spec.rb +46 -0
- data/spec/app/models/mdm/web_page_spec.rb +101 -0
- data/spec/app/models/mdm/web_site_spec.rb +85 -0
- data/spec/app/models/mdm/web_vuln_spec.rb +312 -0
- data/spec/app/models/mdm/wmap_request_spec.rb +5 -0
- data/spec/app/models/mdm/wmap_target_spec.rb +5 -0
- data/spec/app/models/mdm/workspace_spec.rb +500 -0
- data/spec/app/models/metasploit_data_models/automatic_exploitation/match_result_spec.rb +86 -0
- data/spec/app/models/metasploit_data_models/automatic_exploitation/match_set_spec.rb +46 -0
- data/spec/app/models/metasploit_data_models/automatic_exploitation/match_spec.rb +37 -0
- data/spec/app/models/metasploit_data_models/automatic_exploitation/run_spec.rb +38 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/cidr_spec.rb +119 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/nmap_spec.rb +149 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/range_spec.rb +298 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/list_spec.rb +276 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/segment/nmap/range_spec.rb +302 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/segment/segmented_spec.rb +27 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/segment/single_spec.rb +324 -0
- data/spec/app/models/metasploit_data_models/ip_address/v4/single_spec.rb +181 -0
- data/spec/app/models/metasploit_data_models/module_run_spec.rb +134 -0
- data/spec/app/models/metasploit_data_models/search/operation/ip_address_spec.rb +180 -0
- data/spec/app/models/metasploit_data_models/search/operation/port/number_spec.rb +39 -0
- data/spec/app/models/metasploit_data_models/search/operation/port/range_spec.rb +138 -0
- data/spec/app/models/metasploit_data_models/search/operation/range_spec.rb +233 -0
- data/spec/app/models/metasploit_data_models/search/operator/ip_address_spec.rb +17 -0
- data/spec/app/models/metasploit_data_models/search/operator/multitext_spec.rb +160 -0
- data/spec/app/models/metasploit_data_models/search/operator/port/list_spec.rb +162 -0
- data/spec/app/models/metasploit_data_models/search/visitor/attribute_spec.rb +96 -0
- data/spec/app/models/metasploit_data_models/search/visitor/includes_spec.rb +175 -0
- data/spec/app/models/metasploit_data_models/search/visitor/joins_spec.rb +396 -0
- data/spec/app/models/metasploit_data_models/search/visitor/method_spec.rb +49 -0
- data/spec/app/models/metasploit_data_models/search/visitor/relation_spec.rb +925 -0
- data/spec/app/models/metasploit_data_models/search/visitor/where_spec.rb +187 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/config/manifest.js +1 -0
- data/spec/dummy/app/assets/javascripts/application.js +15 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +3 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/mailers/.gitkeep +0 -0
- data/spec/dummy/app/models/.gitkeep +0 -0
- data/spec/dummy/app/models/application_record.rb +3 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config/application.rb +61 -0
- data/spec/dummy/config/boot.rb +4 -0
- data/spec/dummy/config/database.yml.example +22 -0
- data/spec/dummy/config/database.yml.github_actions +21 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +78 -0
- data/spec/dummy/config/environments/test.rb +39 -0
- data/spec/dummy/config/initializers/active_record_migrations.rb +4 -0
- data/spec/dummy/config/initializers/assets.rb +8 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/cookies_serializer.rb +3 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +4 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/db/structure.sql +3430 -0
- data/spec/dummy/db/structure.sql.from_rails_3 +3403 -0
- data/spec/dummy/lib/assets/.gitkeep +0 -0
- data/spec/dummy/log/.gitkeep +0 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/factories/mdm/addresses.rb +12 -0
- data/spec/factories/mdm/clients.rb +8 -0
- data/spec/factories/mdm/creds.rb +17 -0
- data/spec/factories/mdm/events.rb +15 -0
- data/spec/factories/mdm/exploit_attempts.rb +8 -0
- data/spec/factories/mdm/exploited_hosts.rb +7 -0
- data/spec/factories/mdm/fingerprints/nessus_fingerprints.rb +6 -0
- data/spec/factories/mdm/fingerprints/nexpose_fingerprints.rb +6 -0
- data/spec/factories/mdm/fingerprints/nmap_fingerprints.rb +6 -0
- data/spec/factories/mdm/fingerprints/retina_fingerprints.rb +6 -0
- data/spec/factories/mdm/fingerprints/session_fingerprints.rb +6 -0
- data/spec/factories/mdm/host_details.rb +8 -0
- data/spec/factories/mdm/host_tags.rb +9 -0
- data/spec/factories/mdm/hosts.rb +85 -0
- data/spec/factories/mdm/listeners.rb +12 -0
- data/spec/factories/mdm/loots.rb +11 -0
- data/spec/factories/mdm/module/actions.rb +14 -0
- data/spec/factories/mdm/module/archs.rb +14 -0
- data/spec/factories/mdm/module/authors.rb +22 -0
- data/spec/factories/mdm/module/details.rb +73 -0
- data/spec/factories/mdm/module/mixins.rb +14 -0
- data/spec/factories/mdm/module/platforms.rb +14 -0
- data/spec/factories/mdm/module/refs.rb +14 -0
- data/spec/factories/mdm/module/targets.rb +19 -0
- data/spec/factories/mdm/nexpose_consoles.rb +15 -0
- data/spec/factories/mdm/notes.rb +12 -0
- data/spec/factories/mdm/refs.rb +9 -0
- data/spec/factories/mdm/routes.rb +36 -0
- data/spec/factories/mdm/services.rb +41 -0
- data/spec/factories/mdm/session_events.rb +8 -0
- data/spec/factories/mdm/sessions.rb +13 -0
- data/spec/factories/mdm/tags.rb +14 -0
- data/spec/factories/mdm/task.rb +16 -0
- data/spec/factories/mdm/task_creds.rb +9 -0
- data/spec/factories/mdm/task_hosts.rb +9 -0
- data/spec/factories/mdm/task_services.rb +8 -0
- data/spec/factories/mdm/task_sessions.rb +8 -0
- data/spec/factories/mdm/users.rb +22 -0
- data/spec/factories/mdm/vuln_attempts.rb +8 -0
- data/spec/factories/mdm/vuln_details.rb +8 -0
- data/spec/factories/mdm/vuln_refs.rb +4 -0
- data/spec/factories/mdm/vulns.rb +20 -0
- data/spec/factories/mdm/web_forms.rb +33 -0
- data/spec/factories/mdm/web_pages.rb +64 -0
- data/spec/factories/mdm/web_sites.rb +8 -0
- data/spec/factories/mdm/web_vulns.rb +64 -0
- data/spec/factories/mdm/workspaces.rb +23 -0
- data/spec/factories/metasploit_data_models/automatic_exploitation/match_results.rb +7 -0
- data/spec/factories/metasploit_data_models/automatic_exploitation/match_sets.rb +8 -0
- data/spec/factories/metasploit_data_models/automatic_exploitation/matches.rb +7 -0
- data/spec/factories/metasploit_data_models/automatic_exploitation/runs.rb +6 -0
- data/spec/factories/module_runs.rb +40 -0
- data/spec/lib/base64_serializer_spec.rb +172 -0
- data/spec/lib/ipaddr_spec.rb +29 -0
- data/spec/lib/metasploit_data_models/ip_address/cidr_spec.rb +356 -0
- data/spec/lib/metasploit_data_models/ip_address/range_spec.rb +75 -0
- data/spec/lib/metasploit_data_models/match/child_spec.rb +59 -0
- data/spec/lib/metasploit_data_models/match/parent_spec.rb +153 -0
- data/spec/lib/metasploit_data_models_spec.rb +13 -0
- data/spec/spec_helper.rb +148 -0
- data/spec/support/matchers/match_regex_exactly.rb +28 -0
- data/spec/support/shared/contexts/rex/text.rb +15 -0
- data/spec/support/shared/examples/coerces_inet_column_type_to_string.rb +15 -0
- data/spec/support/shared/examples/mdm/module/detail/does_not_support_stance_with_mtype.rb +20 -0
- data/spec/support/shared/examples/mdm/module/detail/supports_stance_with_mtype.rb +36 -0
- data/spec/support/shared/examples/metasploit_data_models/search/operation/ipaddress/match.rb +109 -0
- data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_children.rb +38 -0
- data/spec/support/shared/examples/metasploit_data_models/search/visitor/includes/visit/with_metasploit_model_search_operation_base.rb +26 -0
- data/spec/support/shared/examples/metasploit_data_models/search/visitor/relation/visit/matching_record.rb +50 -0
- data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_equality.rb +34 -0
- data/spec/support/shared/examples/metasploit_data_models/search/visitor/where/visit/with_metasploit_model_search_group_base.rb +51 -0
- metadata +444 -6
@@ -0,0 +1,53 @@
|
|
1
|
+
# A filled-in form on a {#web_site}.
|
2
|
+
class Mdm::WebForm < ApplicationRecord
|
3
|
+
|
4
|
+
#
|
5
|
+
# Associations
|
6
|
+
#
|
7
|
+
|
8
|
+
# {Mdm::WebSite Web site} on which this form is.
|
9
|
+
belongs_to :web_site,
|
10
|
+
class_name: 'Mdm::WebSite',
|
11
|
+
inverse_of: :web_forms
|
12
|
+
|
13
|
+
#
|
14
|
+
# Attributes
|
15
|
+
#
|
16
|
+
|
17
|
+
# @!attribute created_at
|
18
|
+
# When this web form was created.
|
19
|
+
#
|
20
|
+
# @return [DateTime]
|
21
|
+
|
22
|
+
# @!attribute method
|
23
|
+
# HTTP method (or verb) used to submitted this form, such as GET or POST.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
|
27
|
+
# @!attribute path
|
28
|
+
# Path portion of URL to which this form was submitted.
|
29
|
+
#
|
30
|
+
# @return [String]
|
31
|
+
|
32
|
+
# @!attribute query
|
33
|
+
# URL query that submitted for this form.
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
|
37
|
+
# @!attribute updated_at
|
38
|
+
# The last time this web form was updated.
|
39
|
+
#
|
40
|
+
# @return [DateTime]
|
41
|
+
|
42
|
+
#
|
43
|
+
# Serializations
|
44
|
+
#
|
45
|
+
|
46
|
+
# Parameters submitted in this form.
|
47
|
+
#
|
48
|
+
# @return [Array<Array(String, String)>>]
|
49
|
+
serialize :params, MetasploitDataModels::Base64Serializer.new
|
50
|
+
|
51
|
+
Metasploit::Concern.run(self)
|
52
|
+
end
|
53
|
+
|
@@ -0,0 +1,92 @@
|
|
1
|
+
# Web page requested from a {#web_site}.
|
2
|
+
class Mdm::WebPage < ApplicationRecord
|
3
|
+
|
4
|
+
#
|
5
|
+
# Associations
|
6
|
+
#
|
7
|
+
|
8
|
+
# Mdm::WebSite Web site} from which this page was requested.
|
9
|
+
belongs_to :web_site,
|
10
|
+
class_name: 'Mdm::WebSite',
|
11
|
+
inverse_of: :web_pages
|
12
|
+
|
13
|
+
#
|
14
|
+
# Attributes
|
15
|
+
#
|
16
|
+
|
17
|
+
# @!attribute auth
|
18
|
+
# Credentials sent to server to authenticate to web site to allow access to this web page.
|
19
|
+
#
|
20
|
+
# @return [String]
|
21
|
+
|
22
|
+
# @!attribute body
|
23
|
+
# Body of response from server.
|
24
|
+
#
|
25
|
+
# @return [String]
|
26
|
+
|
27
|
+
# @!attribute code
|
28
|
+
# HTTP Status code return from {#web_site} when requesting this web page.
|
29
|
+
#
|
30
|
+
# @return [Integer]
|
31
|
+
|
32
|
+
# @!attribute cookie
|
33
|
+
# Cookies derived from {#headers}.
|
34
|
+
#
|
35
|
+
# @return [String]
|
36
|
+
|
37
|
+
# @!attribute created_at
|
38
|
+
# When this web page was created.
|
39
|
+
#
|
40
|
+
# @return [DateTime]
|
41
|
+
|
42
|
+
# @!attribute ctype
|
43
|
+
# The content type derived from the {#headers} of the returned web page.
|
44
|
+
#
|
45
|
+
# @return [String]
|
46
|
+
|
47
|
+
# @!attribute location
|
48
|
+
# Location derived from {#headers}.
|
49
|
+
|
50
|
+
# @return [String]
|
51
|
+
|
52
|
+
# @!attribute mtime
|
53
|
+
# The last modified time of the web page derived from the {#headers}.
|
54
|
+
#
|
55
|
+
# @return [DateTime]
|
56
|
+
|
57
|
+
# @!attribute path
|
58
|
+
# Path portion of URL that was used to access this web page.
|
59
|
+
#
|
60
|
+
# @return [String]
|
61
|
+
|
62
|
+
# @!attribute query
|
63
|
+
# Query portion of URLthat was used to access this web page.
|
64
|
+
#
|
65
|
+
# @return [String]
|
66
|
+
|
67
|
+
# @!attribute request
|
68
|
+
# Request sent to server to cause this web page to be returned.
|
69
|
+
#
|
70
|
+
# @return [String]
|
71
|
+
|
72
|
+
# @!attribute updated_at
|
73
|
+
# The last time this web page was updated.
|
74
|
+
#
|
75
|
+
# @return [DateTime]
|
76
|
+
|
77
|
+
#
|
78
|
+
# Serializations
|
79
|
+
#
|
80
|
+
|
81
|
+
# Headers sent from server.
|
82
|
+
#
|
83
|
+
# @return [Hash{String => String}]
|
84
|
+
serialize :headers, MetasploitDataModels::Base64Serializer.new
|
85
|
+
|
86
|
+
# Cookies sent from server.
|
87
|
+
#
|
88
|
+
# @return [Hash{String => String}]
|
89
|
+
serialize :cookie
|
90
|
+
Metasploit::Concern.run(self)
|
91
|
+
end
|
92
|
+
|
@@ -0,0 +1,113 @@
|
|
1
|
+
# A Web Site running on a {#service}.
|
2
|
+
class Mdm::WebSite < ApplicationRecord
|
3
|
+
|
4
|
+
#
|
5
|
+
# Associations
|
6
|
+
#
|
7
|
+
|
8
|
+
# The service on which this web site is running.
|
9
|
+
belongs_to :service,
|
10
|
+
class_name: 'Mdm::Service',
|
11
|
+
foreign_key: 'service_id',
|
12
|
+
inverse_of: :web_sites
|
13
|
+
|
14
|
+
# Filled-in forms within this web site.
|
15
|
+
has_many :web_forms,
|
16
|
+
class_name: 'Mdm::WebForm',
|
17
|
+
dependent: :destroy,
|
18
|
+
inverse_of: :web_site
|
19
|
+
|
20
|
+
# Web pages found on this web site.
|
21
|
+
has_many :web_pages,
|
22
|
+
class_name: 'Mdm::WebPage',
|
23
|
+
dependent: :destroy,
|
24
|
+
inverse_of: :web_site
|
25
|
+
|
26
|
+
# Vulnerabilities found on this web site.
|
27
|
+
has_many :web_vulns,
|
28
|
+
class_name: 'Mdm::WebVuln',
|
29
|
+
dependent: :destroy,
|
30
|
+
inverse_of: :web_site
|
31
|
+
|
32
|
+
#
|
33
|
+
# Attributes
|
34
|
+
#
|
35
|
+
|
36
|
+
# @!attribute [rw] comments
|
37
|
+
# User entered comments about this web site.
|
38
|
+
#
|
39
|
+
# @return [String]
|
40
|
+
|
41
|
+
# @!attribute [rw] created_at
|
42
|
+
# When this web site was created.
|
43
|
+
#
|
44
|
+
# @return [DateTime]
|
45
|
+
|
46
|
+
# @!attribute [rw] updated_at
|
47
|
+
# The last time this web site was updated.
|
48
|
+
#
|
49
|
+
# @return [DateTime]
|
50
|
+
|
51
|
+
# @!attribute [rw] vhost
|
52
|
+
# The virtual host for the web site in case `service.host.name` or `service.host.address` is no the host for this
|
53
|
+
# web site.
|
54
|
+
#
|
55
|
+
# @return [String]
|
56
|
+
|
57
|
+
#
|
58
|
+
# Serializations
|
59
|
+
#
|
60
|
+
|
61
|
+
# @!attribute [rw] options
|
62
|
+
# @todo Determine format and purpose of Mdm::WebSite#options.
|
63
|
+
serialize :options, ::MetasploitDataModels::Base64Serializer.new
|
64
|
+
|
65
|
+
#
|
66
|
+
# Instance Methods
|
67
|
+
#
|
68
|
+
|
69
|
+
# Number of {#web_forms}.
|
70
|
+
#
|
71
|
+
# @return [Integer]
|
72
|
+
def form_count
|
73
|
+
web_forms.size
|
74
|
+
end
|
75
|
+
|
76
|
+
# Number of {#web_pages}.
|
77
|
+
#
|
78
|
+
# @return [Integer]
|
79
|
+
def page_count
|
80
|
+
web_pages.size
|
81
|
+
end
|
82
|
+
|
83
|
+
# Converts this web site to its URL, including scheme, host and port.
|
84
|
+
#
|
85
|
+
# @param ignore_vhost [Boolean] if `false` use {#vhost} for host portion of URL. If `true` use {Mdm::Host#address} of
|
86
|
+
# {Mdm::Service#host} of {#service} for host portion of URL.
|
87
|
+
# @return [String] <scheme>://<host>[:<port>]
|
88
|
+
def to_url(ignore_vhost=false)
|
89
|
+
proto = self.service.name == "https" ? "https" : "http"
|
90
|
+
host = ignore_vhost ? self.service.host.address.to_s : self.vhost
|
91
|
+
port = self.service.port
|
92
|
+
|
93
|
+
if Rex::Socket.is_ipv6?(host)
|
94
|
+
host = "[#{host}]"
|
95
|
+
end
|
96
|
+
|
97
|
+
url = "#{proto}://#{host}"
|
98
|
+
if not ((proto == "http" and port == 80) or (proto == "https" and port == 443))
|
99
|
+
url += ":#{port}"
|
100
|
+
end
|
101
|
+
url
|
102
|
+
end
|
103
|
+
|
104
|
+
# Number of {#web_vulns}.
|
105
|
+
#
|
106
|
+
# @return [Integer]
|
107
|
+
def vuln_count
|
108
|
+
web_vulns.size
|
109
|
+
end
|
110
|
+
|
111
|
+
Metasploit::Concern.run(self)
|
112
|
+
end
|
113
|
+
|
@@ -0,0 +1,193 @@
|
|
1
|
+
# A Web Vulnerability found during a web scan or web audit.
|
2
|
+
#
|
3
|
+
# If you need to modify Mdm::WebVuln you can use ActiveSupport.on_load(:mdm_web_vuln) inside an initializer so that
|
4
|
+
# your patches are reloaded on each request in development mode for your Rails application.
|
5
|
+
#
|
6
|
+
# @example extending Mdm::WebVuln
|
7
|
+
# # config/initializers/mdm_web_vuln.rb
|
8
|
+
# ActiveSupport.on_load(:mdm_web_vuln) do
|
9
|
+
# def confidence_percentage
|
10
|
+
# "#{confidence}%"
|
11
|
+
# end
|
12
|
+
# end
|
13
|
+
class Mdm::WebVuln < ApplicationRecord
|
14
|
+
|
15
|
+
#
|
16
|
+
# CONSTANTS
|
17
|
+
#
|
18
|
+
|
19
|
+
# A percentage {#confidence} that the vulnerability is real and not a false positive.
|
20
|
+
CONFIDENCE_RANGE = 0 .. 100
|
21
|
+
|
22
|
+
# Default value for {#params}
|
23
|
+
DEFAULT_PARAMS = []
|
24
|
+
|
25
|
+
# Allowed {#method methods}.
|
26
|
+
METHODS = [
|
27
|
+
'GET',
|
28
|
+
# XXX I don't know why PATH is a valid method when it's not an HTTP Method/Verb
|
29
|
+
'PATH',
|
30
|
+
'POST'
|
31
|
+
]
|
32
|
+
|
33
|
+
# {#risk Risk} is rated on a scale from 0 (least risky) to 5 (most risky).
|
34
|
+
RISK_RANGE = 0 .. 5
|
35
|
+
|
36
|
+
#
|
37
|
+
# Associations
|
38
|
+
#
|
39
|
+
|
40
|
+
belongs_to :web_site,
|
41
|
+
class_name: 'Mdm::WebSite',
|
42
|
+
inverse_of: :web_vulns
|
43
|
+
|
44
|
+
#
|
45
|
+
# Attributes
|
46
|
+
#
|
47
|
+
|
48
|
+
# @!attribute [rw] blame
|
49
|
+
# Who to blame for the vulnerability
|
50
|
+
#
|
51
|
+
# @return [String]
|
52
|
+
|
53
|
+
# @!attribute [rw] category
|
54
|
+
# Category of this vulnerability.
|
55
|
+
#
|
56
|
+
# @return [String]
|
57
|
+
|
58
|
+
# @!attribute [rw] confidence
|
59
|
+
# Percentage confidence scanner or auditor has that this vulnerability is not a false positive
|
60
|
+
#
|
61
|
+
# @return [Integer] 1% to 100%
|
62
|
+
|
63
|
+
# @!attribute [rw] description
|
64
|
+
# Description of the vulnerability
|
65
|
+
#
|
66
|
+
# @return [String, nil]
|
67
|
+
|
68
|
+
# @!attribute [rw] method
|
69
|
+
# HTTP Methods for request that found vulnerability. 'PATH' is also allowed even though it is not an HTTP Method.
|
70
|
+
#
|
71
|
+
# @return [String]
|
72
|
+
# @see METHODS
|
73
|
+
|
74
|
+
# @!attribute [rw] name
|
75
|
+
# Name of the vulnerability
|
76
|
+
#
|
77
|
+
# @return [String]
|
78
|
+
|
79
|
+
# @!attribute [rw] path
|
80
|
+
# Path portion of URL
|
81
|
+
#
|
82
|
+
# @return [String]
|
83
|
+
|
84
|
+
# @!attribute [rw] payload
|
85
|
+
# Web audit payload that gets executed by the remote server. Used for code injection vulnerabilities.
|
86
|
+
#
|
87
|
+
# @return [String, nil]
|
88
|
+
|
89
|
+
# @!attribute [rw] pname
|
90
|
+
# Name of parameter that demonstrates vulnerability
|
91
|
+
#
|
92
|
+
# @return [String]
|
93
|
+
|
94
|
+
# @!attribute [rw] proof
|
95
|
+
# String that proves vulnerability, such as a code snippet, etc.
|
96
|
+
#
|
97
|
+
# @return [String]
|
98
|
+
|
99
|
+
# @!attribute [rw] query
|
100
|
+
# The GET query.
|
101
|
+
#
|
102
|
+
# @return [String]
|
103
|
+
|
104
|
+
# @!attribute [rw] request
|
105
|
+
#
|
106
|
+
# @return [String]
|
107
|
+
|
108
|
+
# @!attribute [rw] risk
|
109
|
+
# {RISK_RANGE Risk} of leaving this vulnerability unpatched.
|
110
|
+
#
|
111
|
+
# @return [Integer]
|
112
|
+
|
113
|
+
#
|
114
|
+
# Validations
|
115
|
+
#
|
116
|
+
|
117
|
+
validates :category, :presence => true
|
118
|
+
validates :confidence,
|
119
|
+
:inclusion => {
|
120
|
+
:in => CONFIDENCE_RANGE
|
121
|
+
}
|
122
|
+
validates :method,
|
123
|
+
:inclusion => {
|
124
|
+
:in => METHODS
|
125
|
+
}
|
126
|
+
validates :name, :presence => true
|
127
|
+
validates :params, :parameters => true
|
128
|
+
validates :path, :presence => true
|
129
|
+
validates :proof, :presence => true
|
130
|
+
validates :risk,
|
131
|
+
:inclusion => {
|
132
|
+
:in => RISK_RANGE
|
133
|
+
}
|
134
|
+
validates :web_site, :presence => true
|
135
|
+
|
136
|
+
#
|
137
|
+
# Serializations
|
138
|
+
#
|
139
|
+
|
140
|
+
# @!attribute [rw] params
|
141
|
+
# Parameters sent as part of request
|
142
|
+
#
|
143
|
+
# @return [Array<Array(String, String)>] Array of parameter key value pairs
|
144
|
+
serialize :params, MetasploitDataModels::Base64Serializer.new(:default => DEFAULT_PARAMS)
|
145
|
+
|
146
|
+
#
|
147
|
+
# Methods
|
148
|
+
#
|
149
|
+
|
150
|
+
# Parameters sent as part of request.
|
151
|
+
#
|
152
|
+
# @return [Array<Array<(String, String)>>]
|
153
|
+
def params
|
154
|
+
normalize_params(
|
155
|
+
read_attribute(:params)
|
156
|
+
)
|
157
|
+
end
|
158
|
+
|
159
|
+
# Set parameters sent as part of request.
|
160
|
+
#
|
161
|
+
# @param params [Array<Array<(String, String)>>, nil] Array of parameter key value pairs
|
162
|
+
# @return [void]
|
163
|
+
def params=(params)
|
164
|
+
write_attribute(
|
165
|
+
:params,
|
166
|
+
normalize_params(params)
|
167
|
+
)
|
168
|
+
end
|
169
|
+
|
170
|
+
private
|
171
|
+
|
172
|
+
# Creates a duplicate of {DEFAULT_PARAMS} that is safe to modify.
|
173
|
+
#
|
174
|
+
# @return [Array] an empty array
|
175
|
+
def default_params
|
176
|
+
DEFAULT_PARAMS.dup
|
177
|
+
end
|
178
|
+
|
179
|
+
# Returns either the given params or {DEFAULT_PARAMS} if params is `nil`
|
180
|
+
#
|
181
|
+
# @param [Array<Array<(String, String)>>, nil] params
|
182
|
+
# @return [Array<<Array<(String, String)>>] params if not `nil`
|
183
|
+
# @return [nil] if params is `nil`
|
184
|
+
def normalize_params(params)
|
185
|
+
params || default_params
|
186
|
+
end
|
187
|
+
|
188
|
+
# switch back to public for load hooks
|
189
|
+
public
|
190
|
+
|
191
|
+
Metasploit::Concern.run(self)
|
192
|
+
end
|
193
|
+
|
@@ -0,0 +1,101 @@
|
|
1
|
+
# Request sent to a {Mdm::WmapTarget}. WMAP is a plugin to metasploit-framework.
|
2
|
+
class Mdm::WmapRequest < ApplicationRecord
|
3
|
+
#
|
4
|
+
#
|
5
|
+
# Attributes
|
6
|
+
#
|
7
|
+
#
|
8
|
+
|
9
|
+
# @!attribute address
|
10
|
+
# IP address of {#host} to which this request was sent.
|
11
|
+
#
|
12
|
+
# @return [String]
|
13
|
+
|
14
|
+
# @!attribute body
|
15
|
+
# Body of this request.
|
16
|
+
#
|
17
|
+
# @return [String]
|
18
|
+
|
19
|
+
# @!attribute created_at
|
20
|
+
# When this request was created.
|
21
|
+
#
|
22
|
+
# @return [DateTime]
|
23
|
+
|
24
|
+
# @!attribute headers
|
25
|
+
# Headers sent as part of this request.
|
26
|
+
#
|
27
|
+
# @return [String]
|
28
|
+
|
29
|
+
# @!attribute host
|
30
|
+
# Name of host to which this request was sent.
|
31
|
+
#
|
32
|
+
# @return [String]
|
33
|
+
|
34
|
+
# @!attribute meth
|
35
|
+
# HTTP Method (or VERB) used for request.
|
36
|
+
#
|
37
|
+
# @return [String]
|
38
|
+
|
39
|
+
# @!attribute path
|
40
|
+
# Path portion of URL for this request.
|
41
|
+
#
|
42
|
+
# @return [String]
|
43
|
+
|
44
|
+
# @!attribute port
|
45
|
+
# Port at {#address} to which this request was sent.
|
46
|
+
#
|
47
|
+
# @return [Integer]
|
48
|
+
|
49
|
+
# @!attribute query
|
50
|
+
# Query portion of URL for this request.
|
51
|
+
#
|
52
|
+
# @return [String]
|
53
|
+
|
54
|
+
# @!attribute ssl
|
55
|
+
# Version of SSL to use.
|
56
|
+
#
|
57
|
+
# @return [Integer]
|
58
|
+
|
59
|
+
# @!attribute updated_at
|
60
|
+
# The last time this request was updated.
|
61
|
+
#
|
62
|
+
# @return [DateTime]
|
63
|
+
|
64
|
+
#
|
65
|
+
# @!group Response
|
66
|
+
#
|
67
|
+
|
68
|
+
# @!attribute respcode
|
69
|
+
# HTTP status code sent in response to this request from server.
|
70
|
+
#
|
71
|
+
# @return [String]
|
72
|
+
|
73
|
+
# @!attribute resphead
|
74
|
+
# Headers sent in response from server.
|
75
|
+
#
|
76
|
+
# @return [String]
|
77
|
+
|
78
|
+
# @!attribute response
|
79
|
+
# Response sent from server.
|
80
|
+
#
|
81
|
+
# @return [String]
|
82
|
+
|
83
|
+
#
|
84
|
+
# @!endgroup
|
85
|
+
#
|
86
|
+
|
87
|
+
#
|
88
|
+
# Instance Methods
|
89
|
+
#
|
90
|
+
|
91
|
+
# @note Necessary to avoid coercion to an `IPAddr` object.
|
92
|
+
#
|
93
|
+
# The IP address for this request.
|
94
|
+
#
|
95
|
+
# @return [String]
|
96
|
+
def address
|
97
|
+
self[:address].to_s
|
98
|
+
end
|
99
|
+
|
100
|
+
Metasploit::Concern.run(self)
|
101
|
+
end
|
@@ -0,0 +1,56 @@
|
|
1
|
+
# WMAP target. WMAP is a plugin to metasploit-framework.
|
2
|
+
class Mdm::WmapTarget < ApplicationRecord
|
3
|
+
#
|
4
|
+
# Attributes
|
5
|
+
#
|
6
|
+
|
7
|
+
# @!attribute address
|
8
|
+
# IP address of {#host}.
|
9
|
+
#
|
10
|
+
# @return [String]
|
11
|
+
|
12
|
+
# @!attribute created_at
|
13
|
+
# When this target was created.
|
14
|
+
#
|
15
|
+
# @return [DateTime]
|
16
|
+
|
17
|
+
# @!attribute host
|
18
|
+
# Name of this target.
|
19
|
+
#
|
20
|
+
# @return [String]
|
21
|
+
|
22
|
+
# @!attribute port
|
23
|
+
# Port on this target to send {Mdm::WmapRequest requests}.
|
24
|
+
#
|
25
|
+
# @return [Integer]
|
26
|
+
|
27
|
+
# @!attribute selected
|
28
|
+
# Whether this target should be sent requests.
|
29
|
+
#
|
30
|
+
# @return [Integer]
|
31
|
+
|
32
|
+
# @!attribute ssl
|
33
|
+
# Version of SSL to use when sending requests to this target.
|
34
|
+
#
|
35
|
+
# @return [Integer]
|
36
|
+
|
37
|
+
# @!attribute updated_at
|
38
|
+
# The last time this target was updated.
|
39
|
+
#
|
40
|
+
# @return [DateTime]
|
41
|
+
|
42
|
+
#
|
43
|
+
# Instance Methods
|
44
|
+
#
|
45
|
+
|
46
|
+
# @note Necessary to avoid coercion to an `IPAddr` object.
|
47
|
+
#
|
48
|
+
# The IP address for this target.
|
49
|
+
#
|
50
|
+
# @return [String]
|
51
|
+
def address
|
52
|
+
self[:address].to_s
|
53
|
+
end
|
54
|
+
|
55
|
+
Metasploit::Concern.run(self)
|
56
|
+
end
|