<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>A-fanatic blog</title>
	<atom:link href="http://blog.studiographic.nl/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://blog.studiographic.nl</link>
	<description>Past results do not guarantee future performance</description>
	<lastBuildDate>Tue, 01 Jun 2010 16:31:59 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Windows Firewall through policies + SCM</title>
		<link>http://blog.studiographic.nl/?p=384</link>
		<comments>http://blog.studiographic.nl/?p=384#comments</comments>
		<pubDate>Tue, 01 Jun 2010 15:02:15 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[. All Posts]]></category>
		<category><![CDATA[Other]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=384</guid>
		<description><![CDATA[So everybody should enable firewall policies in order to keep their environment secure. Best practice is to manage the firewalls through policies.. keep a default policy to enable the firewall and do not allow incoming connections.. then based on server role add exceptions and ports. That way, each server added to the domain is secured [...]]]></description>
			<content:encoded><![CDATA[<p>So everybody should enable firewall policies in order to keep their environment secure. Best practice is to manage the firewalls through policies.. keep a default policy to enable the firewall and do not allow incoming connections.. then based on server role add exceptions and ports. That way, each server added to the domain is secured by the firewall by default, but additional policies can enable applications to receive traffic.</p>
<p><span id="more-384"></span></p>
<p>When designing policies with the <a title="Microsoft Technet SCM" href="http://technet.microsoft.com/en-us/library/cc677002.aspx" target="_blank">Security Compliancy Manager</a> you can quickly design the Firewall policies and import these settings to a policy in your environment. However, when you configure the policies through that console, also make sure to configure the exceptions through that console!</p>
<p>In short, when you configure the donotallowexceptions, the registrykey HKLM\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile\DoNotAllowExceptions is set to REG_DWORD:1. When you configure the exceptions through the normal GPO editor, this key is NOT reset to 0, thus no exceptions are allowed and your configured exceptions will not work!. By configuring the exception also using this SCM console, you specifically edit the REG_DWORD to be 0.</p>
<p>PS: It is best to only configure the Windows Firewall with Advanced Security in the 2008 template:<br />
<strong>Do not use: </strong>Computer Configuration\Administrative Templates\Network\Network Connections\Windows Firewall\Domain Profile<br />
<strong>Use: </strong>Computer Configuration\Windows Settings\Security Settings\Windows Firewall with Advanced Security\Windows Firewall with Advanced Security\Windows Firewall Properties\Domain Profile</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=384</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Congrats</title>
		<link>http://blog.studiographic.nl/?p=380</link>
		<comments>http://blog.studiographic.nl/?p=380#comments</comments>
		<pubDate>Tue, 25 May 2010 07:59:42 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=380</guid>
		<description><![CDATA[We had no hope at all, we send him off to Seattle expecting nothing except total failure.. seems the dude is more knowledgeable than expected ..
Three written exams and one lab later, co-worker J. Reijling achieved MCM OCS.. congrats..
http://www.reijling.nl/
]]></description>
			<content:encoded><![CDATA[<p>We had no hope at all, we send him off to Seattle expecting nothing except total failure.. seems the dude is more knowledgeable than expected ..</p>
<p>Three written exams and one lab later, co-worker J. Reijling achieved MCM OCS.. congrats..</p>
<p><a href="http://www.reijling.nl/">http://www.reijling.nl/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=380</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCF 2009 simple architecture</title>
		<link>http://blog.studiographic.nl/?p=367</link>
		<comments>http://blog.studiographic.nl/?p=367#comments</comments>
		<pubDate>Thu, 29 Apr 2010 08:29:50 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[. All Posts]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=367</guid>
		<description><![CDATA[I&#8217;ve been working with CCF the last days, CCF you say what is that? Well its a product from Microsoft that can be used to enhance the experience of users when working with multiple applications that require the same input. Say we have a call center with many applications. When a customer calls the agent [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with CCF the last days, CCF you say what is that? Well its a product from Microsoft that can be used to enhance the experience of users when working with multiple applications that require the same input. Say we have a call center with many applications. When a customer calls the agent asks for your zip code or address. Then you state your problem and the agent needs to open a different program and re-enter your zip code, then the company needs to send you a package and for that application he again needs your address details.. annoying for you (every time the agent asks you for your creds and even more annoying for the call center agent since he/she has to type the same info multiple times.</p>
<p>So CCF can help you with that..it requires a lot of programming to integrate all the apps, but it could be worth it.. are you designing CCF? are you interested in the architecture.. check out this post &#8230;</p>
<p><span id="more-367"></span></p>
<h1>1     Introduction</h1>
<p>CCF is based on a client-server model. The client is a .net application that runs on a client computer for example all computers in a call-center. When the client connects to CCF it creates a connection on a HTTP port of the CCF server and it receives the application configuration. When the client starts one of the retrieved applications, it creates a <strong>direct</strong> connection to that application. This connection is based on the configuration and connection information retrieved from CCF. CCF itself does not create a direct connection to the application but only hosts the connection and configuration information for each application it can grant access.When opening the application CCF can use Enterprise Single Sign-On to automatically log the user into the application. The CCF client actually types the username and password for the application in the background so that a generic work experience is received.</p>
<p><a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/11.jpg"><img class="alignnone size-medium wp-image-368" title="1" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/11-300x93.jpg" alt="" width="300" height="93" /></a></p>
<p>While multiple applications are accessible through the CCF console, each application can have a different access path. Some applications are installed locally on the client while others are accessible through web services or other client components. If an application is set to local program this could also imply that the client component is only installed on the Client Agent computer and that additional server connections for that application can apply.</p>
<h1>2     Server architecture</h1>
<p>Internet Information Services is used on the CCF server as the connection point for the client. The (default) website will be extended during the installation with CCF web applications. The web applications use SQL and XML or directory services to store information and configuration data. The directory services are best to be based on the Active Directory Application Mode (ADAM) component Active Directory Directory Services. When using multiple web servers each server can hosts its own instance of the ADAM directory store and replication amongst these stores is automatically configured. For availability the databases should be hosted on an SQL cluster that will host four databases for the CCF infrastructure. Apart from the SSO database, the databases are soley used by the CCF web applications. The SSO database is used to store encrypted credential information for signle-sign-on services. This service (Microsoft Enteprise SSO) should also present on each node and reads / writes data and configuration to this database.</p>
<p>All the applications run under a single application pool account. As services will run under Active Directory user service accounts. The CCF service is dependant on the Active Directory Service (or called Active Directory domain) and its dependant services like name resolving and authentication service providers.</p>
<p><a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/21.jpg"><img class="alignnone size-medium wp-image-372" title="2" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/21-297x300.jpg" alt="" width="297" height="300" /></a></p>
<p>A high available CCF solution would be based on a network load balanced architecture, where multiple CCF servers provide the services. Each node is configured to be able to work independantly from the other nodes, so that if one node has a full service failure, the CCF service will not be affected.</p>
<p>﻿<a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/31.jpg"><img class="alignnone size-medium wp-image-373" title="3" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/31-300x182.jpg" alt="" width="300" height="182" /></a></p>
<p>The installation of each server in the web services infrastructure is manual, however the configuration stored in the SQL server and ADAM store are to be shared amongst all servers. The ADAM service on each node will be part of the same application directory and replication amongst all ADAM instances will be automatically configured. Each webserver node will contact “msldap://localhost:389” for these directory services. While localhost is used, this ensures each webservice node can work idependantly from another.</p>
<h2>2.1 Kerberos architecture</h2>
<p>Kerberos is the required authentication mechanism for CCF. Any other authentication protocol will not be accepted and an access denied on the resource will be the outcome of the authentication attempt. Kerberos requires Service Principal Names (SPN) to function as they are the fundamental basis of kerberos. Each resource will need an SPN based on the address of the resource. The SPN must be registered on the Active Directory object hosting the resource. Within CCF all web applications are hosted on a single user service account. This account will have the web URL as an SPN registered. SQL will also require an SPN. This is usually set during installation. While the ADAM service and the Enteprise SSO services are hosted under the same account as the web applications, and since they are on the same physical machine further configuration will not be required.</p>
<p><a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/4.jpg"><img class="alignnone size-medium wp-image-371" title="4" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/4-300x210.jpg" alt="" width="300" height="210" /></a></p>
<p>more info:</p>
<p>http://technet.microsoft.com/en-us/library/dd638295.aspx</p>
<p>http://www.microsoft.com/serviceproviders/ccf/default.mspx</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=367</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IIS &amp; Kerberos Kernel Mode</title>
		<link>http://blog.studiographic.nl/?p=364</link>
		<comments>http://blog.studiographic.nl/?p=364#comments</comments>
		<pubDate>Thu, 29 Apr 2010 07:50:01 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[Kerberos]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=364</guid>
		<description><![CDATA[A new post about kerberos.. indeed some techno stuff nobody seems to understand but is very important for security. A new feature in Windows 2008 IIS7 is the kernel mode support, what does it do, and more important how can it help you?

Kerberos works with Service Principal Names (SPN’s). Each service you want to contact [...]]]></description>
			<content:encoded><![CDATA[<p>A new post about kerberos.. indeed some techno stuff nobody seems to understand but is very important for security. A new feature in Windows 2008 IIS7 is the kernel mode support, what does it do, and more important how can it help you?</p>
<p><span id="more-364"></span></p>
<p>Kerberos works with Service Principal Names (SPN’s). Each service you want to contact with kerberos authentication requires an SPN registered in Active Directory. Now why and how kerberos works is not in this post, but lets focus on this new feature in IIS7.</p>
<p>Prior to IIS7 when we wanted to use Kerberos for a website that was not reached through the servername URL (<a href="http://%3cservername">http://&lt;servername</a>&gt; we needed an SPN registered on the server host (setspn –A HTTP/&lt;URL&gt;   &lt;Servername&gt;  ). When the website was a web application and running under a service account, the SPN needed to be registered to the service account. Now let’s assume we have one website with multiple web applications. Each application runs under a different service account but the main URL is the same for all applications (<a href="http://MyURL/App1">http://MyURL/App1</a>, <a href="http://MyURL/App2">http://MyURL/App2</a>, etc).</p>
<p><a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/1.jpg"><img title="1" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/1-300x166.jpg" alt="" width="300" height="166" /></a></p>
<p>We can only register the MyURL to a single object (computer or useraccount) and in this case we need to register it to each service account, or run all applications under the local system account (ouch) or a generic service account. Here comes Kernel mode to the rescue. While each service can run under a different service account, the IIS computer will take care of the authentication! The SPN of MyURL needs to be registered to the serverobject in AD, and each application pool will use the computer for authentication and delegation!</p>
<p><a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/2.jpg"><img class="alignnone size-medium wp-image-362" title="2" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/2-300x204.jpg" alt="" width="300" height="204" /></a></p>
<p>Easy hey.. and now the downside or the catch.. the above architecture works, as long as the web applications are ONLY on the same server, when using Load Balancing with multiple web servers the SPN needs to be registered on a service account that is used on all nodes of the NLB cluster. Since the fact that the SPN cannot be registered on multiple computer objects kernel mode cannot be used for NLB web clusters.</p>
<p><a href="http://blog.studiographic.nl/wp-content/uploads/2010/04/3.jpg"><img class="alignnone size-medium wp-image-363" title="3" src="http://blog.studiographic.nl/wp-content/uploads/2010/04/3-300x210.jpg" alt="" width="300" height="210" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=364</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whoopsie, here we go again.. antivirus kills Windows</title>
		<link>http://blog.studiographic.nl/?p=356</link>
		<comments>http://blog.studiographic.nl/?p=356#comments</comments>
		<pubDate>Wed, 21 Apr 2010 19:54:39 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[Other]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=356</guid>
		<description><![CDATA[Once in a while, antivirus companies create a new signature file that kinda stops the entire system instead of just the virus..
It&#8217;s like the docter amputates the heart of the patient, just to cure a brooze
Congratulations McAffee this time:
Problem 
Blue screen or DCOM error, followed by shutdown messages  after updating to the 5958 DAT on April [...]]]></description>
			<content:encoded><![CDATA[<p>Once in a while, antivirus companies create a new signature file that kinda stops the entire system instead of just the virus..</p>
<p>It&#8217;s like the docter amputates the heart of the patient, just to cure a brooze</p>
<p>Congratulations McAffee this time:</p>
<div><span style="font-family: 'Times New Roman', serif; font-size: medium;"><strong>Problem </strong></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;">Blue screen or DCOM error, followed by shutdown messages  after updating to the 5958 DAT on April 21, 2010.</span></div>
<div><span style="font-family: 'Times New Roman', serif; font-size: medium;"><strong>Solution </strong></span></div>
<div><span style="font-family: 'Times New Roman', serif; font-size: small;"><span style="color: red;"><strong>WARNING:</strong></span> If you have not  done so already, do NOT download the 5958 DAT and disable all automatic pull and  update tasks.</span></div>
<div><span style="font-family: 'Times New Roman', serif; font-size: small;"><span id="more-356"></span><br />
</span></div>
<div><span style="font-family: 'Times New Roman', serif; font-size: medium;"><strong>Workaround 1 </strong></span></div>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;">McAfee has developed an EXTRA.DAT to <strong>suppress </strong>this detection. The file is attached to this article. This EXTRA.DAT does  not fix the issue, it only suppresses the detection.</p>
<p>Apply the EXTRA.DAT  to all potentially affected systems as soon as possible.</p>
<p>For systems that  have already encountered this issue, start the computer in Safe Mode and apply  the EXTRA.DAT. After applying the EXTRA.DAT, restore the affected files from  Quarantine.</p>
<p><strong>To apply the EXTRA.DAT locally:</strong></p>
<p><span style="font-family: Calibri, sans-serif; color: red;"><strong>IMPORTANT</strong></span><span style="color: red;">:</span><span style="color: black;"> For VirusScan Enterprise 8.5i and later,   an Access Protection feature must be temporarily disabled before proceeding.   For instructions on how to temporarily disable Access Protection in the  VirusScan Console, see</span><span style="color: red;"> </span><a href="https://mail.avanade.com/OWA/redir.aspx?C=22d8f001113446268ffdcaebd003543f&amp;URL=http%3a%2f%2fkb.mcafee.com%2fagent%2findex%3fpage%3dcontent%26id%3dKB52204" target="_blank"><span style="font-family: Calibri, sans-serif;"><strong>KB52204</strong></span></a>.</p>
<p>To apply the <strong>EXTRA.DAT </strong>locally:</p>
<p></span></div>
<ol>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Download the <strong>EXTRA.ZIP </strong>file attached to this  article and extract the <strong>EXTRA.DAT </strong>file. </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Click <span style="font-family: Calibri, sans-serif;"><strong>Start</strong></span>,  <span style="font-family: Calibri, sans-serif;"><strong>Run</strong></span>, type <span style="font-family: Calibri, sans-serif;"><strong>services.msc</strong></span> and click <span style="font-family: Calibri, sans-serif;"><strong>OK</strong></span>. </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Right-click the <span style="font-family: Calibri, sans-serif;"><strong>McAfee  McShield</strong></span> service and select <span style="font-family: Calibri, sans-serif;"><strong>Stop</strong></span>. </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Copy the <strong>EXTRA</strong><span style="font-family: Calibri, sans-serif;"><strong>.DAT</strong></span> file to the following  location:<span style="font-family: Calibri, sans-serif;"><strong>&lt;installation  drive&gt;\Program Files\Common Files\McAfee\Engine</strong></span>
<p></span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">In the Services window, right-click <span style="font-family: Calibri, sans-serif;"><strong>McAfee McShield</strong></span> and select <span style="font-family: Calibri, sans-serif;"><strong>Start</strong></span>. </span></li>
</ol>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;">For instructions on how to deploy the EXTRA.DAT through  ePolicy Orchestrator (ePO), see: </span></div>
<ul>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">ePO 4.0 &#8211; <a href="https://mail.avanade.com/OWA/redir.aspx?C=22d8f001113446268ffdcaebd003543f&amp;URL=https%3a%2f%2fkc.mcafee.com%2fcorporate%2findex%3fpage%3dcontent%26id%3dKB52977" target="_blank">KB52977</a> </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">ePO 4.5 &#8211; <a href="https://mail.avanade.com/OWA/redir.aspx?C=22d8f001113446268ffdcaebd003543f&amp;URL=https%3a%2f%2fkc.mcafee.com%2fcorporate%2findex%3fpage%3dcontent%26id%3dKB67602" target="_blank">KB67602</a> </span></li>
</ul>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;"><br />
<strong>To restore files from Quarantine  locally:</strong></span></div>
<ol>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Open the VirusScan Console. </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Double-click <strong>Quarantine Manager Policy</strong>. </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Click the <strong>Manager </strong>tab. </span></li>
<li><span style="font-family: Calibri, sans-serif; font-size: x-small;">Right-click the required item and select Restore. </span></li>
</ol>
<div><span style="font-family: Calibri, sans-serif; font-size: x-small;">For additional information, see the <strong>VirusScan  Enterprise Product Guide </strong>for your version of VirusScan Enterprise.<br />
</span></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=356</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Selective authentication</title>
		<link>http://blog.studiographic.nl/?p=354</link>
		<comments>http://blog.studiographic.nl/?p=354#comments</comments>
		<pubDate>Fri, 09 Apr 2010 13:11:43 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[. All Posts]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=354</guid>
		<description><![CDATA[When creating a forest trust, each domain within the trusted forest becomes trusted. While this is sometimes not desired it is possible to limit the scope by implementing selective-authentication. It is possible to only allow authentication between those domains you want by granting the allowed to authenticate right to only those domains objects.

The allowed to [...]]]></description>
			<content:encoded><![CDATA[<p>When creating a forest trust, each domain within the trusted forest becomes trusted. While this is sometimes not desired it is possible to limit the scope by implementing selective-authentication. It is possible to only allow authentication between those domains you want by granting the allowed to authenticate right to only those domains objects.</p>
<p><span id="more-354"></span></p>
<p>The allowed to authenticate right controls who can authenticate to a particular machine or service (or an entire domain). The attribute is available on computer, user and InetOrgPerson objects. The right is also applicable on the domain object if access is allowed for the entire domain. It can also be applied to OU’s to set inheritable ACE’s on OU’s containing a set of user or computer objects. The attribute can be set by members of the Account Operators, Administrators, Domain Administrators, Enterprise Administrators and the SYSTEM groups by default. This behaviour can be changed in the schema of a forest.</p>
<p><em>To allow authentication between the two domains that reflects an external domain trust authentication model, the allowed to authenticate right must be delegated from the domain object. To do this, right click the domain in Active Directory Users &amp; Computers and select delegate. Add the domain users group from the trusted domain to the user/group list and select to delegate a custom task. Select only specified objects and select users, inetOrgPerson and Computers. Next select the allowed to authenticate attribute and finish the wizard.</em></p>
<p>PS: rumor has it, that I will be presenting about Trusts, (including selective authentication) in the near future.. keep following this blog for more information.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=354</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 2008R2 features part VI: Managed Service Accounts &#8211; delegation</title>
		<link>http://blog.studiographic.nl/?p=96</link>
		<comments>http://blog.studiographic.nl/?p=96#comments</comments>
		<pubDate>Thu, 01 Apr 2010 13:30:41 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[. All Posts]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Kerberos]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=96</guid>
		<description><![CDATA[In a previous entry I&#8217;ve explained how you can run services under the new Managed  Service Account. Say now that we want to use this service account in combination with Kerberos and the account needs to be trusted for delegation. We set an SPN to it, but in the Active Directory Users and Computers, we [...]]]></description>
			<content:encoded><![CDATA[<p>In a previous entry I&#8217;ve explained how you can run services under the new Managed  Service Account. Say now that we want to use this service account in combination with Kerberos and the account needs to be trusted for delegation. We set an SPN to it, but in the Active Directory Users and Computers, we seem to be unable to find the trusted for delegation option.. Let&#8217;s take a closer look at these accounts once they have been created, to do this we&#8217;ll be using ldp.exe</p>
<p><span id="more-96"></span></p>
<blockquote>
<p class="MsoNoSpacing"><span>Expanding base &#8216;CN=SA-SQL01-SQL,CN=Managed Service Accounts,DC=ROOTDOMAIN,DC=local&#8217;&#8230;<br />
Getting 1 entries:<br />
Dn: CN=SA-SQL01-SQL,CN=Managed Service Accounts,DC=ROOTDOMAIN,DC=local<br />
accountExpires: 9223372036854775807 (never);<br />
badPasswordTime: 2/4/2009 1:34:38 PM W. Europe Standard Time;<br />
badPwdCount: 0;<br />
cn: SA-SQL01-SQL;<br />
codePage: 0;<br />
countryCode: 0;<br />
distinguishedName: CN=SA-SQL01-SQL,CN=Managed Service Accounts,DC=ROOTDOMAIN,DC=local;<br />
dSCorePropagationData: 0&#215;0 = (<span> </span>);<br />
instanceType: 0&#215;4 = ( WRITE );<br />
isCriticalSystemObject: FALSE;<br />
lastLogoff: 0 (never);<br />
lastLogon: 2/4/2009 1:56:18 PM W. Europe Standard Time;<br />
lastLogonTimestamp: 2/4/2009 1:16:59 PM W. Europe Standard Time;<br />
localPolicyFlags: 0;<br />
logonCount: 4;<br />
msDS-HostServiceAccountBL: CN=SQL01,CN=Computers,DC=ROOTDOMAIN,DC=local;<br />
name: SA-SQL01-SQL;<br />
objectCategory: CN=ms-DS-Managed-Service-Account,CN=Schema,CN=Configuration,DC=ROOTDOMAIN,DC=local;<br />
objectClass (6): top; person; organizationalPerson; user; computer; msDS-ManagedServiceAccount;<br />
objectGUID: 87ba9c4a-8a9b-4c13-b1f8-5986c8c5a53e;<br />
objectSid: S-1-5-21-1621971834-463630077-1066132090-1115;<br />
primaryGroupID: 515 = ( GROUP_RID_COMPUTERS );<br />
pwdLastSet: 2/4/2009 1:10:57 PM W. Europe Standard Time;<br />
sAMAccountName: SA-SQL01-SQL$;<br />
sAMAccountType: 805306369 = ( MACHINE_ACCOUNT );<br />
servicePrincipalName: MSSQLSVC/SQL01.ROOTDOMAIN.LOCAL:1456;<br />
userAccountControl: 0&#215;1000 = ( WORKSTATION_TRUST_ACCOUNT );<br />
uSNChanged: 16557;<br />
uSNCreated: 16544;<br />
whenChanged: 2/4/2009 1:16:59 PM W. Europe Standard Time;<br />
whenCreated: 2/4/2009 1:10:20 PM W. Europe Standard Time;</span></p>
</blockquote>
<p class="MsoNoSpacing"><span><br />
</span></p>
<p>The SamAccountType is as you can see a machine_account, and the userAccountControl is set to Workstation_trust_Account..</p>
<p>Now a lot of services are now set for delegation, since we do not have the regular &#8220;Trust for Delegation&#8221; tab on the object in Active Directory, we need to set the delegation through another way. Delegation is set by the 7th bit of the UserAccountControl attribute. We see that the current one is set to 0&#215;1000(HEX) or 4096 (DEC) as the attribute tab shows us through the Active Directory Users &amp; Computers MMC.</p>
<p><img class="alignnone size-medium wp-image-97" title="tdel01" src="http://blog.studiographic.nl/wp-content/uploads/2009/02/tdel01-287x300.jpg" alt="tdel01" width="287" height="300" /></p>
<p>The HEX value is actually now: 0&#215;00001000, and we need to set the 7th character to be a 1 to enable the Trusted for delegation option. The new value to put in is therefore DEC(01001000)=16781312.</p>
<p>Enter the new number in the UserAccountControl attribute and see the results:</p>
<blockquote><p>userAccountControl: 0&#215;1001000 = ( WORKSTATION_TRUST_ACCOUNT | TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION );</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=96</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Forest Authentication NTLM</title>
		<link>http://blog.studiographic.nl/?p=350</link>
		<comments>http://blog.studiographic.nl/?p=350#comments</comments>
		<pubDate>Fri, 26 Mar 2010 20:51:33 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Windows 2008]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=350</guid>
		<description><![CDATA[So we’ve seen how a trust is setup, and how we can manipulate the domain controllers involved, can we do the same for authentication traffic? The answer would be yes, but why is it a yes, and how is the main question.
While many believe WINS or LMHOSTS can help us on external (non-forest) trusts, we [...]]]></description>
			<content:encoded><![CDATA[<p>So we’ve seen how a trust is setup, and how we can manipulate the domain controllers involved, can we do the same for authentication traffic? The answer would be yes, but why is it a yes, and how is the main question.</p>
<p>While many believe WINS or LMHOSTS can help us on external (non-forest) trusts, we dive into a packet capture that has captured the opening of a fileshare on a remote forest.</p>
<p>For this demo, I have installed a resource server in the forestroot domain, and a RIVER client on the OCEANFLOOR domain.</p>
<p><span id="more-350"></span></p>
<p>The first packet that interests us is the call for the DNS record of the Resource server</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: OCEANDC01</p>
<p>Destination: 172.16.6.31</p>
<p>Protocol: DNS</p>
<p>Description: DNS:QueryId = 0&#215;82D9, QUERY (Standard query), Query  for resource.forestroot.local of type Host   Addr on class Internet</td>
</tr>
</tbody>
</table>
<p>That packet is offcourse answered with the IP address of the Resource server (172.16.6.103)</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.6.31</p>
<p>Destination: OCEANDC01</p>
<p>Protocol: DNS</p>
<p>Description: DNS:QueryId = 0xFF7F, QUERY (Standard query), Response &#8211;   Success, 172.16.6.103</td>
</tr>
</tbody>
</table>
<p>Then we see the outgoing connection from the RIVER client towards the RESOURCE server on SMB level:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: RIVER<br />
Destination: RESOURCE</p>
<p>Protocol: SMB<br />
Description: SMB:C; Negotiate, Dialect = PC NETWORK PROGRAM 1.0, LANMAN1.0,   Windows for Workgroups 3.1a, LM1.2X002, LANMAN2.1, NT LM 0.12, SMB 2.002, SMB   2.???</td>
</tr>
</tbody>
</table>
<p>The RESOURCE server responds with a Negotiate packet and then the line seems quiet for some time, so we need to look at what is happening on the forestroot side.</p>
<p>On the resource server, we also had a capture running, and there we see that the resource server is actually connecting with RPC to its domain controller.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: RESOURCE<br />
Destination: 172.16.6.33 (FDC03 – domain controller)</p>
<p>Protocol: MSRPC</p>
<p>Description: MSRPC:c/o Bind:    UUID{E1AF8308-5D1F-11C9-91A4-08002B14A0FA} EPT(EPMP)  Call=0&#215;1    Assoc Grp=0&#215;0  Xmit=0&#215;16D0  Recv=0&#215;16D0</td>
</tr>
</tbody>
</table>
<p>After connecting to the server, it sends a logon package, indicating the remote logon:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: RESOURCE</p>
<p>Destination: 172.16.6.33</p>
<p>Protocol: MSRPC  (Netlogonr)</p>
<p>Description: NetLogonr:NetrLogonSamLogonEx Request,   NLRNetrLogonSamLogonEx, Encrypted Data</td>
</tr>
</tbody>
</table>
<p>The domain controller performs a DNS lookup (based on the site again!)</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.6.33<br />
Destination: DNS SERVER</p>
<p>Protocol: LDAP</p>
<p>Description: DNS:QueryId = 0xB3DE, QUERY (Standard query), Query  for   _ldap._tcp.South-Africa._sites.dc._msdcs.OCEANFLOOR.local of type SRV on   class Internet</td>
</tr>
</tbody>
</table>
<p>Now in this case, I (sneaky me) created the site in advance (on the OCEANFLOOR domain). The response therefore is the two (auto site coverage…) domain controller..</p>
<p>Now we see the same as with the trust creation, an LDAP lookup is fired to both domain controllers that were retrieved:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.6.33<br />
Destination: OCEANDC01</p>
<p>Protocol: LDAP</p>
<p>Description: LDAP:(CLDAP)Search Request, MessageID: 58, BaseObject:   NULL, SearchScope: base Object, SearchAlias: neverDerefAliases</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.6.33<br />
Destination: MICHDC01</p>
<p>Protocol: LDAP</p>
<p>Description: LDAP:(CLDAP)Search Request, MessageID: 58, BaseObject:   NULL, SearchScope: base Object, SearchAlias: neverDerefAliases</td>
</tr>
</tbody>
</table>
<p>Again, the first one to respond is the winner, however while the domain controller of the OCEANFLOOR do not respond that quickly (relatively speaking) the domain controller also fires a DNS lookup for the general domain, just in case: DNS:QueryId = 0&#215;6B93, QUERY (Standard query), Query  for _ldap._tcp.dc._msdcs.OCEANFLOOR.local of type SRV on class Internet</p>
<p>And here is where it get&#8217;s interesting, while the LDAP is performed, the server actually also tries to locate the domain controllers of the OCEANFLOOR on Netbios!. This could be due to the fact that the OCEANFLOOR LDAP lookup takes some time, or that it does this always (something for next time). The better question then if off course, will the dc use the LDAP responses, or does it prefer the WINS lookup (need to setup a larger test lab <img src='http://blog.studiographic.nl/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  )</p>
<p>In my case WINS does not answer, the OCEANDC01 wins the run for the LDAP lookup..</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: OCEANDC01</p>
<p>Destination: 172.16.5.33</p>
<p>Protocol: LDAP (Netlogon)</p>
<p>Description: NetLogon:LogonSAMLogonResponseEX (SAM Response to SAM   logon request): 23 (0&#215;17)</td>
</tr>
</tbody>
</table>
<p>Then three packets follow that trigger our interest:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.6.33<br />
Destination: OCEANDC01</p>
<p>Protocol: MSRPC  (Netlogonr)</p>
<p>Description: NetLogonr:NetrLogonSamLogonWithFlags Request,   LogonServer:NULL  ComputerName:</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: OCEANDC01</p>
<p>Destination: 172.16.5.33</p>
<p>Protocol: MSRPC  (Netlogonr)</p>
<p>Description: NetLogonr:NetrLogonSamLogonWithFlags Response,</td>
</tr>
</tbody>
</table>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.6.33<br />
Destination: OCEANDC01</p>
<p>Protocol: MSRPC  (Netlogonr)</p>
<p>Description: NetLogonr:NetrLogonSamLogonEx Response,</td>
</tr>
</tbody>
</table>
<p>And after that, the RESOURCE server seems to be granted access.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=350</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating trusts (as follow up to&#8230;)</title>
		<link>http://blog.studiographic.nl/?p=347</link>
		<comments>http://blog.studiographic.nl/?p=347#comments</comments>
		<pubDate>Fri, 26 Mar 2010 16:34:26 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Windows 2008]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=347</guid>
		<description><![CDATA[So I was wondering the following, how do all the domain controllers know that the trust is established, since (see previous post) we cannot accurately say which domain controller is being used..
When we have the same problem with user passwords, the PDC gives the vote whether the password (just changed) for the user is valid. The same [...]]]></description>
			<content:encoded><![CDATA[<p>So I was wondering the following, how do all the domain controllers know that the trust is established, since (see previous post) we cannot accurately say which domain controller is being used..</p>
<p>When we have the same problem with user passwords, the PDC gives the vote whether the password (just changed) for the user is valid. The same seems to apply for Trusts. When running a trace while creating the trust on a &#8220;regular&#8221; domain controller and not the PDC, we can find out how that is accomplished. For this, I have installed a domain controller called MICHDC01 which is on the (newly created) LAKES site.</p>
<p><span id="more-347"></span></p>
<p><!--more-->When creating the trust we see all the traffic as expected, and then after the SMB connection to the domain controller to the other forest we see a call to the local domain PDC (or root domain PDC I would suspect in a forest trust scenario with more domains).</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.5.197</p>
<p>Destination: OCEANDC01</p>
<p>Protocol: LSAD</p>
<p>Description: LSAD:LsarOpenPolicy2 Request, Target Computer:   oceandc01.oceanfloor.local, DesiredAccess: 0&#215;00000029,</td>
</tr>
</tbody>
</table>
<p>A reply follows from the OCEANDC01 that the connection is open and available</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: OCEANDC01</p>
<p>Destination: 172.6.5.197</p>
<p>Protocol: LSAD</p>
<p>Description: LSAD:LsarOpenPolicy2 Response, PolicyHandle:   {00000000-337F1540-55EC-7A48-8EBB-5233C3687456}, Status = 0&#215;00000000 &#8211;   STATUS_SUCCESS</td>
</tr>
</tbody>
</table>
<p>And then the magic happens (sort of), the regular domain controller instructs the PDC to create an External trust</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.5.197</p>
<p>Destination: OCEANDC01</p>
<p>Protocol: LSAD</p>
<p>Description: LSAD:LsarCreateTrustedDomainEx2 Request, 0&#215;1,   DesiredAccess: , PolicyHandle:   {00000000-337F1540-55EC-7A48-8EBB-5233C3687456}</p>
<p>TrustDirection: 0&#215;00000003</p>
<p>TrustType: 0&#215;00000002 &#8211; TRUST_TYPE_UPLEVEL &#8211; Trust is for Windows   2000 and Windows Server 2003</p>
<p>Information: FORESTROOT.local, FORESTROOT,   S-1-5-21-1179639219-2084100482-3483183152 Unknown SID</td>
</tr>
</tbody>
</table>
<p>So we see, the PDC does have a role within the creation of trusts, but NOT related to the agreement between the two PDC’s of the domains. After the creation of the trust, it looks like urgent or immediate replication takes place to inform all the domain controllers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=347</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Forest Authentication part 2 &#8211; Creating trusts</title>
		<link>http://blog.studiographic.nl/?p=326</link>
		<comments>http://blog.studiographic.nl/?p=326#comments</comments>
		<pubDate>Fri, 26 Mar 2010 14:02:41 +0000</pubDate>
		<dc:creator>RZomerman</dc:creator>
				<category><![CDATA[. All Posts]]></category>
		<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[Windows 2008]]></category>
		<category><![CDATA[Windows 2008 R2]]></category>

		<guid isPermaLink="false">http://blog.studiographic.nl/?p=326</guid>
		<description><![CDATA[In part of the the forest authentication blog post, we’ve seen that a particular path is used depending on Kerberos or NTLM authentication. We’ve also seen that domain controllers rely on other domain controllers of the forest to find the right domain (and thus object in the AD). The question now is, which domain controller [...]]]></description>
			<content:encoded><![CDATA[<p>In part of the the forest authentication blog post, we’ve seen that a particular path is used depending on Kerberos or NTLM authentication. We’ve also seen that domain controllers rely on other domain controllers of the forest to find the right domain (and thus object in the AD). The question now is, which domain controller of the other forest is used to authenticate the user? What happens during a trust creation, do we really need the PDC emulator? Will LMHOSTS still help us, like it did in the old days?</p>
<p>Those questions we will answer in this series of a<strong>uthentication across trusts part 2, 3 etc.</strong>.</p>
<p><span id="more-326"></span></p>
<p>First a little drawing about the used infrastructure for this and the next to come posts:</p>
<p><a rel="attachment wp-att-328" href="http://blog.studiographic.nl/?attachment_id=328" target="_blank"><img style="border: 0px initial initial;" title="1.SiteSetup" src="http://blog.studiographic.nl/wp-content/uploads/2010/03/1.SiteSetup-300x123.jpg" alt="1.SiteSetup" width="300" height="123" /></a></p>
<p>In the drawing above, we see two forests, rootdomain and oceanfloor. These forests are going to trust each other using a &#8216;normal&#8217; trust. To establish the trust, each domain controller has a conditional forwarder for DNS setup to point to DNS servers of the other forest.</p>
<p>So, when we type perform an NSLOOKUP on the rootdomain domain controller to find the oceanfloor forest we get:</p>
<address>&gt; oceanfloor.local</address>
<address>Server:  fdc01.forestroot.local</address>
<address>Address:  172.16.6.31</address>
<address></address>
<address>Name:    oceanfloor.local</address>
<address>Address:  172.16.5.196</address>
<p>And from oceanfloor.local we get the IP addresses of all the domain controllers for forestroot (172.16.5.31, 172.16.5.32, 172.16.5.33, 172.16.5.34). Now although all those addresses are within the same subnet, they are split to different sites (just for this demo I’ve used /32 sites).</p>
<p><a rel="attachment wp-att-329" href="http://blog.studiographic.nl/?attachment_id=329" target="_blank"><img class="alignnone size-medium wp-image-329" title="2. Site IP Subnets" src="http://blog.studiographic.nl/wp-content/uploads/2010/03/2.-Site-IP-Subnets-300x80.jpg" alt="2. Site IP Subnets" width="300" height="80" /></a></p>
<p>Figure 1: Forestroot.local Sites</p>
<p>Now let’s assume datacenter 1 is located in Amsterdam, datacenter 2 is located in New York, One of the branch-sites is somewhere in South Africa and the BRANCH-SITE site is a site with a Read Only domain controller. When we requested the domain name in DNS, we got ALL domain controllers including the South African one (only not the RODC). When we request the SRV records for the forestroot domain, we receive the following:</p>
<p><a rel="attachment wp-att-330" href="http://blog.studiographic.nl/?attachment_id=330" target="_blank"><img class="alignnone size-medium wp-image-330" title="3. DNS Srv" src="http://blog.studiographic.nl/wp-content/uploads/2010/03/3.-DNS-Srv-300x214.jpg" alt="3. DNS Srv" width="300" height="214" /></a></p>
<p>Note that all domain controllers are registered and are received.</p>
<p>So what does this mean?</p>
<p>If we do not take care of some things, for a user who is authentication over the trust, the authentication could end up on ANY domain controller (listed as above). In this example, that is nothing to worry about, since all domain controllers are well connected, but what if the OCEAN domain is closer to Datacentre 2? Can we force the cross-forest authentication towards that datacenter, so that every user that needs to be authenticated over the forests, does not cross the physical ocean WAN line?</p>
<p>To discover if we can force that, we need to find out, how a domain controller (in case of NTLM) or a client (Kerberos) finds domain controllers in the other domain. but off course we need to create a trust first, how is that done and how do domain controllers find each other during the creation of a trust.</p>
<p>When creating an external trust, it only allows for NTLM authentication. So we create a trust between the two domains, being an external trust. We open domains and trusts and create an external trust to the forestroot domain from the oceanfloor domain, while running a packet capture.</p>
<p>The packet capture shows something funny that has to be taken into account.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.5.196</p>
<p>Destination: 172.16.6.31</p>
<p>Protocol: DNS</p>
<p>Info: _ldap._tcp.ATLANTIC._sites.dc._msdcs.forestroot.local: type   SRV, class IN</td>
</tr>
</tbody>
</table>
<p>While everyone would expect the PDC to be targeted, <strong>this is NOT the case</strong>. So there we have lesson number one:</p>
<p><strong>!The DNS query for domain information is NOT to the PDC service record!</strong></p>
<p>And immediately we have lesson number 2:</p>
<p><strong><em>!During the setup of a trust, the CURRENT site of the DC is looked up on the other forest BEFORE a generic query takes place!</em></strong></p>
<p>The generic DNS service record lookup</p>
<p>Since our site plan of Forestroot does not have such a site, we retrieve an error back from the DNS server indicating it has no record.</p>
<p>Next a query for the generic service records is performed:</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.5.196</p>
<p>Destination: 172.16.6.31</p>
<p>Protocol: DNS</p>
<p>Info: _ldap._tcp.dc._msdcs.forestroot.local: type SRV, class IN</td>
</tr>
</tbody>
</table>
<p>Now that query does receive an answer, just like we got during the NSLOOKUP manually. The response includes al domain controllers and service records like we saw before. Lesson number two can be learned here. Each service record has a priority and a weight, manipulating these weights can influence the results received and thus influence the next steps. See also Jorge’s blog for DNS optimization.</p>
<p>Next what we see, is that ALL LDAP domain controller srv records received are used. The OCEANFLOOR domain controller fires an LDAP lookup towards all domain controllers in the following packets.</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="638" valign="top">Source: 172.16.5.196</p>
<p>Destination: 172.16.6.31</p>
<p>Protocol CLDAP<br />
Info: LDAPMessage searchRequest(10) &#8220;&lt;ROOT&gt;&#8221; baseObject</td>
</tr>
<tr>
<td width="638" valign="top">Source: 172.16.5.196</p>
<p>Destination: 172.16.6.32</p>
<p>Protocol CLDAP<br />
Info: LDAPMessage searchRequest(10) &#8220;&lt;ROOT&gt;&#8221; baseObject</td>
</tr>
<tr>
<td width="638" valign="top">Source: 172.16.5.196</p>
<p>Destination: 172.16.6.33</p>
<p>Protocol CLDAP<br />
Info: LDAPMessage searchRequest(10) &#8220;&lt;ROOT&gt;&#8221; baseObject</td>
</tr>
<tr>
<td width="638" valign="top">Source: 172.16.5.196</p>
<p>Destination: 172.16.6.34</p>
<p>Protocol CLDAP<br />
Info: LDAPMessage searchRequest(10) &#8220;&lt;ROOT&gt;&#8221; baseObject</td>
</tr>
</tbody>
</table>
<p>Now comes the fun part, the <strong>FIRST</strong> domain controller to respond to this seachRequest gets to be the lucky winner and just like in the real world the other responses that come in late, are disregarded.</p>
<p>In my case, it’s the 172.16.6.32 that is the fastest domain controller to respond to the request with a successful lookup. Now you where probably expecting the next query to be the PDC emulator, but no, an SMB connection is tried to the 172.16.6.32 (referred to as FDC02.forestroot.local), however login failures are shown.</p>
<p><em>Note: No packets to 172.16.6.31 (FDC01.forestroot.local) that is the PDC of Forestroot.local are being sent, nor received. </em></p>
<p>But this is only the first part of the trust, we enabled the trust incoming and outgoing on the OCEANFLOOR.local domain. Now we must enable it also on the forestroot, and let us see what happens, for the time being, I’m creating the other end of the trust on the FDC02.forestroot.local. Again we see the site specific query from FDC02.forestroot.local where FDC02’s site is DATACENTER2</p>
<p>Dns: QueryId = 0&#215;77C, QUERY (Standard query), Query  for _ldap._tcp.DATACENTER2._sites.dc._msdcs.OCEANFLOOR.local of type SRV on class Internet</p>
<p>The rest is about the same, up to the point of the SMB2 connection. This time (because the trust passwords ARE now present and the same on both ends) the connection IS successful.</p>
<p>So what have we learned, when we create a trust, the PDC emulators do not really come in to play, as all traffic is from domain controller to domain controller based on DNS information. We can manipulate this information to speed up the process (and optimize it), by either manipulating DNS information, OR! We add another site to our forest that has the exact site name of the site where the domain controller(s) is that we want to target!.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.studiographic.nl/?feed=rss2&amp;p=326</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
