ruby_smb 3.3.7 → 3.3.8

Sign up to get free protection for your applications and to get access to all the features.
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