Lucene search

K
packetstormLaurent gaffiePACKETSTORM:139700
HistoryNov 14, 2016 - 12:00 a.m.

LSASS SMB NTLM Exchange Remote Memory Corruption

2016-11-1400:00:00
laurent gaffie
packetstormsecurity.com
64

0.933 High

EPSS

Percentile

98.8%

`MS16-137: LSASS Remote Memory Corruption Advisory  
Title: LSASS SMB NTLM Exchange Remote Memory Corruption  
Version: 1.0  
Issue type: Null Pointer Dereference  
Authentication: Pre-Authenticated  
Affected vendor: Microsoft  
Release date: 8/11/2016  
Discovered by: Laurent GaffiA(c)  
Advisory by: Laurent GaffiA(c)  
Issue status: Patch available  
Affected versions: Windows: XP/Server 2003, Vista, 7, 2008R2, Server 2012R2, 10.   
=================================================  
  
A vulnerability in Windows Local Security Authority Subsystem Service (LSASS) was found on Windows OS versions ranging from Windows XP through to Windows 10. This vulnerability allows an attacker to remotely crash the LSASS.EXE process of an affected workstation with no user interaction.  
Successful remote exploitation of this issue will result in a reboot of the target machine. Local privilege escalation should also be considered likely.  
Microsoft acknowledged the vulnerability and has published an advisory and a patch, resolving this issue.  
  
  
Technical details  
-----------------  
  
This vulnerability affects both LSASS client and server and can be triggered remotely via SMBv1 and SMBv2, during the NTLM message 3 (Authenticate) message. Incoming NTLM messages via SMB are using ASN1 and DER encoding, the first ASN length field can be set to unsigned int by using 0x84.  
This allows an attacker to remotely allocate a huge chunk of memory, for a message never larger than 20000 chars. The secondary trigger is to set any string fields (User, Domain, session Key, MIC, etc) with a long string (80-140 chars), leading LSASS.exe to crash.  
  
eax=00000000 ebx=000e3e04 ecx=fffffff8 edx=fffffffc esi=000e3e00 edi=00000004  
eip=7c84cca2 esp=00aaf9ac ebp=00aaf9d4 iopl=0 nv up ei pl nz ac po cy  
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010213  
ntdll!RtlpWaitOnCriticalSection+0xdf:  
7c84cca2 ff4014 inc dword ptr [eax+14h] ds:0023:00000014=????????  
  
STACK_TEXT:   
00aaf9d4 7c83cfd7 00000b3c 00000004 00000000 ntdll!RtlpWaitOnCriticalSection+0xdf  
00aaf9f4 4ab82f4a 000e3e00 00aafbec 00000000 ntdll!RtlEnterCriticalSection+0xa8 <-- Is used with a null pointer  
00aafa18 4ab82765 000e3de8 ffffffff 00000001 lsasrv!NegpBuildMechListFromCreds+0x25 <-- Uses a null creds.  
00aafbfc 4abc8fbb 00000001 00aafe40 000e3de8 lsasrv!NegBuildRequestToken+0xd9  
00aafc34 4abca13f 000e3de8 00120111 00000010 lsasrv!NegGenerateServerRequest+0x2a  
00aafc98 4ab85edb 000e3de8 00000000 00aafe40 lsasrv!NegAcceptLsaModeContext+0x344  
00aafd0c 4ab860c8 00d5f900 00d5f908 00aafe40 lsasrv!WLsaAcceptContext+0x139  
00aafe84 4ab7ae7b 00d5f8d8 005ccaf0 00599048 lsasrv!LpcAcceptContext+0x13b  
00aafe9c 4ab7ad7e 00d5f8d8 4ac22738 00d5a158 lsasrv!DispatchAPI+0x46  
00aaff54 4ab7a7c9 00d5f8d8 00aaff9c 77e5baf1 lsasrv!LpcHandler+0x1fe  
00aaff78 4ab8f448 00598ce8 00000000 00000000 lsasrv!SpmPoolThreadBase+0xb9  
00aaffb8 77e6484f 0059ade8 00000000 00000000 lsasrv!LsapThreadBase+0x91  
00aaffec 00000000 4ab8f3f1 0059ade8 00000000 kernel32!BaseThreadStart+0x34  
  
dt ntdll!_RTL_CRITICAL_SECTION  
+0x000 DebugInfo : Ptr32 _RTL_CRITICAL_SECTION_DEBUG  
+0x004 LockCount : Int4B  
+0x008 RecursionCount : Int4B  
+0x00c OwningThread : Ptr32 Void  
+0x010 LockSemaphore : Ptr32 Void  
+0x014 SpinCount : Uint4B  
  
- LSASS NegpBuildMechListFromCreds sends a null pointer "creds" to NTDLL RtlEnterCriticalSection.  
- RtlEnterCriticalSection is used with a null pointer, which triggers the crash.  
  
Impact  
------  
  
Successful attempts will result in a remote system crash and possibly local privilege escalation.  
  
Affected products  
-----------------  
  
Windows:  
- XP  
- Server 2003  
- 7  
- 8  
- 2008  
- 2012  
- 10  
  
Proof of concept  
----------------  
  
A proof of concept is available at the following URL:  
  
https://github.com/lgandx/PoC/tree/master/LSASS  
https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/40744.zip  
  
This proof of concept is fully automated and includes non-vulnerable detection.  
  
Solution  
--------  
  
Install the corresponding MS patch.  
More details:  
https://technet.microsoft.com/en-us/library/security/ms16-137.aspx  
  
Response timeline  
-----------------  
  
* 17/09/2016 - Vendor notified, proof of concept sent.  
* 28/09/2016 - Issue confirmed by MSRC  
* 14/10/2016 - Vendor says he plan to release a patch in November, that is 1 month in advance of the scheduled 3 month.  
* 08/11/2016 - Vendor release MS16-137.  
* 08/11/2016 - This advisory released.  
  
References  
----------  
* https://twitter.com/PythonResponder  
* https://github.com/lgandx/Responder  
  
`

0.933 High

EPSS

Percentile

98.8%