ruby_smb 3.3.7 → 3.3.8

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.
Files changed (35) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +14 -0
  4. data/lib/ruby_smb/dcerpc/error.rb +3 -0
  5. data/lib/ruby_smb/dcerpc/lsarpc/lsar_close_handle_request.rb +22 -0
  6. data/lib/ruby_smb/dcerpc/lsarpc/lsar_close_handle_response.rb +23 -0
  7. data/lib/ruby_smb/dcerpc/lsarpc/lsar_lookup_sids_request.rb +26 -0
  8. data/lib/ruby_smb/dcerpc/lsarpc/lsar_lookup_sids_response.rb +25 -0
  9. data/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy2_request.rb +24 -0
  10. data/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy2_response.rb +23 -0
  11. data/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy_request.rb +24 -0
  12. data/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy_response.rb +23 -0
  13. data/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy2_request.rb +23 -0
  14. data/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy2_response.rb +23 -0
  15. data/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy_request.rb +23 -0
  16. data/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy_response.rb +23 -0
  17. data/lib/ruby_smb/dcerpc/lsarpc.rb +634 -2
  18. data/lib/ruby_smb/dcerpc/request.rb +8 -0
  19. data/lib/ruby_smb/dcerpc/samr/rpc_sid.rb +1 -1
  20. data/lib/ruby_smb/version.rb +1 -1
  21. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_close_handle_request_spec.rb +40 -0
  22. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_close_handle_response_spec.rb +46 -0
  23. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_lookup_sids_request_spec.rb +69 -0
  24. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_lookup_sids_response_spec.rb +56 -0
  25. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy2_request_spec.rb +68 -0
  26. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy2_response_spec.rb +46 -0
  27. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy_request_spec.rb +68 -0
  28. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_open_policy_response_spec.rb +45 -0
  29. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy2_request_spec.rb +47 -0
  30. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy2_response_spec.rb +54 -0
  31. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy_request_spec.rb +46 -0
  32. data/spec/lib/ruby_smb/dcerpc/lsarpc/lsar_query_information_policy_response_spec.rb +53 -0
  33. data.tar.gz.sig +0 -0
  34. metadata +39 -3
  35. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 228afeef84601354373c132ceaa48341ed9f5f4bbab4e625c37d2f2d71864146
4
- data.tar.gz: 71512d0529ba352d0cc0ee7c27a27e03116d50f31801beed3fd04cb19e73f4ff
3
+ metadata.gz: 25bedacb57d3950d1ee6f3bbf731007c4e1f0bd2b8e3f38582679a5cd867793f
4
+ data.tar.gz: 1369c85136ad8336371ee55c1f8d90f0e85001b2c0d9e01e46b87e9b382ded16
5
5
  SHA512:
6
- metadata.gz: 3c7dede328c8d637b9088da518649deba6d758a1093e3591bb0cd9e2f4c458a5c5a82a37640aa14523586aa6e83b61d59d4fab21d3fa33739c47d687367cede3
7
- data.tar.gz: 6c72f0673379264f71a55935dec05f13f195614c9cd8d6f44935687ab028545e233496ad04f4157a07d1f5f74092fac8dd43f69713d2ac1aeeb7006a12c47e21
6
+ metadata.gz: 66d3566b68b64d0dc2ff8f58b373d8b6026b4980fcccb4b24c6263f59376373dadbc0b52c531ba5c212b255937d34dd281ce827eec111d0e7ef0b1a6dd5973f1
7
+ data.tar.gz: 8cee7210c06f8e603342b69706c2779f3e9fef2d46146505154b00bc91d6cc7dbad37735e5e6ae4ac6fac256b0ba6eaf3dda15185c161e992a12bab3b3a91bb1
checksums.yaml.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -286,6 +286,20 @@ Configure Wireshark in Debian-based systems to be able to capture traffic withou
286
286
  - `sudo python setup.py install`
287
287
  - `cd examples && python smbclient.py <USER>:<PASS>@<WINDOWS HOST IP>`
288
288
 
