msfrpc-client 1.1.1 → 1.1.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 +5 -5
- data/.ruby-version +1 -1
- data/Gemfile.lock +15 -35
- data/examples/msfrpc_irb.rb +28 -3
- data/lib/msfrpc-client/client.rb +13 -23
- data/lib/msfrpc-client/version.rb +1 -1
- data/msfrpc-client.gemspec +0 -1
- metadata +3 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a74d99283250678a38ed24fec054aa04eea762b29013ac9cbed948b6a3bcd057
|
4
|
+
data.tar.gz: cda8be470c197df8257a5c915909cc0982a7f3a176c6ce675fb73c5476f6ef02
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d980b0207db2824c10c44deb6ce9f7613b9dc3b344e66df0b9b04db64057849accac556f56bae38004e95676b457ec67b4d71be19685e59f706396a502772dcb
|
7
|
+
data.tar.gz: 21fd86631a416094c7260e03d370187b14ee1b64f29e4d0866f70693f053e618ae3f06245e8d8890f92ea344c8726bc1d008544ad88e59bcdf1d91f9a326ee55
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.1
|
data/Gemfile.lock
CHANGED
@@ -1,48 +1,28 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
msfrpc-client (1.1.
|
4
|
+
msfrpc-client (1.1.2)
|
5
5
|
msgpack (~> 1)
|
6
|
-
rex (~> 2)
|
7
6
|
|
8
7
|
GEM
|
9
8
|
remote: https://rubygems.org/
|
10
9
|
specs:
|
11
10
|
diff-lcs (1.3)
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
rake (12.0.0)
|
22
|
-
rb-readline (0.5.4)
|
23
|
-
rex (2.0.11)
|
24
|
-
filesize
|
25
|
-
jsobfu (~> 0.4.1)
|
26
|
-
json
|
27
|
-
metasm (~> 1.0.2)
|
28
|
-
nokogiri
|
29
|
-
rb-readline
|
30
|
-
robots
|
31
|
-
rkelly-remix (0.0.7)
|
32
|
-
robots (0.10.1)
|
33
|
-
rspec (3.6.0)
|
34
|
-
rspec-core (~> 3.6.0)
|
35
|
-
rspec-expectations (~> 3.6.0)
|
36
|
-
rspec-mocks (~> 3.6.0)
|
37
|
-
rspec-core (3.6.0)
|
38
|
-
rspec-support (~> 3.6.0)
|
39
|
-
rspec-expectations (3.6.0)
|
11
|
+
msgpack (1.2.4)
|
12
|
+
rake (12.3.1)
|
13
|
+
rspec (3.8.0)
|
14
|
+
rspec-core (~> 3.8.0)
|
15
|
+
rspec-expectations (~> 3.8.0)
|
16
|
+
rspec-mocks (~> 3.8.0)
|
17
|
+
rspec-core (3.8.0)
|
18
|
+
rspec-support (~> 3.8.0)
|
19
|
+
rspec-expectations (3.8.2)
|
40
20
|
diff-lcs (>= 1.2.0, < 2.0)
|
41
|
-
rspec-support (~> 3.
|
42
|
-
rspec-mocks (3.
|
21
|
+
rspec-support (~> 3.8.0)
|
22
|
+
rspec-mocks (3.8.0)
|
43
23
|
diff-lcs (>= 1.2.0, < 2.0)
|
44
|
-
rspec-support (~> 3.
|
45
|
-
rspec-support (3.
|
24
|
+
rspec-support (~> 3.8.0)
|
25
|
+
rspec-support (3.8.0)
|
46
26
|
|
47
27
|
PLATFORMS
|
48
28
|
ruby
|
@@ -54,4 +34,4 @@ DEPENDENCIES
|
|
54
34
|
rspec (~> 3)
|
55
35
|
|
56
36
|
BUNDLED WITH
|
57
|
-
1.
|
37
|
+
1.17.1
|
data/examples/msfrpc_irb.rb
CHANGED
@@ -3,8 +3,6 @@
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'optparse'
|
5
5
|
require 'msfrpc-client'
|
6
|
-
require 'rex/ui'
|
7
|
-
|
8
6
|
|
9
7
|
# Use the RPC option parser to handle standard flags
|
10
8
|
opts = {}
|
@@ -23,4 +21,31 @@ if rpc.token
|
|
23
21
|
end
|
24
22
|
|
25
23
|
$stdout.puts "[*] Starting IRB shell..."
|
26
|
-
|
24
|
+
|
25
|
+
load('irb.rb')
|
26
|
+
|
27
|
+
IRB.setup(nil)
|
28
|
+
IRB.conf[:PROMPT_MODE] = :SIMPLE
|
29
|
+
|
30
|
+
# Create a new IRB instance
|
31
|
+
irb = IRB::Irb.new(IRB::WorkSpace.new(binding))
|
32
|
+
|
33
|
+
# Set the primary irb context so that exit and other intrinsic
|
34
|
+
# commands will work.
|
35
|
+
IRB.conf[:MAIN_CONTEXT] = irb.context
|
36
|
+
|
37
|
+
# Trap interrupt
|
38
|
+
old_sigint = trap("SIGINT") do
|
39
|
+
begin
|
40
|
+
irb.signal_handle
|
41
|
+
rescue RubyLex::TerminateLineInput
|
42
|
+
irb.eval_input
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
# Keep processing input until the cows come home...
|
47
|
+
catch(:IRB_EXIT) do
|
48
|
+
irb.eval_input
|
49
|
+
end
|
50
|
+
|
51
|
+
trap("SIGINT", old_sigint)
|
data/lib/msfrpc-client/client.rb
CHANGED
@@ -1,5 +1,8 @@
|
|
1
1
|
# -*- coding: binary -*-
|
2
2
|
|
3
|
+
require 'net/http'
|
4
|
+
require 'openssl'
|
5
|
+
|
3
6
|
# MessagePack for data encoding (http://www.msgpack.org/)
|
4
7
|
require 'msgpack'
|
5
8
|
|
@@ -9,10 +12,6 @@ require 'optparse'
|
|
9
12
|
# Parse configuration file
|
10
13
|
require 'yaml'
|
11
14
|
|
12
|
-
# Rex library from the Metasploit Framework
|
13
|
-
require 'rex'
|
14
|
-
require 'rex/proto/http'
|
15
|
-
|
16
15
|
# Constants used by this client
|
17
16
|
require 'msfrpc-client/constants'
|
18
17
|
|
@@ -44,7 +43,6 @@ module Msf
|
|
44
43
|
uri: '/api/',
|
45
44
|
ssl: true,
|
46
45
|
ssl_version: 'TLS1.2',
|
47
|
-
context: {}
|
48
46
|
}.merge(info)
|
49
47
|
|
50
48
|
self.token = self.info[:token]
|
@@ -126,8 +124,6 @@ module Msf
|
|
126
124
|
else
|
127
125
|
raise e
|
128
126
|
end
|
129
|
-
ensure
|
130
|
-
@cli.close if @cli
|
131
127
|
end
|
132
128
|
end
|
133
129
|
|
@@ -135,9 +131,6 @@ module Msf
|
|
135
131
|
#
|
136
132
|
# @return [void]
|
137
133
|
def close
|
138
|
-
if @cli && @cli.conn?
|
139
|
-
@cli.close
|
140
|
-
end
|
141
134
|
@cli = nil
|
142
135
|
end
|
143
136
|
|
@@ -253,28 +246,25 @@ module Msf
|
|
253
246
|
|
254
247
|
def send_rpc_request(args)
|
255
248
|
unless @cli
|
256
|
-
@cli =
|
257
|
-
@cli.
|
258
|
-
|
259
|
-
agent: "Metasploit RPC Client/#{API_VERSION}",
|
260
|
-
read_max_data: 1024 * 1024 * 512
|
261
|
-
)
|
249
|
+
@cli = Net::HTTP.new(info[:host], info[:port])
|
250
|
+
@cli.use_ssl = info[:ssl]
|
251
|
+
@cli.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
262
252
|
end
|
263
253
|
|
264
|
-
req =
|
265
|
-
'
|
266
|
-
'
|
267
|
-
|
268
|
-
'data' => args.to_msgpack
|
254
|
+
req = Net::HTTP::Post.new(self.info[:uri], initheader = {
|
255
|
+
'User-Agent' => "Metasploit RPC Client/#{API_VERSION}",
|
256
|
+
'Content-Type' => 'binary/message-pack'
|
257
|
+
}
|
269
258
|
)
|
259
|
+
req.body = args.to_msgpack
|
270
260
|
|
271
261
|
begin
|
272
|
-
res = @cli.
|
262
|
+
res = @cli.request(req)
|
273
263
|
rescue => e
|
274
264
|
raise Msf::RPC::ServerException.new(000, e.message, e.class)
|
275
265
|
end
|
276
266
|
|
277
|
-
if res && [200, 401, 403, 500].include?(res.code)
|
267
|
+
if res && [200, 401, 403, 500].include?(res.code.to_i)
|
278
268
|
resp = MessagePack.unpack(res.body)
|
279
269
|
|
280
270
|
# Boolean true versus truthy check required here;
|
data/msfrpc-client.gemspec
CHANGED
@@ -26,7 +26,6 @@ Gem::Specification.new do |spec|
|
|
26
26
|
spec.licenses = ['BSD-2-Clause']
|
27
27
|
|
28
28
|
spec.add_runtime_dependency 'msgpack', '~> 1'
|
29
|
-
spec.add_runtime_dependency 'rex', '~> 2'
|
30
29
|
|
31
30
|
spec.add_development_dependency "bundler", '~> 1'
|
32
31
|
spec.add_development_dependency "rake", '~> 12'
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: msfrpc-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- HD Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2018-11-20 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: msgpack
|
@@ -25,20 +25,6 @@ dependencies:
|
|
25
25
|
- - "~>"
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '1'
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: rex
|
30
|
-
requirement: !ruby/object:Gem::Requirement
|
31
|
-
requirements:
|
32
|
-
- - "~>"
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version: '2'
|
35
|
-
type: :runtime
|
36
|
-
prerelease: false
|
37
|
-
version_requirements: !ruby/object:Gem::Requirement
|
38
|
-
requirements:
|
39
|
-
- - "~>"
|
40
|
-
- !ruby/object:Gem::Version
|
41
|
-
version: '2'
|
42
28
|
- !ruby/object:Gem::Dependency
|
43
29
|
name: bundler
|
44
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -129,7 +115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
115
|
version: '0'
|
130
116
|
requirements: []
|
131
117
|
rubyforge_project:
|
132
|
-
rubygems_version: 2.6
|
118
|
+
rubygems_version: 2.7.6
|
133
119
|
signing_key:
|
134
120
|
specification_version: 4
|
135
121
|
summary: Ruby API for the Rapid7 Metasploit RPC service
|