Fact-checked by Grok 2 weeks ago

NTLMSSP

NTLMSSP, or NT LAN Manager Security Support Provider, is a support provider in Windows operating systems that implements the () to verify user and computer identities without transmitting passwords over the network. It operates as part of the Security Support Provider Interface (SSPI), enabling applications, particularly those using (DCOM), to perform and session in local and remote contexts. Developed as a successor to the earlier authentication protocols, NTLMSSP was introduced with and supported through early 2020s Windows versions, including in workgroup and domain environments where is unavailable or incompatible, though NTLMv1 has been removed in version 24H2 and 2025, with NTLMv2 deprecated but still functional as a fallback. The protocol employs a challenge-response mechanism involving three primary messages: a message from the client specifying capabilities, a challenge message from the server with a random , and an message from the client proving knowledge of the user's credentials through hashed responses. NTLMSSP supports two main versions of the NTLM protocol: NTLMv1, the original implementation using weaker DES-based hashing, and NTLMv2, introduced in SP4, which enhances security with stronger and HMAC-MD5 hashing, session keys for integrity and confidentiality, and resistance to replay attacks. As of 2025 and version 24H2, NTLMv1 is no longer supported. While it provides features like for impersonation in multi-tier applications and integration with for domain , NTLMSSP is considered a legacy protocol due to vulnerabilities such as susceptibility to pass-the-hash attacks, offline cracking, and relay exploits. In modern Windows deployments, NTLMSSP serves as a fallback for scenarios like local logons, non-domain-joined systems, and legacy applications, but Microsoft recommends minimizing its use in favor of Kerberos for better security and scalability. Administrative controls, such as network-level authentication restrictions and auditing via Event ID 4624, allow organizations to monitor and reduce NTLM traffic to mitigate risks.

History and Development

Origins in LAN Manager

The (LANMAN) authentication protocol originated in the late 1980s as a core component of the network operating system, jointly developed by and . Released around 1987, it provided basic network authentication for early client-server environments using the (SMB) protocol. LANMAN employed a straightforward challenge-response mechanism: the server issued an 8-byte random challenge, and the client responded by encrypting it with a DES-based hash derived from the user's password, thereby avoiding the transmission of plaintext credentials across the network. This protocol addressed fundamental needs in pre-Windows NT networking but suffered from inherent security limitations, particularly its weak password hashing process. The LANMAN hash converted passwords to uppercase, truncated them effectively to characters (padded if shorter), and applied encryption to two 7-byte halves using fixed keys, making it vulnerable to brute-force attacks even on modest . To mitigate these flaws and support more robust security in environments, Microsoft transitioned away from LANMAN with the release of in July 1993. was introduced as its direct successor, featuring stronger cryptographic elements like MD4-based hashing for improved resistance to cracking while maintaining compatibility with domain and local scenarios. NTLM's initial implementation came in the form of NTLMSSP, the NT LAN Manager Security Support Provider, which served as the protocol's integration layer within the newly introduced Security Support Provider Interface (SSPI) framework in Windows NT 3.1. SSPI provided a standardized for applications to access various authentication packages without direct protocol dependencies, enabling NTLMSSP to facilitate secure communications in distributed systems like and RPC. This design ensured that NTLM supported both standalone (local) and centralized (domain-based) authentication modes, all while prohibiting plaintext password exposure to enhance overall .

Evolution to NTLM Versions

The NTLM authentication protocol, implemented through the NTLM Security Support Provider (NTLMSSP), first appeared in its version 1 (NTLMv1) form with the release of in 1993. This version marked a significant advancement over the earlier (LM) protocol by replacing LM's reliance on the weak DES-based hashing with a more robust MD4-based NT hash for password storage and challenge-response computations, thereby addressing vulnerabilities such as attacks on short passwords. NTLMv2 was introduced shortly thereafter in Service Pack 4 (SP4) in 1998 and became natively supported in , enhancing security through the adoption of HMAC-MD5 for generating authentication responses instead of simple encryption. This update incorporated additional protections, including client-generated timestamps and nonces in the challenge-response exchange, which mitigated replay attacks by ensuring responses were time-bound and unique to each session. These refinements strengthened the protocol against offline cracking and man-in-the-middle threats while maintaining . Subsequent updates integrated NTLM more deeply into Microsoft's ecosystem, with Windows 2000 (released in 2000) incorporating it as a fallback authentication mechanism alongside the new Kerberos protocol in Active Directory environments, allowing seamless domain-based verification for legacy systems. By Windows Vista in 2006, Microsoft implemented enforcement policies that disabled LM authentication and NTLMv1 by default—stopping the generation of LM hashes and prioritizing NTLMv2 or stronger alternatives—through configurable LAN Manager compatibility levels in group policy, reflecting growing awareness of legacy vulnerabilities. As an , NTLMSSP evolved to encapsulate both NTLMv1 and NTLMv2 support within the Security Support Provider Interface (SSPI), enabling dynamic negotiation during handshakes. This adaptation is facilitated by flags in the initial Negotiate message, such as NTLMSSP_NEGOTIATE_NTLM and NTLMSSP_NEGOTIATE_VERSION, which allow clients and servers to signal preferred versions and capabilities, ensuring interoperability across mixed environments while favoring the more secure NTLMv2 where possible.

Technical Overview

Role in Security Support Provider Interface

The Security Support Provider Interface (SSPI) serves as a standardized framework in the Windows operating system for implementing security packages, referred to as Security Support Providers (SSPs), which encapsulate , , and mechanisms over existing communication channels without altering the underlying transport protocols. This architecture, aligned with the Generic Security Service Application Program Interface (GSS-API) as defined in RFC 2743 and RFC 2744, allows applications to select and negotiate security providers dynamically, returning opaque binary tokens for secure exchanges. Within this framework, NTLMSSP functions as an SSP that leverages the protocol to provide challenge-response , supporting local and cross-computer scenarios while integrating seamlessly with SSPI's pluggable design. NTLMSSP is specifically identified by the constant SECPKG_NAME_NTLM and is loaded from the (DLL) msv1_0.dll located in the Windows system directory. Developers invoke NTLMSSP through core SSPI functions, such as AcquireCredentialsHandle, which retrieves a to the client's or server's credentials (e.g., for outbound or inbound ), and InitializeSecurityContext, which initiates the client-side context by generating initial authentication tokens based on those credentials. These APIs enable the establishment of a context in multiple steps, where subsequent calls to InitializeSecurityContext refine the context using responses from the peer, ultimately producing tokens that encapsulate proof of identity without exposing plaintext passwords. In higher-level protocols such as (RPC) and (SMB), NTLMSSP integrates as the mechanism—often via the authentication service RPC_C_AUTHN_WINNT—to verify user identities using challenge-response tokens derived from hashed credentials, thereby avoiding direct transmission across the network. This token-based approach allows servers to impersonate clients locally through functions like CoImpersonateClient, restricting access to local resources only since credential material is not shared for delegation. For example, in SMB , NTLMSSP tokens facilitate secure session establishment, ensuring the client's domain and username are validated without risking credential exposure. Relative to other SSPs, NTLMSSP operates as a legacy fallback option, invoked by the Negotiate SSP when the preferred SSP (from kerberos.dll) cannot be used, such as in workgroup environments or legacy systems lacking domain trust. Unlike , which adheres to 4120 for ticket-based across trusted realms, NTLMSSP relies on simpler NTLMv1 or NTLMv2 variants for . It further distinguishes itself by accommodating both connection-oriented (e.g., TCP-based RPC) and connectionless (e.g., UDP-based) modes, offering versatility in diverse network configurations.

Core Components and Integration

