Jump to content

LAN Manager: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Undid revision 1241895353 by 84.232.151.154 (talk) - MOS:TENSE.
 
(146 intermediate revisions by 88 users not shown)
Line 1: Line 1:
{{Short description|Microsoft network operating system}}
The '''LAN Manager''' (not to be confused with [[NTLM]]) was a [[Network operating system|Network Operating System]] (NOS) from [[Microsoft]] developed in cooperation with [[3Com]]. It was designed to succeed 3Com's [[3+Share]] network server software which ran on top of [[MS-DOS]].
{{Infobox OS
| name = LAN Manager<!-- Name of program or distribution -->
| logo = <!-- filename only (no wikilink, no Image:/File:) -->
| logo caption =
| logo size =
| logo alt =
| screenshot = <!-- filename only (no wikilink, no Image:/File:) -->
| caption =
| screenshot_size =
| screenshot_alt =
| collapsible =
| version of = <!-- For articles about releases of operating systems ONLY -->
| developer = [[Microsoft]], [[3Com]]<!-- Name of main developer or sponsor-->
| family = [[OS/2]]<!-- "Unix-like" or "Microsoft Windows" -->
| working state = Discontinued<!-- "Current", "Discontinued" (operating systems), or "No longer supported" (releases) -->
| source model = [[Closed source]]<!-- "Open source", "Closed source", or "Shared source" -->
| released = {{Start date and age|1987}}
| discontinued = Yes<!-- DON'T use this for articles about releases of operating systems -->
| RTM date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} ONLY for articles about OS releases -->
| GA date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} ONLY for articles about OS releases -->
| latest release version = 2.2a
| latest release date = {{Start date and age|1994}}
| latest preview version =
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| marketing target = [[Local area network]]ing
| programmed in =
| language = <!-- Supported human languages (English, French, Italian, Arabic, ...) -->
| update model = Re-installation<!-- APT, Windows Update, etc. -->
| package manager = None<!-- dpkg, rpm, Windows installer, etc. -->
| supported platforms = [[x86]]<!-- IA-32, x64, Itanium, ARM, etc. -->
| kernel type = <!-- Hybrid, Monolithic, Microkernel, Exokernel, Nanokernel, etc. -->
| userland =
| ui =
| license = [[Proprietary software|Proprietary]]
| preceded by = [[MS-Net]], Xenix-NET, [[3+Share]]
| succeeded by = [[Microsoft Windows NT 3.1]]
| website = <!-- {{URL|www.example.org}} -->
| support status = <!-- For articles about releases of operating systems ONLY -->
| other articles =
| prog_language =
}}
'''LAN Manager''' is a discontinued [[network operating system]] (NOS) available from multiple vendors and developed by [[Microsoft]] in cooperation with [[3Com|3Com Corporation]]. It was designed to succeed 3Com's [[3+Share]] [[Server (computing)|network server]] software which ran atop a heavily modified version of [[MS-DOS]].


==History==
LAN Manager is based on [[OS/2]]. It uses the [[Server Message Block]] protocol atop the [[NetBIOS Frames protocol]], similar to its predecessors [[MS-NET]] for [[MS-DOS]] and [[Xenix-NET]] for [[Xenix|MS-Xenix]]. There was also '''LAN Manager/X''' (LMX) for [[UNIX]] based systems.
The LAN Manager [[OS/2]] operating system was co-developed by [[IBM]] and [[Microsoft]], using the [[Server Message Block]] (SMB) protocol. It originally used SMB atop either the [[NetBIOS Frames]] (NBF) protocol or a specialized version of the [[Xerox Network Systems]] (XNS) protocol. These legacy protocols had been inherited from previous products such as [[MS-Net]] for [[MS-DOS]], [[Xenix-NET]] for [[Xenix|MS-Xenix]], and the afore-mentioned 3+Share. A version of LAN Manager for Unix-based systems called '''LAN Manager/X''' was also available. LAN Manager/X was the basis for [[Digital Equipment Corporation]]'s [[Pathworks]] product for [[OpenVMS]], [[Ultrix]] and [[Tru64]].<ref name="samba">{{cite web|url=http://de.openvms.org/TUD2005/02_Advanced_Server_and_Samba_Andy_Goldstein.pdf|title=Samba and OpenVMS|author=Andy Goldstein|date=2005|access-date=2021-01-01|website=de.openvms.org|archive-url=https://web.archive.org/web/20210207063545/http://de.openvms.org/TUD2005/02_Advanced_Server_and_Samba_Andy_Goldstein.pdf|archive-date=2021-02-07|url-status=dead}}</ref>


