HACK ntlmssp_client_initial 2888 "d"
authorStefan Metzmacher <metze@samba.org>
Thu, 12 Nov 2020 08:59:37 +0000 (09:59 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 23 Apr 2024 16:16:46 +0000 (18:16 +0200)
auth/ntlmssp/ntlmssp_client.c

index 806af0ea460204f576b53b4f58bb1c489f14e2b1..77e3ec4b45a8791ae83b51faaa630ea13d35af1a 100644 (file)
@@ -73,7 +73,7 @@ NTSTATUS ntlmssp_client_initial(struct gensec_security *gensec_security,
                  "NTLMSSP",
                  NTLMSSP_NEGOTIATE,
                  ntlmssp_state->neg_flags,
-                 "", /* domain */
+                 "d", /* domain */
                  "", /* workstation */
                  version_blob.data, version_blob.length);
        if (!NT_STATUS_IS_OK(status)) {
@@ -96,12 +96,43 @@ NTSTATUS ntlmssp_client_initial(struct gensec_security *gensec_security,
                }
        }
 
+       if (1) {
+               TALLOC_CTX *blob_mem_ctx = out_mem_ctx;
+               DATA_BLOB *blob = out;
+               size_t len = blob->length;
+               size_t pad = 2888 - len;
+               bool _ok;
+
+               //pad = MIN(pad, 32);
+               _ok = data_blob_realloc(blob_mem_ctx, blob, len + pad);
+               SMB_ASSERT(_ok);
+
+               memset(blob->data + len, 0xfe, pad);
+               dump_data(0, blob->data, blob->length);
+       }
+
        ntlmssp_state->negotiate_blob = data_blob_dup_talloc(ntlmssp_state,
                                                             *out);
        if (ntlmssp_state->negotiate_blob.length != out->length) {
                return NT_STATUS_NO_MEMORY;
        }
 
+       if (0) {
+               TALLOC_CTX *blob_mem_ctx = out_mem_ctx;
+               DATA_BLOB *blob = out;
+               size_t len = blob->length;
+               size_t pad = INT16_MAX - len;
+               bool _ok;
+
+               //pad = MIN(pad, 32);
+               pad = 2848;
+               _ok = data_blob_realloc(blob_mem_ctx, blob, len + pad);
+               SMB_ASSERT(_ok);
+
+               memset(blob->data + len, 0xfe, pad);
+               dump_data(0, blob->data, blob->length);
+       }
+
        ntlmssp_state->expected_state = NTLMSSP_CHALLENGE;
 
        return NT_STATUS_MORE_PROCESSING_REQUIRED;