Fixes 4373, Migrates lib/msf to use autoload instead of require (first try)

git-svn-id: file:///home/svn/framework3/trunk@12596 4d416f70-5f16-0410-b530-b9f4589650da
This commit is contained in:
Joshua Drake 2011-05-12 19:07:35 +00:00
parent 7600f9110e
commit fd4e6db85d
17 changed files with 246 additions and 180 deletions

View File

@ -22,19 +22,20 @@ require 'msf/core'
require 'msf/base/config'
require 'msf/base/logging'
# Simple wrapper
require 'msf/base/simple'
module Msf
# Simple wrapper
autoload :Simple, 'msf/base/simple'
# Sessions
require 'msf/base/sessions/command_shell'
require 'msf/base/sessions/tty'
# Sessions
autoload :Sessions, 'msf/base/sessions'
# Serialization
require 'msf/base/serializer/readable_text'
# Serialization
autoload :Serializer, 'msf/base/serializer/readable_text'
# Persistent Storage
require 'msf/base/persistent_storage'
# Persistent Storage
autoload :PersistentStorage, 'msf/base/persistent_storage'
# Utilities
require 'msf/util'
# Utilities
autoload :Util, 'msf/util'
end

19
lib/msf/base/sessions.rb Normal file
View File

@ -0,0 +1,19 @@
module Msf
module Sessions
autoload :CommandShell, 'msf/base/sessions/command_shell'
autoload :CommandShellWindows, 'msf/base/sessions/command_shell'
autoload :CommandShellUnix, 'msf/base/sessions/command_shell'
autoload :Meterpreter, 'msf/base/sessions/meterpreter'
autoload :Meterpreter_Java_Java, 'msf/base/sessions/meterpreter_java'
autoload :Meterpreter_Php_Php, 'msf/base/sessions/meterpreter_php'
autoload :Meterpreter_x64_Win, 'msf/base/sessions/meterpreter_x64_win'
autoload :Meterpreter_x86_BSD, 'msf/base/sessions/meterpreter_x86_bsd'
autoload :Meterpreter_x86_Linux, 'msf/base/sessions/meterpreter_x86_linux'
autoload :Meterpreter_x86_Win, 'msf/base/sessions/meterpreter_x86_win'
autoload :VncInject, 'msf/base/sessions/vncinject'
autoload :TTY, 'msf/base/sessions/tty'
end
end

View File

@ -1,15 +1,17 @@
# Buffer management
require 'msf/base/simple/buffer'
require 'msf/base/simple/statistics'
module Msf::Simple
# Buffer management
autoload :Buffer, 'msf/base/simple/buffer'
autoload :Statistics, 'msf/base/simple/statistics'
# Simplified module interfaces
require 'msf/base/simple/module'
require 'msf/base/simple/encoder'
require 'msf/base/simple/exploit'
require 'msf/base/simple/nop'
require 'msf/base/simple/payload'
require 'msf/base/simple/auxiliary'
require 'msf/base/simple/post'
# Simplified module interfaces
autoload :Module, 'msf/base/simple/module'
autoload :Encoder, 'msf/base/simple/encoder'
autoload :Exploit, 'msf/base/simple/exploit'
autoload :Nop, 'msf/base/simple/nop'
autoload :Payload, 'msf/base/simple/payload'
autoload :Auxiliary, 'msf/base/simple/auxiliary'
autoload :Post, 'msf/base/simple/post'
# Simplified framework interface
require 'msf/base/simple/framework'
# Simplified framework interface
autoload :Framework, 'msf/base/simple/framework'
end

View File

