metasploit-payloads 2.0.61 → 2.0.65

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 +5 -1
  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 +26 -15
  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: 4188f80b9a7c91f79f4085ca10626ec6b13ab0b3b7e65c4573791e4a66382d27
4
- data.tar.gz: 7ad4dd897102be313e08336e50cfd74396c52f8c2e3b925ab7aa3da2b7664929
3
+ metadata.gz: 333e40cc4f8a571ffaad017a2706cbb0369506af905b45f4811ae012de27ac8f
4
+ data.tar.gz: ae8ac99011be5a55216d6a19d435d1f583ea16c6667b176416ec485ab97cebbe
5
5
  SHA512:
6
- metadata.gz: a946d5504af1f234e03442151f52293cbd497788dcfbc26486c2ba2f107701cf122f80e9f075485c1426119b4f6d567de36bdf540d300f6f049bd9d27af67f4a
7
- data.tar.gz: 41424d3e1c558e3b8c8036c226074e89185f3c45864db86dac4e98e1aa9d0bc13a0222830221823878f0759e0e7d3899f7aa11860568ae172a4da49e6378517d
6
+ metadata.gz: 46be295e38c171bc356a58ee0b0571f098d7f1fc6f162e5b24ede9a1e7f352e8979bf600944ae22e1adce8bec0c401ff368c287abcc973a418ac260e8ed3a25b
7
+ data.tar.gz: 84439b6514febed72052f2a3bb2d3833c06e8a05b23349bb2ab286a94f2c26e9aa62b3deb537b8d653b2b52604ce6c27450fa19cb84ed36d19eee8d91d2d47ec
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);
@@ -1147,6 +1147,8 @@ def stdapi_sys_process_close(request, response):
1147
1147
  proc_h_id = proc_h_id['value']
1148
1148
  if proc_h_id in meterpreter.processes:
1149
1149
  del meterpreter.processes[proc_h_id]
1150
+ if not meterpreter.close_channel(proc_h_id):
1151
+ return ERROR_FAILURE, response
1150
1152
  return ERROR_SUCCESS, response
1151
1153
 
1152
1154
  @register_function
@@ -1161,7 +1163,9 @@ def stdapi_sys_process_execute(request, response):
1161
1163
  if len(cmd) == 0:
1162
1164
  return ERROR_FAILURE, response
1163
1165
  if os.path.isfile('/bin/sh') and (flags & PROCESS_EXECUTE_FLAG_SUBSHELL):
1164
- args = ['/bin/sh', '-c', cmd, raw_args]
1166
+ if raw_args:
1167
+ cmd = cmd + ' ' + raw_args
1168
+ args = ['/bin/sh', '-c', cmd]
1165
1169
  else:
1166
1170
  args = [cmd]
1167
1171
  args.extend(shlex.split(raw_args))
@@ -680,10 +680,13 @@ class MeterpreterProcess(MeterpreterChannel):
680
680
  return self.proc_h.poll() is None
681
681
 
682
682
  def read(self, length):
683
- data = ''
683
+ data = bytes()
684
+ stderr_reader = self.proc_h.stderr_reader
684
685
  stdout_reader = self.proc_h.stdout_reader
685
- if stdout_reader.is_read_ready():
686
- data = stdout_reader.read(length)
686
+ if stderr_reader.is_read_ready() and length > 0:
687
+ data += stderr_reader.read(length)
688
+ if stdout_reader.is_read_ready() and (length - len(data)) > 0:
689
+ data += stdout_reader.read(length - len(data))
687
690
  return data
688
691
 
689
692
  def write(self, data):
@@ -1242,6 +1245,21 @@ class PythonMeterpreter(object):
1242
1245
  self.next_process_id += 1
1243
1246
  return idx
1244
1247
 
1248
+ def close_channel(self, channel_id):
1249
+ if channel_id not in self.channels:
1250
+ return False
1251
+ channel = self.channels[channel_id]
1252
+ try:
1253
+ channel.close()
1254
+ except Exception:
1255
+ debug_traceback('[-] failed to close channel id: ' + str(channel_id))
1256
+ return False
1257
+ del self.channels[channel_id]
1258
+ if channel_id in self.interact_channels:
1259
+ self.interact_channels.remove(channel_id)
1260
+ debug_print('[*] closed and removed channel id: ' + str(channel_id))
1261
+ return True
1262
+
1245
1263
  def get_packet(self):
1246
1264
  pkt = self.transport.get_packet()
1247
1265
  if pkt is None and self.transport.should_retire:
@@ -1314,9 +1332,9 @@ class PythonMeterpreter(object):
1314
1332
  if channel_id in self.interact_channels:
1315
1333
  proc_h = channel.proc_h
1316
1334
  if proc_h.stderr_reader.is_read_ready():
1317
- data = proc_h.stderr_reader.read()
1318
- elif proc_h.stdout_reader.is_read_ready():
1319
- data = proc_h.stdout_reader.read()
1335
+ data += proc_h.stderr_reader.read()
1336
+ if proc_h.stdout_reader.is_read_ready():
1337
+ data += proc_h.stdout_reader.read()
1320
1338
  if not channel.is_alive():
1321
1339
  self.handle_dead_resource_channel(channel_id)
1322
1340
  channel.close()
@@ -1570,16 +1588,9 @@ class PythonMeterpreter(object):
1570
1588
 
1571
1589
  def _core_channel_close(self, request, response):
1572
1590
  channel_id = packet_get_tlv(request, TLV_TYPE_CHANNEL_ID)['value']
1573
- if channel_id not in self.channels:
1591
+ if not self.close_channel(channel_id):
1574
1592
  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
1593
+ return ERROR_SUCCESS, response
1583
1594
 
1584
1595
  def _core_channel_eof(self, request, response):
1585
1596
  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.61'
3
+ VERSION = '2.0.65'
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.61
4
+ version: 2.0.65
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-11-29 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