SID Filtering

In Windows Server 2003 Security Rollup Package 1 (SRP1), Microsoft introduced SID filtering to prevent elevation-of-privilege attacks. SID filtering causes the domain controllers (DCs) in a trusting domain to remove all SIDs that aren't members of the trusted domain. In other words, if a user in a trusted domain is a member of groups in other domains in the forest, the trusting domain will remove those groups' SIDs from the user's access token. (For more information about SID filtering and the problems it can cause, see the Microsoft article "MS02-001: Forged SID could result in elevated privileges in Windows 2000" at http://support.microsoft.com/?kbid=289243.)

SID filtering is disabled by default in Windows 2000 pre-Service Pack 4 (SP4) and in Windows NT 4.0. However, SID filtering is enabled by default in Windows 2003 and Win2K SP4. This situation can cause problems if you need to break and reestablish trusts that you created before SP4.

Consider the following example. NT 4.0 users in your trusted domain access resources in your trusting domain. Some of these resources have groups that belong to other domains in the trusted forest in their ACL. Users have access to these resources because they're members of these groups. This situation works until you break and reestablish the trust with this resource domain. Users then receive Access denied messages on some resources.

You might not know whether SID filtering affects your organization until you need to break and reestablish trusts. To determine whether SID filtering might cause problems, log on as a user account from the trusted domain and run the Microsoft Windows 2000 Server Resource Kit's WhoAmI utility on a trusting domain resource, as follows:

whoami /groups

If SID filtering is enabled, WhoAmI's output will show that the user account is missing some of the groups the account is a member of.

Another way to determine whether SID filtering is enabled is to open a command prompt from a domain administrator account in the trusting domain and enter

nltest /server:<<i>DC in trusting domain></i> /domain_trusts

The output will display a list of trusts for the domain. If one of the Direct Outbound trusts shows <Attr: filtered >, SID filtering is active for that trust. If you use Windows 2003's New Trust Wizard to create a trust, the wizard explicitly tells you that SID filtering is enabled.

You can use Windows 2003's or Win2K SP4's Netdom to disable SID filtering. Log on to a DC in the trusting domain with an account that has domain administrator rights. From a Win2K SP4 server, go to a command prompt and enter

netdom trust <i><trusting domain></i> /domain:<i><trusted domain></i> /FilterSIDs:no

From a Windows 2003 server, enter

netdom trust <i><trusting domain></i> /domain:<i><trusted domain></i> /quarantine:no

SID filtering will then be disabled.

Discuss this Article 2

Anonymous User (not verified)
on Mar 17, 2005
tnx

Please or Register to post comments.

IT/Dev Connections

Las Vegas
September 30th - October 4th

Paul ThurottYou'll have the opportunity to experience:
• The Microsoft
Technology Roadmap
• Office 365 Implementation
• Hyper-V Optimizing
• Windows 8 Deployment
and much more!

Come See Paul Thurrott & Rod Trent in Person!

Early Registration Now Open

Upcoming Training

Mastering System Center 2012

During over 6 hours of training you can join John Savill from your computer as he will walk you through the key components and capabilities of System Center 2012, what’s involved in using the components, and the benefit they can bring to your environment.

Register Now

Current Issue

May 2013 - The NameTranslate object is useful when you need to translate Active Directory object names between different formats, but it's awkward to use from PowerShell. Here's a PowerShell script that eliminates the awkwardness.

CURRENT ISSUE / ARCHIVE / SUBSCRIBE

Windows Forums

Get answers to questions, share tips, and engage with the Windows Community in our Forums.