In 1990, Microsoft announced LAN Manager 2.0 with a lot of improvements. The latest version LAN Manager, 2.2, which included an MS-OS/2 1.31 base operating system, remained Microsoft's strategic server system until the release of [[Windows NT 3.1| Windows NT Advanced Server]] in 1993.
In 1990, Microsoft announced LAN Manager 2.0 with a host of improvements, including support for [[TCP/IP]] as a transport protocol for SMB, using [[NetBIOS over TCP/IP]] (NBT). The last version of LAN Manager, 2.2, which included an MS-OS/2 1.31 base operating system, remained Microsoft's strategic server system until the release of [[Windows NT 3.1|Windows NT Advanced Server]] in 1993.<ref>{{Cite web |title=DOS SMB Client Performance {{!}} OS/2 Museum |url=https://www.os2museum.com/wp/dos-smb-client-performance/ |access-date=2023-08-28 |language=en-US}}</ref>

===Versions===
* 1987 – MS LAN Manager 1.0 (Basic/Enhanced)
* 1989 – MS LAN Manager 1.1
* 1991 – MS LAN Manager 2.0
* 1992 – MS LAN Manager 2.1
* 1992 – MS LAN Manager 2.1a
* 1993 – MS LAN Manager 2.2
* 1994 – MS LAN Manager 2.2a


Many vendors shipped licensed versions, including:
Many vendors shipped licensed versions, including:
*[[3Com]] [[3+Open]]
* [[3Com|3Com Corporation]] [[3+Open]]
*[[HP]] LAN Manager/X
* [[HP LAN Manager/X]]
*[[IBM]] [[LAN Server]]
* [[IBM LAN Server]]
*Tapestry Torus
* [[Tapestry Torus]]
* [[Santa Cruz Operation|The Santa Cruz Operation]]


==Password hashing algorithm== <!-- If you change the name of this section, please make sure you update links on all pages, redirects, etc. that point to it. Thank you. -->
==Security Vulnerability==
The LM hash is computed as follows:<ref>{{cite web
LAN Manager authentication uses a particularly weak method of [[Cryptographic hash function|hashing]] a user's [[password]] known as the [[LM hash]] algorithm. This makes the authentication crackable in a matter of seconds using [[Rainbow Table]]s or in few hours using [[brute force]]. Its successor [[NTLM]] is still vulnerable to Rainbow Tables, but less vulnerable to brute force attacks
| url=https://learn.microsoft.com/previous-versions/tn-archive/dd277300(v=technet.10)#the-lmhash
| title=Chapter 3 - Operating System Installation
| at=The LMHash
| work=[[Microsoft Docs]]
| date=24 March 2009
| access-date=2023-10-16}}</ref><ref name="davenport">{{cite web
| url=http://davenport.sourceforge.net/ntlm.html#theLmResponse
| title=The NTLM Authentication Protocol and Security Support Provider: The LM Response
| last=Glass
| first=Eric
| year=2006
| access-date=2015-05-12}}</ref>
# The user's password is restricted to a maximum of fourteen characters.<ref group="Notes">If the password is more than fourteen characters long, the LM hash cannot be computed.</ref>
# The user's password is converted to [[uppercase]].
# The user's password is encoded in the System OEM [[code page]].<ref>{{cite web
| url=https://msdn.microsoft.com/nl-nl/goglobal/cc563921%28en-us%29.aspx
| title=List of Localized MS Operating Systems
| work=[[Microsoft Developer Network]]
| access-date=2015-05-12
| archive-url=https://web.archive.org/web/20150518092309/https://msdn.microsoft.com/nl-nl/goglobal/cc563921(en-us).aspx
| archive-date=2015-05-18
| url-status=dead}}</ref>
# This password is NULL-padded to 14 bytes.<ref name="KB828861">{{cite web
| url=https://support.microsoft.com/kb/828861
| title=Cluster service account password must be set to 15 or more characters if the NoLMHash policy is enabled
| publisher=[[Microsoft]]
| date=2006-10-30
| access-date=2015-05-12
| archive-url=https://web.archive.org/web/20140910100521/https://support.microsoft.com/kb/828861
| archive-date=2014-09-10
| url-status=dead}}</ref>
# The “fixed-length” password is split into two 7-byte halves.
# These values are used to create two [[Data Encryption Standard|DES]] keys, one from each 7-byte half, by converting the seven bytes into a bit stream with the most significant bit first, and inserting a [[parity bit]] after every seven bits (so <code>1010100</code> becomes <code>10101000</code>). This generates the 64 bits needed for a DES key. (A DES key ostensibly consists of 64 bits; however, only 56 of these are actually used by the algorithm. The parity bits added in this step are later discarded.)
# Each of the two keys is used to DES-encrypt the constant [[ASCII]] string “<code>KGS!@#$%</code>”,<ref group="Notes">The string “KGS!@#$%” could possibly mean '''K'''ey of '''G'''len and '''S'''teve and then the combination of '''Shift + 12345'''. Glen Zorn and Steve Cobb are the authors of RFC 2433 ([[MS-CHAP|Microsoft PPP CHAP Extensions]]).</ref> resulting in two 8-byte ciphertext values. The DES CipherMode should be set to ECB, and PaddingMode should be set to <code>NONE</code>.
# These two ciphertext values are concatenated to form a 16-byte value, which is the LM hash.


