metasploit-aggregator 0.2.1 → 0.2.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 743aaed0f6621901652a6ac90e16bb1fe49d2127
4
- data.tar.gz: e73a838cea07915a5b71a3e89c5cacbc15e1cc1d
3
+ metadata.gz: 48eefd932eb682e73ba56af27ee94c5c3d963306
4
+ data.tar.gz: 37d7f536cf5ba43319a45906847277891253e314
5
5
  SHA512:
6
- metadata.gz: 584bafe1df424db3495a7c85065c9554f3ee7849c5f52c817956512f43aef1e25fcb825df0a378a74d25de4a9e50d3d2a24f5abfcad92afbb29dbaaa5df08d96
7
- data.tar.gz: b9bcfa8091f5ee411fffe8f871ebb67a041e7c73771af184457bef731dc5adfcdcfbcd1ad83a8110e1a0c44273c70062a5a0c5146bf2e2f0de9c6bbdf5c95e34
6
+ metadata.gz: 918a239903e13c853a15f6a8089d1f944f4f965ad0b9f796e7858031c28a009f50302f5a6f7670410c67f760d1c5df0ef6a92f913e5f122dbd6b7c210ffa6bbb
7
+ data.tar.gz: 383e666fbfc963fab11c77f3f389fb0ea7ab5bc13fe3a27f47a00bbb5a311fcb48c139dcd3f3382f6e6f574b0f887ebb171d49154249e2f5b62b3b8365a05cf5
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -27,7 +27,7 @@ loop do
27
27
  elsif command.chomp == 'details'
28
28
  client = Metasploit::Aggregator::ServerProxy.new(admin_host, admin_port)
29
29
  sessions = client.sessions
30
- sessions.each_pair do |payload, console|
30
+ sessions.each_pair do |payload, _console|
31
31
  details = client.session_details(payload)
32
32
  $stdout.puts payload
33
33
  details.each_pair do |key, attr|
@@ -105,7 +105,11 @@ module Metasploit
105
105
  end
106
106
 
107
107
  def available?
108
- @client.available(@no_params).answer
108
+ begin
109
+ @client.available(@no_params).answer
110
+ rescue GRPC::Unavailable
111
+ false # unavailable if client throws exception.
112
+ end
109
113
  end
110
114
 
111
115
  def sessions
@@ -348,7 +352,9 @@ module Metasploit
348
352
  requestingThread = Thread.new do
349
353
  loop do
350
354
  sleep 0.1 # outer loop only occurs until uuid is set
351
- next if uuid.nil?
355
+ break unless uuid.nil?
356
+ end
357
+ while true
352
358
  request = @local_server.request(uuid)
353
359
  # TODO: with this in place we can just get the request queue and pop each item to process and forward
354
360
  unless request.nil?
@@ -18,6 +18,7 @@ module Metasploit
18
18
  @manager_mutex = Mutex.new
19
19
  @router = Router.instance
20
20
  @details_cache = SessionDetailService.instance
21
+ @connection_cleaner = Thread.new { flush_connections }
21
22
  end
22
23
 
23
24
  def self.ssl_generate_certificate
@@ -182,6 +183,7 @@ module Metasploit
182
183
  listener.thread.exit
183
184
  end
184
185
  end
186
+ @connection_cleaner.exit
185
187
  end
186
188
 
187
189
  def park(payload)
@@ -189,6 +191,16 @@ module Metasploit
189
191
  Logger.log "parking #{payload}"
190
192
  end
191
193
 
194
+ def flush_connections
195
+ while true
196
+ @cables.each do |cable|
197
+ # this relies on a side effect that accessing clears stale connections
198
+ cable.forwarder.connections.length
199
+ end
200
+ sleep 10
201
+ end
202
+ end
203
+
192
204
  private :ssl_parse_certificate
193
205
  end
194
206
  end
@@ -22,9 +22,9 @@ module Metasploit
22
22
  # TODO: for now before reporting connections flush stale ones
23
23
  flush_stale_sessions
24
24
  connections = {}
25
- @response_queues.each_pair do |connection, queue|
25
+ @response_queues.each_pair do |connection, _queue|
26
26
  forward = 'parked'
27
- send, recv, console = @router.get_forward(connection)
27
+ _send, _recv, console = @router.get_forward(connection)
28
28
  unless console.nil?
29
29
  forward = "#{console}"
30
30
  end
@@ -23,18 +23,6 @@ module Metasploit
23
23
  uri
24
24
  end
25
25
 
26
- def to_msgpack
27
- MessagePack.dump ({
28
- :headers => headers,
29
- :body => body
30
- })
31
- end
32
-
33
- def self.from_msgpack(string)
34
- data = MessagePack.load string
35
- self.new(data['headers'], data['body'].force_encoding(Encoding::ASCII_8BIT), nil)
36
- end
37
-
38
26
  # provide a default response in Request form
39
27
  def self.parked()
40
28
  parked_message = []
@@ -53,8 +53,8 @@ module Metasploit
53
53
  unless @queue_by_uuid[uuid]
54
54
  @queue_by_uuid[uuid] = Queue.new
55
55
  end
56
- @forward_routes.each_pair do |key, val|
57
- request, response, remote_uuid = val
56
+ @forward_routes.each_pair do |_key, val|
57
+ request, _response, remote_uuid = val
58
58
  next unless remote_uuid == uuid
59
59
  while !request.empty?
60
60
  @queue_by_uuid[uuid] << request.pop
@@ -1,5 +1,5 @@
1
1
  module Metasploit
2
2
  module Aggregator
3
- VERSION = '0.2.1'
3
+ VERSION = '0.2.2'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metasploit-aggregator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Metasploit Hackers
@@ -88,7 +88,7 @@ cert_chain:
88
88
  G+Hmcg1v810agasPdoydE0RTVZgEOOMoQ07qu7JFXVWZ9ZQpHT7qJATWL/b2csFG
89
89
  8mVuTXnyJOKRJA==
90
90
  -----END CERTIFICATE-----
91
- date: 2017-05-19 00:00:00.000000000 Z
91
+ date: 2017-09-13 00:00:00.000000000 Z
92
92
  dependencies:
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: bundler
@@ -247,7 +247,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
247
247
  version: '0'
248
248
  requirements: []
249
249
  rubyforge_project:
250
- rubygems_version: 2.6.8
250
+ rubygems_version: 2.6.13
251
251
  signing_key:
252
252
  specification_version: 4
253
253
  summary: metasploit-aggregator
metadata.gz.sig CHANGED
@@ -1 +1,3 @@
1
- c:����ploN_��-�Y.�'��Vc��M8L�K<1 ֗Xm�]���i��go�c8t� �M>���XI_[{����/�a@ g��\�-���R=v�|��Z3��>���X���kJ>��o,����ĩm�����>>v�G��6�����{]�[,�8���&�����묙�7�޹"v��p���j��� ]��&E�/��>�:}A��8/�o�5R�_���^(���g�!��L�󠈮�v뢣�P�Sc
1
+ v�� ;�� It {0)G�`�z]>��HO;���2�((+K��#y�fq��[b,���
2
+ c�����A�4ް�h*}�������u�p_E����!�/�6\f`V v{�iw��ִ2^X=u��
3
+ ޚ�]$� ��2�g�]���茕0�[���S �P�qTՐ�'2"u��g