NTLMSSP operates within the Security Support Provider Interface (SSPI) framework, utilizing credential handles obtained via the AcquireCredentialsHandle function to manage credentials for a security principal. These handles reference preexisting credentials, such as user passwords or domain accounts, enabling the initialization of security contexts through functions like InitializeSecurityContext on the and AcceptSecurityContext on the side. Security contexts represent the established state of an authenticated session, including negotiated parameters like key sizes and signing requirements, and are incrementally built across multiple calls in NTLMSSP's state machine, which transitions from negotiation to challenge-response and phases. Token generation occurs during this process, producing output tokens—opaque binary blobs containing NTLM messages—that are exchanged to advance the context state until completion. Integration of NTLMSSP into higher-level protocols involves embedding these output tokens as opaque data structures directly into protocol messages, allowing seamless authentication without altering the underlying transport. In HTTP, NTLMSSP tokens are carried in the WWW-Authenticate response header from the server (e.g., "WWW-Authenticate: ") and the request header from the client, facilitating challenge-response exchanges over multiple HTTP requests. For , NTLMSSP integrates during the session setup phase, where tokens are included in SMB Session Setup Request and Response messages to authenticate the connection before file access operations. This embedding ensures that NTLMSSP remains protocol-agnostic, treating the tokens as black-box data that the application protocol forwards without interpretation. NTLMSSP supports , where the proves its identity to the client after the client , achieved through the inclusion of a and MIC (Message Integrity Code) in the final authentication message when negotiated. capabilities are provided via SSPI delegation levels—such as SecurityImpersonation (for impersonating the client on the local server), SecurityIdentification (for identifying without impersonation), and SecurityDelegation (for full to remote )—controlled through attributes in the security context and finalized with the CompleteAuthToken function to process post-authentication tokens. However, NTLMSSP's is constrained compared to , typically limited to impersonation within the same machine or simple delegation without full credential forwarding. NTLMSSP accommodates both connection-oriented and connectionless modes to suit different transport protocols. In connection-oriented mode, used with TCP-based protocols like HTTP and , the state machine maintains sequence integrity internally, assuming ordered delivery of messages. Conversely, connectionless mode, applicable to UDP-like protocols, operates statelessly per message, relying on external application-level sequencing to handle out-of-order arrivals or replays, with each exchange treated independently without persistent context. This dual-mode design allows NTLMSSP to support unreliable transports while preserving security properties like signing for integrity verification.

Protocol Mechanics

Authentication Message Flow

The NTLMSSP authentication process in connection-oriented follows a three-message challenge-response sequence between the client and server to establish a secure context without transmitting the user's password in clear text. The client initiates the exchange by sending an NTLM NEGOTIATE_MESSAGE, which includes flags indicating supported capabilities, such as version preferences and security features. The server responds with an NTLM CHALLENGE_MESSAGE, containing a server-generated 8-byte (challenge), target information, and the negotiated flags reflecting the agreed-upon features. Finally, the client sends an NTLM AUTHENTICATE_MESSAGE, providing the user's name, , and computed responses (proofs) derived from the challenge and credentials to prove possession of the password. Upon receiving the authenticate message, the server validates the proofs against its account database—using local validation for local accounts or forwarding to a for domain accounts—and either completes the security context or rejects the . Extended session security, which enhances message integrity and through signing and sealing, is negotiated via the NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY flag set in the client's negotiate message. If the server supports this flag, it includes it in the challenge message, enabling NTLM version 2 (NTLMv2) semantics for the session; otherwise, the authentication proceeds with NTLM version 1 (NTLMv1) semantics, which lack these enhanced protections. This flag-based negotiation ensures compatibility while prioritizing stronger security when possible, with post-authentication mechanisms applying only if extended session security is agreed upon. Error handling during the flow relies on Security Support Provider Interface (SSPI) status codes, such as STATUS_MORE_PROCESSING_REQUIRED, which the client or server returns to indicate that additional messages are needed to complete the multi-step authentication. If authentication fails at any step—due to invalid proofs, unsupported features, or configuration mismatches—the server may terminate the connection or return an error status specific to the application protocol, prompting the client to retry or abort. A common example of this flow occurs in (SMB) protocol for , where the client embeds the NTLM NEGOTIATE_MESSAGE in an initial SMB_COM_SESSION_SETUP_ANDX request to establish a session. The server replies with the NTLM CHALLENGE_MESSAGE in its SMB_COM_SESSION_SETUP_ANDX response, providing the challenge for the session. The client then sends the NTLM AUTHENTICATE_MESSAGE in a subsequent SMB_COM_SESSION_SETUP_ANDX request, enabling access to shares upon successful validation by the server. This integration ensures seamless authentication within SMB's session setup phase.

Message Structures and Fields