==Security weaknesses==
LAN Manager authentication uses a particularly weak method of [[Cryptographic hash function|hashing]] a user's [[password]] known as the LM hash algorithm, stemming from the mid-1980s when viruses transmitted by floppy disks were the major concern.<ref name=SecurityWatch /> Although it is based on [[Data Encryption Standard|DES]], a well-studied [[block cipher]], the LM hash has several weaknesses in its design.<ref>{{cite web
| url=http://download.microsoft.com/download/f/4/a/f4a67fc8-c499-461d-a025-8155fb4f7a0f/Windows%20Passwords%20Master%201.5%20Handout%20-%20Jesper%20Johansson.ppt
| title=Windows Passwords: Everything You Need To Know
| publisher=[[Microsoft]]
| first=Jasper M.
| last=Johansson
| date=2004-06-29
| access-date=2015-05-12}}</ref>
This makes such hashes crackable in a matter of seconds using [[rainbow table]]s, or in a few minutes using [[Brute-force attack|brute force]]. Starting with [[Windows NT]], it was replaced by [[NTLM]], which is still vulnerable to rainbow tables, and brute force attacks unless long, unpredictable passwords are used, see [[password cracking]]. NTLM is used for logon with local accounts except on domain controllers since Windows Vista and later versions no longer maintain the LM hash by default.<ref name=SecurityWatch>{{cite web|author1=Jesper Johansson|title=The Most Misunderstood Windows Security Setting of All Time|url=https://learn.microsoft.com/en-us/previous-versions/technet-magazine/cc160954(v=msdn.10)|website=[[Microsoft Docs]]|date=31 August 2016 |publisher=Microsoft|access-date=16 October 2023|quote=Although Windows Vista has not been released yet, it is worthwhile to point out some changes in this operating system related to these protocols. The most important change is that the LM protocol can no longer be used for inbound authentication—where Windows Vista is acting as the authentication server.}}</ref> [[Kerberos (protocol)|Kerberos]] is used in Active Directory Environments.


The major weaknesses of LAN Manager authentication protocol are:<ref>Rahul Kokcha</ref>
[[Category:OS/2]]
# Password length is limited to a maximum of 14 characters chosen from the [[ASCII#ASCII printable characters|95 ASCII printable characters]].
[[Category:Cryptographic attacks]]
# Passwords are not case sensitive. All passwords are converted into uppercase before generating the hash value. Hence LM hash treats PassWord, password, PaSsWoRd, PASSword and other similar combinations same as PASSWORD. This practice effectively reduces the LM hash [[key space (cryptography)|key space]] to 69 characters.
[[Category:Discontinued Microsoft software]]
# A 14-character password is broken into 7+7 characters and the hash is calculated for each half separately. This way of calculating the hash makes it dramatically easier to crack, as the attacker only needs to [[brute-force attack|brute-force]] 7 characters twice instead of the full 14 characters. This makes the effective strength of a 14-character password equal to only <math>2\times69^{7} \approx 2^{44}</math>, or twice that of a 7-character password, which is 3.7 trillion times less complex than the <math>69^{14} \approx 2^{86}</math> theoretical strength of a 14-character single-case password. As of 2020, a computer equipped with a high-end [[graphics processor]] (GPUs) can compute 40 billion LM-hashes per second.<ref>[https://www.onlinehashcrack.com/tools-benchmark-hashcat-nvidia-rtx-2070s-super.php Benchmark Hashcat v6.1.1 on RTX 2070S (SUPER)], Mode 3000 LM, accessed November 29, 2020</ref> At that rate, all 7-character passwords from the 95-character set can be tested and broken in half an hour; all 7-character [[alphanumeric]] passwords can be tested and broken in 2 seconds.
[[Category:Authentication methods]]
#If the password is 7 characters or less, then the second half of hash will always produce same constant value (0xAAD3B435B51404EE). Therefore, a password is less than or equal to 7 characters long can be identified visibly without using tools (though with high speed GPU attacks, this matters less).
[[Category:Articles lacking sources (Erik9bot)]]
# The hash value is sent to network servers without [[Salt (cryptography)|salting]], making it susceptible to [[man-in-the-middle attack]]s such as [[pass the hash|replay the hash]]. Without salt, [[time–memory tradeoff]] [[pre-computed dictionary attack]]s, such as a [[rainbow table]], are feasible. In 2003, [[Ophcrack]], an implementation of the rainbow table technique, was published. It specifically targets the weaknesses of LM encryption, and includes pre-computed data sufficient to crack virtually all alphanumeric LM hashes in a few seconds. Many cracking tools, such as [[RainbowCrack]], [[Hashcat]], [[L0phtCrack]] and [[Cain (software)|Cain]], now incorporate similar attacks and make cracking of LM hashes fast and trivial.


==Workarounds==
To address the security weaknesses inherent in LM encryption and authentication schemes, Microsoft introduced the [[NTLMv1]] protocol in 1993 with [[Windows NT 3.1]]. For hashing, NTLM uses [[Unicode]] support, replacing <code>LMhash=DESeach(DOSCHARSET(UPPERCASE(password)), "KGS!@#$%")</code> by <code>NThash=[[MD4]]([[UTF-16]]-LE(password))</code>, which does not require any padding or truncating that would simplify the key. On the negative side, the same DES algorithm was used with only [[56-bit encryption]] for the subsequent authentication steps, and there is still no salting. Furthermore, Windows machines were for many years configured by default to send and accept responses derived from both the LM hash and the NTLM hash, so the use of the NTLM hash provided no additional security while the weaker hash was still present. It also took time for artificial restrictions on password length in management tools such as User Manager to be lifted.


While LAN Manager is considered obsolete and current Windows operating systems use the stronger NTLMv2 or [[Kerberos (protocol)|Kerberos]] authentication methods, Windows systems before [[Windows Vista]]/[[Windows Server 2008]] enabled the LAN Manager hash by default for [[backward compatibility]] with legacy LAN Manager and [[Windows ME]] or earlier clients, or legacy [[NetBIOS]]-enabled applications. It has for many years been considered good security practice to disable the compromised LM and NTLMv1 authentication protocols where they aren't needed.<ref name="KB299656">{{cite web
{{operating-system-stub}}
| url=https://learn.microsoft.com/en-US/troubleshoot/windows-server/windows-security/prevent-windows-store-lm-hash-password
| title=How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases
| work=[[Microsoft Docs]]
| date=2007-12-03
| access-date=2023-10-16}}</ref>
Starting with Windows Vista and Windows Server 2008, Microsoft disabled the LM hash by default; the feature can be enabled for local accounts via a security policy setting, and for [[Active Directory]] accounts by applying the same setting via domain [[Group Policy]]. The same method can be used to turn the feature off in Windows 2000, Windows XP and NT.<ref name="KB299656"/> Users can also prevent a LM hash from being generated for their own password by using a password at least fifteen characters in length.<ref name="KB828861"/>—NTLM hashes have in turn become vulnerable in recent years to various attacks that effectively make them as weak today as LanMan hashes were back in 1998.{{Citation needed|date=August 2016}}


