Commit Graph

1054 Commits (98dca6161c32282104d95c35009b903284ec58cd)

Author SHA1 Message Date
Luke Imhoff cf0ecd0367
Fix thread leaks in TaskManager spec
MSP-11147
2014-11-11 12:02:14 -06:00
Luke Imhoff eede74be1e
Extract 'Msf::Framework#threads cleaner'
MSP-11147

Extract from 'Msf::Simple::Framework' the `after(:each)` that kills and joins
threads from `framework.threads` into 'Msf::Framework#threads cleaner`.
2014-11-11 11:49:48 -06:00
Luke Imhoff d4d710cc3a
Merge branch 'feature/MSP-11130/metasploit-framework-spec-constants' into feature/MSP-11147/thread-leak-detection
MSP-11147

Merge to get framework instance cleanup, which should clean up a lot of
thread leaks too.

Conflicts:
	Rakefile
	lib/metasploit/framework/spec.rb
	spec/spec_helper.rb
2014-11-05 15:47:59 -06:00
Luke Imhoff 96990fdc02
Fail before suite if more than 1 thread exists
MSP-11147

Detect thread leaks in a `before(:suite)` configured by
`Metasploit::Framework::Spec::Threads::Suite.configure!` and fail if any
leaks are found.
2014-11-05 14:38:43 -06:00
jvazquez-r7 468b4a399a Fix Rex::MIME::Message specs 2014-11-05 11:43:55 -06:00
Luke Imhoff dee02fc85b
Automatically clear previous log/metasploit/framework/spec/constants/each.log
MSP-11130

Have a task, 'metasploit:framework:spec:constants:each:clean' run before
`rake spec` that removes the previous
`log/metasploit/framework/spec/constants/each.log` so that the user doesn't
have to manually remove the load when removing
`Metasploit::Framework::Spec::Constants::Each.configure!` from
`spec/spec_helper.rb`.
2014-11-04 13:58:13 -06:00
Luke Imhoff 313d86982c
Log Spec::Constants::Each error instead of flag.
MSP-11130

Instead of writing `1` to the file and then printing a verbose message
in the spec task action, log the verbose message and just print the log
in the spec task action, so other tools can just look at the log when
not using `rake spec`.

NOTE: Failing specs due to unnecessary
`Metasploit::Framework::Spec::Constants::Each.configure!`
2014-11-04 13:36:52 -06:00
Luke Imhoff 45fea32c77
Use 'Metasploit::Simple::Framework#modules loading' in 'payloads can be instantiated'
MSP-11130

Use `expect_to_load_module_ancestor` and `load_and_create_module` in
favor of the custom code in 'payloads can be instantiated'.
2014-11-04 13:06:52 -06:00
Luke Imhoff c115ad3c36
Use `load_and_create_module` in modules_spec
MSP-11130

Reuse 'Msf::Simple::Framework#modules loading' context in 'all modules
with module type can be instantiated' instead of using the similar code.
2014-11-04 12:59:59 -06:00
Luke Imhoff b0f1b2a1f7
Merge branch 'master' into feature/MSP-11130/metasploit-framework-spec-constants
MSP-11130

Conflicts:
	Rakefile
2014-11-04 10:10:12 -06:00
Luke Imhoff cc4e553c11
Remove Metasploit::Framework::Spec::Constants::Each.configured!
MSP-11130

No longer needed because all before suite leaks have been fixed.
2014-11-04 09:50:16 -06:00
Luke Imhoff 0c769e2fd7
Fix constant leaks in Msf::Util::EXE spec
MSP-11130

Remove global $framework as it loads modules prior to suite run and they
are not cleaned up.
2014-11-04 09:48:55 -06:00
Luke Imhoff 78ea93044b
Fix Msf::PayloadGenerator spec constant leaks
MSP-11130

