Skip to content

Commit 9ecadb8

Browse files
committed
Extract SMB and PostgreSQL optional sessions into their own mixins
1 parent 056ed77 commit 9ecadb8

17 files changed

+75
-46
lines changed

lib/msf/core/optional_session.rb

+3-32
Original file line numberDiff line numberDiff line change
@@ -4,37 +4,8 @@
44

55
# A mixin used for providing Modules with post-exploitation options and helper methods
66
#
7-
module Msf::OptionalSession
8-
include Msf::SessionCompatibility
9-
10-
def initialize(info = {})
11-
super
12-
if framework.features.enabled?(Msf::FeatureManager::SMB_SESSION_TYPE)
13-
register_options(
14-
[
15-
Msf::OptInt.new('SESSION', [ false, 'The session to run this module on' ]),
16-
Msf::Opt::RHOST(nil, false),
17-
Msf::Opt::RPORT(nil, false)
18-
]
19-
)
20-
end
21-
22-
if framework.features.enabled?(Msf::FeatureManager::POSTGRESQL_SESSION_TYPE)
23-
register_options(
24-
[
25-
Msf::OptInt.new('SESSION', [ false, 'The session to run this module on' ]),
26-
Msf::OptString.new('DATABASE', [ false, 'The database to authenticate against', 'postgres']),
27-
Msf::OptString.new('USERNAME', [ false, 'The username to authenticate as', 'postgres']),
28-
Msf::Opt::RHOST(nil, false),
29-
Msf::Opt::RPORT(nil, false)
30-
]
31-
)
32-
end
33-
end
34-
35-
def session
36-
return nil unless (framework.features.enabled?(Msf::FeatureManager::SMB_SESSION_TYPE) || framework.features.enabled?(Msf::FeatureManager::POSTGRESQL_SESSION_TYPE))
37-
38-
super
7+
module Msf
8+
module OptionalSession
9+
include Msf::SessionCompatibility
3910
end
4011
end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# frozen_string_literal: true
2+
3+
module Msf
4+
module OptionalSession
5+
module PostgreSQL
6+
include Msf::OptionalSession
7+
8+
def initialize(info = {})
9+
super
10+
if framework.features.enabled?(Msf::FeatureManager::POSTGRESQL_SESSION_TYPE)
11+
register_options(
12+
[
13+
Msf::OptInt.new('SESSION', [ false, 'The session to run this module on' ]),
14+
Msf::OptString.new('DATABASE', [ false, 'The database to authenticate against', 'postgres']),
15+
Msf::OptString.new('USERNAME', [ false, 'The username to authenticate as', 'postgres']),
16+
Msf::Opt::RHOST(nil, false),
17+
Msf::Opt::RPORT(nil, false)
18+
]
19+
)
20+
end
21+
end
22+
23+
def session
24+
return nil unless framework.features.enabled?(Msf::FeatureManager::POSTGRESQL_SESSION_TYPE)
25+
26+
super
27+
end
28+
end
29+
end
30+
end

lib/msf/core/optional_session/smb.rb

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# frozen_string_literal: true
2+
3+
module Msf
4+
module OptionalSession
5+
module SMB
6+
include Msf::OptionalSession
7+
8+
def initialize(info = {})
9+
super
10+
if framework.features.enabled?(Msf::FeatureManager::SMB_SESSION_TYPE)
11+
register_options(
12+
[
13+
Msf::OptInt.new('SESSION', [ false, 'The session to run this module on' ]),
14+
Msf::Opt::RHOST(nil, false),
15+
Msf::Opt::RPORT(nil, false)
16+
]
17+
)
18+
end
19+
end
20+
21+
def session
22+
return nil unless framework.features.enabled?(Msf::FeatureManager::SMB_SESSION_TYPE)
23+
24+
super
25+
end
26+
end
27+
end
28+
end

modules/auxiliary/admin/smb/delete_file.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class MetasploitModule < Msf::Auxiliary
1111
include Msf::Exploit::Remote::SMB::Client::RemotePaths
1212
include Msf::Auxiliary::Report
1313
include Msf::Auxiliary::Scanner
14-
include Msf::OptionalSession
14+
include Msf::OptionalSession::SMB
1515

1616
# Aliases for common classes
1717
SIMPLE = Rex::Proto::SMB::SimpleClient

modules/auxiliary/admin/smb/download_file.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class MetasploitModule < Msf::Auxiliary
1111
include Msf::Exploit::Remote::SMB::Client::RemotePaths
1212
include Msf::Auxiliary::Report
1313
include Msf::Auxiliary::Scanner
14-
include Msf::OptionalSession
14+
include Msf::OptionalSession::SMB
1515

