metasploit-payloads 2.0.60 → 2.0.64

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 (44) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/data/android/meterpreter.jar +0 -0
  4. data/data/android/metstage.jar +0 -0
  5. data/data/android/shell.jar +0 -0
  6. data/data/meterpreter/elevator.x64.dll +0 -0
  7. data/data/meterpreter/elevator.x86.dll +0 -0
  8. data/data/meterpreter/ext_server_espia.x64.dll +0 -0
  9. data/data/meterpreter/ext_server_espia.x86.dll +0 -0
  10. data/data/meterpreter/ext_server_extapi.x64.dll +0 -0
  11. data/data/meterpreter/ext_server_extapi.x86.dll +0 -0
  12. data/data/meterpreter/ext_server_incognito.x64.dll +0 -0
  13. data/data/meterpreter/ext_server_incognito.x86.dll +0 -0
  14. data/data/meterpreter/ext_server_kiwi.x64.dll +0 -0
  15. data/data/meterpreter/ext_server_kiwi.x86.dll +0 -0
  16. data/data/meterpreter/ext_server_lanattacks.x64.dll +0 -0
  17. data/data/meterpreter/ext_server_lanattacks.x86.dll +0 -0
  18. data/data/meterpreter/ext_server_peinjector.x64.dll +0 -0
  19. data/data/meterpreter/ext_server_peinjector.x86.dll +0 -0
  20. data/data/meterpreter/ext_server_powershell.x64.dll +0 -0
  21. data/data/meterpreter/ext_server_powershell.x86.dll +0 -0
  22. data/data/meterpreter/ext_server_priv.x64.dll +0 -0
  23. data/data/meterpreter/ext_server_priv.x86.dll +0 -0
  24. data/data/meterpreter/ext_server_python.x64.dll +0 -0
  25. data/data/meterpreter/ext_server_python.x86.dll +0 -0
  26. data/data/meterpreter/ext_server_sniffer.x64.dll +0 -0
  27. data/data/meterpreter/ext_server_sniffer.x86.dll +0 -0
  28. data/data/meterpreter/ext_server_stdapi.php +12 -6
  29. data/data/meterpreter/ext_server_stdapi.py +7 -2
  30. data/data/meterpreter/ext_server_stdapi.x64.dll +0 -0
  31. data/data/meterpreter/ext_server_stdapi.x86.dll +0 -0
  32. data/data/meterpreter/ext_server_unhook.x64.dll +0 -0
  33. data/data/meterpreter/ext_server_unhook.x86.dll +0 -0
  34. data/data/meterpreter/ext_server_winpmem.x64.dll +0 -0
  35. data/data/meterpreter/ext_server_winpmem.x86.dll +0 -0
  36. data/data/meterpreter/meterpreter.py +17 -9
  37. data/data/meterpreter/metsrv.x64.dll +0 -0
  38. data/data/meterpreter/metsrv.x86.dll +0 -0
  39. data/data/meterpreter/screenshot.x64.dll +0 -0
  40. data/data/meterpreter/screenshot.x86.dll +0 -0
  41. data/lib/metasploit-payloads/version.rb +1 -1
  42. data.tar.gz.sig +0 -0
  43. metadata +2 -2
  44. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: faaa7cd5f3fc34a0558e8e4a2d3a3891971173110871362aeec9541dc09364fb
4
- data.tar.gz: 4f590294cd1f8aa71f6e83609882711b1e9accb0cd3bb0190a0991e221435b00
3
+ metadata.gz: 2f272266198457eb06192d32b735b1c22c32f6a722df20db02bd585e0f996a6b
4
+ data.tar.gz: e18a08cb3266b3dc44c769c0e8554887b6b1303eda27fee7c57bcac82d3c4cbc
5
5
  SHA512:
6
- metadata.gz: 8c38ff1bed4972f8196fd7e3146ca59caffd7237d285c7273ab1ba045465250f0cf3dc04ccfde69257f0d2b6b40a0f723abab6323a93763153a29c725089bc6e
7
- data.tar.gz: 2d388e3525a6110d12d5bc6cb791ee6a663c018836200485824d88b5cf21f0a4f39456c1483ae32b038e283cb39cd3348d6aa9103e8422812a0942c95277e9b6
6
+ metadata.gz: 867b63c6e25a79327f30e176c608c552b8e67135ed5c39a4d75145323f7d91653db857f4859431aa3f34e49190b6c7d7af89a827f36a2e68c42f6a8e14348704
7
+ data.tar.gz: 7cc1991f554d5b24c5859c28efef171e4bfe17a318d7e2aea670c581c59e1a48c3edba1cf172e35ed3aee97b394040a3b91a3e4189e90a4591792be3d390d795
checksums.yaml.gz.sig CHANGED
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -461,7 +461,8 @@ function resolve_host($hostname, $family) {
461
461
  } elseif ($family == AF_INET6) {
462
462
  $dns_family = DNS_AAAA;
463
463
  } else {
464
- throw new Exception('invalid family, must be AF_INET or AF_INET6');
464
+ my_print('invalid family, must be AF_INET or AF_INET6');
465
+ return NULL;
465
466
  }
466
467
 
467
468
  $dns = dns_get_record($hostname, $dns_family);