Remove the constant PAYLOAD_FRAMEWORK as it leads to a
Msf::Simple::Framework instance that is not cleaned up and loads modules
prior to the beginning of the suite run.
2014-11-04 09:48:02 -06:00
Luke Imhoff ff0391cdc7
Fix derive_module_ancestor_names
MSP-11130

Wrap :reference_name in an Array since :ancestor_reference_names is
expected to be an Array.
2014-11-04 09:40:55 -06:00
Tod Beardsley 0b39c2ed85
Land #4084, prep for Ruby 2.1 2014-11-03 13:43:50 -06:00
Luke Imhoff 9ea1240cbb
Default modules_path
MSP-11130

Default `:modules_path` to use the `#modules_path` left for
'Msf::Simple::Framework#modules#loading''s `#load_and_create_module`.
2014-11-03 11:06:49 -06:00
Luke Imhoff 0296d1784d
Derive ancestor reference names from reference name
MSP-11130

For 'Msf::Simple::Framework#modules loading''s load_and_create_modules,
don't require `:ancestor_reference_names` when the `:module_type` is not
payload as the one ancestor reference name will be the same as
`:reference_name`.
2014-11-03 10:59:01 -06:00
Luke Imhoff d97bc52d8a
Complete documentation for 'Msf::Simple::Framework::Modules loading'
MSP-11130
2014-11-03 09:47:29 -06:00
Luke Imhoff f0001eb9e6
Extract 'Msf::Simple::Framework#modules loading'
MSP-11130

'Msf::Simple::Framework#modules loading' defines
`#load_and_create_module`, which takes the :ancestor_reference_names,
:modules_path, :module_type, and :reference_name of the module whose
ancestors to load and the reference name to create. A default modules
path, the first 'modules' path for the Rails application is available in
in the `#modules_path` let.
2014-11-03 08:59:06 -06:00
Luke Imhoff 8b4767449f
Fix constant leaks in Msf::EncodedPayload spec
MSP-11130

Switch to using 'Msf::Simple::Framework' shared context and explicit
module loading instead of loading all moduels to just test with one.
2014-10-30 14:56:47 -05:00
Luke Imhoff c2bd75b587
Clean up leaked constants
MSP-11130
2014-10-29 15:50:47 -05:00
Luke Imhoff 7e2897277b
Rename shared example file to match name
MSP-11130
2014-10-29 12:54:29 -05:00
Luke Imhoff 892aeaf727
Metasploit::Framework::Spec::Constants cleaner
MSP-11130