1616
def initialize
1717
super(

modules/auxiliary/admin/smb/psexec_ntdsgrab.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class MetasploitModule < Msf::Auxiliary
88
# Exploit mixins should be called first
99
include Msf::Exploit::Remote::SMB::Client::Psexec
1010
include Msf::Auxiliary::Report
11-
include Msf::OptionalSession
11+
include Msf::OptionalSession::SMB
1212

1313
# Aliases for common classes
1414
SIMPLE = Rex::Proto::SMB::SimpleClient

modules/auxiliary/admin/smb/upload_file.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class MetasploitModule < Msf::Auxiliary
1212
include Msf::Exploit::Remote::SMB::Client::RemotePaths
1313
include Msf::Auxiliary::Report
1414
include Msf::Auxiliary::Scanner
15-
include Msf::OptionalSession
15+
include Msf::OptionalSession::SMB
1616

1717
def initialize
1818
super(

modules/auxiliary/gather/windows_secrets_dump.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class MetasploitModule < Msf::Auxiliary
1111
include Msf::Auxiliary::Report
1212
include Msf::Util::WindowsRegistry
1313
include Msf::Util::WindowsCryptoHelpers
14-
include Msf::OptionalSession
14+
include Msf::OptionalSession::SMB
1515

1616
# Mapping of MS-SAMR encryption keys to IANA Kerberos Parameter values
1717
#

modules/auxiliary/scanner/postgres/postgres_schemadump.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ class MetasploitModule < Msf::Auxiliary
77
include Msf::Exploit::Remote::Postgres
88
include Msf::Auxiliary::Report
99
include Msf::Auxiliary::Scanner
10-
include Msf::OptionalSession
10+
include Msf::OptionalSession::PostgreSQL
1111

1212
def initialize
1313
super(

modules/auxiliary/scanner/smb/pipe_auditor.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class MetasploitModule < Msf::Auxiliary
1414
include Msf::Auxiliary::Scanner
1515
include Msf::Auxiliary::Report
1616

17-
include Msf::OptionalSession
17+
include Msf::OptionalSession::SMB
1818

1919
def initialize
2020
super(

modules/auxiliary/scanner/smb/pipe_dcerpc_auditor.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class MetasploitModule < Msf::Auxiliary
1414
include Msf::Auxiliary::Scanner
1515
include Msf::Auxiliary::Report
1616

17-
include Msf::OptionalSession
17+
include Msf::OptionalSession::SMB
1818

1919
def initialize
2020
super(

modules/auxiliary/scanner/smb/smb_enum_gpp.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ class MetasploitModule < Msf::Auxiliary
88
include Msf::Exploit::Remote::SMB::Client::Authenticated
99
include Msf::Auxiliary::Scanner
1010
include Msf::Auxiliary::Report
11-
include Msf::OptionalSession
11+
include Msf::OptionalSession::SMB
1212

1313
# Aliases for common classes
1414
SIMPLE = Rex::Proto::SMB::Client

modules/auxiliary/scanner/smb/smb_enumshares.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class MetasploitModule < Msf::Auxiliary
1414
include Msf::Auxiliary::Report
1515
include Msf::Auxiliary::Scanner
1616

17-
include Msf::OptionalSession
17+
include Msf::OptionalSession::SMB
1818

1919
def initialize(info = {})
2020
super(

modules/auxiliary/scanner/smb/smb_enumusers.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class MetasploitModule < Msf::Auxiliary
1515
include Msf::Auxiliary::Report
1616
include Msf::Auxiliary::Scanner
1717

18-
include Msf::OptionalSession
18+
include Msf::OptionalSession::SMB
1919

2020
def initialize
2121
super(

modules/auxiliary/scanner/smb/smb_enumusers_domain.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class MetasploitModule < Msf::Auxiliary
1414
include Msf::Auxiliary::Scanner
1515
include Msf::Auxiliary::Report
1616

17-
include Msf::OptionalSession
17+
include Msf::OptionalSession::SMB
1818

1919
def initialize
2020
super(

modules/auxiliary/scanner/smb/smb_lookupsid.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class MetasploitModule < Msf::Auxiliary
1515
include Msf::Auxiliary::Report
1616
include Msf::Auxiliary::Scanner
1717

18-
include Msf::OptionalSession
18+
include Msf::OptionalSession::SMB
1919

2020
def initialize
2121
super(

modules/exploits/windows/smb/psexec.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class MetasploitModule < Msf::Exploit::Remote
2121
include Msf::Exploit::EXE
2222
include Msf::Exploit::WbemExec
2323
include Msf::Auxiliary::Report
24-
include Msf::OptionalSession
24+
include Msf::OptionalSession::SMB
2525

2626
def initialize(info = {})
2727
super(update_info(info,

0 commit comments

Comments
 (0)