==Reasons for continued use of LM hash==
Many legacy third party [[Server Message Block|SMB]] implementations have taken considerable time to add support for the stronger protocols that Microsoft has created to replace LM hashing because the [[Open-source software|open source]] communities supporting these libraries first had to [[reverse engineering|reverse engineer]] the newer protocols—[[Samba (software)|Samba]] took 5 years to add [[NTLMv2]] support, while JCIFS took 10 years.


{| class="wikitable"
[[de:LAN Manager]]
|-
[[fr:LAN Manager]]
|+ Availability of NTLM protocols to replace LM authentication
[[id:LAN Manager]]
! Product
[[ja:LAN Manager]]
! NTLMv1 support
[[no:Lan Manager]]
! NTLMv2 support
|-
| [[Windows NT 3.1]]
| RTM (1993)
| Not supported
|-
| [[Windows NT 3.5]]
| RTM (1994)
| Not supported
|-
|-
| [[Windows NT 3.51]]
| RTM (1995)
| Not supported
|-
| [[Windows NT 4]]
| RTM (1996)
| Service Pack 4<ref>{{cite web
| url=https://support.microsoft.com/kb/194507
| title=Windows NT 4.0 Service Pack 4 Readme.txt File (40-bit)
| date=1998-10-25
| publisher=[[Microsoft]]
| access-date=2015-05-12
| archive-url=https://web.archive.org/web/20150519010408/https://support.microsoft.com/en-us/kb/194507
| archive-date=2015-05-19
| url-status=dead}}</ref> (25 October 1998)
|-
| [[Windows 95]]
| Not supported
| Directory services client (released with [[Windows 2000]] Server, 17 February 2000)
|-
| [[Windows 98]]
| RTM
| Directory services client (released with [[Windows 2000]] Server, 17 February 2000)
|-
| [[Windows 2000]]
| RTM (17 February 2000)
| RTM (17 February 2000)
|-
| [[Windows Me]]
| RTM (14 September 2000)
| Directory services client (released with [[Windows 2000]] Server, 17 February 2000)
|-
| [[Samba (software)|Samba]]
| ?
| Version 3.0<ref>{{cite web
| url=https://www.samba.org/samba/history/samba-3.0.0.html
| title=The Samba Team announces the first official release of Samba 3.0
| date=2003-09-24
| publisher=[[SAMBA]]
| access-date=2015-05-12}}</ref> (24 September 2003)
|-
| JCIFS
| Not supported
| Version 1.3.0 (25 October 2008)<ref>{{cite web
| url=https://jcifs.samba.org/
| title=The Java CIFS Client Library
| access-date=2015-05-12}}</ref>
|-
| [[IBM AIX]] (SMBFS)
| 5.3 (2004)<ref>{{cite web| url=http://www-01.ibm.com/support/knowledgecenter/ssw_aix_53/com.ibm.aix.commadmn/doc/commadmndita/smbfs_intro.htm
| title=AIX 5.3 Networks and communication management: Server Message Block file system
| page=441
| publisher=[[IBM]]
| date=2010-03-15
| access-date=2015-05-12}}</ref>
| Not supported as of v7.1<ref>{{cite web
| url=http://www-01.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.networkcomm/smbfs_intro.htm
| title=AIX 7.1 Networks and communication management: Server Message Block file system
| publisher=[[IBM]]
| date=2011-12-05
| access-date=2015-05-12}}</ref>
|}