@ -15,8 +15,38 @@ require 'msf/sanity'
# The framework-core depends on Rex
require 'rex'
# Set the log source, and initialize demand-loaded requires
module Msf
LogSource = "core"
# Event subscriber interfaces
autoload :UiEventSubscriber, 'msf/events'
# Wrappers
autoload :EncodedPayload, 'msf/core/encoded_payload'
# Pseudo-modules
autoload :Handler, 'msf/core/handler'
# Mixins
autoload :Encoder, 'msf/core/encoder'
autoload :EncoderState, 'msf/core/encoder'
autoload :Auxiliary, 'msf/core/auxiliary'
autoload :Nop, 'msf/core/nop'
autoload :Payload, 'msf/core/payload'
autoload :ExploitEvent, 'msf/core/exploit'
autoload :Exploit, 'msf/core/exploit'
autoload :Post, 'msf/core/post'
# Drivers
autoload :ExploitDriver, 'msf/core/exploit_driver'
# Framework context and core classes
autoload :Framework, 'msf/core/framework'
# Session stuff
autoload :Session, 'msf/core/session'
autoload :SessionEvent, 'msf/core/session'
end
# General
@ -25,35 +55,5 @@ require 'msf/core/exceptions'
require 'msf/core/data_store'
require 'msf/core/option_container'
# Event subscriber interfaces
require 'msf/events'
# Framework context and core classes
require 'msf/core/framework'
require 'msf/core/db_manager'
require 'msf/core/event_dispatcher'
require 'msf/core/module_manager'
require 'msf/core/plugin_manager'
require 'msf/core/session'
require 'msf/core/session_manager'
# Wrappers
require 'msf/core/encoded_payload'
# Pseudo-modules
require 'msf/core/handler'
# Modules
require 'msf/core/module'
require 'msf/core/encoder'
require 'msf/core/auxiliary'
require 'msf/core/exploit'
require 'msf/core/nop'
require 'msf/core/payload'
require 'msf/core/post'
# Drivers
require 'msf/core/exploit_driver'

View File

@ -5,17 +5,35 @@
#
# Auxiliary mixins
#
require 'msf/core/auxiliary/auth_brute'
require 'msf/core/auxiliary/dos'
require 'msf/core/auxiliary/fuzzer'
require 'msf/core/auxiliary/report'
require 'msf/core/auxiliary/scanner'
require 'msf/core/auxiliary/timed'
require 'msf/core/auxiliary/wmapmodule'
require 'msf/core/auxiliary/crawler'
module Msf
class Auxiliary
# Main types of auxiliary modules
autoload :AuthBrute, 'msf/core/auxiliary/auth_brute'
autoload :Dos, 'msf/core/auxiliary/dos'
autoload :Fuzzer, 'msf/core/auxiliary/fuzzer'
autoload :Scanner, 'msf/core/auxiliary/scanner'
autoload :Timed, 'msf/core/auxiliary/timed'
require 'msf/core/auxiliary/commandshell'
require 'msf/core/auxiliary/login'
require 'msf/core/auxiliary/rservices'
require 'msf/core/auxiliary/cisco'
require 'msf/core/auxiliary/nmap'
# WMAP
autoload :WMAPModule, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanSSL, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanFile, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanDir, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanServer, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanQuery, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanUniqueQuery, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPScanGeneric, 'msf/core/auxiliary/wmapmodule'
autoload :WMAPCrawler, 'msf/core/auxiliary/wmapmodule'
autoload :HttpCrawler, 'msf/core/auxiliary/crawler'
# Miscallaneous
autoload :Report, 'msf/core/auxiliary/report'
autoload :CommandShell, 'msf/core/auxiliary/commandshell'
autoload :Nmap, 'msf/core/auxiliary/nmap'
# Protocol augmenters for Aux modules
autoload :Login, 'msf/core/auxiliary/login'
autoload :RServices, 'msf/core/auxiliary/rservices'
autoload :Cisco, 'msf/core/auxiliary/cisco'
end
end

View File

@ -1,8 +1,10 @@
require 'zip'
require 'packetfu'
require 'uri'
autoload :FileUtils, 'fileutils'
autoload :Zip, 'zip'
autoload :URI, 'uri'
autoload :PacketFu, 'packetfu'
require 'tmpdir'
require 'fileutils'
module Msf

View File