The NTLMSSP employs three primary types—Negotiate, , and Authenticate—to facilitate exchanges between clients and servers. These share a common binary format consisting of a fixed- header followed by message-specific fields and a variable- , with all multi-byte values encoded in little-endian byte order. The header always begins with an 8-byte ASCII "NTLMSSP\0" and a 4-byte message type indicator (0x00000001 for Negotiate, 0x00000002 for , and 0x00000003 for Authenticate). String fields in the Negotiate message use the OEM character set, while those in and Authenticate messages default to (UTF-16LE) if the NTLMSSP_NEGOTIATE_UNICODE is set. elements are referenced via and fields, allowing flexible ordering and padding for alignment (typically to 4-byte boundaries). The Negotiate message, sent by the client to initiate authentication, specifies supported protocol features and optional client identifiers. Its structure is as follows:
FieldSize (bytes)TypeDescription
Signature8Fixed ASCII string"NTLMSSP\0", identifying the message as NTLMSSP.
MessageType4Unsigned 32-bit integerSet to 0x00000001.
NegotiateFlags4Bitmask (NEGOTIATE structure)A 32-bit field indicating supported options, such as NTLMSSP_NEGOTIATE_UNICODE (0x00000001) for Unicode strings, NTLMSSP_NEGOTIATE_OEM (0x00000002) for OEM encoding, NTLMSSP_REQUEST_TARGET (0x00000004) to request the server's target name, and NTLMSSP_NEGOTIATE_VERSION (0x02000000) to include version information. Other flags include NTLMSSP_NEGOTIATE_NTLM (0x00000200) for NTLM authentication and NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY (0x00080000) for enhanced security.
DomainNameFields8Payload referenceContains DomainNameLen (2 bytes: length of domain name buffer, 0 if absent), DomainNameMaxLen (2 bytes: maximum length, typically equals Len and ignored on receipt), and DomainNameBufferOffset (4 bytes: offset to domain name in payload, hypothetical if absent). Present if NTLMSSP_NEGOTIATE_OEM_DOMAIN_SUPPLIED (0x00000010) is set; domain name is OEM-encoded.
WorkstationFields8Payload referenceContains WorkstationLen (2 bytes: length of workstation name buffer, 0 if absent), WorkstationMaxLen (2 bytes: maximum length, ignored on receipt), and WorkstationBufferOffset (4 bytes: offset to workstation name in payload). Present if NTLMSSP_NEGOTIATE_OEM_WORKSTATION_SUPPLIED (0x00000020) is set; workstation name is OEM-encoded.
Version8VERSION structureIncluded only if NTLMSSP_NEGOTIATE_VERSION is set; otherwise, all zeros.
PayloadVariableByte arrayOptional domain and workstation names, padded as needed; offsets must align properly if present.
The VERSION structure, when included, provides optional operating system details for and is ignored during processing:
FieldSize (bytes)TypeDescription
ProductMajorVersion1Unsigned 8-bit Major of the client or server OS (e.g., 5 for ).
ProductMinorVersion1Unsigned 8-bit Minor (e.g., 0 for ).
ProductBuild2Unsigned 16-bit Build number (e.g., 2195 for ).
Reserved3Zero bytesMust be zero when sent; ignored on receipt.
NTLMRevisionCurrent1Unsigned 8-bit NTLMSSP revision level (e.g., 0x0F for 15, corresponding to ).
This structure totals 8 bytes and is used identically across all message types when the version flag is negotiated. The Challenge message, issued by the server in response to Negotiate, provides a for response computation and echoes negotiated features along with server details. Its includes:
FieldSize (bytes)TypeDescription
Signature8Fixed ASCII string"NTLMSSP\0".
MessageType4Unsigned 32-bit integerSet to 0x00000002.
TargetNameFields8Payload referenceContains TargetNameLen (2 bytes: length of target name buffer), TargetNameMaxLen (2 bytes: equals Len, ignored), and TargetNameBufferOffset (4 bytes: offset to target name). Zero if NTLMSSP_REQUEST_TARGET not set; target name (e.g., domain or server) is Unicode if negotiated, otherwise OEM.
NegotiateFlags4Bitmask (NEGOTIATE structure)Server's selection of client-proposed flags, including those from Negotiate (e.g., NTLMSSP_NEGOTIATE_UNICODE, NTLMSSP_NEGOTIATE_TARGET_INFO for AV pairs).
ServerChallenge8Fixed byte array8-byte random nonce (challenge) used for response generation; cryptographically random and unique per session.
Reserved8Zero bytesMust be zero when sent; ignored on receipt.
TargetInfoFields8Payload referenceContains TargetInfoLen (2 bytes: length of target info buffer), TargetInfoMaxLen (2 bytes: equals Len, ignored), and TargetInfoBufferOffset (4 bytes: offset to target info). Zero if NTLMSSP_NEGOTIATE_TARGET_INFO (0x00800000) not set.
Version8VERSION structureIncluded if NTLMSSP_NEGOTIATE_VERSION set; otherwise zeros.
PayloadVariableByte arrayTarget name and target info (sequence of AV_PAIR structures), in any order with padding.
The TargetInfo field consists of one or more AV_PAIR structures, terminated by MsvAvEOL (AvId 0x0000, AvLen 0), encoding additional context for NTLMv2. Each AV_PAIR is structured as:
FieldSize (bytes)TypeDescription
AvId2Unsigned 16-bit integerAttribute identifier (e.g., 0x0001 for MsvAvNbComputerName: 's name; 0x0002 for MsvAvNbDomainName: name; 0x0007 for MsvAvTimestamp: 8-byte FILETIME of local time in UTC). Values are strings (not null-terminated) unless specified otherwise.
AvLen2Unsigned 16-bit integerLength of the Value field in bytes (0 for MsvAvEOL).
ValueVariableByte arrayAttribute-specific data (e.g., as little-endian 64-bit integer).
Common AV pairs in NTLMv2 include server and domain names for response computation, with the sequence allowing flexible inclusion of details like DNS names or channel bindings. The Authenticate message, sent by the client to prove identity, includes response data, principal identifiers, and optional session key, with structures varying by NTLM version (v1 uses fixed 24-byte LM and NT responses; v2 uses variable-length responses incorporating client challenges and timestamps). Its structure is:
FieldSize (bytes)TypeDescription
Signature8Fixed ASCII string"NTLMSSP\0".
MessageType4Unsigned 32-bit integerSet to 0x00000003.
LmChallengeResponseFields8Payload referenceContains LmChallengeResponseLen (2 bytes: length of LM response, e.g., 24 bytes in v1, variable in v2), LmChallengeResponseMaxLen (2 bytes: equals Len), and LmChallengeResponseBufferOffset (4 bytes: offset). LM response proves LM hash knowledge.
NtChallengeResponseFields8Payload referenceContains NtChallengeResponseLen (2 bytes: length of NT response, e.g., 24 bytes in v1, variable in v2 including HMAC and client challenge), NtChallengeResponseMaxLen (2 bytes: equals Len), and NtChallengeResponseBufferOffset (4 bytes: offset). NT response proves NT hash knowledge; in v2, incorporates target info and timestamp.
DomainNameFields8Payload referenceContains DomainNameLen (2 bytes: length, Unicode if negotiated), DomainNameMaxLen (2 bytes), and DomainNameBufferOffset (4 bytes). Client's authentication domain.
UserNameFields8Payload referenceContains UserNameLen (2 bytes: length, no null terminator), UserNameMaxLen (2 bytes), and UserNameBufferOffset (4 bytes). Client's username.
WorkstationFields8Payload referenceContains WorkstationLen (2 bytes: length), WorkstationMaxLen (2 bytes), and WorkstationBufferOffset (4 bytes). Client's workstation name.
EncryptedRandomSessionKeyFields8Payload referenceContains EncryptedRandomSessionKeyLen (2 bytes: length, e.g., 16 bytes), EncryptedRandomSessionKeyMaxLen (2 bytes), and EncryptedRandomSessionKeyBufferOffset (4 bytes). Encrypted session key for subsequent communications if NTLMSSP_NEGOTIATE_KEY_EXCH (0x40000000) set.
NegotiateFlags4BitmaskEchoes negotiated flags from Challenge.
Version8VERSION structureIncluded if NTLMSSP_NEGOTIATE_VERSION set.
MIC16Byte arrayMessage Integrity Check (HMAC-MD5) over the concatenated Negotiate, Challenge, and Authenticate messages (excluding MIC itself); present only in NTLMv2 when NTLMSSP_NEGOTIATE_TARGET_INFO set, providing tamper resistance.
PayloadVariableByte arrayResponses, names, and session key in any order, padded for alignment. Optional AV_PAIR sequence at end if NTLMSSP_NEGOTIATE_TARGET_INFO set, mirroring Challenge for client additions.
In NTLMv1, LM and NT responses are fixed at 24 bytes each, derived from DES-based challenges; in NTLMv2, they are variable (typically 16+ bytes for NT response, including a client nonce and timestamp), enhancing security against replay attacks. The MIC ensures integrity of the full exchange in v2 scenarios.

Cryptographic Mechanisms

Key Derivation Processes

In NTLMSSP, password preprocessing begins with deriving the LM hash and NT hash from the user's password, which serve as foundational elements for subsequent key generation. The LM hash is computed by first converting the password to uppercase and padding or truncating it to exactly 14 characters, then splitting it into two 7-byte halves. Each half is adjusted to form an odd-parity DES key, which is used to encrypt the 8-byte constant "KGS!@#$%" using the DES algorithm in ECB mode, producing two 8-byte ciphertexts that are concatenated to yield the 16-byte LM hash. The NT hash, in contrast, is generated by applying the MD4 hashing algorithm directly to the Unicode (UTF-16LE) encoding of the original password, resulting in a 16-byte value. These hashes are stored in the system's security database and used during authentication without exposing the plaintext password. For NTLMv1 authentication, the LM response (LM_RESPONSE) and NT response (NTLM_RESPONSE) are derived by encrypting the 8-byte server challenge using DES with keys based on the LM hash and NT hash, respectively. The LM response key is obtained by taking the LM hash, adjusting its parity bits to odd, and deriving two 8-byte DES subkeys (the first from the initial 8 bytes and the second from the remaining 8 bytes, both with odd parity). The 24-byte LM_RESPONSE is then formed by performing three DES encryptions of the server challenge: the first and third using the first subkey, and the second using the second subkey, with the results concatenated. Similarly, the NT response key is the 16-byte NT hash itself (with odd parity adjustment), split into two 8-byte DES subkeys in the same manner, and the 24-byte NTLM_RESPONSE is computed analogously by three DES encryptions of the challenge and concatenation. If extended session security is negotiated, an MD5-based variant may replace the DES encryption for the NT response, incorporating a client challenge alongside the server challenge. In NTLMv2, enhanced security is achieved through HMAC-MD5 operations on modified hashes and a structured blob, addressing vulnerabilities in the v1 DES-based approach. The NTLMv2 hash (ResponseKeyNT) is first derived as the HMAC-MD5 of the NT hash with the Unicode concatenation of the uppercase username and : \text{ResponseKeyNT} = \text{HMAC-MD5}\left( \text{NT hash}, \text{UNICODE}(\text{Upper(User)} + \text{UserDom}) \right) The LMv2 hash (ResponseKeyLM) uses the same computation as ResponseKeyNT. The NTLMv2 response (NTLM_RESPONSE) incorporates a blob containing the server challenge, a 64-bit timestamp (in 100-nanosecond units since January 1, 1601), an 8-byte client nonce, and optional target information (e.g., server attributes). This blob (denoted as temp) is prefixed with version bytes and zeros for alignment, then the full NTLMv2 response is the 16-byte HMAC-MD5 of ResponseKeyNT over the concatenation of the server challenge and temp, appended with the temp itself (yielding a variable-length response typically 20+ bytes). The LMv2 response (LM_RESPONSE in v2 mode) is simpler: an 8-byte client nonce appended to the 16-byte HMAC-MD5 of ResponseKeyLM over the server challenge concatenated with the client nonce. Session keys in NTLMSSP are derived post-authentication to support subsequent operations, varying by version. In NTLMv1, the session key is typically the first 8 bytes (truncated) of the NTLM_RESPONSE, providing a 64-bit value for compatibility with legacy DES-based mechanisms when no is performed. For NTLMv2, the session base key is computed as the -MD5 of ResponseKeyNT using the 16-byte NT proof string (the portion of the NTLMv2 response) as the message: \text{SessionBaseKey} = \text{HMAC-MD5}\left( \text{ResponseKeyNT}, \text{NTProofStr} \right) This base key may be further processed (e.g., via if negotiated) to produce the exported , a 16-byte value shared between client and .

Session Security and Signing

After successful , NTLMSSP employs session mechanisms to protect subsequent messages exchanged between the client and server, providing optional through signing and through sealing. These protections are negotiated during the initial authentication phase and rely on keys derived from the authentication process. Session is not applied for or logins. Signing ensures message integrity by appending a 16-byte to each protected , computed using a signing key specific to the session. In version 1 (v1), the signing mechanism utilizes a DES-MD5 composite operation, where an hash of the message data combined with the sequence number is encrypted using to produce the components. For version 2 (v2), which includes extended session security, signing employs HMAC-MD5: the consists of a 4-byte version field (set to 1), an 8-byte derived from the first 8 bytes of HMAC-MD5(SigningKey, SequenceNumber || ), and a 4-byte sequence number field. This HMAC-based approach provides stronger integrity protection compared to the DES-based method in v1. Signing is enabled when the NTLMSSP_NEGOTIATE_SIGN flag is set in the negotiation phase. Sealing provides confidentiality by encrypting message data using the with a session-specific sealing key. In NTLM v1, sealing is mandatory when negotiated and uses directly with the sealing key in connection-oriented scenarios, operating in a half-duplex manner where the sender alternates roles. For NTLM v2, sealing is optional and requires the NTLMSSP_NEGOTIATE_KEY_EXCH flag for ; when enabled via the NTLMSSP_NEGOTIATE_SEAL flag, it applies to the message payload, with the signature's field also encrypted if sealing is active. In connectionless modes, a per-message sealing key is derived as (SealingKey || SequenceNumber) to reinitialize the state, ensuring fresh per message. Sequence numbers play a critical role in both signing and sealing to prevent replay attacks, starting at 0 and incrementing by 1 for each outgoing within the session. They are incorporated into computations and used to derive per-message keys in connectionless contexts, with both parties maintaining synchronized counts via the Security Support Provider Interface (SSPI) context handle. The SSPI manages the state, including key initialization and sequence tracking, ensuring consistent application of protections across the session.

Security Considerations

Known Vulnerabilities and Attacks

NTLMSSP, as an , has been subject to several significant vulnerabilities that enable to compromise credentials and gain unauthorized access in Windows environments. These flaws stem primarily from its challenge-response mechanism, which lacks and is susceptible to and reuse without requiring knowledge. Key attack vectors include pass-the-hash techniques and relay operations, which have persisted despite protocol updates. Pass-the-hash (PtH) attacks allow adversaries to authenticate to remote systems using stolen password es directly, bypassing the need to crack the original password. This is facilitated by NTLM's design, where the serves as the credential in the authentication process, enabling lateral movement across a network once an initial is obtained from or storage. In NTLMv1, the protocol's weak DES-based chaining further exacerbates this by producing predictable responses that can be harvested and reused more easily. Historical analysis shows PtH has been a staple in post-exploitation since the early 2000s, often extracted using tools like from LSASS process . NTLM relay attacks involve intercepting authentication messages between a client and , then forwarding them to a system to impersonate the victim. Tools such as Responder exploit this by LLMNR and NBT-NS protocols, tricking clients into sending NTLM challenges to the attacker's machine during name resolution failures. The captured challenge-response can then be relayed to services like or HTTP, granting unauthorized access without decrypting the credentials. This technique, mapped to ATT&CK T1557.001, has enabled domain compromise in numerous incidents by coercing authentications over vulnerable channels. Version-specific weaknesses compound these risks. NTLMv1 employs an 8-byte server challenge, which is vulnerable to offline attacks using precomputed due to its limited and reliance on weaker LM/NTLM hashes. While NTLMv2 introduces timestamps and client nonces to mitigate replay and some offline cracking, these protections can be bypassed in scenarios, particularly cross-protocol relays where channel binding is absent, allowing attackers to redirect authentications to unintended endpoints. Research from demonstrated practical attacks on NTLMv1 responses, reducing cracking times to seconds for common passwords. Historically, the exploit (MS17-010) in leveraged SMBv1 vulnerabilities intertwined with weaknesses to achieve remote code execution, facilitating subsequent theft and relay attacks in widespread campaigns like WannaCry. More recently, in 2025, relay attacks have seen a resurgence through advanced techniques, such as HTTP-to-LDAP relaying and RPC-based forcing, enabling low-privilege attackers to escalate via reflected or cross-service relays despite prior mitigations. Notable developments include CVE-2025-24054 ( via spoofing, exploited in the wild as of April 2025), CVE-2025-33073 (June 2025, reviving by bypassing protections), CVE-2025-54918 (September 2025, LDAP bypass on controllers), and CVE-2025-59214 (October 2025, zero-click credential leakage bypass). Evolving methods target obscure RPC interfaces.

Mitigation Strategies and Best Practices

To mitigate risks associated with NTLMSSP, organizations can configure settings to restrict its usage. The "Network security: Restrict NTLM: Incoming NTLM traffic" policy allows administrators to deny or audit incoming NTLM authentication attempts on domain controllers and member servers, helping to limit exposure to unauthorized NTLM-based connections. Similarly, the "Network security: Restrict NTLM: Outgoing NTLM traffic to remote servers" policy enables denial or auditing of outgoing NTLM traffic, reducing the protocol's footprint in hybrid environments. These settings should be deployed in audit mode initially to assess impact without disruption. Disabling weaker variants like NTLMv1 further strengthens security. The "Network security: LAN Manager authentication level" policy can be set to "Send NTLMv2 response only. Refuse LM & NTLM," which rejects NTLMv1 while permitting NTLMv2, as NTLMv1's use of legacy hashing makes it vulnerable to offline attacks. Prior to enforcement, enable audit mode via "Network security: Restrict NTLM: Audit NTLM authentication in this domain" to log and review NTLMv1 usage without immediate blocking. As of 2025, has enforced default mitigations against NTLM relay attacks in 2025 and later, including stronger defenses and default enablement of Extended Protection for Authentication (EPA) on supported versions. New NTLM audit logging enhancements in version 24H2 and 2025 provide improved visibility into NTLM usage on clients, servers, and domain controllers. Auditing and monitoring are essential for detecting persistent NTLMSSP usage. Enable success and failure auditing for logon events through the "Audit account logon events" and "Audit logon events" policies, which generate Event ID 4624 in the Security log upon successful ; this event includes details on the authentication package, such as NTLM and its version, allowing identification of reliance on the . For relay attack detection, deploy Defender for Identity, which issues alerts like "Suspected NTLM relay attack ( account)" (external ID 2037) when anomalous NTLM patterns suggest exploitation, such as cross-service relays. Additional best practices focus on protocol hardening and controls. Enforce signing by setting the "Microsoft server: Digitally sign communications (always)" policy to Enabled, ensuring NTLM-authenticated sessions verify packet integrity and resist man-in-the-middle modifications. Disable LLMNR and NBT-NS via registry keys (e.g., setting HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient\EnableMulticast to 0) or to prevent name resolution poisoning that facilitates NTLM relay attacks. Implement , such as VLANs or firewalls restricting lateral traffic, to isolate high-value assets and limit potential relay paths between services. Extended Protection for Authentication (EPA) provides a layered defense by binding NTLMSSP tokens to the underlying TLS channel, thwarting man-in-the-middle relays even if credentials are intercepted. Enable EPA on services like IIS or SQL Server by configuring the element to "Required" in applicationhost.config or connection strings, ensuring the service principal name (SPN) and channel binding token (CBT) are validated during authentication. This mechanism is particularly effective against relay attacks referenced in vulnerability analyses.

Implementations and Usage

Native Support in Windows

NTLMSSP is a Security Support Provider (SSP) for authentication in Microsoft Windows operating systems, from Windows NT through Windows Server 2025, where it is implemented within the secur32.dll library as part of the Security Support Provider Interface (SSPI). This integration allows NTLMSSP to handle challenge-response authentication natively across Windows ecosystems, providing backward compatibility for legacy environments while integrating seamlessly with the Local Security Authority (LSA) subsystem. In Windows domains, NTLMSSP acts as an automatic fallback mechanism when authentication fails, such as in cases of misconfigured Service Principal Names (SPNs) or non-domain-joined systems, ensuring continued access through the Negotiate SSP package. Common usage scenarios include local logon authentication on standalone or non-domain controllers, workgroup-based authentication in peer-to-peer networks without , and support for legacy applications like connections and (IIS) with Windows Authentication enabled. Configuration of NTLMSSP in Windows is managed primarily through registry settings under HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control[Lsa](/page/LSA), where the Security Packages multi-string value determines the SSP ordering—typically listing "" first followed by "ntlmssp" to prioritize before falling back to . Administrators can also monitor NTLM activity via , with detailed logs available in the Applications and Services Logs > > Windows > NTLM > Operational channel, capturing events such as attempts and failures for auditing purposes. Version enforcement for NTLMSSP has evolved for security, with and defaulting to NTLMv2-only responses via the Network security: authentication level policy set to "Send NTLMv2 response only. Refuse LM & NTLM," which rejects weaker LM and NTLMv1 protocols. This restriction builds on changes introduced in and , where LM hash generation was disabled by default to prevent storage of vulnerable password hashes in the Security Accounts Manager (SAM) database. In , NTLMv2 remains supported but with enhanced auditing and blocking options for NTLMv1; NTLMv1 has been removed, with registry-based auditing and enforcement (via HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control[Lsa](/page/LSA)\Msv1_0\BlockNtlmv1SSO) for any remaining NTLMv1-derived credentials to facilitate migration away from legacy variants.

Adoption in Non-Microsoft Systems

Microsoft's open specification for the NTLM Authentication Protocol, documented in [MS-NLMP], provides detailed technical descriptions that facilitate implementation and interoperability in non-Windows environments, allowing developers to reverse-engineer and integrate NTLMSSP without proprietary access. This specification covers message formats, negotiation flags, and cryptographic processes, enabling support across diverse operating systems and applications. Samba, an open-source implementation of the SMB/CIFS protocol suite primarily for Linux and Unix-like systems, has provided full NTLMSSP support since version 3.0 released in , allowing seamless and with Windows domains. It handles both NTLMv1 and NTLMv2 variants, including message signing for integrity, and is widely used in heterogeneous networks for cross-platform access to Windows resources. On macOS, NTLMSSP integration occurs through Kerberos plugins and SPNEGO negotiation, where browsers like Safari fallback to NTLM when Kerberos tickets are unavailable, supported by system-level GSSAPI mechanisms. The gss-ntlmssp plugin extends GSSAPI to include NTLMSSP authentication, enabling macOS clients to authenticate against Windows servers in mixed environments. In Java-based applications, the JCIFS library implements NTLM authentication for SMB/CIFS operations, supporting web applications and custom integrations that require NTLMSSP for accessing Windows-protected resources. Apache HttpComponents, part of the ecosystem, provides client-side NTLM support in HttpClient versions starting from 4.1, facilitating proxy configurations and HTTP in non-Microsoft setups. For protocol analysis, includes a dedicated NTLMSSP dissector that parses and decrypts exchanges, aiding in interoperable networks. Interoperability challenges arise from negotiation flags, such as , which provides additional server data but can lead to mismatches if non-Microsoft implementations do not fully align with Windows behavior, potentially causing failures in complex setups. These issues often require careful flag handling in open-source codebases like to ensure compatibility.

Deprecation and Future

Microsoft's Deprecation Plans

In October 2023, Microsoft announced its intention to deprecate all variants of NTLM, including LAN Manager (LM), NTLMv1, and NTLMv2, in favor of more secure alternatives such as Kerberos and certificate-based authentication. This move aims to reduce dependencies on the aging protocol, which lacks modern security features and extensibility compared to Kerberos. The announcement emphasized a data-driven approach to monitor usage and determine safe disablement timelines, with the end goal of eliminating NTLM entirely to enhance overall authentication security for Windows users. Microsoft's deprecation roadmap includes the removal of NTLMv1 starting with version 24H2 (released in 2024) and 2025, while LANMAN and NTLMv2 are no longer under active development and marked as deprecated across all Windows versions. Enhanced auditing capabilities for usage were introduced in these releases, allowing administrators to log client, server, and interactions at various levels to identify and mitigate legacy dependencies. Beginning in late 2024 and continuing into 2025, Windows updates provide options to block in scenarios like connections, with granular policy controls and exception lists to support phased transitions. For Azure Active Directory (now ), efforts to block legacy authentication protocols, including NTLM fallbacks, have accelerated since 2022, with full disablement of basic authentication in Exchange Online completed by October 2022, extending restrictions to on-premises integrations in 2024 and beyond. The 2023 Cyber Safety Review Board (CSRB) report on a Online intrusion underscored broader vulnerabilities, urging accelerated adoption of zero-trust architectures to mitigate such risks. As of November 2025, remains supported for legacy compatibility in Windows environments but with mandatory auditing enabled by default in recent updates, facilitating organizations' migration efforts while exposing persistent usage for remediation. Developers and administrators are advised to replace calls with the Negotiate package, which prioritizes and falls back to only when necessary, to ensure future-proof compatibility. In December 2024, introduced default mitigations for relay attacks across key services: Extended Protection for Authentication (EPA) enabled by default in Exchange Server 2019 Cumulative Update 14 (February 2024), and channel binding for Certificate Services (AD CS) and (LDAP) in Windows Server 2025 (generally available November 2024). These enhancements ensure occurs only with intended servers, reducing relay risks without requiring .

Transition to Modern Alternatives

In domain environments, the primary alternative to NTLMSSP is authentication, facilitated through the Negotiate Security Support Provider (SSP), which prioritizes Kerberos' ticket-based mechanism for secure, mutual authentication without transmitting passwords or hashes over the network. Kerberos leverages time-limited tickets issued by a (KDC), typically integrated with , enabling scalable delegation and reducing reliance on repeated credential challenges. For web applications and modern API integrations, alternatives such as OAuth 2.0 with JSON Web Tokens (JWTs) provide token-based authorization that decouples authentication from legacy protocols like NTLMSSP, supporting federated identity providers and fine-grained access control. Certificate-based authentication via PKINIT extends to use (PKI) for client authentication, allowing smart cards or digital certificates to replace password-derived challenges in high-security scenarios. Passwordless options like FIDO2 enable phishing-resistant sign-ins using hardware security keys or biometrics, issuing Ticket Granting Tickets (TGTs) for seamless access to on-premises resources in hybrid setups. Migration begins with auditing NTLMSSP usage through Objects (GPOs), such as enabling the "Network security: Restrict NTLM: Incoming NTLM traffic" policy in audit mode to log attempts without disruption. Next, enforce Kerberos-only policies by configuring Negotiate to disable NTLM fallbacks, while testing in isolated environments to identify legacy applications requiring updates to support modern SSPs like Schannel or extended Negotiate. For hybrid deployments, follow Entra Kerberos trust guides to bridge on-premises and cloud , ensuring compatibility with tools like AD Connect for synchronized identities. Adopting these alternatives reduces the by eliminating NTLMSSP's vulnerabilities to relay and offline cracking attacks, while improving scalability through efficient ticket reuse that minimizes load. Organizations benefit from enhanced in diverse ecosystems, with resources like migration toolkits aiding phased transitions without downtime.

References

  1. [1]
    NTLMSSP - Win32 apps - Microsoft Learn
    Aug 21, 2020 · NTLMSSP, whose authentication service identifier is RPC_C_AUTHN_WINNT, is a security support provider that is available on all versions of DCOM.
  2. [2]
    [MS-NLMP]: NT LAN Manager (NTLM) Authentication Protocol
    Aug 1, 2022 · Specifies the NT LAN Manager (NTLM) Authentication Protocol, used in Windows for authentication between clients and servers.<|control11|><|separator|>
  3. [3]
    NTLM overview in Windows Server - Microsoft Learn
    Apr 18, 2025 · NTLM authentication is a family of authentication protocols that are encompassed in the Windows Msv1_0.dll.Missing: NTLMSSP | Show results with:NTLMSSP
  4. [4]
    NTLM Explained: Definition, Protocols & More | CrowdStrike
    Jan 8, 2025 · NTLM is a suite of security protocols offered by Microsoft to authenticate users' identity and protect the integrity and confidentiality of their activity.
  5. [5]
    NTLM Authentication - 0xCZR InfoSec Knowledge Base & Write-Ups
    In 1987, Microsoft and IBM co-developed OS/2, which introduced LAN Manager (LM) - the first network authentication protocol for their operating systems. LM ...
  6. [6]
    Lan Manager - an overview | ScienceDirect Topics
    NT Lan Manager (NTLM) is an authentication protocol used with SMB in Windows versions earlier to Vista. (It is still present in Vista, but deprecated. KerberosS ...<|control11|><|separator|>
  7. [7]
    Prevent Windows from storing a LAN Manager (LM) hash of the ...
    Jan 15, 2025 · This article provides three methods to prevent Windows from storing a LAN Manager (LM) hash of your password in Active Directory and local Security Accounts ...
  8. [8]
    The Renaissance of NTLM Relay Attacks: Everything You Need to ...
    Apr 8, 2025 · Relay attacks are the easiest way to compromise domain-joined hosts nowadays, paving a path for lateral movement and privilege escalation.Missing: NTLMSSP | Show results with:NTLMSSP
  9. [9]
    Offsec AD (Part 5) : NTLM Authentication & Network Analysis
    Jul 25, 2023 · NTLM, short for NT LAN Manager , is an authentication protocol initially introduced in Windows NT 3.1 and continues to be supported in ...Ntlm (nt Lan Manager) · Ntlm Authentication Via... · Type 2 (challenge) Packet
  10. [10]
    Enable NTLM 2 authentication - Windows Client | Microsoft Learn
    Jan 15, 2025 · NTLM 2 has been available for Windows NT 4.0 since Service Pack 4 (SP4) was released, and it is supported natively in Windows 2000. You can add ...Missing: history | Show results with:history
  11. [11]
    Active Directory Hardening Series - Part 1 – Disabling NTLMv1
    Sep 21, 2023 · While Windows since NT 4.0 has been capable of NTLMv2, older operating systems did not attempt to negotiate NTLMv2 by default. Additionally, it ...Missing: history | Show results with:history
  12. [12]
    [MS-NLMP]: NEGOTIATE - Microsoft Learn
    Aug 1, 2022 · During NTLM authentication, each of the following flags is a possible value of the NegotiateFlags field of the NEGOTIATE_MESSAGE, ...
  13. [13]
    Security Support Provider Interface Architecture - Microsoft Learn
    Jul 29, 2021 · The NTLM Security Support Provider (NTLM SSP) is a binary messaging protocol used by the Security Support Provider Interface (SSPI) to allow ...
  14. [14]
    InitializeSecurityContext (NTLM) function (Sspi.h) - Win32 apps
    Mar 17, 2023 · The InitializeSecurityContext (NTLM) function initiates the client side, outbound security context from a credential handle.
  15. [15]
    AcquireCredentialsHandle (NTLM) function (Sspi.h) - Win32 apps
    Jan 7, 2021 · The AcquireCredentialsHandle (NTLM) function acquires a handle to preexisting credentials of a security principal.
  16. [16]
    AcceptSecurityContext (NTLM) function (Sspi.h) - Win32 apps
    Mar 17, 2023 · The AcceptSecurityContext (NTLM) function enables a server to establish a security context with a remote client, and is the server counterpart ...
  17. [17]
    [MS-NLMP]: Overview - Microsoft Learn
    Apr 23, 2024 · NT LAN Manager (NTLM) is the name of a family of security protocols. NTLM is used by application protocols to authenticate remote users.Missing: history origins
  18. [18]
    [MS-NLMP]: NTLM Authentication Call Flow - Microsoft Learn
    Apr 23, 2024 · NTLM messages for both connection-oriented and connectionless authentication are embedded in the application protocol as shown.
  19. [19]
    Understanding HTTP Authentication - WCF - Microsoft Learn
    Feb 21, 2023 · NT LAN Manager (NTLM) authentication is a challenge-response scheme that is a more secure variation of Digest authentication. NTLM uses Windows ...
  20. [20]
    [MS-NTHT]: Authorization Request Header - Microsoft Learn
    Feb 14, 2019 · Upon receipt of the response containing a WWW-Authenticate header from the server, the client is expected to retry the HTTP request with the ...
  21. [21]
    4.1 NTLM Over Server Message Block (SMB) - Microsoft Learn
    Apr 23, 2024 · NTLM over a Server Message Block (SMB) transport is a common use of NTLM authentication and encryption.Missing: setup | Show results with:setup
  22. [22]
    [MS-NLMP]: Session Security Details - Microsoft Learn
    Apr 23, 2024 · In connection-oriented mode, messages are assumed to be received in the order sent. ... Note In connectionless mode, messages can arrive out of ...
  23. [23]
    [MS-NLMP]: NTLM Connectionless (Datagram-Oriented) Call Flow
    Oct 30, 2024 · The following illustration shows a typical NTLM connectionless (datagram-oriented) call flow. Connectionless NTLM message flow.
  24. [24]
    [MS-NLMP]: NTLM Connection-Oriented Call Flow - Microsoft Learn
    Oct 30, 2024 · The client sends an NTLM AUTHENTICATE_MESSAGE message to the server. The message contains the name of a user and a response that proves that the ...
  25. [25]
    [MS-NLMP]: NTLM v1 Authentication - Microsoft Learn
    Apr 27, 2022 · The LM and NTLM authentication versions are not negotiated by the protocol. ... NTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITY flag is set in ...
  26. [26]
    [MS-NLMP]: Appendix B: Product Behavior - Microsoft Learn
    Apr 27, 2022 · 5.2: Connectionless NTLM is supported only in Windows NT, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008.
  27. [27]
    [MS-NLMP]: Message Syntax - Microsoft Learn
    Apr 23, 2024 · The NTLM Authentication Protocol consists of three message types used during authentication and one message type used for message integrity ...
  28. [28]
    [MS-NLMP]: VERSION - Microsoft Learn
    Apr 27, 2022 · The VERSION structure contains operating system version information that SHOULD<31> be ignored. This structure is used for debugging purposes only.Missing: NTLMSSP_VERSION | Show results with:NTLMSSP_VERSION
  29. [29]
    [MS-NLMP]: NEGOTIATE_MESSAGE - Microsoft Learn
    Apr 23, 2024 · The NEGOTIATE_MESSAGE defines an NTLM negotiate message that is sent from the client to the server. This message allows the client to specify its supported ...
  30. [30]
    [MS-NLMP]: CHALLENGE_MESSAGE | Microsoft Learn
    Aug 1, 2022 · The CHALLENGE_MESSAGE defines an NTLM challenge message that is sent from the server to the client. The CHALLENGE_MESSAGE is used by the server to challenge ...Missing: NTLMSSP_CHALLENGE_MESSAGE | Show results with:NTLMSSP_CHALLENGE_MESSAGE
  31. [31]
    [MS-NLMP]: AV_PAIR - Microsoft Learn
    Oct 30, 2024 · The AV_PAIR structure defines an attribute/value pair. Sequences of AV_PAIR structures are used in the CHALLENGE_MESSAGE (section 2.2.1.2) directly.
  32. [32]
    [MS-NLMP]: AUTHENTICATE_MESSAGE | Microsoft Learn
    Aug 1, 2022 · In connection-oriented mode, a NEGOTIATE structure (section 2.2. 2.5) that contains the set of bit flags negotiated in the previous messages.
  33. [33]
    3.1.5.1.2 Client Receives a CHALLENGE_MESSAGE from the Server
    Jan 8, 2022 · When the client receives a CHALLENGE_MESSAGE (section 2.2.1.2) from the server, it MUST determine if the features selected.Missing: NTLMSSP_CHALLENGE_MESSAGE | Show results with:NTLMSSP_CHALLENGE_MESSAGE
  34. [34]
    [MS-NLMP]: NTLM v2 Authentication - Microsoft Learn
    Apr 27, 2022 · The following pseudocode defines the details of the algorithms used to calculate the keys used in NTLM v2 authentication.
  35. [35]
    [MS-NLMP]: Variables Internal to the Protocol - Microsoft Learn
    Apr 23, 2024 · ExportedSessionKey: A 128-bit (16-byte) session key used to derive ClientSigningKey, ClientSealingKey, ServerSealingKey, and ServerSigningKey.
  36. [36]
    [MS-NLMP]: With Extended Session Security - Microsoft Learn
    Jun 24, 2021 · If a key exchange key is negotiated, the message signature for the NTLM security service provider is the same as in the preceding description, ...
  37. [37]
    Understanding NTLM Authentication and NTLM Relay Attacks
    Jul 8, 2024 · In this article, we will explain how NTLM authentication works and present one of the most common attacks on this protocol: NTLM Relay attacks.
  38. [38]
    What is a Pass-the-Hash Attack? | CrowdStrike
    Jan 17, 2025 · Unlike other credential theft attacks, a pass the hash attack does ... pass-the-hash technique, using Mimikatz to steal the NTLM hash.
  39. [39]
  40. [40]
    What are Pass-the-Hash (PtH) & Pass-the-Ticket (PtT)? - SentinelOne
    Jul 16, 2025 · Pass-the-hash attacks steal and reuse NTLM password hashes, while pass-the-ticket attacks steal and reuse Kerberos tickets. PtH requires ...
  41. [41]
    Adversary-in-the-Middle: LLMNR/NBT-NS Poisoning and SMB Relay
    Adversaries can spoof an authoritative source for name resolution on a victim network by responding to LLMNR (UDP 5355)/NBT-NS (UDP 137) traffic.
  42. [42]
    LLMNR & NBT-NS Poisoning and Credential Access - Cynet
    Oct 10, 2025 · We protect our customers from this attack by actively searching for instances of Responder on the network, as well as utilizing passive ...
  43. [43]
    LLMNR/NBT-NS Poisoning and Relay (T1171) - CISA
    Description. Link-Local Multicast Name Resolution (LLMNR) and NetBIOS Name Service (NBT-NS) are Microsoft Windows components that serve as alternate methods ...
  44. [44]
    [PDF] Optimized Attack for NTLM2 Session Response - Black Hat
    Oct 15, 2004 · - A rainbow table can be used for NTLMv1 if the server sends a ... Brute-force attacks with 2-byte DES keys. (A). (B). 8byte obtained from ...
  45. [45]
    Attacking LM/NTLMv1 Challenge/Response Authentication
    Apr 21, 2011 · Three approaches are often referenced when cracking a LANMAN/NTLMv1 response: Rainbow Tables; Dictionary Attack; Brute Force. All of these ...
  46. [46]
    EternalBlue - Everything There Is To Know - Check Point Research
    Sep 29, 2017 · The EternalBlue exploitation tool was leaked by “The Shadow Brokers” group on April 14, 2017, in their fifth leak, “Lost in Translation.”Missing: weaknesses | Show results with:weaknesses
  47. [47]
    Critical Risks and Performance Impact of Using NTLM v1 and SMB ...
    Jul 29, 2024 · Historical Context and Evolution ... NTLM (NT LAN Manager) emerged in the early 1990s as Microsoft's proprietary authentication protocol. It ...
  48. [48]
    Network security Restrict NTLM Incoming NTLM traffic - Windows 10
    Apr 18, 2017 · The Network Security: Restrict NTLM: Incoming NTLM traffic policy setting allows you to deny or allow incoming NTLM traffic from client computers, other member ...Missing: DES | Show results with:DES
  49. [49]
    Network security Restrict NTLM Outgoing traffic - Windows 10
    Jun 14, 2022 · The Network Security: Restrict NTLM: Outgoing NTLM traffic to remote servers policy setting allows you to deny or audit outgoing NTLM traffic.Reference · Policy managementMissing: incoming | Show results with:incoming
  50. [50]
    Network security LAN Manager authentication level - Windows 10
    Apr 18, 2017 · The Network security: LAN Manager authentication level setting determines which challenge/response authentication protocol is used for network logons.Missing: history | Show results with:history
  51. [51]
    Network security Restrict NTLM in this domain - Windows 10
    Dec 30, 2017 · The domain controller will deny all NTLM authentication sign-in attempts using accounts from this domain to all servers in the domain. The NTLM ...Missing: DES | Show results with:DES
  52. [52]
    Audit use of NTLMv1 on a Windows Server-based domain controller
    Jan 15, 2025 · This article introduces the steps to test any application that's using NT LAN Manager (NTLM) version 1 on a Microsoft Windows Server-based domain controller.Missing: history | Show results with:history
  53. [53]
    Microsoft Defender for Identity classic alerts
    Jul 31, 2025 · Over-pass-the-hash attacks involving forced encryption types can exploit vulnerabilities in protocols like Kerberos. Attackers attempt to ...
  54. [54]
    Microsoft network server Digitally sign communications (always)
    Jan 12, 2023 · To prevent man-in-the-middle attacks that modify SMB packets in transit, the SMB protocol supports the digital signing of SMB packets.
  55. [55]
    Microsoft Security Bulletin MS11-030 - Critical
    To disable link-local multicast name resolution using group policy, perform the following steps: Open the Group Policy Editor. Expand Computer Configuration, ...
  56. [56]
    Disable NetBIOS over TCP/IP by using DHCP - Windows Server
    Jan 15, 2025 · To disable NetBIOS on the DHCP server, follow these steps: Select Start, point to Administrative Tools, and then select DHCP.
  57. [57]
    Windows Extended Protection <extendedProtection> - Microsoft Learn
    Apr 6, 2022 · Extended protection enhances the existing Windows authentication functionality in order to mitigate authentication relay or "man in the middle" ...
  58. [58]
    Connect to the Database Engine Using Extended Protection - SQL ...
    Aug 26, 2025 · Extended Protection helps prevent authentication relay attacks by ensuring the client knows the service it connects to.
  59. [59]
    Using Security Packages - Win32 apps | Microsoft Learn
    Jan 7, 2021 · The Kerberos and NTLM protocols are implemented as security packages from the Secur32.dll security support provider (SSP) supplied with the operating system.
  60. [60]
    Microsoft NTLM - Win32 apps
    Jul 9, 2025 · NTLM is a security package that provides authentication, integrity, and confidentiality to applications. It is used to authenticate users and ...
  61. [61]
    Configuring Kerberos for IP Address - Microsoft Learn
    May 12, 2025 · However, applications are sometimes hardcoded to use IP addresses which means the application will fall back to NTLM and not use Kerberos. This ...
  62. [62]
    Using NTLM authentication to connect to SQL Server - Microsoft Learn
    Aug 27, 2025 · The Microsoft JDBC Driver for SQL Server only supports NTLM v2, which has some security improvements over the original v1 protocol. It's ...Missing: fallback | Show results with:fallback
  63. [63]
    Configure Windows Authentication in ASP.NET Core - Microsoft Learn
    Oct 17, 2025 · The WWW-Authenticate: Negotiate header means that the server can use NTLM or Kerberos. Kestrel requires the Negotiate header prefix, it doesn't ...
  64. [64]
    Overview of NTLM auditing enhancements in Windows 11, version ...
    Jul 11, 2025 · Each component generates logs that provide detailed information regarding NTLM authentication events. These logs can be found in Event Viewer ...Missing: history | Show results with:history
  65. [65]
    Upcoming changes to NTLMv1 in Windows 11, version 24H2 and ...
    Aug 29, 2025 · This article details the recent and upcoming changes in Windows 11, version 24H2 and Windows Server 2025, focusing on the auditing and eventual ...
  66. [66]
    Samba Team announces the first official release of Samba 3.0
    14) Full support for client and server SMB signing to ensure compatibility with default Windows 2003 security settings. 15) Improvement of ACL mapping features ...
  67. [67]
    Authentication to shared folders using SMB protocol - Cryptosession
    Overview of authentication methods for accessing storage using SMB protocol ; Windows NT 4.0 (1996), NTLMv1 NTLMv2 (SP4), LANMAN, - ; Samba 2.0 (1996), NTLMv1 ...
  68. [68]
  69. [69]
    gssapi/gss-ntlmssp: A complete implementation of the MS ... - GitHub
    This is a mechglue plugin for the GSSAPI library that implements NTLM authentication. So far it has been built and tested only with the libgssapi ...
  70. [70]
    jCIFS library
    JCIFS is an Open Source client library that implements the CIFS/SMB networking protocol in 100% Java. CIFS is the standard file sharing protocol on the ...
  71. [71]
    NTLM support in HttpClient - Apache HttpComponents
    HttpClient as of version 4.1 initially supported NTLMv1, NTLMv2, and NTLM2SessionResponse authentication protocols, based on the reverse engineering approach.
  72. [72]
    NTLMSSP - Wireshark Wiki
    NTLMSSP is a Microsoft protocol for authentication using the NTLM protocol. Open specification: [MS-NLMP] Decryption of NTLM-encrypted traffic.Missing: NTLMSSP_CHALLENGE_MESSAGE structure
  73. [73]
    [PDF] Samba and Windows NT Security Interoperability - USENIX
    Jun 5, 2000 · This paper presents the technical security issues confronted by Samba developers during further implementation of the Windows NT 4.0 domain ...
  74. [74]
    The evolution of Windows authentication | Windows IT Pro Blog
    Oct 11, 2023 · We are working on strengthening user authentication by expanding the reliability and flexibility of Kerberos and reducing dependencies on NT LAN Manager (NTLM).
  75. [75]
    Deprecated features in the Windows client - Microsoft Learn
    NTLM, All versions of NTLM, including LANMAN, NTLMv1, and NTLMv2, are no longer under active feature development and are deprecated. Use of NTLM will ...
  76. [76]
    Cyber Safety Review Board Report on Summer 2023 Microsoft ...
    The US Department of Homeland Security released the Cyber Safety Review Board's (CSRB) findings and recommendations following its independent review of the ...
  77. [77]
    Kerberos authentication overview in Windows Server - Microsoft Learn
    Jul 17, 2025 · The Kerberos authentication client is implemented as a security support provider (SSP), and it can be accessed through the Security Support ...Practical Applications · Delegated Authentication · InteroperabilityMissing: dll | Show results with:dll<|separator|>
  78. [78]
    Microsoft identity platform and OAuth 2.0 authorization code flow
    May 12, 2025 · The OAuth 2.0 authorization code grant type, or auth code flow, enables a client application to obtain authorized access to protected resources like web APIs.OAuth2 client credentials · Application types · Permissions and consentMissing: alternative NTLM
  79. [79]
    Passwordless security key sign-in to on-premises resources
    Jul 13, 2025 · Microsoft Entra ID enables passwordless sign-in to on-premises resources using FIDO2 keys by issuing Kerberos TGTs, enabling SSO.Use Sso To Sign In To... · Create A Kerberos Server... · Select Azure Cloud (default...
  80. [80]
    Change from NTLM authentication to kerberos authentication
    Dec 24, 2024 · Computers need to be removed from NTLM authentication and configured for Kerberos. If the NTLM group is removed, will Kerberos be the default? ...Block NTLM and NTLMv2 totally, only enable KerberosSuggested migration from NTLM to modern auth for On Premise web ...More results from learn.microsoft.com
  81. [81]
    Windows Hello for Business cloud Kerberos trust deployment guide
    Feb 25, 2025 · Migrate from key trust deployment model to cloud Kerberos trust · Set up Microsoft Entra Kerberos in your hybrid environment · Enable cloud ...Passwordless security key... · Microsoft Ignite · Hybrid key trustMissing: NTLM | Show results with:NTLM