ruby_smb 3.1.5 → 3.1.6

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
  SHA256:
3
- metadata.gz: 4749ae5185070d44e447593cd863ee5ac17a87468b16b14a251f68e0166b7663
4
- data.tar.gz: b63378e4367136e0c6dffc35aa02b5c5ce1df450d5b64300eaee060e7938e9ec
3
+ metadata.gz: 41dae2cdf118dfda8519ebf1a109c77e9396d9cda01c20e5a45a2fdd222ddb38
4
+ data.tar.gz: 37d8b0d88283c540ee074035cdc2728d9bd4bb2960f1d379d81d1a926cb11aa1
5
5
  SHA512:
6
- metadata.gz: f09557d4ba6148796bb6adf2c1169ebad237f021527975fabb179e1eb2099cfb2c17e45d3b57629c7fc61106092317076e41c77d39f8cb3d4335d280a75e144c
7
- data.tar.gz: e969cc9f474e64e4cf7ba9bcf39e1dfc30b9e365bf6c758abd1e7ff905a6e9a3a8f3c3b33fc88f3104b7998201406d8b78bca34e746c58cfa4c03353bd94f789
6
+ metadata.gz: 1de29406e9e28d9d47dddfaff03d81aeb10aa28c5bb827c3c81e52f6b3d42b302a22143a71c1a89db91968f6b33d2299658bfe04dcf4897e000bc9170c11318c
7
+ data.tar.gz: d2794e3f509f10e98e5914e03e499c4433f2a78070090cefe704528e573c8b50bf049f1bb2a34ff5a63d26af759ad6a24fad83f778064e8c2ab446c7ef2841f8
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,24 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Dfsnm
4
+
5
+ # [3.1.4.4.1 NetrDfsAddStdRoot (Opnum 12)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dfsnm/b18ef17a-7a9c-4e22-b1bf-6a4d07e87b2d)
6
+ class NetrDfsAddStdRootRequest < BinData::Record
7
+ attr_reader :opnum
8
+
9
+ endian :little
10
+
11
+ ndr_conf_var_wide_stringz :server_name
12
+ ndr_conf_var_wide_stringz :root_share
13
+ ndr_conf_var_wide_stringz :comment
14
+ ndr_uint32 :api_flags
15
+
16
+ def initialize_instance
17
+ super
18
+ @opnum = NETR_DFS_ADD_STD_ROOT
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,21 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Dfsnm
4
+
5
+ # [3.1.4.4.1 NetrDfsAddStdRoot (Opnum 12)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dfsnm/b18ef17a-7a9c-4e22-b1bf-6a4d07e87b2d)
6
+ class NetrDfsAddStdRootResponse < BinData::Record
7
+ attr_reader :opnum
8
+
9
+ endian :little
10
+
11
+ ndr_uint32 :error_status
12
+
13
+ def initialize_instance
14
+ super
15
+ @opnum = NETR_DFS_ADD_STD_ROOT
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Dfsnm
4
+
5
+ # [3.1.4.4.2 NetrDfsRemoveStdRoot (Opnum 13)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dfsnm/e9da023d-554a-49bc-837a-69f22d59fd18)
6
+ class NetrDfsRemoveStdRootRequest < BinData::Record
7
+ attr_reader :opnum
8
+
9
+ endian :little
10
+
11
+ ndr_conf_var_wide_stringz :server_name
12
+ ndr_conf_var_wide_stringz :root_share
13
+ ndr_uint32 :api_flags
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = NETR_DFS_REMOVE_STD_ROOT
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Dfsnm
4
+
5
+ # [3.1.4.4.2 NetrDfsRemoveStdRoot (Opnum 13)](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-dfsnm/e9da023d-554a-49bc-837a-69f22d59fd18)
6
+ class NetrDfsRemoveStdRootResponse < BinData::Record
7
+ attr_reader :opnum
8
+
9
+ endian :little
10
+
11
+ ndr_uint32 :error_status
12
+
13
+ def initialize_instance
14
+ super
15
+ @opnum = NETR_DFS_REMOVE_STD_ROOT
16
+ end
17
+ end
18
+
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,84 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Dfsnm
4
+
5
+ UUID = '4fc742e0-4a10-11cf-8273-00aa004ae673'
6
+ VER_MAJOR = 3
7
+ VER_MINOR = 0
8
+
9
+ # Operation numbers
10
+ NETR_DFS_ADD_STD_ROOT = 0x000c
11
+ NETR_DFS_REMOVE_STD_ROOT = 0x000d
12
+
13
+ require 'ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_request'
14
+ require 'ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_response'
15
+ require 'ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_request'
16
+ require 'ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_response'
17
+
18
+ # Create a new stand-alone DFS namespace.
19
+ #
20
+ # @param server_name [String] The host name of the DFS root target.
21
+ # @param root_share [String] The DFS root target share name.
22
+ # @param comment [String] A comment associated with the DFS namespace.
23
+ # @return nothing is returned on success
24
+ # @raise [RubySMB::Dcerpc::Error::InvalidPacket] if the response is not a
25
+ # NetrDfsAddStdRootResponse packet
26
+ # @raise [RubySMB::Dcerpc::Error::DfsnmError] if the response error status
27
+ # is not ERROR_SUCCESS
28
+ def netr_dfs_add_std_root(server_name, root_share, comment: '')
29
+ netr_dfs_add_std_root_request = NetrDfsAddStdRootRequest.new(
30
+ server_name: server_name,
31
+ root_share: root_share,
32
+ comment: comment
33
+ )
34
+ response = dcerpc_request(netr_dfs_add_std_root_request)
35
+ begin
36
+ netr_dfs_add_std_root_response = NetrDfsAddStdRootResponse.read(response)
37
+ rescue IOError
38
+ raise RubySMB::Dcerpc::Error::InvalidPacket, 'Error reading NetrDfsAddStdRootResponse'
39
+ end
40
+ unless netr_dfs_add_std_root_response.error_status == WindowsError::Win32::ERROR_SUCCESS
41
+ status_code = WindowsError::Win32.find_by_retval(netr_dfs_add_std_root_response.error_status.value).first
42
+ raise RubySMB::Dcerpc::Error::DfsnmError.new(
43
+ "Error returned with netr_dfs_add_std_root: #{status_code}",
44
+ status_code: status_code
45
+ )
46
+ end
47
+
48
+ nil
49
+ end
50
+
51
+ # Delete the specified stand-alone DFS namespace.
52
+ #
53
+ # @param server_name [String] The host name of the DFS root target.
54
+ # @param root_share [String] The DFS root target share name.
55
+ # @return nothing is returned on success
56
+ # @raise [RubySMB::Dcerpc::Error::InvalidPacket] if the response is not a
57
+ # NetrDfsRemoveStdRootResponse packet
58
+ # @raise [RubySMB::Dcerpc::Error::DfsnmError] if the response error status
59
+ # is not ERROR_SUCCESS
60
+ def netr_dfs_remove_std_root(server_name, root_share)
61
+ netr_dfs_remove_std_root_request = NetrDfsRemoveStdRootRequest.new(
62
+ server_name: server_name,
63
+ root_share: root_share
64
+ )
65
+ response = dcerpc_request(netr_dfs_remove_std_root_request)
66
+ begin
67
+ netr_dfs_remove_std_root_response = NetrDfsRemoveStdRootResponse.read(response)
68
+ rescue IOError
69
+ raise RubySMB::Dcerpc::Error::InvalidPacket, 'Error reading NetrDfsRemoveStdRootResponse'
70
+ end
71
+ unless netr_dfs_remove_std_root_response.error_status == WindowsError::Win32::ERROR_SUCCESS
72
+ status_code = WindowsError::Win32.find_by_retval(netr_dfs_remove_std_root_response.error_status.value).first
73
+ raise RubySMB::Dcerpc::Error::DfsnmError.new(
74
+ "Error returned with netr_dfs_remove_std_root: #{status_code}",
75
+ status_code: status_code
76
+ )
77
+ end
78
+
79
+ nil
80
+ end
81
+
82
+ end
83
+ end
84
+ end
@@ -46,6 +46,17 @@ module RubySMB
46
46
 