@ -156,6 +156,48 @@ class Exploit < Msf::Module
###
class Remote < Exploit
# Protocol - layer 3
autoload :Ip, 'msf/core/exploit/ip'
autoload :Ipv6, 'msf/core/exploit/ipv6'
# Protocol - layer 4
autoload :Tcp, 'msf/core/exploit/tcp'
autoload :TcpServer, 'msf/core/exploit/tcp'
autoload :Udp, 'msf/core/exploit/udp'
# Protocol - layer 5
autoload :Ftp, 'msf/core/exploit/ftp'
autoload :FtpServer, 'msf/core/exploit/ftpserver'
autoload :Telnet, 'msf/core/exploit/telnet'
autoload :HttpClient, 'msf/core/exploit/http/client'
autoload :HttpServer, 'msf/core/exploit/http/server'
autoload :Smtp, 'msf/core/exploit/smtp'
autoload :Imap, 'msf/core/exploit/imap'
autoload :Pop2, 'msf/core/exploit/pop2'
autoload :SMTPDeliver, 'msf/core/exploit/smtp_deliver'
autoload :SMB, 'msf/core/exploit/smb'
autoload :SMBServer, 'msf/core/exploit/smb'
autoload :DCERPC, 'msf/core/exploit/dcerpc'
autoload :SunRPC, 'msf/core/exploit/sunrpc'
autoload :MSSQL, 'msf/core/exploit/mssql'
autoload :MSSQL_COMMANDS, 'msf/core/exploit/mssql_commands'
autoload :MSSQL_SQLI, 'msf/core/exploit/mssql_sqli'
autoload :MYSQL, 'msf/core/exploit/mysql'
autoload :TNS, 'msf/core/exploit/tns'
autoload :DB2, 'msf/core/exploit/db2'
autoload :Postgres, 'msf/core/exploit/postgres'
autoload :SNMPClient, 'msf/core/exploit/snmp'
autoload :Arkeia, 'msf/core/exploit/arkeia'
autoload :NDMP, 'msf/core/exploit/ndmp'
autoload :WDBRPC, 'msf/core/exploit/wdbrpc'
autoload :WDBRPC_Client, 'msf/core/exploit/wdbrpc_client'
autoload :BrowserAutopwn, 'msf/core/exploit/browser_autopwn'
autoload :Dialup, 'msf/core/exploit/dialup'
#
# Initializes the socket array.
#

View File

@ -13,6 +13,8 @@ module Msf
###
module Exploit::CmdStagerVBS
autoload :ADODB, 'msf/core/exploit/cmdstager_vbs_adodb'
include Msf::Exploit::CmdStager
def initialize(info = {})

View File

