Commit Graph

69 Commits

Author SHA1 Message Date
Brent Cook dea460c813 golang module loader support 2018-11-06 11:12:02 -06:00
William Vu 0b8926715e Reactively check for invalid module names 2018-10-10 14:33:59 -05:00
William Vu 1737935dc0 Convert reverse_relative_name to a class method
It'll be easier to use this way if someone uses it externally.
2018-10-10 13:21:18 -05:00
Wei Chen c7efd57144 Sync up with master 2018-10-06 08:27:01 -05:00
William Vu 46e7b8ac98 Namespace modules using full name instead of hex 2018-10-01 18:32:23 -05:00
Wei Chen f176dd03b5 Add a new module type to support evasion (WIP) 2018-08-02 11:54:38 -05:00
Adam Cammack 230e36f5f0 Pass the framework instance to exec module shims 2018-07-24 12:02:54 -05:00
Adam Cammack 0834c1aabd Log when loading an invalid external module type 2018-05-04 15:55:21 -05:00
Adam Cammack 81ec33b0e4 Refactor script path check into base module loader 2018-04-10 11:07:21 -05:00
Brent Cook 6c8ea2d883 also be sure to load executable modules if they don't have #! 2018-04-07 21:15:51 -05:00
Brent Cook 28ebe9d102 sanity check that external modules start with #! before executing 2018-04-07 16:31:34 -05:00
Adam Cammack 71149e9c68 Remove executable Ruby files from classic loading 2018-03-23 14:49:06 -05:00
Brent Cook 3b248c78f3 resurrect old example modules, integrate into module tree 2017-06-22 11:36:35 -05:00
Brent Cook 0189c40317 compromise 2017-04-09 15:03:05 -05:00
Brent Cook d9ba993d25 handle general failure getting module info for external modules 2017-04-09 11:50:03 -05:00
Adam Cammack a3e196e31e Support arbitrary external command_stager exploits
So much done, so much more to do.
2017-03-31 17:06:28 -05:00
Adam Cammack bf9b0130d9 Clean up odd code 2017-03-28 11:19:30 -05:00
Adam Cammack 71df231918 Add new loader for arbitrary executables
Still some kluges left in the shim and we have to hit the disk when
constructing the module path
2017-03-28 10:27:12 -05:00
Christian Mehlmauer 3b280d45a4 fix some yardoc issues 2016-04-18 21:00:21 +02:00
Brent Cook 5a72f2df16 remove subversion support 2016-03-15 22:00:32 -05:00
Christian Mehlmauer 4f09246c78 reenable module loader warnings 2016-03-13 20:04:05 +01:00
Christian Mehlmauer 3123175ac7 use MetasploitModule as a class name 2016-03-08 14:02:44 +01:00
Brent Cook 5a0bec81cb disable warnings for now, to be reenabled when the module base class is updated 2016-03-06 17:19:05 -06:00
Christian Mehlmauer e6147d60e2 fix rspecs 2016-01-22 23:43:13 +01:00
Christian Mehlmauer 158b1e473c revert value 2016-01-22 23:38:45 +01:00
Christian Mehlmauer 02841c79c3 some slight changes 2016-01-22 23:38:45 +01:00
Christian Mehlmauer 0546911eef fix error when invalid classname eg "class Metasploit1 < .." 2016-01-22 23:38:45 +01:00
Christian Mehlmauer 8f4752d11e show load warnings to the user 2016-01-22 23:38:45 +01:00
Christian Mehlmauer 7dac21f58c do not fail on old class name 2016-01-22 23:36:37 +01:00
Christian Mehlmauer 51eb79adc7 first try in changing class names 2016-01-22 23:36:37 +01:00
wchen-r7 f59c99e2ff Remove msfcli, please use msfconsole -x instead
msfcli is no longer supported, please use msfconsole.

Announcement on SecurityStreet:
Weekly Metasploit Wrapup
Posted by Tod Beardsley in Metasploit on Jan 23, 2015 11:57:05 AM
2015-07-09 12:50:02 -05:00
root 51dd88114b Fix grammer in comments 2015-04-13 13:21:41 +05:00
Luke Imhoff b863978028 Remove fastlib
MSP-11368
MSP-11143