47
47
  # Raised when an error is returned during a Epm operation
48
48
  class EpmError < DcerpcError; end
49
+
50
+ # Raised when an error is returned during a Dfsnm operation
51
+ class DfsnmError < DcerpcError
52
+ include RubySMB::Error::UnexpectedStatusCode::Mixin
53
+
54
+ def initialize(msg, status_code: nil)
55
+ self.status_code = status_code unless status_code.nil?
56
+
57
+ super(msg)
58
+ end
59
+ end
49
60
  end
50
61
  end
51
62
  end
@@ -90,7 +90,12 @@ module RubySMB
90
90
  drs_domain_controller_info_request Drsr::DRS_DOMAIN_CONTROLLER_INFO
91
91
  drs_crack_names_request Drsr::DRS_CRACK_NAMES
92
92
  drs_get_nc_changes_request Drsr::DRS_GET_NC_CHANGES
93
- string :default
93
+ string :default
94
+ end
95
+ choice 'Dfsnm', selection: -> { opnum } do
96
+ netr_dfs_add_std_root_request Dfsnm::NETR_DFS_ADD_STD_ROOT
97
+ netr_dfs_remove_std_root_request Dfsnm::NETR_DFS_REMOVE_STD_ROOT
98
+ string :default
94
99
  end
95
100
  string :default