@ -3,84 +3,56 @@
# All exploit mixins should be added to the list below
#
# Behavior
require 'msf/core/exploit/brute'
require 'msf/core/exploit/brutetargets'
require 'msf/core/exploit/browser_autopwn'
class Msf::Exploit
# Payload
require 'msf/core/exploit/egghunter'
require 'msf/core/exploit/omelet'
require 'msf/core/exploit/seh'
require 'msf/core/exploit/kernel_mode'
require 'msf/core/exploit/exe'
# Behavior
autoload :Brute, 'msf/core/exploit/brute'
autoload :BruteTargets, 'msf/core/exploit/brutetargets'
# CmdStagers
require 'msf/core/exploit/cmdstager'
require 'msf/core/exploit/cmdstager_vbs'
require 'msf/core/exploit/cmdstager_vbs_adodb'
require 'msf/core/exploit/cmdstager_debug_write'
require 'msf/core/exploit/cmdstager_debug_asm'
require 'msf/core/exploit/cmdstager_tftp'
# Payload
autoload :Egghunter, 'msf/core/exploit/egghunter'
autoload :Omelet, 'msf/core/exploit/omelet'
autoload :Seh, 'msf/core/exploit/seh'
autoload :KernelMode, 'msf/core/exploit/kernel_mode'
autoload :EXE, 'msf/core/exploit/exe'
# Protocol
require 'msf/core/exploit/tcp'
require 'msf/core/exploit/udp'
require 'msf/core/exploit/ip'
require 'msf/core/exploit/ipv6'
require 'msf/core/exploit/dhcp'
require 'msf/core/exploit/ntlm'
require 'msf/core/exploit/smb'
require 'msf/core/exploit/ftp'
require 'msf/core/exploit/tftp'
require 'msf/core/exploit/telnet'
require 'msf/core/exploit/ftpserver'
require 'msf/core/exploit/http/client'
require 'msf/core/exploit/http/server'
require 'msf/core/exploit/smtp'
require 'msf/core/exploit/dcerpc'
require 'msf/core/exploit/sunrpc'
require 'msf/core/exploit/mssql'
require 'msf/core/exploit/mssql_commands'
require 'msf/core/exploit/mssql_sqli'
require 'msf/core/exploit/mysql'
require 'msf/core/exploit/snmp'
require 'msf/core/exploit/arkeia'
require 'msf/core/exploit/ndmp'
require 'msf/core/exploit/imap'
require 'msf/core/exploit/smtp_deliver'
require 'msf/core/exploit/pop2'
require 'msf/core/exploit/tns'
require 'msf/core/exploit/db2'
require 'msf/core/exploit/postgres'
require 'msf/core/exploit/wdbrpc'
require 'msf/core/exploit/wdbrpc_client'
# CmdStagers
autoload :CmdStager, 'msf/core/exploit/cmdstager'
autoload :CmdStagerVBS, 'msf/core/exploit/cmdstager_vbs'
autoload :CmdStagerDebugWrite, 'msf/core/exploit/cmdstager_debug_write'
autoload :CmdStagerDebugAsm, 'msf/core/exploit/cmdstager_debug_asm'
autoload :CmdStagerTFTP, 'msf/core/exploit/cmdstager_tftp'
# Protocol utils
autoload :NTLM, 'msf/core/exploit/ntlm'
# Telephony
require 'msf/core/exploit/dialup'
require 'msf/core/exploit/dect_coa'
# Protocol - layer 2
autoload :DHCPServer, 'msf/core/exploit/dhcp'
autoload :TFTPServer, 'msf/core/exploit/tftp'
# Networks
require 'msf/core/exploit/lorcon'
require 'msf/core/exploit/lorcon2'
require 'msf/core/exploit/capture'
# Telephony
autoload :DECT_COA, 'msf/core/exploit/dect_coa'
# FileFormat
require 'msf/core/exploit/fileformat'
require 'msf/core/exploit/pdf_parse'
require 'msf/core/exploit/pdf'
require 'msf/core/exploit/riff'
# Networks
autoload :Lorcon, 'msf/core/exploit/lorcon'
autoload :Lorcon2, 'msf/core/exploit/lorcon2'
autoload :Capture, 'msf/core/exploit/capture'
# Oracle
require 'msf/core/exploit/oracle'
# FileFormat
autoload :FILEFORMAT, 'msf/core/exploit/fileformat'
autoload :PDF_Parse, 'msf/core/exploit/pdf_parse'
autoload :PDF, 'msf/core/exploit/pdf'
autoload :RIFF, 'msf/core/exploit/riff'
# tekniqz
require 'msf/core/exploit/fmtstr'
# Oracle
autoload :ORACLE, 'msf/core/exploit/oracle'
# Java
require 'msf/core/exploit/java'
# tekniqz
autoload :FormatString, 'msf/core/exploit/fmtstr'
# WBEM
require 'msf/core/exploit/wbemexec'
# Java
autoload :Java, 'msf/core/exploit/java'
# WBEM
autoload :WbemExec, 'msf/core/exploit/wbemexec'
end

View File

@ -1,4 +1,3 @@
require 'msf/core'
module Msf

View File

