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.
Some users are having trouble installing pcap. Others want postgres to
remain optional. The move to requiring bundler in a git environment has
made this hard.
This commit provides a path for these users. By default, bundler will
install all gems, including postgres and pcaprub. If it fails to
install some, Metasploit will not function. But there is hope. Users
can explicitly exclude the gem groups they don't want.
For example:
bundle install --without db pcap
will exclude the pcap and postgres gems (and their depedencies).
bundle install --without db pcap development test
will exclude all non-essential gems.
The good news is that the user only needs to use the `--without` option
once. Bundler will remember it. So future runs can still do `bundle
install` (or simply `bundle`) and the gems will still be excluded. And
if the user changes their mind and wants the optional gems, they can
remove their stored *without* preference using:
bundle config --delete without
[FIXRM #7891]