289
+ ### Microsoft Network Monitor
290
+
291
+ In situations where WireShark reports some requests/responses as malformed (not parsed correctly),
292
+ [Microsoft Network Monitor](https://www.microsoft.com/en-us/download/details.aspx?id=4865) can be used instead.
293
+ For example, the `LookupSids` response is not parsed correctly by WireShark, whereas it is by this tool.
294
+
295
+ This software can be installed on a Windows machine:
296
+
297
+ - Download & install the software
298
+ - Open it
299
+ - Click the `Start` button (or press F5) present at the top bar
300
+
301
+ The SMB requests will be present under `All Traffic -> My Traffic -> System (4)`.
302
+
289
303
  ## License
290
304
 
291
305
  `ruby_smb` is released under a 3-clause BSD license. See [LICENSE.txt](LICENSE.txt) for full text.
@@ -47,6 +47,9 @@ module RubySMB
47
47
  # Raised when an error is returned during a Epm operation
48
48
  class EpmError < DcerpcError; end
49
49
 
50
+ # Raised when an error is returned during an LSARPC operation
51
+ class LsarpcError < DcerpcError; end
52
+
50
53
  # Raised when an error is returned during a Dfsnm operation
51
54
  class DfsnmError < DcerpcError
52
55
  include RubySMB::Error::UnexpectedStatusCode::Mixin
@@ -0,0 +1,22 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarClose Request Packet as defined in
6
+ # [3.1.4.9.4 LsarClose (Opnum 0)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/99dd2d7a-b0fc-4c6d-837a-2b4d342383ae)
7
+ class LsarCloseHandleRequest < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+
14
+ def initialize_instance
15
+ super
16
+ @opnum = LSAR_CLOSE_HANDLE
17
+ end
18
+ end
19
+
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarClose Response Packet as defined in
6
+ # [3.1.4.9.4 LsarClose (Opnum 0)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/99dd2d7a-b0fc-4c6d-837a-2b4d342383ae)
7
+ class LsarCloseHandleResponse < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+ ndr_uint32 :error_status
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_CLOSE_HANDLE
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,26 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarLookupSids Request Packet as defined in
6
+ # [3.1.4.11 LsarLookupSids (Opnum 15)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsat/eb7ac899-e697-4883-93de-1e60c7720c02)
7
+ class LsarLookupSidsRequest < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+ lsapr_sid_enum_buffer :sid_enum_buffer
14
+ lsapr_translated_names :translated_names
15
+ ndr_uint16 :lookup_level
16
+ ndr_uint32 :mapped_count
17
+
18
+ def initialize_instance
19
+ super
20
+ @opnum = LSAR_LOOKUP_SIDS
21
+ end
22
+ end
23
+
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,25 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarLookupSids Response Packet as defined in
6
+ # [3.1.4.11 LsarLookupSids (Opnum 15)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsat/eb7ac899-e697-4883-93de-1e60c7720c02)
7
+ class LsarLookupSidsResponse < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_referenced_domain_list_ptr :referenced_domains
13
+ lsapr_translated_names :translated_names
14
+ ndr_uint32 :mapped_count
15
+ ndr_uint32 :error_status
16
+
17
+ def initialize_instance
18
+ super
19
+ @opnum = LSAR_LOOKUP_SIDS
20
+ end
21
+ end
22
+
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,24 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarOpenPolicy2 Request Packet as defined in
6
+ # [3.1.4.4.1 LsarOpenPolicy2 (Opnum 44)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/9456a963-7c21-4710-af77-d0a2f5a72d6b)
7
+ class LsarOpenPolicy2Request < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ ndr_wide_stringz_ptr :system_name
13
+ lsapr_object_attributes :object_attributes
14
+ ndr_uint32 :access_mask
15
+
16
+ def initialize_instance
17
+ super
18
+ @opnum = LSAR_OPEN_POLICY2
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarOpenPolicy2 Response Packet as defined in
6
+ # [3.1.4.4.1 LsarOpenPolicy2 (Opnum 44)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/9456a963-7c21-4710-af77-d0a2f5a72d6b)
7
+ class LsarOpenPolicy2Response < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+ ndr_uint32 :error_status
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_OPEN_POLICY2
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,24 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarOpenPolicy Request Packet as defined in
6
+ # [3.1.4.4.2 LsarOpenPolicy (Opnum 6)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/2a482ccf-1f89-4693-8594-855ff738ae8a)
7
+ class LsarOpenPolicyRequest < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ ndr_wide_string_ptr :system_name
13
+ lsapr_object_attributes :object_attributes
14
+ ndr_uint32 :access_mask
15
+
16
+ def initialize_instance
17
+ super
18
+ @opnum = LSAR_OPEN_POLICY
19
+ end
20
+ end
21
+
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarOpenPolicy Response Packet as defined in
6
+ # [3.1.4.4.2 LsarOpenPolicy (Opnum 6)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/2a482ccf-1f89-4693-8594-855ff738ae8a)
7
+ class LsarOpenPolicyResponse < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+ ndr_uint32 :error_status
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_OPEN_POLICY
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarQueryInformationPolicy2 Request Packet as defined in
6
+ # [3.1.4.4.4 LsarQueryInformationPolicy2 (Opnum 46)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/516f503c-0230-489d-b012-e650b46b66a2)
7
+ class LsarQueryInformationPolicy2Request < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+ ndr_uint32 :information_class
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_QUERY_INFORMATION_POLICY2
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarQueryInformationPolicy2 Response Packet as defined in
6
+ # [3.1.4.4.4 LsarQueryInformationPolicy2 (Opnum 46)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/516f503c-0230-489d-b012-e650b46b66a2)
7
+ class LsarQueryInformationPolicy2Response < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_policy_information_ptr :policy_information
13
+ ndr_uint32 :error_status
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_QUERY_INFORMATION_POLICY2
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarQueryInformationPolicy Request Packet as defined in
6
+ # [3.1.4.4.4 LsarQueryInformationPolicy (Opnum 7)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/3564ba70-84ea-4f04-a9dc-dede9f96a8bf)
7
+ class LsarQueryInformationPolicyRequest < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_handle :policy_handle
13
+ ndr_uint32 :information_class
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_QUERY_INFORMATION_POLICY
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ module RubySMB
2
+ module Dcerpc
3
+ module Lsarpc
4
+
5
+ # This class represents a LsarQueryInformationPolicy Response Packet as defined in
6
+ # [3.1.4.4.4 LsarQueryInformationPolicy (Opnum 7)](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-lsad/3564ba70-84ea-4f04-a9dc-dede9f96a8bf)
7
+ class LsarQueryInformationPolicyResponse < BinData::Record
8
+ attr_reader :opnum
9
+
10
+ endian :little
11
+
12
+ lsapr_policy_information_ptr :policy_information
13
+ ndr_uint32 :error_status
14
+
15
+ def initialize_instance
16
+ super
17
+ @opnum = LSAR_QUERY_INFORMATION_POLICY
18
+ end
19
+ end
20
+
21
+ end
22
+ end
23
+ end