Rubocop replaces the default YAML library which makes development
testing difficult. It does not cause problems on Travis, but according
to reports, it does cause instability with many individual dev
environments.
While I would love to have a more solid source of this bug report, right
now this was an oral report from @shuckins-r7 (who I tend to believe a
lot).
This is a work in progress because the code base is old and the style
varies wildly, however .rubocop.yml can (and should) be tweaked over
time to change standards as we see fit. As it stands right now there
are few (if any) modules that pass Rubocop.
This reverts commit 9b35b0e13a.
This should not land on master until the Metasploit Pro folks (@trosen-r7
and friends) get their Meterpreter path specifications working the
same way as Framework's does.
rkelly-remixed is a faster fork of rkelly that is more frequently updated
nowadays. With the new gem, jsobfu obfuscates os.js about twice as fast on
my dev environment.
Makes the whole thing more pleasant to look at:
````
$ FIVEMAT_PROFILE=1 rake spec
Connecting to database specified by
/home/todb/git/rapid7/metasploit-framework/config/database.yml
NOTICE: CREATE TABLE will create implicit sequence "api_keys_id_seq"
for serial column "api_keys.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"api_keys_pkey" for table "api_keys"
NOTICE: CREATE TABLE will create implicit sequence "clients_id_seq" for
serial column "clients.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"clients_pkey" for table "clients"
NOTICE: CREATE TABLE will create implicit sequence "creds_id_seq" for
serial column "creds.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"creds_pkey" for table "creds"
NOTICE: CREATE TABLE will create implicit sequence "events_id_seq" for
serial column "events.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"events_pkey" for table "events"
NOTICE: CREATE TABLE will create implicit sequence
"exploit_attempts_id_seq" for serial column "exploit_attempts.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"exploit_attempts_pkey" for table "exploit_attempts"
NOTICE: CREATE TABLE will create implicit sequence
"exploited_hosts_id_seq" for serial column "exploited_hosts.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"exploited_hosts_pkey" for table "exploited_hosts"
NOTICE: CREATE TABLE will create implicit sequence
"host_details_id_seq" for serial column "host_details.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"host_details_pkey" for table "host_details"
NOTICE: CREATE TABLE will create implicit sequence "hosts_id_seq" for
serial column "hosts.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"hosts_pkey" for table "hosts"
NOTICE: CREATE TABLE will create implicit sequence "hosts_tags_id_seq"
for serial column "hosts_tags.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"hosts_tags_pkey" for table "hosts_tags"
NOTICE: CREATE TABLE will create implicit sequence "listeners_id_seq"
for serial column "listeners.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"listeners_pkey" for table "listeners"
NOTICE: CREATE TABLE will create implicit sequence "loots_id_seq" for
serial column "loots.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"loots_pkey" for table "loots"
NOTICE: CREATE TABLE will create implicit sequence "macros_id_seq" for
serial column "macros.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"macros_pkey" for table "macros"
NOTICE: CREATE TABLE will create implicit sequence "mod_refs_id_seq"
for serial column "mod_refs.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"mod_refs_pkey" for table "mod_refs"
NOTICE: CREATE TABLE will create implicit sequence
"module_actions_id_seq" for serial column "module_actions.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_actions_pkey" for table "module_actions"
NOTICE: CREATE TABLE will create implicit sequence
"module_archs_id_seq" for serial column "module_archs.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_archs_pkey" for table "module_archs"
NOTICE: CREATE TABLE will create implicit sequence
"module_authors_id_seq" for serial column "module_authors.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_authors_pkey" for table "module_authors"
NOTICE: CREATE TABLE will create implicit sequence
"module_details_id_seq" for serial column "module_details.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_details_pkey" for table "module_details"
NOTICE: CREATE TABLE will create implicit sequence
"module_mixins_id_seq" for serial column "module_mixins.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_mixins_pkey" for table "module_mixins"
NOTICE: CREATE TABLE will create implicit sequence
"module_platforms_id_seq" for serial column "module_platforms.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_platforms_pkey" for table "module_platforms"
NOTICE: CREATE TABLE will create implicit sequence "module_refs_id_seq"
for serial column "module_refs.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_refs_pkey" for table "module_refs"
NOTICE: CREATE TABLE will create implicit sequence
"module_targets_id_seq" for serial column "module_targets.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"module_targets_pkey" for table "module_targets"
NOTICE: CREATE TABLE will create implicit sequence
"nexpose_consoles_id_seq" for serial column "nexpose_consoles.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"nexpose_consoles_pkey" for table "nexpose_consoles"
NOTICE: CREATE TABLE will create implicit sequence "notes_id_seq" for
serial column "notes.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"notes_pkey" for table "notes"
NOTICE: CREATE TABLE will create implicit sequence "profiles_id_seq"
for serial column "profiles.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"profiles_pkey" for table "profiles"
NOTICE: CREATE TABLE will create implicit sequence "refs_id_seq" for
serial column "refs.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"refs_pkey" for table "refs"
NOTICE: CREATE TABLE will create implicit sequence
"report_templates_id_seq" for serial column "report_templates.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"report_templates_pkey" for table "report_templates"
NOTICE: CREATE TABLE will create implicit sequence "reports_id_seq" for
serial column "reports.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"reports_pkey" for table "reports"
NOTICE: CREATE TABLE will create implicit sequence "routes_id_seq" for
serial column "routes.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"routes_pkey" for table "routes"
NOTICE: CREATE TABLE will create implicit sequence "services_id_seq"
for serial column "services.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"services_pkey" for table "services"
NOTICE: CREATE TABLE will create implicit sequence
"session_events_id_seq" for serial column "session_events.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"session_events_pkey" for table "session_events"
NOTICE: CREATE TABLE will create implicit sequence "sessions_id_seq"
for serial column "sessions.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"sessions_pkey" for table "sessions"
NOTICE: CREATE TABLE will create implicit sequence "tags_id_seq" for
serial column "tags.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"tags_pkey" for table "tags"
NOTICE: CREATE TABLE will create implicit sequence "task_creds_id_seq"
for serial column "task_creds.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"task_creds_pkey" for table "task_creds"
NOTICE: CREATE TABLE will create implicit sequence "task_hosts_id_seq"
for serial column "task_hosts.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"task_hosts_pkey" for table "task_hosts"
NOTICE: CREATE TABLE will create implicit sequence
"task_services_id_seq" for serial column "task_services.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"task_services_pkey" for table "task_services"
NOTICE: CREATE TABLE will create implicit sequence
"task_sessions_id_seq" for serial column "task_sessions.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"task_sessions_pkey" for table "task_sessions"
NOTICE: CREATE TABLE will create implicit sequence "tasks_id_seq" for
serial column "tasks.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"tasks_pkey" for table "tasks"
NOTICE: CREATE TABLE will create implicit sequence "users_id_seq" for
serial column "users.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"users_pkey" for table "users"
NOTICE: CREATE TABLE will create implicit sequence
"vuln_attempts_id_seq" for serial column "vuln_attempts.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"vuln_attempts_pkey" for table "vuln_attempts"
NOTICE: CREATE TABLE will create implicit sequence
"vuln_details_id_seq" for serial column "vuln_details.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"vuln_details_pkey" for table "vuln_details"
NOTICE: CREATE TABLE will create implicit sequence "vulns_id_seq" for
serial column "vulns.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"vulns_pkey" for table "vulns"
NOTICE: CREATE TABLE will create implicit sequence "vulns_refs_id_seq"
for serial column "vulns_refs.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"vulns_refs_pkey" for table "vulns_refs"
NOTICE: CREATE TABLE will create implicit sequence "web_forms_id_seq"
for serial column "web_forms.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"web_forms_pkey" for table "web_forms"
NOTICE: CREATE TABLE will create implicit sequence "web_pages_id_seq"
for serial column "web_pages.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"web_pages_pkey" for table "web_pages"
NOTICE: CREATE TABLE will create implicit sequence "web_sites_id_seq"
for serial column "web_sites.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"web_sites_pkey" for table "web_sites"
NOTICE: CREATE TABLE will create implicit sequence "web_vulns_id_seq"
for serial column "web_vulns.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"web_vulns_pkey" for table "web_vulns"
NOTICE: CREATE TABLE will create implicit sequence
"wmap_requests_id_seq" for serial column "wmap_requests.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"wmap_requests_pkey" for table "wmap_requests"
NOTICE: CREATE TABLE will create implicit sequence
"wmap_targets_id_seq" for serial column "wmap_targets.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"wmap_targets_pkey" for table "wmap_targets"
NOTICE: CREATE TABLE will create implicit sequence "workspaces_id_seq"
for serial column "workspaces.id"
NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index
"workspaces_pkey" for table "workspaces"
/home/todb/.rvm/rubies/ruby-1.9.3-p448/bin/ruby -S rspec
./spec/lib/active_record/connection_adapters/abstract_adapter/connection_pool_spec.rb
./spec/lib/fastlib_spec.rb ./spec/lib/msf/base/simple/framework_spec.rb
./spec/lib/msf/core/data_store_spec.rb
./spec/lib/msf/core/exe/segment_injector_spec.rb
./spec/lib/msf/core/exploit/capture_spec.rb
./spec/lib/msf/core/exploit/http/client_spec.rb
./spec/lib/msf/core/exploit/http/server_spec.rb
./spec/lib/msf/core/module_manager_spec.rb
./spec/lib/msf/core/module_spec.rb
./spec/lib/msf/core/modules/error_spec.rb
./spec/lib/msf/core/modules/loader/archive_spec.rb
./spec/lib/msf/core/modules/loader/base_spec.rb
./spec/lib/msf/core/modules/loader/directory_spec.rb
./spec/lib/msf/core/modules/metasploit_class_compatibility_error_spec.rb
./spec/lib/msf/core/modules/namespace_spec.rb
./spec/lib/msf/core/modules/version_compatibility_error_spec.rb
./spec/lib/msf/core/option_container_spec.rb
./spec/lib/msf/core/options/opt_address_range_spec.rb
./spec/lib/msf/core/options/opt_address_spec.rb
./spec/lib/msf/core/options/opt_bool_spec.rb
./spec/lib/msf/core/options/opt_enum_spec.rb
./spec/lib/msf/core/options/opt_int_spec.rb
./spec/lib/msf/core/options/opt_path_spec.rb
./spec/lib/msf/core/options/opt_port_spec.rb
./spec/lib/msf/core/options/opt_raw_spec.rb
./spec/lib/msf/core/options/opt_regexp_spec.rb
./spec/lib/msf/core/task_manager_spec.rb
./spec/lib/msf/db_manager/export_spec.rb
./spec/lib/msf/db_manager_spec.rb
./spec/lib/msf/ui/command_dispatcher/auxiliary_spec.rb
./spec/lib/msf/ui/command_dispatcher/core_spec.rb
./spec/lib/msf/ui/command_dispatcher/db_spec.rb
./spec/lib/msf/ui/command_dispatcher/exploit_spec.rb
./spec/lib/msf/util/exe_spec.rb ./spec/lib/rex/encoding/xor/byte_spec.rb
./spec/lib/rex/encoding/xor/dword_spec.rb
./spec/lib/rex/encoding/xor/qword_spec.rb
./spec/lib/rex/encoding/xor/word_spec.rb
./spec/lib/rex/exploitation/ropdb_spec.rb
./spec/lib/rex/file_utils_spec.rb ./spec/lib/rex/parser/nmap_xml_spec.rb
./spec/lib/rex/parser/unattend_spec.rb
./spec/lib/rex/post/meterpreter/packet_parser_spec.rb
./spec/lib/rex/post/meterpreter/packet_spec.rb
./spec/lib/rex/proto/http/client_request_spec.rb
./spec/lib/rex/proto/http/client_spec.rb
./spec/lib/rex/proto/http/response_spec.rb
./spec/lib/rex/random_identifier_generator_spec.rb
./spec/lib/rex/socket/range_walker_spec.rb
./spec/lib/rex/sslscan/result_spec.rb
./spec/lib/rex/sslscan/scanner_spec.rb ./spec/lib/rex/text_spec.rb
./spec/msfcli_spec.rb ./spec/msfvenom_spec.rb
ActiveRecord::ConnectionAdapters::ConnectionPool ............ (0.38s)
FastLib .....*.....**.. (0.07s)
Msf::Simple::Framework ..... (0.14s)
Msf::DataStore ............ (0.0s)
Msf::Exe::SegmentInjector ................. (1.75s)
Msf::Exploit::Capture ..****... (0.0s)
Msf::Exploit::Remote::HttpClient ........................ (0.0s)
Msf::Exploit::Remote::HttpServer ...... (0.01s)
Msf::ModuleManager .....................................................
(4.39s)
Msf::Module
.............................................................................................................................................................................................................................................
(0.19s)
Msf::Modules::Error ......... (0.0s)
Msf::Modules::Loader::Archive ............... (0.07s)
Msf::Modules::Loader::Base
..................................................................................................../home/todb/git/rapid7/metasploit-framework/lib/msf/core/modules/loader/base.rb:599:
warning: already initialized constant Mod0
........ (0.15s)
Msf::Modules::Loader::Directory ......... (0.02s)
Msf::Modules::MetasploitClassCompatibilityError ... (0.0s)
Msf::Modules::Namespace ........................................ (0.01s)
Msf::Modules::VersionCompatibilityError ......... (0.0s)
Msf::OptionContainer . (0.0s)
Msf::OptAddressRange ............................ (0.01s)
Msf::OptAddress .............. (0.09s)
Msf::OptBool ............ (0.0s)
Msf::OptEnum ..... (0.0s)
Msf::OptInt ............... (0.0s)
Msf::OptPath ......... (0.0s)
Msf::OptPort .......... (0.0s)
Msf::OptRaw ..... (0.0s)
Msf::OptRegexp ...... (0.0s)
Msf::TaskManager ....... (1.17s)
Msf::DBManager::Export ........................ (9.84s)
Msf::DBManager
.....................................................................................................................................................................................................................................................
(92.63s)
Msf::Ui::Console::CommandDispatcher::Core ...... (4.19s)
Msf::Ui::Console::CommandDispatcher::Db ....*......** (3.76s)
Msf::Util::EXE
...........................................................................................................
(10.14s)
Rex::Encoding::Xor::Byte .. (0.06s)
Rex::Encoding::Xor::Dword ... (0.01s)
Rex::Encoding::Xor::Qword ... (0.02s)
Rex::Encoding::Xor::Word ... (0.0s)
Rex::Exploitation::RopDb .............. (0.11s)
Rex::FileUtils .......... (0.0s)
Rex::Parser::NmapXMLStreamParser .... (0.0s)
Rex::Parser::Unattend .... (0.03s)
Rex::Post::Meterpreter::PacketParser .. (0.0s)
Rex::Post::Meterpreter::Tlv ..................... (0.0s)
Rex::Post::Meterpreter::GroupTlv
....................***................... (0.0s)
Rex::Post::Meterpreter::Packet .................... (0.0s)
Rex::Proto::Http::ClientRequest ............................ (0.01s)
Rex::Proto::Http::Client ......*****.***......... (0.0s)
Rex::Proto::Http::Response ..... (0.0s)
Rex::RandomIdentifierGenerator .................. (0.14s)
Rex::Socket::RangeWalker ............. (0.23s)
Rex::SSLScan::Result
.....................................................................................
(0.44s)
Rex::SSLScan::Scanner .................... (26.91s)
Rex::Text ........ (0.01s)
Msfcli ...................................... (57.47s)
MsfVenom
..............................................................................................
(26.44s)
Pending:
FastLib class methods dump without compression and without encryption
cache Fix https://www.pivotaltracker.com/story/show/38730815
# No reason given
# ./spec/lib/fastlib_spec.rb:94
FastLib class methods list with cached dump should have dump cached
# Fix https://www.pivotaltracker.com/story/show/38730815
# ./spec/lib/fastlib_spec.rb:202
FastLib class methods list with cached dump should list archived paths
# Fix https://www.pivotaltracker.com/story/show/38730815
# ./spec/lib/fastlib_spec.rb:206
Msf::Exploit::Capture should confirm that pcaprub is available
# Need to test this without stubbing check_pcaprub_loaded
# ./spec/lib/msf/core/exploit/capture_spec.rb:40
Msf::Exploit::Capture should open a pcap file
# Provde a sample pcap file to read
# ./spec/lib/msf/core/exploit/capture_spec.rb:43
Msf::Exploit::Capture should capture from an iface
# Mock this? Tends to need root
# ./spec/lib/msf/core/exploit/capture_spec.rb:46
Msf::Exploit::Capture should inject packets to an ifrace
# Mock this? Tends to need root
# ./spec/lib/msf/core/exploit/capture_spec.rb:49
Msf::Ui::Console::CommandDispatcher::Db#cmd_services -np should list
services that are not on a given port
# refs redmine ticket #4821
# ./spec/lib/msf/ui/command_dispatcher/db_spec.rb:100
Msf::Ui::Console::CommandDispatcher::Db#db_nmap should have some specs
describing its output
# Not yet implemented
# ./spec/lib/msf/ui/command_dispatcher/db_spec.rb:261
Msf::Ui::Console::CommandDispatcher::Db#db_rebuild_cache should have
some specs describing its output
# Not yet implemented
# ./spec/lib/msf/ui/command_dispatcher/db_spec.rb:265
Rex::Post::Meterpreter::GroupTlv#add_tlvs should raise an error when
given something other than nil or an array
# RM #7598
# ./spec/lib/rex/post/meterpreter/packet_spec.rb:232
Rex::Post::Meterpreter::GroupTlv#add_tlvs should raise an error when
given an array of objects other than hashes
# RM #7598
# ./spec/lib/rex/post/meterpreter/packet_spec.rb:237
Rex::Post::Meterpreter::GroupTlv#add_tlvs should raise an error when
any of the hashes are missing a key
# RM #7598
# ./spec/lib/rex/post/meterpreter/packet_spec.rb:242
Rex::Proto::Http::Client should send a request and receive a response
# need to actually set up an HTTP server to test
# ./spec/lib/rex/proto/http/client_spec.rb:149
Rex::Proto::Http::Client should send a request and receive a response
without auth handling
# need to actually set up an HTTP server to test
# ./spec/lib/rex/proto/http/client_spec.rb:153
Rex::Proto::Http::Client should send a request
# need to actually set up an HTTP server to test
# ./spec/lib/rex/proto/http/client_spec.rb:157
Rex::Proto::Http::Client should test for credentials
# Should actually respond to :has_creds
# ./spec/lib/rex/proto/http/client_spec.rb:161
Rex::Proto::Http::Client should send authentication
# Not yet implemented
# ./spec/lib/rex/proto/http/client_spec.rb:169
Rex::Proto::Http::Client should perform digest authentication
# need to set up an HTTP authentication challenger
# ./spec/lib/rex/proto/http/client_spec.rb:178
Rex::Proto::Http::Client should perform negotiate authentication
# need to set up an HTTP authentication challenger
# ./spec/lib/rex/proto/http/client_spec.rb:182
Rex::Proto::Http::Client should get a response
# need to actually set up an HTTP server to test
# ./spec/lib/rex/proto/http/client_spec.rb:186
````
Not sure why this version is pinned, I'm pretty trustworthy.
I would love to see @jlee-r7 or @hdm-r7 land this, since they were the
ones who so a problem with binary regexes in 1.1.8
[#49858419]
[SEERM #7958]
metasploit_data_models 0.14.3 relaxes the validation on
Mdm::Module::Detail#stance so it only needs to be in
Mdm::Module::Detail::STANCES if Mdm::Module::Detail#mtype is 'auxiliary'
or 'exploit' as framework only supplies a stance for those types when
using Mdm::Module::Detail.