metasploit-payloads 2.0.46 → 2.0.47

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d5088507d65055ba426114fa7f93bd703a713aef23c94114579d07e722419d1a
4
- data.tar.gz: a3c6903a5d26200213490b7769d2720be074137dbd86653606ec80673ee5d708
3
+ metadata.gz: 563ad798c2cdbc68e144dbb312d1d3831b6993fb4cc8a88e95fdabe4c33d93e0
4
+ data.tar.gz: 91db92d06af935bb7af3eff1caead492630396c22e05381525176b3de5c72283
5
5
  SHA512:
6
- metadata.gz: 54680e1c14bbf341caf4a20bcb869a51f8350d74c3afc6ccad052cbc2b374a211984e95380cdf7f5858f4e57b8c56158d28bae15a2ba97509703a6baf400fe4c
7
- data.tar.gz: e5ec456040eab4f62c584ab6574c7bc3fe5d4f62901df777bc7bd39a1c6f789d33005ec3296fca8a82676a1cfe9a4c66d7ebb4a5ae54a1023eb30012c78bf59c
6
+ metadata.gz: 2dc4b62ffefb079c51955cb5ddd203eed4d2a8eb90d0f63b292be5b2262e841acdc9bdc956cf9b5f689ec10fa9d8eeca205efe2da91ed7fddae6e100d101bc1f
7
+ data.tar.gz: 903b4e3a4e753aff9b25d7a0be43a1de802ebd4d64fea2ec2731b9ed63b0a040a4a28db99aba7c9b2ff63fe6f0d6850de585590644873ea7baf8ad58d9719353
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -69,30 +69,24 @@ module MetasploitPayloads
69
69
  end
70
70
 
71
71
  #
72
- # List all the available extensions for the given suffix.
72
+ # List all the available extensions, optionally filtered by the given suffix.
73
73
  #
74
- def self.list_meterpreter_extensions(binary_suffix)
75
- extensions = []
76
-
77
- root_dirs = [local_meterpreter_dir]
78
-
79
- # Find the valid extensions in the data folder first, if MSF
80
- # is installed.
81
- if metasploit_installed?
82
- root_dirs.unshift(msf_meterpreter_dir)
83
- root_dirs.unshift(user_meterpreter_dir)
84
- end
85
-
86
- root_dirs.each do |dir|
87
- next unless ::File.directory?(dir)
88
-
89
- # Merge in any that don't already exist in the collection.
90
- meterpreter_enum_ext(dir, binary_suffix).each do |e|
91
- extensions.push(e) unless extensions.include?(e)
92
- end
93
- end
74
+ # @param [String] binary_suffix An optional suffix to use for filtering results. If omitted, all extensions will be
75
+ # returned.
76
+ # @return [Array<String>] Returns an array of extensions.
77
+ def self.list_meterpreter_extensions(binary_suffix=nil)
78
+ list_meterpreter_dirs { |dir| meterpreter_enum_ext(dir, binary_suffix) }
79
+ end
94
80
 
95
- extensions
81
+ #
82
+ # List all the available suffixes, optionally filtered by the given extension name. This is mostly useful for
83
+ # determining support for a specific extension.
84
+ #
85
+ # @param [String] extension_name An optional extension name to use for filtering results. If omitted, all suffixes
86
+ # will be returned.
87
+ # @return [Array<String>] Returns an array of binary suffixes.
88
+ def self.list_meterpreter_extension_suffixes(extension_name=nil)
89
+ list_meterpreter_dirs { |dir| meterpreter_enum_ext_suffixes(dir, extension_name) }
96
90
  end
97
91
 
98
92
  #
@@ -124,19 +118,43 @@ module MetasploitPayloads
124
118
  end
125
119
 
126
120
  #
127
- # Enumerate extensions in the given root folder based on the suffix.
121
+ # Enumerate extensions in the given root folder based on an optional suffix.
128
122
  #