96
101
  end
@@ -46,6 +46,7 @@ module RubySMB
46
46
  require 'ruby_smb/dcerpc/epm'
47
47
  require 'ruby_smb/dcerpc/drsr'
48
48
  require 'ruby_smb/dcerpc/sec_trailer'
49
+ require 'ruby_smb/dcerpc/dfsnm'
49
50
  require 'ruby_smb/dcerpc/request'
50
51
  require 'ruby_smb/dcerpc/response'
51
52
  require 'ruby_smb/dcerpc/rpc_auth3'
@@ -70,20 +70,30 @@ module RubySMB
70
70
 
71
71
  # Raised when a response packet has a NTStatus code that was unexpected.
72
72
  class UnexpectedStatusCode < RubySMBError
73
- attr_reader :status_code
73
+ module Mixin
74
+ attr_reader :status_code
74
75
 
75
- def initialize(status_code)
76
- case status_code
77
- when WindowsError::ErrorCode
78
- @status_code = status_code
79
- when Integer
80
- @status_code = WindowsError::NTStatus.find_by_retval(status_code).first
81
- if @status_code.nil?
82
- @status_code = WindowsError::ErrorCode.new("0x#{status_code.to_s(16)}", status_code, "Unknown 0x#{status_code.to_s(16)}")
76
+ private
77
+
78
+ def status_code=(status_code)
79
+ case status_code
80
+ when WindowsError::ErrorCode
81
+ @status_code = status_code
82
+ when Integer
83
+ @status_code = WindowsError::NTStatus.find_by_retval(status_code).first
84
+ if @status_code.nil?
85
+ @status_code = WindowsError::ErrorCode.new("0x#{status_code.to_s(16).rjust(8, '0')}", status_code, "Unknown status: 0x#{status_code.to_s(16)}")
86
+ end
87
+ else
88
+ raise ArgumentError, "Status code must be a WindowsError::ErrorCode or an Integer, got #{status_code.class}"
83
89
  end
84
- else
85
- raise ArgumentError, "Status code must be a WindowsError::ErrorCode or an Integer, got #{status_code.class}"
86
90
  end
91
+ end
92
+
93
+ include Mixin
94
+
95
+ def initialize(status_code)
96
+ self.status_code = status_code
87
97
  super
88
98
  end
89
99
 
@@ -28,6 +28,8 @@ module RubySMB
28
28
  extend RubySMB::Dcerpc::Samr
29
29
  when 'wkssvc', '\\wkssvc'
