If the SMTP doesn't use the operating system resolver, where does it find the 
DNS servers that it uses ?

Nicolas found that the Windows SMTP Service does its own DNS
> resolution of MX records rather that use the DNS resolver from the
> operating system while investigating CVE-2010-0024

CFee

-----Original Message-----
From: Jason Gurtz [mailto:jasongu...@npumail.com]
Sent: Wednesday, May 05, 2010 4:36 PM
To: MS-Exchange Admin Issues
Subject: RE: FYI - MSFT doesn't tell all it knows

Very Interesting... (and not surprised here either)

I guess they need to read Joels article I linked yesterday too ;)

Well, I guess if there are ever host resolution issues on Exchange I'll
know that I'd be wasting my time by doing ipconfig /flushdns

Re-inventing the wheel: always a fun time down the road!

~JasonG

> -----Original Message-----
> From: Kurt Buff [mailto:kurt.b...@gmail.com]
> Sent: Tuesday, May 04, 2010 19:57
> To: MS-Exchange Admin Issues
> Subject: FYI - MSFT doesn't tell all it knows
>
> Why does this not surprise me?
>
> Kurt
>
>
> ---------- Forwarded message ----------
> From: Core Security Technologies Advisories
<advisor...@coresecurity.com>
> Date: Tue, May 4, 2010 at 15:26
> Subject: [Full-disclosure] [CORE-2010-0427] Windows SMTP Service DNS
> query Id vulnerabilities
> To: full-disclos...@lists.grok.org.uk
>
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
>      Core Security Technologies - CoreLabs Advisory
>           http://corelabs.coresecurity.com/
>
> Windows SMTP Service DNS query Id vulnerabilities
>
>
>
> 1. *Advisory Information*
>
> Title: Windows SMTP Service DNS query Id vulnerabilities
> Advisory Id: CORE-2010-0427
> Advisory URL:
> [http://www.coresecurity.com/content/CORE-2010-0424-windows-smtp-dns-
> query-id-bugs]
> Date published: 2010-05-04
> Date of last update: 2010-05-04
> Vendors contacted: Microsoft
> Release mode: User release
>
>
>
> 2. *Vulnerability Information*
>
> Class: Predictable from Observable State [CWE-341], Insufficient
> Verification of Data Authenticity [CWE-345]
> Impact: Security bypass
> Remotely Exploitable: Yes
> Locally Exploitable: No
> CVE Name: CVE-2010-1689, CVE-2010-1690
> Bugtraq ID: 39908, 39910
>
>
>
> 3. *Vulnerability Description*
>
> DNS spoofing and cache poisoning attacks have been known security
> threats that result from design weaknesses of the DNS protocol since the
> early 1990s as described by Christopher Schuba [1] and Paul Vixie [2].
> In 1997 a practical implementation of a blind remote DNS cache poisoning
> attack that relies solely on exploiting the predictability of the ID
> field of DNS query packets was described by Arce and Kargieman [3]. This
> was followed up by further refinements and advancement of attack
> techniques by Vagner Sacramento [4] and Joe Stewart [5] in 2002. Amit
> Klein further investigated query Id predictability in BIND version 9[6]
> and Windows DNS[7] server implementations in 2007. In 2008 a much
> publicized advancement of the DNS cache poisoning technique was
> disclosed by Dan Kaminsky [8] in conjunction with the release of
> security fixes by several vendors. Microsoft's MS08-037
> [http://www.microsoft.com/technet/security/bulletin/ms08-
> 037.mspx]Security
> Bulletin addressed those DNS spoofing techniques in Windows DNS client
> and server software.
>
> In light of the 16-year saga of discovery and refinement of DNS
> poisoning attacks and protection techniques in January 2009 the Internet
> Engineering Task Force published RFC5452 with guidelines to make DNS
> more resilient against forged answer attacks.[9]
>
> While researching the fixes issued by Microsoft in Microsoft's Security
> Bulletin MS10-024
> [http://www.microsoft.com/technet/security/bulletin/ms10-024.mspx]
> published April 13, 2010 Nicolas Economou discovered two vulnerabilities
> in Windows SMTP Service and Microsoft Exchange . These vulnerabilities
> were fixed by the patches referenced in MS10-024 but were not disclosed
> in the vendor's security bulletin and did not have an unique
> vulnerability identifier assigned to them. As a result, the guidance and
> the assessment of risk derived from reading the vendor's security
> bulletin may overlook or misrepresent actual threat scenarios.
>  Nicolas found that the Windows SMTP Service does its own DNS resolution
> of MX records rather that use the DNS resolver from the operating system
> while investigating CVE-2010-0024
> [http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0024].
> Furthermore, he found that the patch referenced in MS10-024 fixed two
> severe bugs that were not disclosed as such in the bulletin and had no
> CVE identifiers assigned to them. Basic analysis of the vulnerabilities
> disclosed in this advisory indicates that the threat of DNS spoofing
> attacks against Windows SMTP service and Microsoft Exchange or of
> exploitation of CVE-2010-0024 was underestimated in MS10-024.
>  An attacker may leverage the two previously undisclosed vulnerabilities
> fixed by MS10-014 to spoof responses to any DNS query sent by the
> Windows SMTP service trivially. DNS response spoofing and cache
> poisoning attacks are well known to have a variety of security
> implications with impact beyond just Denial of Service and Information
> Disclosure as originally stated in MS10-024.
>  As a result the importance of deploying MS10-024 patches may be
> miss-represented in the vendor's security bulletin. Organizations using
> vulnerable packages should consider re-assessing patch deployment
> priorities in view of the additional information provided in this
> advisory.
>
>
> 3.1. *Predictable DNS query ID*
>
> [CVE-2010-1689 | 39908] Prior to MS10-024 the Windows SMTP Service
> generated DNS queries with trivially guessable values in the transaction
> ID field. The issue was addressed in MS10-024 by adding a call to the
> 'CAsyncDns::GenerateRandWord' method when building the DNS query.
>
>
> 3.2. *Missing validation of DNS responses*
>
> [CVE-2010-1690 | 39910] Prior to MS10-024 the Windows SMTP Service did
> not check that the value of the ID field of a DNS response received from
> the network actually matched the value of the ID field of a
> corresponding DNS query packet previously sent. The issue was addressed
> in MS10-024 by adding validation logic to the 'CAsyncDns::ProcessReadIO'
> method.
>
>
> 4. *Vulnerable packages*
>
>   . Microsoft Windows 2000 (SP4 and previous)
>   . Microsoft Windows XP (SP3, SP2 and previous)
>   . Microsoft Windows 2003 (SP2 and previous)
>   . Microsoft Windows 2008 (SP2 and previous)
>   . Microsoft Windows 2008 R2
>   . Microsoft Exchange Server 2003 (SP3, SP2 and previous)
>   . Microsoft Exchange Server 2007 (SP2, SP1 and previous)
>   . Microsoft Exchange Server 2010
>
>
> 5. *Non-vulnerable packages*
>
>   . Microsoft Windows 2000 (SP4 and previous) with MS10-024
>   . Microsoft Windows XP (SP3, SP2 and previous) with MS10-024
>   . Microsoft Windows 2003 (SP2 and previous) with MS10-024
>   . Microsoft Windows 2008 (SP2 and previous) with MS10-024
>   . Microsoft Windows 2008 R2 with MS10-024
>   . Microsoft Exchange Server 2003 (SP3, SP2 and previous) with MS10-024
>   . Microsoft Exchange Server 2007 (SP2, SP1 and previous) with MS10-024
>   . Microsoft Exchange Server 2010 with MS10-024
>
>
> 6. *Vendor Information, Solutions and Workarounds*
>
> These vulnerabilities are fixed with the security updates included in
> Microsoft Security Bulletin MS10-024
> [http://www.microsoft.com/technet/security/bulletin/ms10-024.mspx].
>
>
> 7. *Credits*
>
> The bugs disclosed in this advisory were independently discovered and
> researched by Nicolás Economou
>
[http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=
> researcher&name=Nicolas_Economou].
> The identity of the original discoverer is unknown.
>
>
> 8. *Technical Description / Proof of Concept Code*
>
> The vulnerabilities were found and researched on a Windows XP SP3 system
> by identifying binary differences in 'smtpsvc.dll' after applying the
> corresponding patch from MS10-024. The dll versions '6.0.2600.5512' and
> '6.0.2600.5949' were compared.
>
> The following code excerpt identifies the *Predictable DNS query ID
> vulnerability*[CVE-2010-1689 | 39908]. Without the MS10-024 patch
> 'smtpsvc.dll v6.0.2600.5512' looks like:
>
> /-----
> 4FB5530C
> 4FB5530C loc_4FB5530C:
> 4FB5530C mov     [esi+3Ch], eax
> 4FB5530F mov     eax, [ebp+arg_8]
> 4FB55312 mov     ecx, ushort gwTransactionId
> 4FB55318 inc     word ptr ushort gwTransactionId
> 4FB5531F shr     eax, 2
> 4FB55322 not     eax
> 4FB55324 and     eax, 1
> 4FB55327 push    eax
> 4FB55328 push    ecx
> 4FB55329 push    [ebp+arg_4]
> 4FB5532C lea     eax, [ebp+hostshort]
> 4FB5532F push    [ebp+lpMultiByteStr]
> 4FB55332 push    eax
> 4FB55333 push    dword ptr [esi+3Ch]
> 4FB55336 call    DnsWriteQuestionToBuffer_UTF8(x,x,x,x,x,x)
> 4FB5533B test    eax, eax
> 4FB5533D jnz     short loc_4FB5537E
>
> - -----/
>  As seen at address '4FB55318' the value used to populate the query ID
> field of outgoing DNS queries is simply incremented by one for each new
> query to be sent. After applying the patch 'CAsyncDns::Dns_QueryLib' was
> modified as follows:
>
> /-----
> 4FB5564F
> 4FB5564F loc_4FB5564F:
> 4FB5564F mov     ecx, esi
> 4FB55651 mov     [esi+3Ch], eax
> 4FB55654 call    CAsyncDns::GenerateRandWord(void)
> 4FB55659 mov     ecx, [ebp+arg_8]
> 4FB5565C shr     ecx, 2
> 4FB5565F not     ecx
> 4FB55661 and     ecx, 1
> 4FB55664 push    ecx
> 4FB55665 push    eax
> 4FB55666 push    [ebp+arg_4]
> 4FB55669 mov     [esi+590h], ax
> 4FB55670 push    [ebp+lpMultiByteStr]
> 4FB55673 lea     eax, [ebp+hostshort]
> 4FB55676 push    eax
> 4FB55677 push    dword ptr [esi+3Ch]
> 4FB5567A call    DnsWriteQuestionToBuffer_UTF8(x,x,x,x,x,x)
> 4FB5567F test    eax, eax
> 4FB55681 jnz     short loc_4FB556C2
>
> - -----/
>  The patch adds a call to method 'CAsyncDns::GenerateRandWord' at
> address '4FB55654'. The quality of the pseudo-random number generator
> used by 'CAsyncDns::GenerateRandWord' was not investigated but simple
> observation of packets on the wire confirms that DNS query IDs are no
> longer generated using increments of one decimal unit.
>
> In the case of the *Missing validation of DNS responses
> vulnerability*[CVE-2010-1690 | 39910] the following code excerpt shows
> the validation code added to 'CAsyncDns::ProcessReadIO' by the patch
> from MS10-024.
>
> /-----
> 4FB5517F
> 4FB5517F loc_4FB5517F:
> 4FB5517F mov     ecx, [esi+34h] <-- Transaction ID received from the
> network
> 4FB55182 mov     dx, [esi+590h] <-- Transaction ID set at "4FB55669: mov
> [esi+590h], ax"
> 4FB55189 cmp     dx, [ecx]
> 4FB5518C jz      loc_4FB5
>
> - -----/
>  Since 'CAsyncDns::ProcessReadIO' is called prior to
> 'CAsyncDns::DnsParseMessage' the patch effectively added a verification
> to the ID value in a DNS responses that was missing before. This implies
> that even if it was trivial to blindly guess the query IDs generated by
> the Windows SMTP service with no or just a few captured DNS queries an
> attacker did not even need to guess valid query ids to be able to spoof
> legitimate replies successfully.
>  Prior to MS10-024 the complexity of spoofing responses to Windows SMTP
> Service or Microsoft Exchange Server was reduced to just guessing the
> source port that originated the query. This lack of validation of
> inbound responses was confirmed in practice with a proof of concept
> exploit for the SMTP Server MX Record vulnerability disclosed in MS10-
> 024.
>  MS10-024 also included "defense-in-depth changes" to Microsoft Exchange
> 2007 and Microsoft Exchange 2010 that added *source port*entropy to DNS
> transactions initiated by the SMTP service as stated in the FAQ in the
> general information section of the security bulletin. However, those
> "defense-in-depth changes" refer to randomization of the source port for
> outbound DNS queries and not to the value of the query ID used in DNS
> packets.
>  The FAQ section corresponding to the SMTP Server MX record
> vulnerability (CVE-2010-0024
> [http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2010-0024]) in
> MS10-024 provides the following question and answer:
>
> /-----
> How could an attacker exploit the vulnerability?
> An attacker could try to exploit the vulnerability by creating a
> malicious DNS server that
> returns a specially crafted response to an MX resource record query.
>
> - -----/
>  Basic analysis of the vulnerabilities disclosed in this advisory that
> were fixed but not disclosed in MS10-024 indicates that the threat of
> DNS spoofing attacks against Windows SMTP service and Microsoft Exchange
> or scenario for exploitation of CVE-2010-0024 was underestimated. As a
> result the importance of deploying the MS10-024 patches may be
> miss-represented in the vendor's security bulletin. Organizations using
> vulnerable packages should consider re-assessing patch deployment
> priorities in view of the additional information provided in this
> advisory.
>
>
> 9. *Report Timeline*
>
> . 2010-04-20:
> Nicolás Economou  notifies Core's Security Advisories Team of findings.
>
> . 2010-04-20:
> Core Advisories Team requests confirmation that transaction ids of DNS
> responses are not being validated.
>
> . 2010-04-21:
> Nicolás Economou confirms [CVE-2010-1689 | 39908]
>
> . 2010-04-28:
> Initial notification to the vendor. Publication date set to April 30
> 2010.
>
> . 2010-04-29:
> Vendor confirms that additional updates were included in MS10-024 and
> quotes a paragraph from MS10-024 that describes a defense-in-depth
> change for Microsoft Exchange 2007 and Microsoft Exchange 2010 that adds
> additional source port entropy to DNS transactions initiated by the SMTP
> service. Indicates that since these were "defense-in-depth" changes no
> specific CVEs were assigned and that releasing separate updates for
> these issues is currently not being considered as they were already
> bundled in MS10-024. The undisclosed changes apply to all versions of
> Microsoft Exchange. Microsoft requests a copy of Core's advisory prior
> to its release to prepare for any follow up questions.
>
> . 2010-04-29:
> Core response: The FAQ from the general information section of MS10-024
> quoted by Microsoft refers to source port entropy not to the value of
> the transaction id field used in outbound DNS queries. Core does not
> consider the two bugs reported to be "security-in-depth" fixes and
> points out that there is an amount of literature to support that opinion
> starting with Core's first published security advisory on DNS query Id
> prediction [3] and ending with Dan Kaminsky's over-publicized DNS
> poisoning technique which in 2008 Microsoft considered bonafide bugs
> that required public disclosure using their own CVEs as disclosed in
> MS08-037. Core found no reasonable way to justify the fix to
> [CVE-2010-1690 | 39910] as a "defense-in-depth change". Checking that
> the id of a reply actually matches the id sent in the corresponding
> query is basic functionality required of any DNS resolver. It is also a
> *MUST* requirement of section 9.1 of RFC5452. Core indicates that it
> will consult with Mitre to figure out if one, two or zero new CVE
> identifiers should be used in reporting these bugs since CVE-2008-1447
> may or may not be applicable for the first bug described in the
> advisory. As soon as the final draft of the advisory is ready for
> publication Core will send it to Microsoft as requested and ask for
> comments or any official statement to be added to its Vendor Information
> section.
>
> . 2010-05-03:
> Final draft of CORE-2010-0427 sent to Microsoft.
>
> . 2010-05-04:
> CORE-2010-0427 is published.
>
>
>
> 10. *References*
>
> [1] Schuba, Christoph, "Addressing Weaknesses in the Domain Name System
> Protocol", 1993.
> [http://ftp.cerias.purdue.edu/pub/papers/christoph-schuba/schuba-DNS-
> msthesis.pdf]
> [2] Vixie, Paul, "5th USENIX UNIX Security Symposium", 1995.
>
[http://www.usenix.org/publications/library/proceedings/security95/full_p
> apers/vixie.txt]
> [3] Arce, Ivan, Kargieman, Emiliano, "BIND vulnerbailities and
> solutions", 1997.
> [http://www.openbsd.org/advisories/res_random.txt]
> [4] Sacramento, Vagner, "Vulnerability in the sending requests control
> of Bind versions 4 and 8 allows DNS spoofing", 2002.
> [http://www.rnp.br/cais/alertas/2002/cais-ALR-19112002a.html]
> [5] Stewart, Joe, "DNS Cache Poisoning - The Next Generation", 2002.
> [http://www.secureworks.com/research/articles/dns-cache-poisoning]
> [6] Klein, Amit, "BIND 9 DNS cache poisoning", 2007.
> [http://www.trusteer.com/files/BIND_9_DNS_Cache_Poisoning.pdf]
> [7] Klein, Amit, "Windows DNS Server cache poisoning", 2007.
> [http://www.trusteer.com/files/Windows_DNS_Cache_Poisoning.pdf]
> [8] Kaminsky, Dan, "Black Ops 2008: It_s The End Of The Cache As We Know
> It ", 2008.
> [http://www.blackhat.com/presentations/bh-jp-08/bh-jp-08-
> Kaminsky/BlackHat-Japan-08-Kaminsky-DNS08-BlackOps.pdf]
> [9] Hubert, A., van Mook, R., "Measures for Making DNS More Resilient
> against Forged Answers", RFC-5452, 2009.
> [http://tools.ietf.org/html/rfc5452]
>
>
> 11. *About CoreLabs*
>
> CoreLabs, the research center of Core Security Technologies, is charged
> with anticipating the future needs and requirements for information
> security technologies. We conduct our research in several important
> areas of computer security including system vulnerabilities, cyber
> attack planning and simulation, source code auditing, and cryptography.
> Our results include problem formalization, identification of
> vulnerabilities, novel solutions and prototypes for new technologies.
> CoreLabs regularly publishes security advisories, technical papers,
> project information and shared software tools for public use at:
> [http://corelabs.coresecurity.com/].
>
>
> 12. *About Core Security Technologies*
>
> Core Security Technologies develops strategic solutions that help
> security-conscious organizations worldwide develop and maintain a
> proactive process for securing their networks. The company's flagship
> product, CORE IMPACT, is the most comprehensive product for performing
> enterprise security assurance testing. CORE IMPACT evaluates network,
> endpoint and end-user vulnerabilities and identifies what resources are
> exposed. It enables organizations to determine if current security
> investments are detecting and preventing attacks. Core Security
> Technologies augments its leading technology solution with world-class
> security consulting services, including penetration testing and software
> security auditing. Based in Boston, MA and Buenos Aires, Argentina, Core
> Security Technologies can be reached at 617-399-6980 or on the Web at
> [http://www.coresecurity.com].
>
>
> 13. *Disclaimer*
>
> The contents of this advisory are copyright (c) 2010 Core Security
> Technologies and (c) 2010 CoreLabs, and may be distributed freely
> provided that no fee is charged for this distribution and proper credit
> is given.
>
>
> 14. *PGP/GPG Keys*
>
> This advisory has been signed with the GPG key of Core Security
> Technologies advisories team, which is available for download at
>
[http://www.coresecurity.com/files/attachments/core_security_advisories.a
> sc].
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.9 (MingW32)
>
> iEYEARECAAYFAkvgnyEACgkQyNibggitWa2SyQCfdWpNuMmlU8Ye1eE0uSII5f+G
> mmwAnj4hejHo/gnLh8qF/EhHBJHvvijS
> =VxJA
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Full-Disclosure - We believe in it.
> Charter: http://lists.grok.org.uk/full-disclosure-charter.html
> Hosted and sponsored by Secunia - http://secunia.com/
>

Reply via email to