129
- def self.meterpreter_enum_ext(root_dir, binary_suffix)
123
+ # @param [String] root_dir The path to the directory from which to enumerate extensions.
124
+ # @param [String] binary_suffix An optional suffix to use for filtering results. If omitted, all extensions will be
125
+ # returned.
126
+ # @return [Array<String>] Returns an array of extensions.
127
+ def self.meterpreter_enum_ext(root_dir, binary_suffix=nil)
130
128
  exts = []
129
+ binary_suffix ||= '.*'
131
130
  ::Dir.entries(root_dir).each do |f|
132
131
  if ::File.readable?(::File.join(root_dir, f)) && \
133
- f =~ /#{EXTENSION_PREFIX}(.*)\.#{binary_suffix}/
132
+ f =~ /#{EXTENSION_PREFIX}(\w+)\.#{binary_suffix}/
134
133
  exts.push($1)
135
134
  end
136
135
  end
137
136
  exts
138
137
  end
139
138
 
139
+ #
140
+ # Enumerate binary suffixes in the given root folder based on an optional extension name.
141
+ #
142
+ # @param [String] root_dir The path to the directory from which to enumerate extension suffixes.
143
+ # @param [String] extension_name An optional extension name to use for filtering results. If omitted, all suffixes will
144
+ # be returned.
145
+ # @return [Array<String>] Returns an array of binary suffixes.
146
+ def self.meterpreter_enum_ext_suffixes(root_dir, extension_name=nil)
147
+ suffixes = []
148
+ extension_name ||= '\w+'
149
+ ::Dir.entries(root_dir).each do |f|
150
+ if ::File.readable?(::File.join(root_dir, f)) && \
151
+ f =~ /#{EXTENSION_PREFIX}#{extension_name}\.(\w+(\.\w+)*)/
152
+ suffixes.push($1)
153
+ end
154
+ end
155
+ suffixes
156
+ end
157
+
140
158
  private
141
159
 
142
160
  #
@@ -164,4 +182,30 @@ module MetasploitPayloads
164
182
  @local_paths << path
165
183
  end
166
184
  end
185
+
186
+ class << self
187
+ private
188
+ def list_meterpreter_dirs(&block)
189
+ things = [] # *things* is whatever is being enumerated (extension names, suffixes, etc.) as determined by the block
190
+ root_dirs = [local_meterpreter_dir]
191
+
192
+ # Find the valid extensions in the data folder first, if MSF
193
+ # is installed.
194
+ if metasploit_installed?
195
+ root_dirs.unshift(msf_meterpreter_dir)
196
+ root_dirs.unshift(user_meterpreter_dir)
197
+ end
198
+
199
+ root_dirs.each do |dir|
200
+ next unless ::File.directory?(dir)
201
+
202
+ # Merge in any that don't already exist in the collection.
203
+ (yield dir).each do |e|
204
+ things.push(e) unless things.include?(e)
205
+ end
206
+ end
207
+
208
+ things
209
+ end
210
+ end
167
211
  end
@@ -1,6 +1,6 @@
1
1
  # -*- coding:binary -*-
2
2
  module MetasploitPayloads
3
- VERSION = '2.0.46'
3
+ VERSION = '2.0.47'
4
4
 
5
5
  def self.version
6
6
  VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit-payloads
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.46
4
+ version: 2.0.47
5
5
  platform: ruby
6
6
  authors:
7
7
  - OJ Reeves
@@ -96,7 +96,7 @@ cert_chain:
96
96
  EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
97
97
  9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
98
98
  -----END CERTIFICATE-----
99
- date: 2021-05-10 00:00:00.000000000 Z
99
+ date: 2021-06-09 00:00:00.000000000 Z
100
100
  dependencies:
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: rake
metadata.gz.sig CHANGED
@@ -1 +1 @@
1
- Zn��li���x���VG�@�xc&hR��CaB<:+�q�̃Ò�ї�y
1
+ %ǀ����$�M$���v_���5/�~3x�П�����:VQt� F&������ z���,e.� ?��~�{um;���XD�-���u�f�C�J2 �P�D �N�`�ݬ�JG��+.;ˣ<��K̶� /ۂ�K7A��֐������j�� CE8]$0�����z*�m