Poor patching regimes subsequent to software releases supporting the feature becoming available have contributed to some organisations continuing to use LM Hashing in their environments, even though the protocol is easily disabled in [[Active Directory]] itself.

Lastly, prior to the release of Windows Vista, many unattended build processes still used a [[DOS]] boot disk (instead of [[Windows PE]]) to start the installation of Windows using WINNT.EXE, something that requires LM hashing to be enabled for the legacy LAN Manager networking stack to work.

==See also==
* [[NT LAN Manager]]
* [[Active Directory]]
* [[Password cracking]]
* [[Dictionary attack]]
* [[Remote Program Load]] (RPL)
* [[Security Account Manager]]

==Notes==
{{reflist|group=Notes}}

==References==
{{reflist}}

==External links==
{{Wikibooks|Reverse Engineering/Cracking Windows XP Passwords}}
* {{webarchive|url=https://web.archive.org/web/20170212195243/http://msdn.microsoft.com/en-us/library/cc237025.aspx|date=2017-02-12|title=1.3.8.1.1 Microsoft LAN Manager}}

{{Authentication APIs}}
{{Network operating systems}}
{{Microsoft operating systems}}

{{DEFAULTSORT:Lan Manager}}
[[Category:Computer access control protocols]]
[[Category:Discontinued Microsoft operating systems]]
[[Category:Network operating systems]]
[[Category:OS/2]]
[[Category:Password authentication]]
[[Category:Broken hash functions]]
[[Category:Microsoft Windows security technology]]
[[Category:1987 software]]

Latest revision as of 22:18, 15 September 2024

LAN Manager
DeveloperMicrosoft, 3Com
OS familyOS/2
Working stateDiscontinued
Source modelClosed source
Initial release1987; 38 years ago (1987)
Final release2.2a / 1994; 31 years ago (1994)
Marketing targetLocal area networking
Update methodRe-installation
Package managerNone
Platformsx86
LicenseProprietary
Preceded byMS-Net, Xenix-NET, 3+Share
Succeeded byMicrosoft Windows NT 3.1

LAN Manager is a discontinued network operating system (NOS) available from multiple vendors and developed by Microsoft in cooperation with 3Com Corporation. It was designed to succeed 3Com's 3+Share network server software which ran atop a heavily modified version of MS-DOS.

History

[edit]

The LAN Manager OS/2 operating system was co-developed by IBM and Microsoft, using the Server Message Block (SMB) protocol. It originally used SMB atop either the NetBIOS Frames (NBF) protocol or a specialized version of the Xerox Network Systems (XNS) protocol. These legacy protocols had been inherited from previous products such as MS-Net for MS-DOS, Xenix-NET for MS-Xenix, and the afore-mentioned 3+Share. A version of LAN Manager for Unix-based systems called LAN Manager/X was also available. LAN Manager/X was the basis for Digital Equipment Corporation's Pathworks product for OpenVMS, Ultrix and Tru64.[1]

In 1990, Microsoft announced LAN Manager 2.0 with a host of improvements, including support for TCP/IP as a transport protocol for SMB, using NetBIOS over TCP/IP (NBT). The last version of LAN Manager, 2.2, which included an MS-OS/2 1.31 base operating system, remained Microsoft's strategic server system until the release of Windows NT Advanced Server in 1993.[2]

Versions

[edit]
  • 1987 – MS LAN Manager 1.0 (Basic/Enhanced)
  • 1989 – MS LAN Manager 1.1
  • 1991 – MS LAN Manager 2.0
  • 1992 – MS LAN Manager 2.1
  • 1992 – MS LAN Manager 2.1a
  • 1993 – MS LAN Manager 2.2
  • 1994 – MS LAN Manager 2.2a

Many vendors shipped licensed versions, including:

Password hashing algorithm

[edit]

The LM hash is computed as follows:[3][4]

  1. The user's password is restricted to a maximum of fourteen characters.[Notes 1]
  2. The user's password is converted to uppercase.
  3. The user's password is encoded in the System OEM code page.[5]
  4. This password is NULL-padded to 14 bytes.[6]
  5. The “fixed-length” password is split into two 7-byte halves.
  6. These values are used to create two DES keys, one from each 7-byte half, by converting the seven bytes into a bit stream with the most significant bit first, and inserting a parity bit after every seven bits (so 1010100 becomes 10101000). This generates the 64 bits needed for a DES key. (A DES key ostensibly consists of 64 bits; however, only 56 of these are actually used by the algorithm. The parity bits added in this step are later discarded.)
  7. Each of the two keys is used to DES-encrypt the constant ASCII string “KGS!@#$%”,[Notes 2] resulting in two 8-byte ciphertext values. The DES CipherMode should be set to ECB, and PaddingMode should be set to NONE.
  8. These two ciphertext values are concatenated to form a 16-byte value, which is the LM hash.

Security weaknesses

[edit]

LAN Manager authentication uses a particularly weak method of hashing a user's password known as the LM hash algorithm, stemming from the mid-1980s when viruses transmitted by floppy disks were the major concern.[7] Although it is based on DES, a well-studied block cipher, the LM hash has several weaknesses in its design.[8] This makes such hashes crackable in a matter of seconds using rainbow tables, or in a few minutes using brute force. Starting with Windows NT, it was replaced by NTLM, which is still vulnerable to rainbow tables, and brute force attacks unless long, unpredictable passwords are used, see password cracking. NTLM is used for logon with local accounts except on domain controllers since Windows Vista and later versions no longer maintain the LM hash by default.[7] Kerberos is used in Active Directory Environments.

The major weaknesses of LAN Manager authentication protocol are:[9]

  1. Password length is limited to a maximum of 14 characters chosen from the 95 ASCII printable characters.
  2. Passwords are not case sensitive. All passwords are converted into uppercase before generating the hash value. Hence LM hash treats PassWord, password, PaSsWoRd, PASSword and other similar combinations same as PASSWORD. This practice effectively reduces the LM hash key space to 69 characters.
  3. A 14-character password is broken into 7+7 characters and the hash is calculated for each half separately. This way of calculating the hash makes it dramatically easier to crack, as the attacker only needs to brute-force 7 characters twice instead of the full 14 characters. This makes the effective strength of a 14-character password equal to only , or twice that of a 7-character password, which is 3.7 trillion times less complex than the theoretical strength of a 14-character single-case password. As of 2020, a computer equipped with a high-end graphics processor (GPUs) can compute 40 billion LM-hashes per second.[10] At that rate, all 7-character passwords from the 95-character set can be tested and broken in half an hour; all 7-character alphanumeric passwords can be tested and broken in 2 seconds.
  4. If the password is 7 characters or less, then the second half of hash will always produce same constant value (0xAAD3B435B51404EE). Therefore, a password is less than or equal to 7 characters long can be identified visibly without using tools (though with high speed GPU attacks, this matters less).
  5. The hash value is sent to network servers without salting, making it susceptible to man-in-the-middle attacks such as replay the hash. Without salt, time–memory tradeoff pre-computed dictionary attacks, such as a rainbow table, are feasible. In 2003, Ophcrack, an implementation of the rainbow table technique, was published. It specifically targets the weaknesses of LM encryption, and includes pre-computed data sufficient to crack virtually all alphanumeric LM hashes in a few seconds. Many cracking tools, such as RainbowCrack, Hashcat, L0phtCrack and Cain, now incorporate similar attacks and make cracking of LM hashes fast and trivial.

Workarounds

[edit]

To address the security weaknesses inherent in LM encryption and authentication schemes, Microsoft introduced the NTLMv1 protocol in 1993 with Windows NT 3.1. For hashing, NTLM uses Unicode support, replacing LMhash=DESeach(DOSCHARSET(UPPERCASE(password)), "KGS!@#$%") by NThash=MD4(UTF-16-LE(password)), which does not require any padding or truncating that would simplify the key. On the negative side, the same DES algorithm was used with only 56-bit encryption for the subsequent authentication steps, and there is still no salting. Furthermore, Windows machines were for many years configured by default to send and accept responses derived from both the LM hash and the NTLM hash, so the use of the NTLM hash provided no additional security while the weaker hash was still present. It also took time for artificial restrictions on password length in management tools such as User Manager to be lifted.

While LAN Manager is considered obsolete and current Windows operating systems use the stronger NTLMv2 or Kerberos authentication methods, Windows systems before Windows Vista/Windows Server 2008 enabled the LAN Manager hash by default for backward compatibility with legacy LAN Manager and Windows ME or earlier clients, or legacy NetBIOS-enabled applications. It has for many years been considered good security practice to disable the compromised LM and NTLMv1 authentication protocols where they aren't needed.[11] Starting with Windows Vista and Windows Server 2008, Microsoft disabled the LM hash by default; the feature can be enabled for local accounts via a security policy setting, and for Active Directory accounts by applying the same setting via domain Group Policy. The same method can be used to turn the feature off in Windows 2000, Windows XP and NT.[11] Users can also prevent a LM hash from being generated for their own password by using a password at least fifteen characters in length.[6]—NTLM hashes have in turn become vulnerable in recent years to various attacks that effectively make them as weak today as LanMan hashes were back in 1998.[citation needed]

Reasons for continued use of LM hash

[edit]

Many legacy third party SMB implementations have taken considerable time to add support for the stronger protocols that Microsoft has created to replace LM hashing because the open source communities supporting these libraries first had to reverse engineer the newer protocols—Samba took 5 years to add NTLMv2 support, while JCIFS took 10 years.

Availability of NTLM protocols to replace LM authentication
Product NTLMv1 support NTLMv2 support
Windows NT 3.1 RTM (1993) Not supported
Windows NT 3.5 RTM (1994) Not supported
Windows NT 3.51 RTM (1995) Not supported
Windows NT 4 RTM (1996) Service Pack 4[12] (25 October 1998)
Windows 95 Not supported Directory services client (released with Windows 2000 Server, 17 February 2000)
Windows 98 RTM Directory services client (released with Windows 2000 Server, 17 February 2000)
Windows 2000 RTM (17 February 2000) RTM (17 February 2000)
Windows Me RTM (14 September 2000) Directory services client (released with Windows 2000 Server, 17 February 2000)
Samba ? Version 3.0[13] (24 September 2003)
JCIFS Not supported Version 1.3.0 (25 October 2008)[14]
IBM AIX (SMBFS) 5.3 (2004)[15] Not supported as of v7.1[16]

Poor patching regimes subsequent to software releases supporting the feature becoming available have contributed to some organisations continuing to use LM Hashing in their environments, even though the protocol is easily disabled in Active Directory itself.

Lastly, prior to the release of Windows Vista, many unattended build processes still used a DOS boot disk (instead of Windows PE) to start the installation of Windows using WINNT.EXE, something that requires LM hashing to be enabled for the legacy LAN Manager networking stack to work.

See also

[edit]

Notes

[edit]
  1. ^ If the password is more than fourteen characters long, the LM hash cannot be computed.
  2. ^ The string “KGS!@#$%” could possibly mean Key of Glen and Steve and then the combination of Shift + 12345. Glen Zorn and Steve Cobb are the authors of RFC 2433 (Microsoft PPP CHAP Extensions).

References

[edit]
  1. ^ Andy Goldstein (2005). "Samba and OpenVMS" (PDF). de.openvms.org. Archived from the original (PDF) on 2021-02-07. Retrieved 2021-01-01.
  2. ^ "DOS SMB Client Performance | OS/2 Museum". Retrieved 2023-08-28.
  3. ^ "Chapter 3 - Operating System Installation". Microsoft Docs. 24 March 2009. The LMHash. Retrieved 2023-10-16.
  4. ^ Glass, Eric (2006). "The NTLM Authentication Protocol and Security Support Provider: The LM Response". Retrieved 2015-05-12.
  5. ^ "List of Localized MS Operating Systems". Microsoft Developer Network. Archived from the original on 2015-05-18. Retrieved 2015-05-12.
  6. ^ a b "Cluster service account password must be set to 15 or more characters if the NoLMHash policy is enabled". Microsoft. 2006-10-30. Archived from the original on 2014-09-10. Retrieved 2015-05-12.
  7. ^ a b Jesper Johansson (31 August 2016). "The Most Misunderstood Windows Security Setting of All Time". Microsoft Docs. Microsoft. Retrieved 16 October 2023. Although Windows Vista has not been released yet, it is worthwhile to point out some changes in this operating system related to these protocols. The most important change is that the LM protocol can no longer be used for inbound authentication—where Windows Vista is acting as the authentication server.
  8. ^ Johansson, Jasper M. (2004-06-29). "Windows Passwords: Everything You Need To Know". Microsoft. Retrieved 2015-05-12.
  9. ^ Rahul Kokcha
  10. ^ Benchmark Hashcat v6.1.1 on RTX 2070S (SUPER), Mode 3000 LM, accessed November 29, 2020
  11. ^ a b "How to prevent Windows from storing a LAN manager hash of your password in Active Directory and local SAM databases". Microsoft Docs. 2007-12-03. Retrieved 2023-10-16.
  12. ^ "Windows NT 4.0 Service Pack 4 Readme.txt File (40-bit)". Microsoft. 1998-10-25. Archived from the original on 2015-05-19. Retrieved 2015-05-12.
  13. ^ "The Samba Team announces the first official release of Samba 3.0". SAMBA. 2003-09-24. Retrieved 2015-05-12.
  14. ^ "The Java CIFS Client Library". Retrieved 2015-05-12.
  15. ^ "AIX 5.3 Networks and communication management: Server Message Block file system". IBM. 2010-03-15. p. 441. Retrieved 2015-05-12.
  16. ^ "AIX 7.1 Networks and communication management: Server Message Block file system". IBM. 2011-12-05. Retrieved 2015-05-12.
[edit]