Remove fastlib as it slows down the code loading process.  From the
previous commit, the mean loading for
`METASPLOIT_FRAMEWORK_PROFILE=true msfconsole -q -x exit` was
27.9530±0.3485 seconds (N=10).  The mean after removal of fastlib
was 17.9820±0.6497 seconds (N=10).  This means an average 35.67%
reduction in boot time.
2014-09-18 15:24:21 -05:00
HD Moore 5e123e024d Add 'coding: binary' to all msf/rex library files
This fixes a huge number of hard-to-detect runtime bugs
that occur when a default utf-8 string from one of these
libraries is passed into a method expecting ascii-8bit
2014-08-17 17:31:53 -05:00
Christian Mehlmauer 57839e0f4b Fix some yardoc issues 2014-07-22 23:26:50 +02:00
Meatballs 3542f851bf Fix some yarddoc issues 2014-05-05 22:45:41 +02:00
sinn3r a0decf502f Refactor msfcli 2013-07-28 12:40:50 -05:00
sinn3r 0fd2c385fb Update documentation 2013-07-24 19:02:10 -05:00
sinn3r e266d1bd0a Add comment about opts 2013-07-24 19:00:58 -05:00
sinn3r a71d7eb372 Update archive.rb to handle whitelist 2013-07-24 18:59:43 -05:00
sinn3r 9ae550c883 Do if [].empty?. Avoid msfcli running as a job 2013-07-24 18:35:06 -05:00
sinn3r ed51d284fa Change name, change how data is passed, fix rspec 2013-07-24 17:15:56 -05:00
sinn3r e120ecfba9 msfcli is designed to load only one module (auxiliary or exploit),
so we shouldn't have to load all of them to run this utility. The
overall goal of this PR is to narrow down what modules
(exploit/aux + payload + encoder + nop) you possibly need in order
to shave off loading time. By doing this, on my box this is 5-6
seconds faster than the original one.

I actually tried to avoid making too many changes in the library
(such as Module Manager), because we don't have test cases for them,
and we can't really afford to risk breaking it. I also developed
a test script to actually be able to test msfcli.
2013-07-24 14:40:46 -05:00
Luke Imhoff 2317e9cced Fix yard tag warnings
[#46491831]
2013-03-30 17:13:12 -05:00
Luke Imhoff 7ed2812ec3 Fix Cannot resolve link YARD warnings
[#46491831]
2013-03-30 16:58:49 -05:00
James Lee f4476cb1b7 Really fix payload recalculation
Instead of deleting all non-symbolics before the re-adding phase of
PayloadSet#recalculate, store a list of old module names, populate a
list of new ones during the re-adding phase, and finally remove any
non-symbolic module that was in the old list but wasn't in the new list.

Also includes a minor refactoring to make ModuleManager its own thing
instead of being an awkard subclass of ModuleSet. Now PayloadSet doesn't
need to know about the existence of framework.modules, which makes the
separation a little more natural.

[FixRM #7037]
2012-12-03 22:23:40 -06:00
James Lee 26a145e527 Always overwrite the old module even when ambiguous 2012-11-07 18:51:12 -06:00
James Lee 3a572625f5 return inside a block returns from outer method
So no need to check its return value.
2012-11-07 17:43:22 -06:00
James Lee aaa5a3c0bb Add "Call stack:" to the log when a module load fails 2012-11-07 12:48:55 -06:00
Luke Imhoff 16407f91c8 Rescue Errno::ENOENT from File.open in read_module_content
[Fixes #38426061, #38097411]

Msf::Modules::Loader::Directory#read_module_content may calculate a non-existent
module_path that gets passed to File.open causing an Errno::ENOENT exception
to be raised when using the module cache with a module that has been
moved to a new path (as is the case that originally found this bug) or
deleted.  Now, the exception is rescued and read_module_content returns
an empty string (''), which load_module detects with
module_content.empty? and returns earlier without attempting to module
eval the (empty) content.

As having Msf::Modules::Loader::Directory#read_module_content rescue the
exception, meant there was another place that needed to log and error
and store an error in Msf::ModuleManager#module_load_error_by_path, I
refactored the error reporting to call
Msf::Modules::Loader::Base#load_error, which handles writing to the log
and setting the Hash, so the error reporting is consistent across the
loaders.

The exception hierarchy was also refactored so that
namespace_module.metasploit_class now has an error raising counter-part:
namespace_module.metasploit_class! that can be used with
Msf::Modules::Loader::Base#load_error as it requires an exception, and
not just a string so the exception class, message, and backtrace can be
logged.
2012-11-06 17:38:38 -06:00