metasploit-aggregator 0.2.1 → 0.2.2

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
  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