@ -105,12 +105,13 @@ class Module
true
end
require 'msf/core/module/author'
require 'msf/core/module/platform_list'
require 'msf/core/module/reference'
require 'msf/core/module/target'
require 'msf/core/module/auxiliary_action'
require 'msf/core/module/has_actions'
autoload :Author, 'msf/core/module/author'
autoload :Platform, 'msf/core/module/platform'
autoload :PlatformList, 'msf/core/module/platform_list'
autoload :Reference, 'msf/core/module/reference'
autoload :Target, 'msf/core/module/target'
autoload :HasActions, 'msf/core/module/has_actions'
autoload :AuxiliaryAction, 'msf/core/module/auxiliary_action'
#
# Creates an instance of an abstract module using the supplied information

View File

@ -1,5 +1,5 @@
require 'msf/core'
require 'metasm'
autoload :Metasm, 'metasm'
module Msf
@ -14,19 +14,19 @@ class Payload < Msf::Module
require 'rex/payloads'
require 'msf/core/payload/single'
require 'msf/core/payload/generic'
require 'msf/core/payload/stager'
autoload :Single, 'msf/core/payload/single'
autoload :Generic, 'msf/core/payload/generic'
autoload :Stager, 'msf/core/payload/stager'
# Platform specific includes
require 'msf/core/payload/aix'
require 'msf/core/payload/bsd'
require 'msf/core/payload/linux'
require 'msf/core/payload/osx'
require 'msf/core/payload/solaris'
require 'msf/core/payload/windows'
require 'msf/core/payload/netware'
require 'msf/core/payload/java'
autoload :Aix, 'msf/core/payload/aix'
autoload :Bsd, 'msf/core/payload/bsd'
autoload :Linux, 'msf/core/payload/linux'
autoload :Osx, 'msf/core/payload/osx'
autoload :Solaris, 'msf/core/payload/solaris'
autoload :Windows, 'msf/core/payload/windows'
autoload :Netware, 'msf/core/payload/netware'
autoload :Java, 'msf/core/payload/java'
##
#

View File

@ -84,15 +84,12 @@ module Session
end
# Direct descendents
require 'msf/core/session/interactive'
require 'msf/core/session/basic'
require 'msf/core/session/comm'
autoload :Interactive, 'msf/core/session/interactive'
autoload :Basic, 'msf/core/session/basic'
autoload :Comm, 'msf/core/session/comm'
# Provider interfaces
require 'msf/core/session/provider/single_command_execution'
require 'msf/core/session/provider/multi_command_execution'
require 'msf/core/session/provider/single_command_shell'
require 'msf/core/session/provider/multi_command_shell'
autoload :Provider, 'msf/core/session/provider'
def self.type
"unknown"

View File

@ -0,0 +1,10 @@
module Msf
module Session
module Provider
autoload :SingleCommandExecution, 'msf/core/session/provider/single_command_execution'
autoload :MultiCommandExecution, 'msf/core/session/provider/multi_command_execution'
autoload :SingleCommandShell, 'msf/core/session/provider/single_command_shell'
autoload :MultiCommandShell, 'msf/core/session/provider/multi_command_shell'
end
end
end

View File

@ -1,9 +1,8 @@
module Msf
module Ui
autoload :Banner, 'msf/ui/banner'
autoload :Driver, 'msf/ui/driver'
autoload :Common, 'msf/ui/common'
autoload :Console, 'msf/ui/console'
end
end
require 'msf/ui/banner'
require 'msf/ui/driver'
require 'msf/ui/common'
require 'msf/ui/console'

View File

@ -14,11 +14,11 @@ require 'msf/core'
module Msf
module Util
# Executable generation and encoding
autoload :EXE, 'msf/util/exe'
# Parse SVN entries
autoload :SVN, 'msf/util/svn'
end
end
# Executable generation and encoding
require 'msf/util/exe'
# Parse SVN entries
require 'msf/util/svn'

View File

@ -13,13 +13,15 @@
#
###
require 'rex'
autoload :Metasm, 'metasm'
require 'digest/sha1'
module Msf
module Util
class EXE
require 'metasm'
require 'digest/sha1'
##
#
# Helper functions common to multiple generators