metasploit-payloads 2.0.45 → 2.0.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/data/android/meterpreter.dex +0 -0
  5. data/data/android/meterpreter.jar +0 -0
  6. data/data/android/metstage.jar +0 -0
  7. data/data/android/shell.jar +0 -0
  8. data/data/meterpreter/elevator.x64.dll +0 -0
  9. data/data/meterpreter/elevator.x86.dll +0 -0
  10. data/data/meterpreter/ext_server_espia.x64.dll +0 -0
  11. data/data/meterpreter/ext_server_espia.x86.dll +0 -0
  12. data/data/meterpreter/ext_server_extapi.x64.dll +0 -0
  13. data/data/meterpreter/ext_server_extapi.x86.dll +0 -0
  14. data/data/meterpreter/ext_server_incognito.x64.dll +0 -0
  15. data/data/meterpreter/ext_server_incognito.x86.dll +0 -0
  16. data/data/meterpreter/ext_server_kiwi.x64.dll +0 -0
  17. data/data/meterpreter/ext_server_kiwi.x86.dll +0 -0
  18. data/data/meterpreter/ext_server_lanattacks.x64.dll +0 -0
  19. data/data/meterpreter/ext_server_lanattacks.x86.dll +0 -0
  20. data/data/meterpreter/ext_server_peinjector.x64.dll +0 -0
  21. data/data/meterpreter/ext_server_peinjector.x86.dll +0 -0
  22. data/data/meterpreter/ext_server_powershell.x64.dll +0 -0
  23. data/data/meterpreter/ext_server_powershell.x86.dll +0 -0
  24. data/data/meterpreter/ext_server_priv.x64.dll +0 -0
  25. data/data/meterpreter/ext_server_priv.x86.dll +0 -0
  26. data/data/meterpreter/ext_server_python.x64.dll +0 -0
  27. data/data/meterpreter/ext_server_python.x86.dll +0 -0
  28. data/data/meterpreter/ext_server_sniffer.x64.dll +0 -0
  29. data/data/meterpreter/ext_server_sniffer.x86.dll +0 -0
  30. data/data/meterpreter/ext_server_stdapi.py +5 -3
  31. data/data/meterpreter/ext_server_stdapi.x64.dll +0 -0
  32. data/data/meterpreter/ext_server_stdapi.x86.dll +0 -0
  33. data/data/meterpreter/ext_server_unhook.x64.dll +0 -0
  34. data/data/meterpreter/ext_server_unhook.x86.dll +0 -0
  35. data/data/meterpreter/ext_server_winpmem.x64.dll +0 -0
  36. data/data/meterpreter/ext_server_winpmem.x86.dll +0 -0
  37. data/data/meterpreter/meterpreter.jar +0 -0
  38. data/data/meterpreter/metsrv.x64.dll +0 -0
  39. data/data/meterpreter/metsrv.x86.dll +0 -0
  40. data/data/meterpreter/screenshot.x64.dll +0 -0
  41. data/data/meterpreter/screenshot.x86.dll +0 -0
  42. data/lib/metasploit-payloads.rb +69 -25
  43. data/lib/metasploit-payloads/version.rb +1 -1
  44. metadata +2 -2
  45. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d86e8998efad013b305f344b5b0b4a4f4d5a0311cb84d2f26dd67eb1e4e18b42
4
- data.tar.gz: f71837005ae5a093cbaf9fa5baccddd0b739bf1b3bb909facf9b268bd6810bf9
3
+ metadata.gz: 310f0933ca0bacbd6aa05e311982746b0ab67f0d124669fd14dc02f4a6a11f15
4
+ data.tar.gz: be3df4ac77d9de64faae0b0cc38f6f2229164d9f56305e2329f15b87b551e9e6
5
5
  SHA512:
6
- metadata.gz: 2964ff2f4022283f8997eaeedacaa8a0058072c17d0142953c7b4a03fe76b86a655311db524ffae2b68d42cdb1f55ef9fd3b9ea9b1edeac7da49ed55bf398345
7
- data.tar.gz: 3513cc88c84ee1aa52210b714859737d941f0341564ae85b90b5d3c52db6e18304fa077d982f8e0a9e6071412289153350f1e63990df72778746debb08d88135
6
+ metadata.gz: ab7dbf2146d40382acdc6ac1fda6aefd03d704f5ddc8a91dd7806942b2896a5796b57b9045251878ba25046b1d2cc8a5896d76f84b87e230b24f183b12822378
7
+ data.tar.gz: 16480cba21adaeb5d69ec237fdcd84df0da9b7491ce5d57946022aaeba9ddabda39fbb67c5a9b9dd6b36174ecf6dd16933e23d50079a1709189765b2097459b6
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -649,6 +649,7 @@ PROCESS_EXECUTE_FLAG_HIDDEN = (1 << 0)
649
649
  PROCESS_EXECUTE_FLAG_CHANNELIZED = (1 << 1)
650
650
  PROCESS_EXECUTE_FLAG_SUSPENDED = (1 << 2)
651
651
  PROCESS_EXECUTE_FLAG_USE_THREAD_TOKEN = (1 << 3)
652
+ PROCESS_EXECUTE_FLAG_SUBSHELL = (1 << 6)
652
653
 
653
654
  PROCESS_ARCH_UNKNOWN = 0
654
655
  PROCESS_ARCH_X86 = 1
@@ -1146,11 +1147,12 @@ def stdapi_sys_process_execute(request, response):
1146
1147
  flags = packet_get_tlv(request, TLV_TYPE_PROCESS_FLAGS)['value']
1147
1148
  if len(cmd) == 0:
1148
1149
  return ERROR_FAILURE, response
1149
- if os.path.isfile('/bin/sh'):
1150
- args = ['/bin/sh', '-c', cmd + ' ' + raw_args]
1150
+ if os.path.isfile('/bin/sh') and (flags & PROCESS_EXECUTE_FLAG_SUBSHELL):
1151
+ args = ['/bin/sh', '-c', cmd, raw_args]
1151
1152
  else:
1152
1153
  args = [cmd]
1153
1154
  args.extend(shlex.split(raw_args))
1155
+
1154
1156
  if (flags & PROCESS_EXECUTE_FLAG_CHANNELIZED):
1155
1157
  if has_pty:
1156
1158
  master, slave = pty.openpty()
@@ -1161,7 +1163,7 @@ def stdapi_sys_process_execute(request, response):
1161
1163
  termios.tcsetattr(master, termios.TCSADRAIN, settings)
1162
1164
  except:
1163
1165
  pass
1164
- proc_h = STDProcess(args, stdin=slave, stdout=slave, stderr=slave, bufsize=0)
1166
+ proc_h = STDProcess(args, stdin=slave, stdout=slave, stderr=slave, bufsize=0, preexec_fn=os.setsid)
1165
1167
  proc_h.stdin = os.fdopen(master, 'wb')
1166
1168
  proc_h.stdout = os.fdopen(master, 'rb')
1167
1169
  proc_h.stderr = open(os.devnull, 'rb')
Binary file
Binary file
Binary file
Binary file
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.45'
3
+ VERSION = '2.0.49'
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.45
4
+ version: 2.0.49
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-04-30 00:00:00.000000000 Z
99
+ date: 2021-07-30 00:00:00.000000000 Z
100
100
  dependencies:
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: rake
metadata.gz.sig CHANGED
Binary file