Exemple #1
0
 def test_create_message(self):
     message = SMB2PreauthIntegrityCapabilities()
     message['hash_algorithms'] = [HashAlgorithms.SHA_512]
     message['salt'] = b"\x01" * 16
     expected = b"\x01\x00" \
                b"\x10\x00" \
                b"\x01\x00" \
                b"\x01\x01\x01\x01\x01\x01\x01\x01" \
                b"\x01\x01\x01\x01\x01\x01\x01\x01"
     actual = message.pack()
     assert len(message) == 22
     assert actual == expected
Exemple #2
0
 def test_parse_message(self):
     actual = SMB2PreauthIntegrityCapabilities()
     data = b"\x01\x00" \
            b"\x10\x00" \
            b"\x01\x00" \
            b"\x01\x01\x01\x01\x01\x01\x01\x01" \
            b"\x01\x01\x01\x01\x01\x01\x01\x01"
     actual.unpack(data)
     assert len(actual) == 22
     assert actual['hash_algorithm_count'].get_value() == 1
     assert actual['salt_length'].get_value() == 16
     assert actual['hash_algorithms'].get_value() == [
         HashAlgorithms.SHA_512
     ]
     assert actual['salt'].get_value() == b"\x01" * 16
Exemple #3
0
    def test_create_message_3_1_1(self):
        message = SMB2NegotiateResponse()
        message['security_mode'] = SecurityMode.SMB2_NEGOTIATE_SIGNING_ENABLED
        message['dialect_revision'] = Dialects.SMB_3_1_1
        message['server_guid'] = uuid.UUID(bytes=b"\x11" * 16)
        message['capabilities'] = 39
        message['max_transact_size'] = 8388608
        message['max_read_size'] = 8388608
        message['max_write_size'] = 8388608
        message['system_time'] = datetime(year=2017,
                                          month=11,
                                          day=15,
                                          hour=11,
                                          minute=32,
                                          second=12,
                                          microsecond=1616)
        message['server_start_time'] = datetime(year=2017,
                                                month=11,
                                                day=15,
                                                hour=11,
                                                minute=27,
                                                second=26,
                                                microsecond=349606)
        message['buffer'] = b"\x01\x02\x03\x04\x05\x06\x07\x08" \
                            b"\x09\x10"

        int_cap = SMB2PreauthIntegrityCapabilities()
        int_cap['hash_algorithms'] = [HashAlgorithms.SHA_512]
        int_cap['salt'] = b"\x22" * 32

        negotiate_context = SMB2NegotiateContextRequest()
        negotiate_context['context_type'] = \
            NegotiateContextType.SMB2_PREAUTH_INTEGRITY_CAPABILITIES
        negotiate_context['data'] = int_cap

        message['negotiate_context_list'] = [negotiate_context]
        expected = b"\x41\x00" \
                   b"\x01\x00" \
                   b"\x11\x03" \
                   b"\x01\x00" \
                   b"\x11\x11\x11\x11\x11\x11\x11\x11" \
                   b"\x11\x11\x11\x11\x11\x11\x11\x11" \
                   b"\x27\x00\x00\x00" \
                   b"\x00\x00\x80\x00" \
                   b"\x00\x00\x80\x00" \
                   b"\x00\x00\x80\x00" \
                   b"\x20\xc5\x0d\x61\x05\x5e\xd3\x01" \
                   b"\x7c\xbb\xca\xb6\x04\x5e\xd3\x01" \
                   b"\x80\x00" \
                   b"\x0a\x00" \
                   b"\x90\x00\x00\x00" \
                   b"\x01\x02\x03\x04\x05\x06\x07\x08" \
                   b"\x09\x10" \
                   b"\x00\x00\x00\x00\x00\x00" \
                   b"\x01\x00\x26\x00\x00\x00\x00\x00" \
                   b"\x01\x00\x20\x00\x01\x00\x22\x22" \
                   b"\x22\x22\x22\x22\x22\x22\x22\x22" \
                   b"\x22\x22\x22\x22\x22\x22\x22\x22" \
                   b"\x22\x22\x22\x22\x22\x22\x22\x22" \
                   b"\x22\x22\x22\x22\x22\x22" \
                   b"\x00\x00"
        actual = message.pack()
        assert len(message) == 128
        assert actual == expected