ruby_smb 3.2.0 → 3.3.0
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/.github/workflows/verify.yml +8 -9
- data/README.md +1 -0
- data/cortex.yaml +15 -0
- data/examples/dump_secrets_from_sid.rb +2 -1
- data/lib/ruby_smb/client.rb +6 -4
- data/lib/ruby_smb/dcerpc/alter_context.rb +30 -0
- data/lib/ruby_smb/dcerpc/alter_context_resp.rb +42 -0
- data/lib/ruby_smb/dcerpc/bind.rb +3 -35
- data/lib/ruby_smb/dcerpc/bind_ack.rb +0 -31
- data/lib/ruby_smb/dcerpc/client.rb +10 -4
- data/lib/ruby_smb/dcerpc/drsr.rb +13 -13
- data/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_decrypt_file_srv_request.rb +22 -0
- data/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_decrypt_file_srv_response.rb +21 -0
- data/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_recover_agents_request.rb +20 -0
- data/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_recover_agents_response.rb +21 -0
- data/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_users_on_file_request.rb +20 -0
- data/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_users_on_file_response.rb +21 -0
- data/lib/ruby_smb/dcerpc/encrypting_file_system.rb +52 -0
- data/lib/ruby_smb/dcerpc/icpr.rb +3 -2
- data/lib/ruby_smb/dcerpc/ndr.rb +148 -3
- data/lib/ruby_smb/dcerpc/p_cont_list_t.rb +37 -0
- data/lib/ruby_smb/dcerpc/p_result_list_t.rb +13 -0
- data/lib/ruby_smb/dcerpc/p_result_t.rb +15 -0
- data/lib/ruby_smb/dcerpc/port_any_t.rb +11 -0
- data/lib/ruby_smb/dcerpc/request.rb +8 -3
- data/lib/ruby_smb/dcerpc/response.rb +6 -1
- data/lib/ruby_smb/dcerpc/samr.rb +4 -2
- data/lib/ruby_smb/dcerpc.rb +165 -122
- data/lib/ruby_smb/dispatcher/socket.rb +1 -1
- data/lib/ruby_smb/field/file_time.rb +2 -2
- data/lib/ruby_smb/field/utime.rb +2 -2
- data/lib/ruby_smb/generic_packet.rb +2 -2
- data/lib/ruby_smb/gss/provider/ntlm.rb +12 -5
- data/lib/ruby_smb/ntlm/client.rb +4 -0
- data/lib/ruby_smb/ntlm/custom/string_encoder.rb +22 -0
- data/lib/ruby_smb/ntlm.rb +37 -0
- data/lib/ruby_smb/server/server_client/share_io.rb +2 -2
- data/lib/ruby_smb/server/server_client/tree_connect.rb +2 -2
- data/lib/ruby_smb/server/share/provider/disk.rb +2 -2
- data/lib/ruby_smb/server/share/provider/processor.rb +25 -0
- data/lib/ruby_smb/server/share/provider/virtual_disk.rb +3 -3
- data/lib/ruby_smb/server/share/provider.rb +48 -1
- data/lib/ruby_smb/smb1/data_block.rb +2 -2
- data/lib/ruby_smb/smb1/packet/nt_create_andx_request.rb +1 -1
- data/lib/ruby_smb/smb1/parameter_block.rb +2 -2
- data/lib/ruby_smb/smb1/pipe.rb +4 -0
- data/lib/ruby_smb/smb2/create_context.rb +5 -2
- data/lib/ruby_smb/smb2/packet/negotiate_request.rb +5 -5
- data/lib/ruby_smb/smb2/packet/negotiate_response.rb +1 -1
- data/lib/ruby_smb/smb2/pipe.rb +4 -0
- data/lib/ruby_smb/smb2/tree.rb +3 -1
- data/lib/ruby_smb/utils.rb +15 -0
- data/lib/ruby_smb/version.rb +1 -1
- data/lib/ruby_smb.rb +2 -0
- data/spec/lib/ruby_smb/client_spec.rb +4 -4
- data/spec/lib/ruby_smb/dcerpc/client_spec.rb +31 -16
- data/spec/lib/ruby_smb/dcerpc/drsr_spec.rb +4 -1
- data/spec/lib/ruby_smb/dcerpc/ndr_spec.rb +198 -0
- data/spec/lib/ruby_smb/dcerpc/request_spec.rb +0 -6
- data/spec/lib/ruby_smb/dcerpc/response_spec.rb +4 -12
- data/spec/lib/ruby_smb/dcerpc/sec_trailer_spec.rb +0 -14
- data/spec/lib/ruby_smb/dcerpc/winreg_spec.rb +2 -2
- data/spec/lib/ruby_smb/smb1/packet/read_andx_request_spec.rb +2 -2
- data/spec/lib/ruby_smb/smb1/packet/write_andx_request_spec.rb +1 -1
- data/spec/lib/ruby_smb/smb2/create_context/create_context_request_spec.rb +35 -0
- data/spec/lib/ruby_smb/smb2/tree_spec.rb +5 -0
- data.tar.gz.sig +0 -0
- metadata +41 -86
- metadata.gz.sig +0 -0
|
@@ -77,12 +77,6 @@ RSpec.describe RubySMB::Dcerpc::Response do
|
|
|
77
77
|
packet.pdu_header.auth_length = 10
|
|
78
78
|
expect(packet.auth_pad?).to be true
|
|
79
79
|
end
|
|
80
|
-
|
|
81
|
-
it 'makes sure #sec_trailer is 16-bytes aligned with the begining of the PDU body (stub)' do
|
|
82
|
-
packet.pdu_header.auth_length = 6
|
|
83
|
-
packet.stub = 'A' * rand(0xFF)
|
|
84
|
-
expect((packet.sec_trailer.abs_offset - packet.stub.abs_offset) % 16).to eq(0)
|
|
85
|
-
end
|
|
86
80
|
end
|
|
87
81
|
|
|
88
82
|
describe '#sec_trailer' do
|
|
@@ -137,7 +131,7 @@ RSpec.describe RubySMB::Dcerpc::Response do
|
|
|
137
131
|
end
|
|
138
132
|
|
|
139
133
|
describe '#stub_length' do
|
|
140
|
-
let(:stub_length) { rand(0xFF) }
|
|
134
|
+
let(:stub_length) { rand(1..0xFF) }
|
|
141
135
|
before :example do
|
|
142
136
|
packet.stub = 'A' * stub_length
|
|
143
137
|
end
|
|
@@ -148,7 +142,7 @@ RSpec.describe RubySMB::Dcerpc::Response do
|
|
|
148
142
|
|
|
149
143
|
context 'with auth verifier' do
|
|
150
144
|
it 'returns the correct stub length' do
|
|
151
|
-
auth_size = rand(0xFF)
|
|
145
|
+
auth_size = rand(1..0xFF)
|
|
152
146
|
packet.pdu_header.auth_length = auth_size
|
|
153
147
|
packet.auth_value = 'B' * auth_size
|
|
154
148
|
expect(packet.stub_length).to eq(stub_length + packet.auth_pad.num_bytes)
|
|
@@ -158,8 +152,8 @@ RSpec.describe RubySMB::Dcerpc::Response do
|
|
|
158
152
|
|
|
159
153
|
describe '#read' do
|
|
160
154
|
let(:response) { described_class.new }
|
|
161
|
-
let(:auth_size) { rand(0xFF) }
|
|
162
|
-
let(:stub_size) { rand(0xFF) }
|
|
155
|
+
let(:auth_size) { rand(1..0xFF) }
|
|
156
|
+
let(:stub_size) { rand(1..0xFF) }
|
|
163
157
|
before :example do
|
|
164
158
|
response.pdu_header.auth_length = auth_size
|
|
165
159
|
response.stub = 'A' * stub_size
|
|
@@ -182,5 +176,3 @@ RSpec.describe RubySMB::Dcerpc::Response do
|
|
|
182
176
|
expect(described_class.read(binary)).to eq(packet)
|
|
183
177
|
end
|
|
184
178
|
end
|
|
185
|
-
|
|
186
|
-
|
|
@@ -36,20 +36,6 @@ RSpec.describe RubySMB::Dcerpc::SecTrailer do
|
|
|
36
36
|
expect(packet.auth_pad_length).to eq(0)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
context 'when the parent structure has an #auth_pad field' do
|
|
40
|
-
let(:pad) { 'A' * rand(0xFF) }
|
|
41
|
-
let(:packet_with_parent) do
|
|
42
|
-
Class.new(BinData::Record) do
|
|
43
|
-
string :auth_pad
|
|
44
|
-
sec_trailer :sec_trailer
|
|
45
|
-
end.new(auth_pad: pad)
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
it 'has a value equal to the size of the #auth_pad field' do
|
|
49
|
-
expect(packet_with_parent.sec_trailer.auth_pad_length).to eq(pad.size)
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
39
|
context 'when the parent structure does not have an #auth_pad field' do
|
|
54
40
|
let(:pad) { 'A' * rand(0xFF) }
|
|
55
41
|
let(:packet_with_parent) do
|
|
@@ -631,7 +631,7 @@ RSpec.describe RubySMB::Dcerpc::Winreg do
|
|
|
631
631
|
|
|
632
632
|
it 'calls #enum_key the expected number of times' do
|
|
633
633
|
winreg.enum_registry_key(key)
|
|
634
|
-
expect(winreg).to have_received(:enum_key).with(subkey_handle, instance_of(
|
|
634
|
+
expect(winreg).to have_received(:enum_key).with(subkey_handle, instance_of(Integer)).twice
|
|
635
635
|
end
|
|
636
636
|
|
|
637
637
|
it 'closes the key' do
|
|
@@ -710,7 +710,7 @@ RSpec.describe RubySMB::Dcerpc::Winreg do
|
|
|
710
710
|
|
|
711
711
|
it 'calls #enum_key the expected number of times' do
|
|
712
712
|
winreg.enum_registry_values(key)
|
|
713
|
-
expect(winreg).to have_received(:enum_value).with(subkey_handle, instance_of(
|
|
713
|
+
expect(winreg).to have_received(:enum_value).with(subkey_handle, instance_of(Integer)).twice
|
|
714
714
|
end
|
|
715
715
|
|
|
716
716
|
it 'closes the key' do
|
|
@@ -112,7 +112,7 @@ RSpec.describe RubySMB::SMB1::Packet::ReadAndxRequest do
|
|
|
112
112
|
expect { packet.set_read_from_named_pipe('true') }.to raise_error(ArgumentError)
|
|
113
113
|
end
|
|
114
114
|
|
|
115
|
-
it 'raises an exception when the value is a
|
|
115
|
+
it 'raises an exception when the value is a Integer' do
|
|
116
116
|
expect { packet.set_read_from_named_pipe(1) }.to raise_error(ArgumentError)
|
|
117
117
|
end
|
|
118
118
|
|
|
@@ -138,7 +138,7 @@ RSpec.describe RubySMB::SMB1::Packet::ReadAndxRequest do
|
|
|
138
138
|
expect { packet.set_64_bit_offset('true') }.to raise_error(ArgumentError)
|
|
139
139
|
end
|
|
140
140
|
|
|
141
|
-
it 'raises an exception when the value is a
|
|
141
|
+
it 'raises an exception when the value is a Integer' do
|
|
142
142
|
expect { packet.set_64_bit_offset(1) }.to raise_error(ArgumentError)
|
|
143
143
|
end
|
|
144
144
|
|
|
@@ -137,7 +137,7 @@ RSpec.describe RubySMB::SMB1::Packet::WriteAndxRequest do
|
|
|
137
137
|
expect { packet.set_64_bit_offset('true') }.to raise_error(ArgumentError)
|
|
138
138
|
end
|
|
139
139
|
|
|
140
|
-
it 'raises an exception when the value is a
|
|
140
|
+
it 'raises an exception when the value is a Integer' do
|
|
141
141
|
expect { packet.set_64_bit_offset(1) }.to raise_error(ArgumentError)
|
|
142
142
|
end
|
|
143
143
|
|
|
@@ -8,6 +8,7 @@ RSpec.describe RubySMB::SMB2::CreateContext::CreateContextRequest do
|
|
|
8
8
|
it { is_expected.to respond_to :name_length }
|
|
9
9
|
it { is_expected.to respond_to :data_offset }
|
|
10
10
|
it { is_expected.to respond_to :data_length }
|
|
11
|
+
it { is_expected.to respond_to :buffer }
|
|
11
12
|
it { is_expected.to respond_to :name }
|
|
12
13
|
it { is_expected.to respond_to :data }
|
|
13
14
|
|
|
@@ -39,4 +40,38 @@ RSpec.describe RubySMB::SMB2::CreateContext::CreateContextRequest do
|
|
|
39
40
|
expect(struct.data_offset).to eq 0
|
|
40
41
|
end
|
|
41
42
|
end
|
|
43
|
+
|
|
44
|
+
context 'when reading a packet with extra padding' do
|
|
45
|
+
# :name_offset=>120,
|
|
46
|
+
# :name_length=>14,
|
|
47
|
+
# :contexts_offset=>136,
|
|
48
|
+
# :contexts_length=>60,
|
|
49
|
+
# :bytes_remaining=>76,
|
|
50
|
+
# :buffer=> "t\x00e\x00s\x00t\x00.\x00r\x00b\x00\x00\x00\x00\x00\x00[...SNIP...]"
|
|
51
|
+
let(:raw_data) {
|
|
52
|
+
"\x00\x00\x00\x00\x10\x00\x04\x00\x00\x00\x18\x00\x24\x00\x00\x00\x44\x48\x32\x43\x00\x00"\
|
|
53
|
+
"\x00\x00\x04\xfa\xb6\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x43\xe0\x35"\
|
|
54
|
+
"\x5c\x6e\xee\x11\xb8\xbb\x00\x0c\x29\xc1\x13\xd0\x00\x00\x00\x00".b
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
it 'reads without error' do
|
|
58
|
+
expect { described_class.read(raw_data) }.to_not raise_error
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
context 'when getting #name and #data' do
|
|
62
|
+
let(:create_request_packet) { described_class.read(raw_data) }
|
|
63
|
+
|
|
64
|
+
it 'gets the expected #name value' do
|
|
65
|
+
create_request_packet.name.read_now!
|
|
66
|
+
expect(create_request_packet.name).to eq 'DH2C'
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
it 'gets the expected #data value' do
|
|
70
|
+
create_request_packet.data.read_now!
|
|
71
|
+
expected_data = "\x04\xfa\xb6\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd7\x43"\
|
|
72
|
+
"\xe0\x35\x5c\x6e\xee\x11\xb8\xbb\x00\x0c\x29\xc1\x13\xd0\x00\x00\x00\x00".b
|
|
73
|
+
expect(create_request_packet.data).to eq expected_data
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
42
77
|
end
|
|
@@ -166,10 +166,14 @@ RSpec.describe RubySMB::SMB2::Tree do
|
|
|
166
166
|
let(:create_res) { double('create response') }
|
|
167
167
|
let(:query_dir_req) { RubySMB::SMB2::Packet::QueryDirectoryRequest.new }
|
|
168
168
|
let(:query_dir_res) { RubySMB::SMB2::Packet::QueryDirectoryResponse.new }
|
|
169
|
+
let(:open_dir) { instance_double(RubySMB::SMB2::File) }
|
|
169
170
|
|
|
170
171
|
before :example do
|
|
171
172
|
allow(tree).to receive(:open_directory).and_return(create_res)
|
|
172
173
|
allow(create_res).to receive(:file_id)
|
|
174
|
+
allow(RubySMB::SMB2::File).to receive(:new).and_return(open_dir)
|
|
175
|
+
allow(open_dir).to receive(:close)
|
|
176
|
+
allow(create_res).to receive(:file_attributes)
|
|
173
177
|
allow(RubySMB::SMB2::Packet::QueryDirectoryRequest).to receive(:new).and_return(query_dir_req)
|
|
174
178
|
allow(client).to receive(:send_recv)
|
|
175
179
|
allow(RubySMB::SMB2::Packet::QueryDirectoryResponse).to receive(:read).and_return(query_dir_res)
|
|
@@ -180,6 +184,7 @@ RSpec.describe RubySMB::SMB2::Tree do
|
|
|
180
184
|
dir = '/dir'
|
|
181
185
|
expect(tree).to receive(:open_directory).with(directory: dir).and_return(create_res)
|
|
182
186
|
tree.list(directory: dir)
|
|
187
|
+
expect(open_dir).to have_received(:close)
|
|
183
188
|
end
|
|
184
189
|
|
|
185
190
|
it 'uses the File ID from the create response' do
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ruby_smb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Metasploit Hackers
|
|
@@ -14,90 +14,31 @@ bindir: bin
|
|
|
14
14
|
cert_chain:
|
|
15
15
|
- |
|
|
16
16
|
-----BEGIN CERTIFICATE-----
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
+
|
|
17
|
+
MIIERDCCAqygAwIBAgIBATANBgkqhkiG9w0BAQsFADAmMSQwIgYDVQQDDBttc2Zk
|
|
18
|
+
ZXYvREM9bWV0YXNwbG9pdC9EQz1jb20wHhcNMjMxMDMwMTYwNDI1WhcNMjUxMDI5
|
|
19
|
+
MTYwNDI1WjAmMSQwIgYDVQQDDBttc2ZkZXYvREM9bWV0YXNwbG9pdC9EQz1jb20w
|
|
20
|
+
ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDZN/EKv+yVjwiKWvjAVhjF
|
|
21
|
+
aWNYI0E9bJ5d1qKd29omRYX9a+OOKBCu5+394fyF5RjwU4mYGr2iopX9ixRJrWXH
|
|
22
|
+
ojs70tEvV1CmvP9rhz7JKzQQoJOkinrz4d+StIylxVxVdgm7DeiB3ruTwvl7qKUv
|
|
23
|
+
piWzhrBFiVU6XIEAwq6wNEmnv2D+Omyf4h0Tf99hc6G0QmBnU3XydqvnZ+AzUbBV
|
|
24
|
+
24RH3+NQoigLbvK4M5aOeYhk19di58hznebOw6twHzNczshrBeMFQp985ScNgsvF
|
|
25
|
+
rL+7HNNwpcpngERwZfzDNn7iYN5X3cyvTcykShtsuPMa5zXsYo42LZrsTF87DW38
|
|
26
|
+
D8sxL6Dgdqu25Mltdw9m+iD4rHSfb1KJYEoNO+WwBJLO2Y4d6G1CR66tVeWsZspb
|
|
27
|
+
zneOVC+sDuil7hOm+6a7Y2yrrRyT6IfL/07DywjPAIRUp5+Jn8ZrkWRNo2AOwWBG
|
|
28
|
+
k5gz7SfJPHuyVnPlxoMA0MTFCUnnnbyHu882TGoJGgMCAwEAAaN9MHswCQYDVR0T
|
|
29
|
+
BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFIQfNa4E889ZE334cwU7eNu2hScH
|
|
30
|
+
MCAGA1UdEQQZMBeBFW1zZmRldkBtZXRhc3Bsb2l0LmNvbTAgBgNVHRIEGTAXgRVt
|
|
31
|
+
c2ZkZXZAbWV0YXNwbG9pdC5jb20wDQYJKoZIhvcNAQELBQADggGBAMfzvKcV27p7
|
|
32
|
+
pctmpW2JmIXLMrjNLyGJAxELH/t9pJueXdga7uj2fJkYQDbwGw5x4MGyFqhqJLH4
|
|
33
|
+
l/qsUF3PyAXDTSWLVaqXQVWO+IIHxecG0XjPXTNudzMU0hzqbqiBKvsW7/a3V5BP
|
|
34
|
+
SWlFzrFkoXWlPouFpoakyYMJjpW4SGdPzRv7pM4OhXtkXpHiRvx5985FrHgHlI89
|
|
35
|
+
NSIuIUbp8zqk4hP1i9MV0Lc/vTf2gOmo+RHnjqG1NiYfMCYyY/Mcd4W36kGOl468
|
|
36
|
+
I8VDTwgCufkAzFu7BJ5yCOueqtDcuq+d3YhAyU7NI4+Ja8EwazOnB+07sWhKpg7z
|
|
37
|
+
yuQ1mWYPmZfVQpoSVv1CvXsoqJYXVPBBLOacKKSj8ArVG6pPn9Bej7IOQdblaFjl
|
|
38
|
+
DgscAao7wB3xW2BWEp1KnaDWkf1x9ttgoBEYyuYwU7uatB67kBQG1PKvLt79wHvz
|
|
39
|
+
Dxs+KOjGbBRfMnPgVGYkORKVrZIwlaboHbDKxcVW5xv+oZc7KYXWGg==
|
|
37
40
|
-----END CERTIFICATE-----
|
|
38
|
-
-
|
|
39
|
-
-----BEGIN CERTIFICATE-----
|
|
40
|
-
MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
|
|
41
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
42
|
-
d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
|
|
43
|
-
b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
|
|
44
|
-
EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
|
|
45
|
-
cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
|
|
46
|
-
aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
|
|
47
|
-
Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
|
|
48
|
-
8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
|
|
49
|
-
wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
|
|
50
|
-
fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
|
|
51
|
-
jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
|
|
52
|
-
n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
|
|
53
|
-
HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
|
|
54
|
-
MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
|
|
55
|
-
MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
|
|
56
|
-
RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
|
|
57
|
-
ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
|
|
58
|
-
Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
|
|
59
|
-
TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
|
60
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
|
|
61
|
-
CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
|
|
62
|
-
MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
|
|
63
|
-
fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
|
|
64
|
-
RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
|
|
65
|
-
EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
|
|
66
|
-
L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
|
|
67
|
-
B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
|
|
68
|
-
-----END CERTIFICATE-----
|
|
69
|
-
- |
|
|
70
|
-
-----BEGIN CERTIFICATE-----
|
|
71
|
-
MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
|
|
72
|
-
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
|
|
73
|
-
d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
|
|
74
|
-
SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
|
|
75
|
-
MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
|
|
76
|
-
BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
|
|
77
|
-
IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
|
|
78
|
-
4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
|
|
79
|
-
WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
|
|
80
|
-
gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
|
|
81
|
-
9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
|
|
82
|
-
yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
|
|
83
|
-
r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
|
|
84
|
-
dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
|
|
85
|
-
B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
|
|
86
|
-
L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
|
|
87
|
-
L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
|
|
88
|
-
MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
|
|
89
|
-
d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
|
|
90
|
-
JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
|
|
91
|
-
AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
|
|
92
|
-
ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
|
|
93
|
-
BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
|
|
94
|
-
37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
|
|
95
|
-
YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
|
|
96
|
-
dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
|
|
97
|
-
EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
|
|
98
|
-
9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
|
|
99
|
-
-----END CERTIFICATE-----
|
|
100
|
-
date: 2022-08-30 00:00:00.000000000 Z
|
|
41
|
+
date: 2023-12-11 00:00:00.000000000 Z
|
|
101
42
|
dependencies:
|
|
102
43
|
- !ruby/object:Gem::Dependency
|
|
103
44
|
name: redcarpet
|
|
@@ -256,6 +197,7 @@ files:
|
|
|
256
197
|
- LICENSE.txt
|
|
257
198
|
- README.md
|
|
258
199
|
- Rakefile
|
|
200
|
+
- cortex.yaml
|
|
259
201
|
- examples/anonymous_auth.rb
|
|
260
202
|
- examples/append_file.rb
|
|
261
203
|
- examples/auth_capture.rb
|
|
@@ -295,6 +237,8 @@ files:
|
|
|
295
237
|
- lib/ruby_smb/create_actions.rb
|
|
296
238
|
- lib/ruby_smb/crypto.rb
|
|
297
239
|
- lib/ruby_smb/dcerpc.rb
|
|
240
|
+
- lib/ruby_smb/dcerpc/alter_context.rb
|
|
241
|
+
- lib/ruby_smb/dcerpc/alter_context_resp.rb
|
|
298
242
|
- lib/ruby_smb/dcerpc/bind.rb
|
|
299
243
|
- lib/ruby_smb/dcerpc/bind_ack.rb
|
|
300
244
|
- lib/ruby_smb/dcerpc/client.rb
|
|
@@ -316,10 +260,16 @@ files:
|
|
|
316
260
|
- lib/ruby_smb/dcerpc/drsr/drs_unbind_request.rb
|
|
317
261
|
- lib/ruby_smb/dcerpc/drsr/drs_unbind_response.rb
|
|
318
262
|
- lib/ruby_smb/dcerpc/encrypting_file_system.rb
|
|
263
|
+
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_decrypt_file_srv_request.rb
|
|
264
|
+
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_decrypt_file_srv_response.rb
|
|
319
265
|
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_encrypt_file_srv_request.rb
|
|
320
266
|
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_encrypt_file_srv_response.rb
|
|
321
267
|
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_open_file_raw_request.rb
|
|
322
268
|
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_open_file_raw_response.rb
|
|
269
|
+
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_recover_agents_request.rb
|
|
270
|
+
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_recover_agents_response.rb
|
|
271
|
+
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_users_on_file_request.rb
|
|
272
|
+
- lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_query_users_on_file_response.rb
|
|
323
273
|
- lib/ruby_smb/dcerpc/epm.rb
|
|
324
274
|
- lib/ruby_smb/dcerpc/epm/epm_ept_map_request.rb
|
|
325
275
|
- lib/ruby_smb/dcerpc/epm/epm_ept_map_response.rb
|
|
@@ -337,8 +287,12 @@ files:
|
|
|
337
287
|
- lib/ruby_smb/dcerpc/netlogon/netr_server_password_set2_response.rb
|
|
338
288
|
- lib/ruby_smb/dcerpc/netlogon/netr_server_req_challenge_request.rb
|
|
339
289
|
- lib/ruby_smb/dcerpc/netlogon/netr_server_req_challenge_response.rb
|
|
290
|
+
- lib/ruby_smb/dcerpc/p_cont_list_t.rb
|
|
291
|
+
- lib/ruby_smb/dcerpc/p_result_list_t.rb
|
|
292
|
+
- lib/ruby_smb/dcerpc/p_result_t.rb
|
|
340
293
|
- lib/ruby_smb/dcerpc/p_syntax_id_t.rb
|
|
341
294
|
- lib/ruby_smb/dcerpc/pdu_header.rb
|
|
295
|
+
- lib/ruby_smb/dcerpc/port_any_t.rb
|
|
342
296
|
- lib/ruby_smb/dcerpc/print_system.rb
|
|
343
297
|
- lib/ruby_smb/dcerpc/print_system/rpc_add_printer_driver_ex_request.rb
|
|
344
298
|
- lib/ruby_smb/dcerpc/print_system/rpc_add_printer_driver_ex_response.rb
|
|
@@ -493,6 +447,7 @@ files:
|
|
|
493
447
|
- lib/ruby_smb/nbss/session_request.rb
|
|
494
448
|
- lib/ruby_smb/ntlm.rb
|
|
495
449
|
- lib/ruby_smb/ntlm/client.rb
|
|
450
|
+
- lib/ruby_smb/ntlm/custom/string_encoder.rb
|
|
496
451
|
- lib/ruby_smb/peer_info.rb
|
|
497
452
|
- lib/ruby_smb/server.rb
|
|
498
453
|
- lib/ruby_smb/server/cli.rb
|
|
@@ -673,6 +628,7 @@ files:
|
|
|
673
628
|
- lib/ruby_smb/smb2/smb2_header.rb
|
|
674
629
|
- lib/ruby_smb/smb2/tree.rb
|
|
675
630
|
- lib/ruby_smb/smb_error.rb
|
|
631
|
+
- lib/ruby_smb/utils.rb
|
|
676
632
|
- lib/ruby_smb/version.rb
|
|
677
633
|
- ruby_smb.gemspec
|
|
678
634
|
- spec/lib/ruby_smb/client_spec.rb
|
|
@@ -999,8 +955,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
999
955
|
- !ruby/object:Gem::Version
|
|
1000
956
|
version: '0'
|
|
1001
957
|
requirements: []
|
|
1002
|
-
|
|
1003
|
-
rubygems_version: 2.7.10
|
|
958
|
+
rubygems_version: 3.1.4
|
|
1004
959
|
signing_key:
|
|
1005
960
|
specification_version: 4
|
|
1006
961
|
summary: A pure Ruby implementation of the SMB Protocol Family
|
metadata.gz.sig
CHANGED
|
Binary file
|