30
30
  extend RubySMB::Dcerpc::Wkssvc
31
+ when 'netdfs', '\\netdfs'
32
+ extend RubySMB::Dcerpc::Dfsnm
31
33
  end
32
34
  super(tree: tree, response: response, name: name)
33
35
  end
@@ -25,6 +25,8 @@ module RubySMB
25
25
  extend RubySMB::Dcerpc::Samr
26
26
  when 'wkssvc', '\\wkssvc'
27
27
  extend RubySMB::Dcerpc::Wkssvc
28
+ when 'netdfs', '\\netdfs'
29
+ extend RubySMB::Dcerpc::Dfsnm
28
30
  end
29
31
  super(tree: tree, response: response, name: name)
30
32
  end
@@ -1,3 +1,3 @@
1
1
  module RubySMB
2
- VERSION = '3.1.5'.freeze
2
+ VERSION = '3.1.6'.freeze
3
3
  end
@@ -0,0 +1,57 @@
1
+ RSpec.describe RubySMB::Dcerpc::Dfsnm::NetrDfsAddStdRootRequest do
2
+ subject(:packet) { described_class.new }
3
+
4
+ it { is_expected.to respond_to :server_name }
5
+ it { is_expected.to respond_to :root_share }
6
+ it { is_expected.to respond_to :comment }
7
+ it { is_expected.to respond_to :api_flags }
8
+ it { is_expected.to respond_to :opnum }
9
+
10
+ it 'is little endian' do
11
+ expect(described_class.fields.instance_variable_get(:@hints)[:endian]).to eq :little
12
+ end
13
+ it 'is a BinData::Record' do
14
+ expect(packet).to be_a(BinData::Record)
15
+ end
16
+ describe '#server_name' do
17
+ it 'is a NdrConfVarWideStringz structure' do
18
+ expect(packet.server_name).to be_a RubySMB::Dcerpc::Ndr::NdrConfVarWideStringz
19
+ end
20
+ end
21
+ describe '#root_share' do
22
+ it 'is a NdrConfVarWideStringz structure' do
23
+ expect(packet.root_share).to be_a RubySMB::Dcerpc::Ndr::NdrConfVarWideStringz
24
+ end
25
+ end
26
+ describe '#comment' do
27
+ it 'is a NdrConfVarWideStringz structure' do
28
+ expect(packet.comment).to be_a RubySMB::Dcerpc::Ndr::NdrConfVarWideStringz
29
+ end
30
+ end
31
+ describe '#api_flags' do
32
+ it 'is a NdrUint32 structure' do
33
+ expect(packet.api_flags).to be_a RubySMB::Dcerpc::Ndr::NdrUint32
34
+ end
35
+ end
36
+ describe '#initialize_instance' do
37
+ it 'sets #opnum to NETR_DFS_ADD_STD_ROOT constant' do
38
+ expect(packet.opnum).to eq(RubySMB::Dcerpc::Dfsnm::NETR_DFS_ADD_STD_ROOT)
39
+ end
40
+ end
41
+ it 'reads itself' do
42
+ new_packet = described_class.new({
43
+ server_name: 'serverName',
44
+ root_share: 'rootShare',
45
+ comment: 'comment'
46
+ })
47
+ expected_output = {
48
+ server_name: 'serverName'.encode('utf-16le'),
49
+ root_share: 'rootShare'.encode('utf-16le'),
50
+ comment: 'comment'.encode('utf-16le'),
51
+ api_flags: 0
52
+ }
53
+ expect(packet.read(new_packet.to_binary_s)).to eq(expected_output)
54
+ end
55
+ end
56
+
57
+
@@ -0,0 +1,34 @@
1
+ RSpec.describe RubySMB::Dcerpc::Dfsnm::NetrDfsAddStdRootResponse do
2
+ subject(:packet) { described_class.new }
3
+
4
+ it { is_expected.to respond_to :error_status }
5
+ it { is_expected.to respond_to :opnum }
6
+
7
+ it 'is little endian' do
8
+ expect(described_class.fields.instance_variable_get(:@hints)[:endian]).to eq :little
9
+ end
10
+ it 'is a BinData::Record' do
11
+ expect(packet).to be_a(BinData::Record)
12
+ end
13
+ describe '#error_status' do
14
+ it 'is a NdrUint32 structure' do
15
+ expect(packet.error_status).to be_a RubySMB::Dcerpc::Ndr::NdrUint32
16
+ end
17
+ end
18
+ describe '#initialize_instance' do
19
+ it 'sets #opnum to NETR_DFS_ADD_STD_ROOT constant' do
20
+ expect(packet.opnum).to eq(RubySMB::Dcerpc::Dfsnm::NETR_DFS_ADD_STD_ROOT)
21
+ end
22
+ end
23
+ it 'reads itself' do
24
+ new_packet = described_class.new({
25
+ error_status: 0
26
+ })
27
+ expected_output = {
28
+ error_status: 0
29
+ }
30
+ expect(packet.read(new_packet.to_binary_s)).to eq(expected_output)
31
+ end
32
+ end
33
+
34
+
@@ -0,0 +1,49 @@
1
+ RSpec.describe RubySMB::Dcerpc::Dfsnm::NetrDfsRemoveStdRootRequest do
2
+ subject(:packet) { described_class.new }
3
+
4
+ it { is_expected.to respond_to :server_name }
5
+ it { is_expected.to respond_to :root_share }
6
+ it { is_expected.to respond_to :api_flags }
7
+ it { is_expected.to respond_to :opnum }
8
+
9
+ it 'is little endian' do
10
+ expect(described_class.fields.instance_variable_get(:@hints)[:endian]).to eq :little
11
+ end
12
+ it 'is a BinData::Record' do
13
+ expect(packet).to be_a(BinData::Record)
14
+ end
15
+ describe '#server_name' do
16
+ it 'is a NdrConfVarWideStringz structure' do
17
+ expect(packet.server_name).to be_a RubySMB::Dcerpc::Ndr::NdrConfVarWideStringz
18
+ end
19
+ end
20
+ describe '#root_share' do
21
+ it 'is a NdrConfVarWideStringz structure' do
22
+ expect(packet.root_share).to be_a RubySMB::Dcerpc::Ndr::NdrConfVarWideStringz
23
+ end
24
+ end
25
+ describe '#api_flags' do
26
+ it 'is a NdrUint32 structure' do
27
+ expect(packet.api_flags).to be_a RubySMB::Dcerpc::Ndr::NdrUint32
28
+ end
29
+ end
30
+ describe '#initialize_instance' do
31
+ it 'sets #opnum to NETR_DFS_REMOVE_STD_ROOT constant' do
32
+ expect(packet.opnum).to eq(RubySMB::Dcerpc::Dfsnm::NETR_DFS_REMOVE_STD_ROOT)
33
+ end
34
+ end
35
+ it 'reads itself' do
36
+ new_packet = described_class.new({
37
+ server_name: 'serverName',
38
+ root_share: 'rootShare',
39
+ })
40
+ expected_output = {
41
+ server_name: 'serverName'.encode('utf-16le'),
42
+ root_share: 'rootShare'.encode('utf-16le'),
43
+ api_flags: 0
44
+ }
45
+ expect(packet.read(new_packet.to_binary_s)).to eq(expected_output)
46
+ end
47
+ end
48
+
49
+
@@ -0,0 +1,34 @@
1
+ RSpec.describe RubySMB::Dcerpc::Dfsnm::NetrDfsRemoveStdRootResponse do
2
+ subject(:packet) { described_class.new }
3
+
4
+ it { is_expected.to respond_to :error_status }
5
+ it { is_expected.to respond_to :opnum }
6
+
7
+ it 'is little endian' do
8
+ expect(described_class.fields.instance_variable_get(:@hints)[:endian]).to eq :little
9
+ end
10
+ it 'is a BinData::Record' do
11
+ expect(packet).to be_a(BinData::Record)
12
+ end
13
+ describe '#error_status' do
14
+ it 'is a NdrUint32 structure' do
15
+ expect(packet.error_status).to be_a RubySMB::Dcerpc::Ndr::NdrUint32
16
+ end
17
+ end
18
+ describe '#initialize_instance' do
19
+ it 'sets #opnum to NETR_DFS_REMOVE_STD_ROOT constant' do
20
+ expect(packet.opnum).to eq(RubySMB::Dcerpc::Dfsnm::NETR_DFS_REMOVE_STD_ROOT)
21
+ end
22
+ end
23
+ it 'reads itself' do
24
+ new_packet = described_class.new({
25
+ error_status: 0
26
+ })
27
+ expected_output = {
28
+ error_status: 0
29
+ }
30
+ expect(packet.read(new_packet.to_binary_s)).to eq(expected_output)
31
+ end
32
+ end
33
+
34
+
data.tar.gz.sig CHANGED
@@ -1,4 +1,2 @@
1
-
2
- ���\a�J:G���/p�~F���*
3
- m?I�)�u�/LZ���o���%V�\������p��g�%�ߜ��G_��7�Si�/A��,"Sܳ
4
- oz�ǣ^�$�a��%���2���*MxWX�|i9㦔`L/FCp����ߤ�[
1
+
2
+ �$�f�O��(���t0�
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.1.5
4
+ version: 3.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Metasploit Hackers
@@ -97,7 +97,7 @@ cert_chain:
97
97
  EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
98
98
  9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
99
99
  -----END CERTIFICATE-----
100
- date: 2022-06-29 00:00:00.000000000 Z
100
+ date: 2022-07-06 00:00:00.000000000 Z
101
101
  dependencies:
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: redcarpet
@@ -298,6 +298,11 @@ files:
298
298
  - lib/ruby_smb/dcerpc/bind.rb
299
299
  - lib/ruby_smb/dcerpc/bind_ack.rb
300
300
  - lib/ruby_smb/dcerpc/client.rb
301
+ - lib/ruby_smb/dcerpc/dfsnm.rb
302
+ - lib/ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_request.rb
303
+ - lib/ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_response.rb
304
+ - lib/ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_request.rb
305
+ - lib/ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_response.rb
301
306
  - lib/ruby_smb/dcerpc/drsr.rb
302
307
  - lib/ruby_smb/dcerpc/drsr/drs_bind_request.rb
303
308
  - lib/ruby_smb/dcerpc/drsr/drs_bind_response.rb
@@ -672,6 +677,10 @@ files:
672
677
  - spec/lib/ruby_smb/dcerpc/bind_ack_spec.rb
673
678
  - spec/lib/ruby_smb/dcerpc/bind_spec.rb
674
679
  - spec/lib/ruby_smb/dcerpc/client_spec.rb
680
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_request_spec.rb
681
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_response_spec.rb
682
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_request_spec.rb
683
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_response_spec.rb
675
684
  - spec/lib/ruby_smb/dcerpc/drsr_spec.rb
676
685
  - spec/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_encrypt_file_srv_request_spec.rb
677
686
  - spec/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_encrypt_file_srv_response_spec.rb
@@ -994,6 +1003,10 @@ test_files:
994
1003
  - spec/lib/ruby_smb/dcerpc/bind_ack_spec.rb
995
1004
  - spec/lib/ruby_smb/dcerpc/bind_spec.rb
996
1005
  - spec/lib/ruby_smb/dcerpc/client_spec.rb
1006
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_request_spec.rb
1007
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_add_std_root_response_spec.rb
1008
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_request_spec.rb
1009
+ - spec/lib/ruby_smb/dcerpc/dfsnm/netr_dfs_remove_std_root_response_spec.rb
997
1010
  - spec/lib/ruby_smb/dcerpc/drsr_spec.rb
998
1011
  - spec/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_encrypt_file_srv_request_spec.rb
999
1012
  - spec/lib/ruby_smb/dcerpc/encrypting_file_system/efs_rpc_encrypt_file_srv_response_spec.rb
metadata.gz.sig CHANGED
Binary file