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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/bin/metasploit-aggregator +1 -1
- data/lib/metasploit/aggregator.rb +8 -2
- data/lib/metasploit/aggregator/connection_manager.rb +12 -0
- data/lib/metasploit/aggregator/forwarder.rb +2 -2
- data/lib/metasploit/aggregator/http/request.rb +0 -12
- data/lib/metasploit/aggregator/router.rb +2 -2
- data/lib/metasploit/aggregator/version.rb +1 -1
- metadata +3 -3
- metadata.gz.sig +3 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48eefd932eb682e73ba56af27ee94c5c3d963306
|
4
|
+
data.tar.gz: 37d7f536cf5ba43319a45906847277891253e314
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 918a239903e13c853a15f6a8089d1f944f4f965ad0b9f796e7858031c28a009f50302f5a6f7670410c67f760d1c5df0ef6a92f913e5f122dbd6b7c210ffa6bbb
|
7
|
+
data.tar.gz: 383e666fbfc963fab11c77f3f389fb0ea7ab5bc13fe3a27f47a00bbb5a311fcb48c139dcd3f3382f6e6f574b0f887ebb171d49154249e2f5b62b3b8365a05cf5
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/bin/metasploit-aggregator
CHANGED
@@ -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,
|
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
|
-
|
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
|
-
|
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,
|
25
|
+
@response_queues.each_pair do |connection, _queue|
|
26
26
|
forward = 'parked'
|
27
|
-
|
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 |
|
57
|
-
request,
|
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
|
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.
|
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-
|
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.
|
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
|
-
|
1
|
+
v��;�� It� {�0�)G�`�z]>��HO;���2�(�(+K��#y�f�q��[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
|