@@ -1224,15 +1225,18 @@ if (!function_exists('stdapi_net_resolve_host')) {
1224
1225
  register_command('stdapi_net_resolve_host', COMMAND_ID_STDAPI_NET_RESOLVE_HOST);
1225
1226
  function stdapi_net_resolve_host($req, &$pkt) {
1226
1227
  my_print("doing stdapi_net_resolve_host");
1227
- $hostname = packet_get_tlv($req, TLV_TYPE_HOST_NAME)['value'];
1228
- $family = packet_get_tlv($req, TLV_TYPE_ADDR_TYPE)['value'];
1228
+ $hostname_tlv = packet_get_tlv($req, TLV_TYPE_HOST_NAME);
1229
+ $hostname = $hostname['value'];
1230
+ $family_tlv = packet_get_tlv($req, TLV_TYPE_ADDR_TYPE);
1231
+ $family = $family['value'];
1229
1232
 
1230
1233
  if ($family == WIN_AF_INET) {
1231
1234
  $family = AF_INET;
1232
1235
  } elseif ($family == WIN_AF_INET6) {
1233
1236
  $family = AF_INET6;
1234
1237
  } else {
1235
- throw new Exception('invalid family');
1238
+ my_print('invalid family, must be AF_INET or AF_INET6');
1239
+ return ERROR_FAILURE;
1236
1240
  }
1237
1241
 
1238
1242
  $ret = ERROR_FAILURE;
@@ -1250,14 +1254,16 @@ if (!function_exists('stdapi_net_resolve_hosts')) {
1250
1254
  register_command('stdapi_net_resolve_hosts', COMMAND_ID_STDAPI_NET_RESOLVE_HOSTS);
1251
1255
  function stdapi_net_resolve_hosts($req, &$pkt) {
1252
1256
  my_print("doing stdapi_net_resolve_hosts");
1253
- $family = packet_get_tlv($req, TLV_TYPE_ADDR_TYPE)['value'];
1257
+ $family_tlv = packet_get_tlv($req, TLV_TYPE_ADDR_TYPE);
1258
+ $family = $family_tlv['value'];
1254
1259
 
1255
1260
  if ($family == WIN_AF_INET) {
1256
1261
  $family = AF_INET;
1257
1262
  } elseif ($family == WIN_AF_INET6) {
1258
1263
  $family = AF_INET6;
1259
1264
  } else {
1260
- throw new Exception('invalid family');
1265
+ my_print('invalid family, must be AF_INET or AF_INET6');
1266
+ return ERROR_FAILURE;
1261
1267
  }
1262
1268
 
1263
1269
  $hostname_tlvs = packet_get_all_tlvs($req, TLV_TYPE_HOST_NAME);
@@ -662,6 +662,7 @@ PROCESS_EXECUTE_FLAG_CHANNELIZED = (1 << 1)
662
662
  PROCESS_EXECUTE_FLAG_SUSPENDED = (1 << 2)
663
663
  PROCESS_EXECUTE_FLAG_USE_THREAD_TOKEN = (1 << 3)
664
664
  PROCESS_EXECUTE_FLAG_SUBSHELL = (1 << 6)
665
+ PROCESS_EXECUTE_FLAG_PTY = (1 << 7)
665
666
 
666
667
  PROCESS_ARCH_UNKNOWN = 0
667
668
  PROCESS_ARCH_X86 = 1
@@ -1146,6 +1147,8 @@ def stdapi_sys_process_close(request, response):
1146
1147
  proc_h_id = proc_h_id['value']
1147
1148
  if proc_h_id in meterpreter.processes:
1148
1149
  del meterpreter.processes[proc_h_id]
1150
+ if not meterpreter.close_channel(proc_h_id):
1151
+ return ERROR_FAILURE, response
1149
1152
  return ERROR_SUCCESS, response
1150
1153
 
1151
1154
  @register_function
@@ -1160,13 +1163,15 @@ def stdapi_sys_process_execute(request, response):
1160
1163
  if len(cmd) == 0:
1161
1164
  return ERROR_FAILURE, response
1162
1165
  if os.path.isfile('/bin/sh') and (flags & PROCESS_EXECUTE_FLAG_SUBSHELL):
1163
- args = ['/bin/sh', '-c', cmd, raw_args]
1166
+ if raw_args:
1167
+ cmd = cmd + ' ' + raw_args
1168
+ args = ['/bin/sh', '-c', cmd]
1164
1169
  else:
1165
1170
  args = [cmd]
1166
1171
  args.extend(shlex.split(raw_args))
1167
1172
 
1168
1173
  if (flags & PROCESS_EXECUTE_FLAG_CHANNELIZED):
1169
- if has_pty:
1174
+ if has_pty and (flags & PROCESS_EXECUTE_FLAG_PTY):
1170
1175
  master, slave = pty.openpty()
1171
1176
  if has_termios:
1172
1177
  try:
@@ -1242,6 +1242,21 @@ class PythonMeterpreter(object):
1242
1242
  self.next_process_id += 1
1243
1243
  return idx
1244
1244
 
1245
+ def close_channel(self, channel_id):
1246
+ if channel_id not in self.channels:
1247
+ return False
1248
+ channel = self.channels[channel_id]
1249
+ try:
1250
+ channel.close()
1251
+ except Exception:
1252
+ debug_traceback('[-] failed to close channel id: ' + str(channel_id))
1253
+ return False
1254
+ del self.channels[channel_id]
1255
+ if channel_id in self.interact_channels:
1256
+ self.interact_channels.remove(channel_id)
1257
+ debug_print('[*] closed and removed channel id: ' + str(channel_id))
1258
+ return True
1259
+
1245
1260
  def get_packet(self):
1246
1261
  pkt = self.transport.get_packet()
1247
1262
  if pkt is None and self.transport.should_retire:
@@ -1570,16 +1585,9 @@ class PythonMeterpreter(object):
1570
1585
 
1571
1586
  def _core_channel_close(self, request, response):
1572
1587
  channel_id = packet_get_tlv(request, TLV_TYPE_CHANNEL_ID)['value']
1573
- if channel_id not in self.channels:
1588
+ if not self.close_channel(channel_id):
1574
1589
  return ERROR_FAILURE, response
1575
- channel = self.channels[channel_id]
1576
- status, response = channel.core_close(request, response)
1577
- if status == ERROR_SUCCESS:
1578
- del self.channels[channel_id]
1579
- if channel_id in self.interact_channels:
1580
- self.interact_channels.remove(channel_id)
1581
- debug_print('[*] closed and removed channel id: ' + str(channel_id))
1582
- return status, response
1590
+ return ERROR_SUCCESS, response
1583
1591
 
1584
1592
  def _core_channel_eof(self, request, response):
1585
1593
  channel_id = packet_get_tlv(request, TLV_TYPE_CHANNEL_ID)['value']
Binary file
Binary file
Binary file
Binary file
@@ -1,6 +1,6 @@
1
1
  # -*- coding:binary -*-
2
2
  module MetasploitPayloads
3
- VERSION = '2.0.60'
3
+ VERSION = '2.0.64'
4
4
 
5
5
  def self.version
6
6
  VERSION
data.tar.gz.sig CHANGED
Binary file
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.60
4
+ version: 2.0.64
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-10-28 00:00:00.000000000 Z
99
+ date: 2021-12-08 00:00:00.000000000 Z
100
100
  dependencies:
101
101
  - !ruby/object:Gem::Dependency
102
102
  name: rake
metadata.gz.sig CHANGED
Binary file