Shared context will calls `Metasploit::Framework::Spec::Constants.clean
after each example.
2014-10-29 11:31:17 -05:00
Luke Imhoff 0d4b22ce7a
Detect constant leaks in individual examples
MSP-11130

`Metasploit::Framework::Spec::Constants::Each.configure!` will set up an
`after(:each)` callback that will fail the example if there are leaked
constants.  Leaked constants are cleaned up to prevent misattribution.
2014-10-28 15:50:24 -05:00
Luke Imhoff f9b1f2a424
Extract Metasploit::Framework::Spec::Constants::Suite
MSP-11130

`Metasploit::Framework::Spec::Constants::Suite` extracts out
`LOG_PATHNAME`, `configure!`, and `define_task` as those piece are
specific to handling constant leaks for the entire suite.  This is in
preparation for `Metasploit::Framework::Spec::Constants::Each`.
2014-10-28 15:07:32 -05:00
Joe Vennix c6bbc5bccf
Merge branch 'landing-4055' into upstream-master 2014-10-28 11:18:20 -05:00
sinn3r e31c9f579d
Land #3987 - Buffalo Linkstation NAS Login Scanner 2014-10-28 01:45:57 -05:00
James Lee 77d4623c44
Fix respond_to specs for protected methods 2014-10-27 19:39:32 -05:00
Luke Imhoff dae114a7f3
Document how to derive reference_name from ancestors
MSP-11145
2014-10-27 15:59:12 -05:00
Luke Imhoff 485860ebfb
Uncomment specs used to cause failure
MSP-11145

Restore commented out specs so that that the untested payloads check
passes.
2014-10-27 15:27:16 -05:00
Luke Imhoff 43552a8304
Tag module specs with :content
MSP-11145

Tag content-related specs so they can be run separately in travis-ci.
2014-10-27 14:25:34 -05:00
Luke Imhoff c84febea5f
tools/missing-payload-tests.rb
MSP-11145

**NOTE: Failing specs**

Add a tool for reading `log/untested-payload.log` and
`framework.payloads` to determine `context`s to add
`spec/modules/payloads_spec.rb` to test the untested payloads.
2014-10-27 13:03:31 -05:00
Jon Hart b8c9ef96ca
Land #4003, @nstarke's Login Scanner for WD MyBook Live NAS 2014-10-27 09:57:43 -07:00
Luke Imhoff 1df82ea273
Fix typo in file name
MSP-11145
2014-10-27 11:34:26 -05:00
Luke Imhoff 605f48e58d
Detect leaked constants under Msf::Modules
MSP-11130

Detect constants leaked under Msf::Modules after the suite completes.
2014-10-27 11:13:43 -05:00
James Lee 7081026ae6 Fix some specs broken by 2.x's new rules
* default utf-8 everywhere broke tests in lib/rex/text_spec that dealt
   with binary data
 * new protected rules
2014-10-27 10:28:24 -05:00
Joshua Smith 0d449cb88d
resolves merge conflict between #4071 / #4072 2014-10-24 13:11:35 -05:00
Joshua Smith e583cce7f2 changes be_false to be_falsey in exe_spec 2014-10-24 11:11:44 -05:00
Joe Vennix 813a2f8c1c Oops, false not true. 2014-10-24 10:48:58 -05:00
Joe Vennix 028fb3279f Add spec for ensuring is_eicar_corrupted? is false. 2014-10-24 10:48:58 -05:00
Joshua Smith 34f29f218c really resolve merge conflicts 2014-10-23 21:51:33 -05:00
Trevor Rosen 75333702a2
Merge branch 'land/4028' into upstream-master
Land #4028
2014-10-23 12:36:35 -05:00
Luke Imhoff 48d6880f1d
Add docs for untested payload testing
MSP-11145

Add docs to rake task, shared examples, and share contexts for how to
use all 3 together.
2014-10-23 11:17:05 -05:00
Luke Imhoff 2a82f45f06
Remove unneeded section comment
MSP-11145
2014-10-23 10:53:24 -05:00
Luke Imhoff a7317cb86c
Extract 'untested payloads' shared context
MSP-11145

Detects if payloads are untested when using the 'payload can be
instantiated' shared examples.
2014-10-23 09:55:14 -05:00
Luke Imhoff 6c3c830efb
Extract 'payload can be instantiated' shared example
MSP-11145

Extracted so that pro can use it.
2014-10-23 09:35:52 -05:00
Luke Imhoff 88839e841a
Extract 'all modules with module type can be instantiated' shared example
MSP-11145

Extracted so it can be used by pro.
2014-10-23 09:31:44 -05:00
sinn3r 42cd288bc0
Land #4057 - Bring back TCP::max_send_size and TCP::send_delay options
Fix #3967
2014-10-22 16:23:15 -05:00
Jon Hart 7b33ff1363
Land #3767, @jvazquez-r7's specs for Rex::Encoder::XDR 2014-10-22 09:22:53 -07:00
James Lee bb119b840a
Move Tcp specs into their own shared example
All the Tcp options formerly in RexSocket got moved, this just brings
the specs in line with the new reality.
2014-10-22 09:16:14 -05:00
sinn3r 49b088d112 Use be_a 2014-10-21 17:15:54 -05:00
sinn3r 9de1c95b22 It's Connection timed out 2014-10-21 16:53:47 -05:00
sinn3r d1881108cf Fix db2 rspec 2014-10-21 16:35:20 -05:00
sinn3r b5d536d165 Fix mysql rspec 2014-10-21 16:34:10 -05:00
Luke Imhoff f66c714105
Clear log/untested-payloads.log
MSP-11145

Delete log/untested-payloads.log when all payloads are tested so that
`rake spec` does not exist 1 when it should exit 0.
2014-10-21 13:53:48 -05:00
Luke Imhoff 003d8547c4
Failing with untested payloads to log
MSP-11145

Log untested payloads to log/untested-payloads.log.
2014-10-21 13:23:15 -05:00
Luke Imhoff 8f3e064e0b
Connect actual_ancestor_reference_names to tests
MSP-11145
2014-10-21 12:56:59 -05:00
Luke Imhoff 653c5ccf4a
Log untested payloads to stderr
MSP-11145

This commit is a proof that the logger works.  It does no connect the
adding tested payloads reference names to the
actual_ancestor_reference_name_set to show that the logger is working.
2014-10-21 12:44:01 -05:00
Luke Imhoff 162c62f205
Fix ancestor reference names in spec
MSP-11145

ancestor_reference_name derivation was using the source_location of
initialize, but that didn't work for payload modules whose #initialize
was only in mixin Modules.
2014-10-21 10:26:28 -05:00
Luke Imhoff 556bf361a2
Failing payloads spec
MSP-11145

Spec fails due to missing requires.
2014-10-21 09:33:01 -05:00
nstarke 70b13819d9 Adding Login Scanner for MyBook Live
This is a LoginScanner auxiliary module for Western
Digital MyBook Live NAS devices as well as the spec
for testing.
2014-10-21 00:50:40 +00:00
Luke Imhoff bf23926314
Spec all posts can be instantiated
MSP-11145
2014-10-20 13:42:21 -05:00
Luke Imhoff 535dea1d7d
Spec all nops can be instantiated
MSP-11145
2014-10-20 13:35:57 -05:00
Luke Imhoff 594b0bf7bb
Spec all exploits can be instantiated
MSP-11145
2014-10-20 13:32:55 -05:00
Luke Imhoff 103382a2ef
Spec all encoders can be instantiated
MSP-11145
2014-10-20 13:31:12 -05:00
Jon Hart 82de2eb1f3
Fix Rex::Encoder::XDR.decode_int! to properly handle short data 2014-10-20 11:30:13 -07:00
Luke Imhoff 2c997d99b5
Extract module instantiation context to shared examples
MSP-11145
2014-10-20 13:21:22 -05:00
Luke Imhoff 7e9398e1af
Spec all auxiliary modules can be instantiated
MSP-11145
2014-10-20 12:52:07 -05:00
Luke Imhoff 080ea3e56a
Merge branch 'staging/great-backport' into feature/MSP-11126/msf-module-reorg
MSP-11126
2014-10-17 14:28:13 -05:00
Luke Imhoff ae45c1b9d3
Msf::Module::Rank -> Msf::Module::Ranking
MSP-11126

So that mixin module won't appear as Rank constant that Msf::Module
subclasses are supposed to define.
2014-10-17 13:39:53 -05:00
Joshua Smith 19e8a50573
Land 3847, specs for Rex::Oui 2014-10-17 13:22:51 -05:00
Joshua Smith 32faa0bc62
Land 3796, specs for Rex::Encoder::Alpha2 encoders 2014-10-17 13:15:00 -05:00
Luke Imhoff 7ffd07c44d
Remove protected method from specs examples
MSP-11126
2014-10-17 11:49:01 -05:00
Luke Imhoff 575717681c
Extract Msf::Module::Privileged shared examples
MSP-11126
2014-10-17 11:48:36 -05:00
Luke Imhoff 172afd180a
Extract Msf::Module::Privileged
MSP-11126
2014-10-17 11:45:03 -05:00
Luke Imhoff 45302b9403
Extract Msf::Module::UUID shared examples
MSP-11126
2014-10-17 11:34:35 -05:00
Luke Imhoff cbae9be5b5
Extract Msf::Module::UUID
MSP-11126
2014-10-17 11:31:56 -05:00
Luke Imhoff d86eda5f1d
Extract Msf::Module::Author shared examples
MSP-11126
2014-10-17 11:20:23 -05:00
Luke Imhoff a59e635913
Extract Msf::Module::Author
MSP-11126
2014-10-17 11:17:12 -05:00
Luke Imhoff 13923a8ca5
Fully-qualify Msf::DBImportError
MSP-11152

Constant was unqualified in some of the reorganized Msf::DBManager code
because that code was take advantage of the old nested lexical scope
that included `Msf`.
2014-10-17 09:29:01 -05:00
Luke Imhoff e822920298
Msf::Module::Author -> Msf::Author
MSP-11126

`Msf::Module::Author` was already aliased to `Msf::Author`.  This just
moved `Msf::Module::Author` to that alias to free up
`Msf::Module::Author` so it can be used for a concern for
`Msf::Module`'s author methods.
2014-10-17 08:59:54 -05:00
Luke Imhoff ebc62cf9c9
Spec Msf::Module::Author
MSP-11126

Bare minimum of methods to assist with moves.
2014-10-16 16:03:28 -05:00
Luke Imhoff 839657abec
Extract Msf::Module::Network shared examples
MSP-11126
2014-10-16 15:54:35 -05:00
Luke Imhoff ee9623c11e
Remove class method examples moved to shared examples
MSP-11126
2014-10-16 15:41:28 -05:00
Luke Imhoff 244e4a9954
Extract Msf::Module::Search shared examples
MSP-11126
2014-10-16 15:40:19 -05:00
Luke Imhoff be945d26fc
Extract Msf::Module::FullName shared examples
MSP-11126
2014-10-16 15:33:13 -05:00
Luke Imhoff c501e1e58a
Extract Msf::Module::Rank shared examples
MSP-11126
2014-10-16 14:41:59 -05:00
Luke Imhoff 925cd63171
Extrat Msf::Module::Type shared examples
MSP-11126
2014-10-16 14:28:43 -05:00
Luke Imhoff e418f98d45
arch -> Msf::Module::Arch
MSP-11126
2014-10-16 13:21:11 -05:00
Luke Imhoff 28af6a490b
Extract Msf::Module::Arch shared examples
MSP-11126
2014-10-16 13:16:57 -05:00
Luke Imhoff a2dc3b754f
Extract Msf::Module::ModuleInfo shared examples
MSP-11126
2014-10-16 13:10:15 -05:00
Luke Imhoff f8ada87e86
Extract Msf::Module::Options shared examples
MSP-11126
2014-10-16 11:24:03 -05:00
Luke Imhoff c50cb2eb8a
Extract Msf::Module::UI::*::Verbose and shared examples
MSP-11126
2014-10-16 10:05:45 -05:00
Luke Imhoff a3afb92ee2
Extract Msf::Module::UI::Line shared examples
MSP-11126
2014-10-16 09:51:23 -05:00
Luke Imhoff 96864b3892
Extract Msf::Module::UI::Message shared examples
MSP-11126
2014-10-16 09:45:17 -05:00
Luke Imhoff 4d9f7db15a
Extract Msf::Module::Compatibility
MSP-11126
2014-10-16 09:29:31 -05:00
Luke Imhoff 9b10a3f1dc
Extract Msf::Module::DataStore shared examples
MSP-11126
2014-10-16 09:14:44 -05:00
Luke Imhoff 6a194b3a88
Extract Msf::Module::ModuleStore shared examples
MSP-11126
2014-10-16 09:03:12 -05:00
Luke Imhoff 98a56d594a
Spec Msf::Target
MSP-11496
2014-10-15 15:18:28 -05:00
Luke Imhoff 6bf5e996cf
Spec Msf::Platform
MSP-11496
2014-10-15 15:15:33 -05:00