<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Platform PFE's in Sweden Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/pfesweplat/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/pfesweplat/feed.xml</link>
    <description>Supporting Microsoft Premier Customers above and beyond</description>
    <lastBuildDate>Tue, 29 Aug 2017 10:35:32 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>AD Object Detection: Detecting the undetectable (dynamicObject)</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/ad-object-detection-detecting-the-undetectable-dynamicobject</link>
      <pubDate>Wed, 05 Jul 2017 23:06:48 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/?p=586</guid>
      <description><![CDATA[What an auditor want to make sure is that you have non-repudiation in place. This also applies to...]]></description>
      <content:encoded><![CDATA[What an auditor want to make sure is that you have non-repudiation in place. This also applies to forensic work. You want to make sure you can track the activity to a person and to do that we need to first identify the user account. But what if it just has disappeared from Active Directory?

When an attacker gains privilege’s enough to create security principals , mainly user and group objects, it’s possible to do so in such a way that it’s really hard to identify once deleted. The reason is that the DC moves these objects right to <strong>/dev/null</strong> skipping the recycle bin and the tombstone state when deleting it. All that might be left is the trace of an unresolved SID.

This object type is called dynamic object and has been in AD DS since Windows Server 2003. Dynamic Object has a TTL that the creator set during the creation. The TTL is an associated time-to-live value in seconds that increment until it reach zero.  A deleted dynamic object due to its TTL expiring does not leave a tombstone behind. The idea was to allow applications creating objects that would off-load the garbage collection services.

<a href="https://msdn.microsoft.com/en-us/library/ms676291(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/ms676291(v=vs.85).aspx</a>

So basically the attacker can choose to have its temporarily user account exist for just a certain period of time (by default the minimum is 15 min but can be changed) .

After the TTL reached zero no traces can be found of the object…. No metadata .. Nothing..

Here’s the TTL ticking down on a user object:

<a href="https://blogs.technet.microsoft.com/pfesweplat/dynuser/"><img src="https://msdnshared.blob.core.windows.net/media/2017/07/dynUser.bmp" alt="" class="aligncenter size-full wp-image-595" width="721" height="542" /></a>
<h2>Creating dynamicObjects</h2>
You create an dynamic object by specifying that the object shall be of both dynamic objectClass and the other objectClass of choice.

&nbsp;

This is all the necessary PowerShell code you need to create one:

[<span style="color: #008080">int]</span><span style="color: #ff0000">$intDynTTL</span> = <span style="color: #993300">"15"</span>

<span style="color: #ff0000">$intDynTTL</span> = <span style="color: #ff0000">$intDynTTL</span> * <span style="color: #993366">60</span>

<span style="color: #ff0000">$objDomain</span> = <span style="color: #3366ff">New-Object</span> <span style="color: #ff00ff">System.DirectoryServices.DirectoryEntry</span>(<span style="color: #993300">"LDAP://OU=Accounts,DC=contoso,DC=com"</span>)

<span style="color: #ff0000">$objName</span> = <span style="color: #993300">"DYNUSER1"</span>

<span style="color: #ff0000">$objDyn</span> = <span style="color: #ff0000">$objDomain</span>.Create(<span style="color: #993300">"user",</span> <span style="color: #993300">"CN="</span> + <span style="color: #ff0000">$objName</span>)

<span style="color: #ff0000">$objDyn</span>.Put(<span style="color: #993300">"objectClass"</span>, @(<span style="color: #993300">"dynamicObject"</span>,<span style="color: #993300">"user"</span>) )

<span style="color: #ff0000">$objDyn</span>.Put(<span style="color: #993300">"entryTTL"</span>, <span style="color: #ff0000">$intDynTTL</span> )

<span style="color: #ff0000">$objDyn</span>.Put(<span style="color: #993300">"sAMAccountName"</span>,<span style="color: #ff0000"> $objName</span> )

<span style="color: #ff0000">$objDyn</span>.SetInfo()

<strong> </strong>
<h2><strong>Auditing</strong></h2>
The best way to detect this today is setting a SACL (System Access Control List) on the domain root.

<a href="https://blogs.technet.microsoft.com/pfesweplat/sacl/"><img src="https://msdnshared.blob.core.windows.net/media/2017/07/SACL.bmp" alt="" class="aligncenter size-full wp-image-606" width="1122" height="198" /></a>

Configure the Domain Controller Audit Policy by turning on advanced auditing setting:

<strong>Directory Service Changes     -          Success and Failure</strong>

This will catch all events triggered by the configured system access control lists.

&nbsp;
<h2>Eventlog and Windows Event Forwarding</h2>
You most likely want to look at one central log rather than each DC's log , so I strongly advise you to set up a central logging solution, unless you have it already. Maybe you got OMS or SCOM? If not take a look at : <a href="https://docs.microsoft.com/en-us/azure/operations-management-suite/oms-security-getting-started">https://docs.microsoft.com/en-us/azure/operations-management-suite/oms-security-getting-started</a>

Otherwise WEF is the simplest  thing to set up and its built-in and scalable, see this blog:<a href="https://blogs.msdn.microsoft.com/canberrapfe/2015/09/21/diy-client-monitoring-setting-up-tiered-event-forwarding/">https://blogs.msdn.microsoft.com/canberrapfe/2015/09/21/diy-client-monitoring-setting-up-tiered-event-forwarding/</a>
<h2>XPath Filter</h2>
Then use this XPath filter to find all events related to creation of dynamic objects (1.3.6.1.4.1.1466.101.119.2 = dynamicObject):
<pre><strong><span style="color: #800000">&lt;QueryList&gt;</span></strong>

<strong><span style="color: #800000">&lt;Query Id="0" Path="Security"&gt;</span></strong>

<strong><span style="color: #800000">&lt;Select Path="Security"&gt;*[System[EventID=5136]] and *[EventData[Data[@Name='AttributeValue']='1.3.6.1.4.1.1466.101.119.2']]&lt;/Select&gt;</span></strong>

<strong><span style="color: #800000">&lt;/Query&gt;</span></strong>

<strong><span style="color: #800000">&lt;/QueryList&gt;</span></strong></pre>
&nbsp;

This is the event you will see:

<a href="https://blogs.technet.microsoft.com/pfesweplat/event5136/"><img src="https://msdnshared.blob.core.windows.net/media/2017/07/Event5136.bmp" alt="" class="aligncenter size-full wp-image-605" width="597" height="553" /></a>

Monitor these event (Send mail open program are options in event viewer if you don't have a monitoring solution in place) and review it so the objects are not used for any malicious activity.

&nbsp;

Bottom line :

Do delegation so only trusted admins are allowed to create objects. Review your Access Control Lists. See previous blog posts on reviewing access (<a href="https://blogs.technet.microsoft.com/pfesweplat/2017/01/28/forensics-active-directory-acl-investigation/">Forensics: Active Directory ACL investigation/</a>) and <a href="https://blogs.technet.microsoft.com/pfesweplat/2013/05/13/take-control-over-ad-permissions-and-the-ad-acl-scanner-tool/">Take Control Over AD Permissions and the AD ACL Scanner Tool</a>

Set up auditing and proper monitoring.]]></content:encoded>
    </item>
    <item>
      <title>Forensics: Active Directory ACL investigation</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/forensics-active-directory-acl-investigation</link>
      <pubDate>Sat, 28 Jan 2017 21:39:16 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/?p=405</guid>
      <description><![CDATA[A Couple of Sensitive Spots
Active Directory are full of delegated rights and permissions that...]]></description>
      <content:encoded><![CDATA[<h1>A Couple of Sensitive Spots</h1>
Active Directory are full of delegated rights and permissions that grant privileges to security principals (User, Group Managed Service Account, Group and Computer Objects). Some permissions are more sensitive than others and should be kept only for privileged accounts such as for Tier 0 administrators (Read about the credential tier model and <a href="https://technet.microsoft.com/en-us/library/mt631194.aspx.">Securing Privileged Access </a>here <a href="https://technet.microsoft.com/en-us/library/mt631194.aspx">https://technet.microsoft.com/en-us/library/mt631194.aspx</a> ) or equivalent. Which are these sensitive object in Active Directory? Well it depends on how your structure are designed and where you store your sensitive objects, but there are a couple of standard objects you should look at.

These are examples of locations to keep a good control of the Access Control Lists (ACL) on:
<ul>
 	<li>Domain Partition Node</li>
 	<li>Configuration Partition Node</li>
 	<li>Schema Partion Node</li>
 	<li>AdminSDHolder</li>
 	<li>DefaultSecurityDescriptors on objectClasses in the Schema Partition</li>
</ul>
<h1>Security issues</h1>
What kind of risks should we be looking for?
<h2>Attackers that try to maintain long-term persistence</h2>
If an attacker once gain high privileges, like let's say Domain Admin access, this individual would probably like to keep a backdoor open even after you thought you had removed the foothold for good. To do so the attacker could potentially adding a couple of access control entries for a rouge account and by doing so the attacker could regain all privileges when the attacker chooses to.
<h2>Applications/Service accounts delegated too much privilege</h2>
Often are service accounts granted privileges in Active Directory. It's crucial these permissions are delegated with the Principle of Least Privilege (PoLP) since these service accounts are usually a security issue already with it's exposure and it's probably never changed and maybe even known password. If someone would get hold of a service account it could be used to elevate privileges, steal credentials or even steal secrets from Active Directory.
<h2>Escalation of Privileges</h2>
During the lifetime of an AD there has probably been a lot of projects or applications that had requirements on who and what should been delegated permissions. There's a big chance that some of these AD delegations are not valid anymore and people has left their function or even the company, but still the delegated permissions have remained. This could potentially let a user to maintain high privileges or even do escalation of privileges.
<h1>How to spot the difference</h1>
If you ever have been browsing objects in Active Directory for permissions you know it could be quite hard to get a good overview, but there are some help to get. <strong>AD ACL Scanner</strong> is a PowerShell script that produce reports of access control lists (ACL) in Active Directory that would simplify the process of analyzing permissions. See this previous blog <a href="/b/pfesweplat/archive/2013/05/13/permissions-in-ad-lost-control.aspx">https://blogs.technet.com/b/pfesweplat/archive/2013/05/13/permissions-in-ad-lost-control.aspx</a>.
<h2>What kind of permissions are more of a risk than others?</h2>
Here's a couple of permissions that you should watch out for (This is not a compete list):
<ul>
 	<li><strong>Full Control on all objects</strong></li>
 	<li><strong>Create Child Objects</strong>
<ul>
 	<li>Create new user accounts, groups etc.</li>
 	<li>Create dynamic objects, objects with a Time-To-Live and will disappear when TTL is meet.</li>
</ul>
</li>
 	<li><strong>All Extended Rights</strong>
<ul>
 	<li>Password Resets</li>
 	<li>Replicating Directory Changes All</li>
 	<li>Potential access to all confidential attributes.</li>
</ul>
</li>
 	<li><strong>Extended Right: Replicating Directory Changes All</strong>
<ul>
 	<li>This extended rights should <span style="text-decoration: underline">ONLY </span>be delegated to services that do password synchronization like the Azure AD Connect tool  or other services using DSgetNCChanges for password sync.</li>
 	<li>FIM/MIM does not need this permissions see:<a href="https://support.microsoft.com/en-us/kb/303972" title="How to grant the &quot;Replicating Directory Changes&quot; permission for the Microsoft Metadirectory Services ADMA service account "> https://support.microsoft.com/en-us/kb/303972</a></li>
</ul>
</li>
 	<li><strong>Reset Passwords</strong></li>
 	<li><strong>Write Property to objects or sensitive attributes</strong>
<ul>
 	<li>Modify group memberships.</li>
 	<li>Write userPrinicpalName.</li>
 	<li>Write altSecIdentities</li>
 	<li>Write userCertificate</li>
 	<li>Write userAccountControl.</li>
 	<li>Write servicePrincipalName.</li>
</ul>
</li>
 	<li><strong>Write Public Information</strong>
<ul>
 	<li>Includes userPrincipalName.</li>
</ul>
</li>
 	<li><strong>Write Membership</strong>
<ul>
 	<li>Includes member and memberOf.</li>
</ul>
</li>
 	<li><strong>Write User Account Restrictions</strong>
<ul>
 	<li>Includes userAccountControl.</li>
</ul>
</li>
 	<li><strong>Write userPrincipalName</strong>
<ul>
 	<li>Access to modify the userPrincipalName could let someone with a valid smart card to logon as someone else by having the SubjAltName field of the smart to match another Active Directory user account.</li>
</ul>
</li>
 	<li><strong>Write userAccountControl</strong>
<ul>
 	<li>Allow blank password.</li>
 	<li>Downgrade Kerberos to DES only.</li>
 	<li>Enable/Disable accounts.</li>
 	<li>Store password using reversible encryption.</li>
</ul>
</li>
 	<li><strong>Write msDS-SupportedEncryptionTypes</strong>
<ul>
 	<li>Downgrade Kerberos encryption.</li>
</ul>
</li>
 	<li><strong>Write Permissions</strong>
<ul>
 	<li>Replace current permissions with new more relaxed or granting access to a malicious account.</li>
</ul>
</li>
 	<li><strong>Write servicePrincipalName</strong>
<ul>
 	<li>By adding a service principal name to an account an attacker  could potentially request a Kerberos TGS for the account and save the TGS to a file and perform offline TGS password cracking as long as RC4 Kerberos encryption is allowed.</li>
</ul>
</li>
 	<li><strong>Take Ownership</strong>
<ul>
 	<li>Take owner ship and then replace current permissions with new more relaxed or granting access to a malicious account.</li>
</ul>
</li>
 	<li><strong>Link Group Policy Object</strong>
<ul>
 	<li>Introduce new settings that would grant access or apply malicious code on the operating systems.</li>
</ul>
</li>
</ul>
<h2>Compare the top nodes of each AD partition with the defaults</h2>
By comparing the top node of the Domain, Configuration, AdminSDHolder and Schema partition with the defaults it will make it much easier to identify permissions that are anomalous or suspicious.

So how can we differ the custom settings from the defaults?

With <a href="https://github.com/canix1/ADACLScanner"><strong>AD ACL Scanner</strong></a> you can run a comparison with a previous created CSV file (If you got one saved from when the domain was fresh :) ) or download a template with <strong>AD ACL Scanner</strong> for default DACLs (discretionary access control list) for the version of domain controllers you are running

1. Run the script and press<strong> Connect</strong> to connect to your domain.

2. Select <strong>Enable Compare</strong>.

[caption id="attachment_465" align="aligncenter" width="388"]<a href="https://blogs.technet.microsoft.com/pfesweplat/?attachment_id=465"><img width="388" height="727" class="wp-image-465 size-full" alt="Fig. 1 Compare and download template" src="https://msdnshared.blob.core.windows.net/media/2016/06/DownloadTemplate.bmp" /></a> Fig. 1 Compare and download template[/caption]

3. Download "<strong>Each NC root combined</strong>" for you highest version of operating system of your DC's and click <strong>Close</strong>.

[caption id="attachment_475" align="aligncenter" width="651"]<a href="https://blogs.technet.microsoft.com/pfesweplat/?attachment_id=475"><img width="651" height="587" class="size-full wp-image-475" alt="Fig. 2. Download Links" src="https://msdnshared.blob.core.windows.net/media/2016/09/DownLoadDialog.bmp" /></a> Fig. 2. Download Links[/caption]

4. Click <strong>Select Template</strong> and select the downloaded csv file. For example:<strong> Win_2012_R2_Default_DACL_NC.csv</strong>.

5. Select <strong>Use nodes from template</strong> to let the template decided where to scan.

6. Select <strong>View Owner</strong> in <strong>View in report</strong> on the <strong>Scan Options</strong> tab to include the ownership of each node.

7. Click <strong>Run Scan</strong>.

[caption id="attachment_485" align="aligncenter" width="1007"]<a href="https://blogs.technet.microsoft.com/pfesweplat/?attachment_id=485"><img width="1007" height="885" class="wp-image-485 size-full" alt="Fig. 3. Running a compare report." src="https://msdnshared.blob.core.windows.net/media/2016/09/ScanningWithTemplate.bmp" /></a> Fig. 3. Running a compare report.[/caption]

8. The results will be presented in a HTLM report, something like this:

[caption id="attachment_585" align="aligncenter" width="1024"]<a href="https://blogs.technet.microsoft.com/pfesweplat/?attachment_id=585"><img width="1024" height="851" class="wp-image-585 size-large" alt="Fig. Example report" src="https://msdnshared.blob.core.windows.net/media/2017/01/ExampleReport-1024x851.jpg" /></a> Fig 4. Example report[/caption]
<h1>Interpreting results</h1>
What will the report tell me? The report will show you all the current Access Control Entries and the missing ones.

It will highlight permissions that match (green) the default and missing (red) and new (yellow) permissions from the template.

[caption id="attachment_486" align="aligncenter" width="690"]<a href="https://blogs.technet.microsoft.com/pfesweplat/?attachment_id=486"><img width="690" height="152" class="wp-image-486 size-full" src="https://msdnshared.blob.core.windows.net/media/2016/11/StateReport.jpg" /></a> Fig 5. Understanding the report[/caption]
<h3>Are missing permissions all bad?</h3>
If you have missing permissions it much likely it could be that your AD is an upgrade from previous versions of Windows that did not have some of these permissions. But there are permissions added in a pristine AD that will be merged into other Access Control Entries (by the <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379576(v=vs.85).aspx"><strong>SetEntriesInACL</strong> </a>function) at the fist modification of the Access Control List on the domain node by a user or application.

Permission from a pristine domain that are merged into other ACE's.

[caption id="attachment_496" align="aligncenter" width="1024"]<a href="https://msdnshared.blob.core.windows.net/media/2016/11/MergedPerm.jpg"><img width="1024" height="402" class="wp-image-496 size-large" alt="Fig 6. Permissions that are merged into other ACE's" src="https://msdnshared.blob.core.windows.net/media/2016/11/MergedPerm-1024x402.jpg" /></a> Fig 6. Permissions that are merged into other ACE's[/caption]

If these are missing do not panic , its normal! :)
<h2>What to look for?</h2>
New permissions that could lead to control over sensitive objects or systems. If you got applications like Exchange and Lync in your environment you will see a lot of entires added by the domain prep for these application. These permissions are expected and should not be removed, unless you have specific requirements or cleaning up after a removal of the services.

Here's a few examples of permissions that would need an extra attentions.

<strong>Full control on the domain level</strong>

Full control granted on on domain level is not something you would delegate. The intension were probably to give someone full control on all OU's, but full control on the domain level comes with so much more (like Replicating Directory Changes All) that should stay within Tier 0 admins like Administrators and Domain Admins .

[caption id="attachment_555" align="aligncenter" width="1024"]<a href="https://msdnshared.blob.core.windows.net/media/2017/01/DelegationGoneBad.jpg"><img width="1024" height="83" class="wp-image-555 size-large" alt="Fig 7. Delegation gone bad." src="https://msdnshared.blob.core.windows.net/media/2017/01/DelegationGoneBad-1024x83.jpg" /></a> Fig 7. Delegation gone bad.[/caption]

<strong>Replicating Directory Changes All</strong>

This permission should only be delegated to Administrators, Domain Admins and Domain Controllers unless you are using a product that does password sync using hashes, FIM/MIM is not one of them nor SharePoint. FIM/MIM uses agents on DC's for this. AAD Connect is an application that potentially could make use of this right if you are syncing passwords to Azure AD.

[caption id="attachment_575" align="aligncenter" width="1024"]<a href="https://msdnshared.blob.core.windows.net/media/2017/01/ReplicateAllStealHashes.jpg"><img width="1024" height="78" class="wp-image-575 size-large" alt="Fig 8. Replicate All = Can steal secrets" src="https://msdnshared.blob.core.windows.net/media/2017/01/ReplicateAllStealHashes-1024x78.jpg" /></a> Fig 8. Replicate All = Can steal secrets[/caption]

<strong>Permissions on AdminSDHolder - Write Member
</strong>

I would be very suspicious of custom permissions on the AdminSDHolder object (Protection function for protected groups). Any permissions that allow write here could potentially make them self admins at any time without being member of the highly privileged groups.

[caption id="attachment_545" align="aligncenter" width="1024"]<a href="https://msdnshared.blob.core.windows.net/media/2017/01/AddMeToProtectedAdmins.jpg"><img width="1024" height="48" class="wp-image-545 size-large" alt="Fig 9. Add me to Domain Admins at will" src="https://msdnshared.blob.core.windows.net/media/2017/01/AddMeToProtectedAdmins-1024x48.jpg" /></a> Fig 9. Add me to Domain Admins at will[/caption]

<strong>Rouge Owner</strong>

As an owner you will have the permissions to modify the ACL on the same object. This gives the owner to grant him/her full controll at any time. Keep an eye for who's owner.

[caption id="attachment_565" align="aligncenter" width="1024"]<a href="https://msdnshared.blob.core.windows.net/media/2017/01/RougeOwner.jpg"><img width="1024" height="64" class="wp-image-565 size-large" alt="Fig 10. Rogue Owner can change the ACL to suit the situation." src="https://msdnshared.blob.core.windows.net/media/2017/01/RougeOwner-1024x64.jpg" /></a> Fig 10. Rogue Owner can change the ACL to suit the situation.[/caption]

&nbsp;
<h2>Summary</h2>
The key here is to know your delegation and your best tool is RBAC! With a good RBAC model following the tier model (<a href="https://technet.microsoft.com/en-us/library/mt631194.aspx.">Securing Privileged Access </a>) and using a good naming convenvtion it will be easier to spot bad delegations.

Clean out old stuff too! Remove that old service account that no one uses any more!

Upon this you need to log, monitor and regulary audit your ACL changes.]]></content:encoded>
    </item>
    <item>
      <title>Finding an Attribute's Property Set</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/finding-an-attributes-property-set</link>
      <pubDate>Thu, 08 Dec 2016 09:17:48 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/?p=515</guid>
      <description><![CDATA[Attributes vs Property Set
If you are granting access on an attribute level it's most likely you...]]></description>
      <content:encoded><![CDATA[<h1>Attributes vs Property Set</h1>
If you are granting access on an attribute level it's most likely you end up with long lists of Access Control Entries (ACEs) on objects in Active Directory. This will lead to database growth, the NTDS.dit will get bigger. It will also lead to degrading performance of you Domain Controller when it have to check all Access Control Entries.

Better would be to make use of property set's to grant access to predefined list of attributes, if that is suitable in your scenario.
<h1>Control Access Rights</h1>
Property set belongs to a category of objects called Control Access Rights, which are divided in three groups:

Extended Rights <strong>- ADS_RIGHT_DS_CONTROL_ACCESS</strong> (256)

Property Set - <strong>ACTR_DS_READ_PROP</strong> (16) and the <strong>ACTRL_DS_WRITE_PROP</strong> (32)

Validated Writes - <strong>ADS_RIGHT_DS_SELF</strong> (8)

Control Access Rights with the value of 48 in the validAccess attribute are property sets.

Property sets have a RightsGUID. For each attribute that belongs to a property set have the corresponding GUID in the attributeSecurityGUID property.
<h3>Example:</h3>
<strong>Attribute: TelePhone-Number</strong>

attributeSecurityGUID: <span style="color: #0000ff">77b5b886-944a-11d1-aebd-0000f80367c1</span>

<strong>Property set: Personal-Information</strong>
RightsGUID: <span style="color: #0000ff">77B5B886-944A-11d1-AEBD-0000F80367C1</span>

Attributes can only belong to one property set (attributeSecurityGUID is a single valued attribute).

These are default property set in Active Directory (you will get more with products like Microsoft Exchange for example):
<ul>
 	<li>Account Restrictions</li>
 	<li>DNS Host Name Attributes</li>
 	<li>Domain Password &amp; Lockout Policies</li>
 	<li>General Information</li>
 	<li>Group Membership</li>
 	<li>Logon Information</li>
 	<li>MS-TS-GatewayAccess</li>
 	<li>Other Domain Parameters (for use by SAM)</li>
 	<li>Personal Information</li>
 	<li>Phone and Mail Options</li>
 	<li>Private Information</li>
 	<li>Public Information</li>
 	<li>Remote Access Information</li>
 	<li>Terminal Server License Server</li>
 	<li>Web Information</li>
</ul>
<h1>Which Property Set To Use?</h1>
By using an property set you can grant read and write access to many attributes with one ACE, instead of a single ACE for each attribute.

Ok! But how can I identify the property set for my attribute?

First of all it's documented on MSDN: <a href="https://msdn.microsoft.com/en-us/library/windows/desktop/ms683990(v=vs.85).aspx">Property Sets</a>

A faster way would be to search your Active Directory for a your attribute.

Let's say I want to know the property set for the attribute "company"

There's a script for that available in the Script Center: <a href="https://gallery.technet.microsoft.com/scriptcenter/List-and-Search-Control-ac964633">Get-ADControlAccessRights.ps1</a> .

How to retrieve the property set for "company":

<a href="https://blogs.technet.microsoft.com/pfesweplat/?attachment_id=535"><img src="https://msdnshared.blob.core.windows.net/media/2016/12/findPropertySet1.jpg" class="aligncenter wp-image-535 size-full" width="568" height="691" /></a>

Review the list of attributes to see if there is no harm in including a couple of more attributes when delegating the access. If you can live with a couple of more attributes in the access there could be a big win, instead of creating dozens of Access Control Entries.

All attributes does not belong to a property set. So If you search for a property set for an attribute and don't receive any information back, your attribute does not have a property set.

For example you might want to delegate access to one of these:
<ul>
 	<li>employeeID</li>
 	<li>employeeNumber</li>
 	<li>employeeType</li>
</ul>
But none of them belong to a property set.

Good Luck, in delegating access! :)]]></content:encoded>
    </item>
    <item>
      <title>PowerShell: Malware detection and tracking of new autoruns</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/powershell-malware-detection-and-tracking-of-new-autoruns</link>
      <pubDate>Sat, 20 Feb 2016 02:35:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2016/02/20/powershell-malware-detection-and-tracking-of-new-autoruns/</guid>
      <description><![CDATA[Old Project realized
A month ago I reinstalled one of my PC&#39;s and thought of a project I...]]></description>
      <content:encoded><![CDATA[<h2>Old Project realized</h2>
<p>A month ago I reinstalled one of my PC&#39;s and thought of a project I started but never finished many years ago. It was when I found out about autorunsc.exe , one of the many awesome tools from the <strong>Sysinternals suite</strong> and the creator <strong>Mark Russinovich</strong>, when I thought of an idea to<strong> keep track of all additions to my Windows installation</strong>. Any additions to it that had any effect on my boot process or that started any processes at startup. With this information I would be able to determine when I had additions I didn&rsquo;t approved nor expected.&nbsp; Then I could simple remove these binaries or uninstall the guilty application.</p>
<p><strong>Now, I have a slightly different approach</strong>. Besides catching all additions to the auto-runs in my Windows installation<strong><span style="background-color:#ffff00;"> I also would like to know what executables are signed or not and if these could be a threat to me</span></strong>. I&#39;m thinking of malware and vicious code. I think autorunsc.exe can do a fantastic job here with all its features, especially with some of the new features and the combination with another awesome tool, also from Sysinternals, Sigcheck.</p>
<p><strong>Some&nbsp; of the&nbsp; things Autorunsc do:</strong></p>
<ul>
<li>
<p>List all drivers, processes, scheduled tasks, boot drivers , logon startups and auto-runs.</p>
</li>
<li>
<p>Check if the image of the executable is signed or not.</p>
</li>
<li>
<p>Check the hash of the image.</p>
</li>
</ul>
<p><strong>Link to Autoruns :</strong> <span style="font-size:medium;color:#0000ff;"><a href="https://technet.microsoft.com/en-us/sysinternals/bb963902"><span style="color:#0000ff;">https://technet.microsoft.com/en-us/sysinternals/bb963902</span></a></span></p>
<p><strong>Some&nbsp; of the&nbsp; things SigCheck do:</strong></p>
<ul>
<li>
<p>Verify signatures.</p>
</li>
<li>
<p>Check the image against Virus Total, a free online virus, malware and URL Scanner.</p>
</li>
</ul>
<p><strong>Link to SigCheck:</strong><span style="font-size:medium;color:#0000ff;"> <a href="https://technet.microsoft.com/en-us/sysinternals/bb897441"><span style="color:#0000ff;">https://technet.microsoft.com/en-us/sysinternals/bb897441</span></a></span></p>
<p>With a combination of both:</p>
<p><span style="background-color:#ffff00;"><strong>Scan my entire system auto-runs against Virus Total</strong></span>, i.e. the things Autorunsc.exe collects:</p>
<ul>
<li>
<p>Boot execute.</p>
</li>
<li>
<p>Codecs.</p>
</li>
<li>
<p>Appinit DLLs.</p>
</li>
<li>
<p>Explorer addons.</p>
</li>
<li>
<p>Sidebar gadgets (Vista and higher)</p>
</li>
<li>
<p>Image hijacks.</p>
</li>
<li>
<p>Internet Explorer addons.</p>
</li>
<li>
<p>Known DLLs.</p>
</li>
<li>
<p>Logon startups (this is the default).</p>
</li>
<li>
<p>WMI entries.</p>
</li>
<li>
<p>Winsock protocol and network providers.</p>
</li>
<li>
<p>Office addins.</p>
</li>
<li>
<p>Printer monitor DLLs.</p>
</li>
<li>
<p>LSA security providers.</p>
</li>
<li>
<p>Autostart services and non-disabled drivers.</p>
</li>
<li>
<p>Scheduled tasks.</p>
</li>
<li>
<p>Winlogon entries.&nbsp;</p>
</li>
</ul>
<h2><b>Powershell - There&#39;s nothing PowerShell can&#39;t do!<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/powershell-logo.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/powershell_2D00_logo.jpg"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/powershell-logo.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/120x120/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/powershell_2D00_logo.jpg" border="0" alt=" " style="float:left;" /></a></b></h2>
<p>Powershell comes to help once again. By using PowerShell I built a wrapper around these two Sysinternals tools (Autrunsc.exe and SigCheck.exe) plus some GUI to provide you with notifications when you got new binaries on your system.</p>
<p>&nbsp;The processs:</p>
<ul>
<li>Use Scheduled Tasks to run the script at:
<ul>
<li>Boot(Analyze autoruns) .</li>
<li>User Logon (Notifications).</li>
</ul>
</li>
</ul>
<ul>
<li>
<p>One Powershell script that does all the job.</p>
</li>
<li>
<p>The script scan the machine with Autorunsc.exe.</p>
</li>
<li>
<p>Generates CSV output.</p>
</li>
<li>
<p>Compares CSV inbetween boots.</p>
</li>
<li>
<p>The script finds any differences.</p>
</li>
<li>
<p>The script sends the user notifications when:</p>
<ul>
<li>
<p>New Unsigned Non-Microsoft Binaries added.</p>
</li>
<li>
<p>New Unsigned Microsoft Binaries added.</p>
</li>
<li>
<p>Files with New Hash and&nbsp; Unsigned Binaries added.</p>
</li>
<li>
<p>New Non-Microsoft Binaries added.</p>
</li>
<li>
<p>New Microsoft Binaries added.</p>
</li>
</ul>
</li>
<li>
<p>Provide a UI to see the added files and a summary.</p>
</li>
<li>
<p>With the list of additions you can run a check against Virus Total.&nbsp;</p>
</li>
</ul>
<h2><b>The value this script provides</b></h2>
<ul>
<li>
<p>Scan the entire system auto-runs with Virus Total.</p>
</li>
<li>
<p>Creates an offline file for scanning entire system auto-runs with Virus Total, when no internet is available.</p>
</li>
<li>
<p>Notifications when additions to the system are added.</p>
</li>
<li>
<p>A Summary of additions over every boot.</p>
</li>
<li>
<p>Summary of current additions with information about what kind of modifications done.&nbsp;</p>
</li>
</ul>
<h2><b>Requirements</b></h2>
<p>These are the requirements.</p>
<ul>
<li>
<p>PowerShell</p>
</li>
<li>
<p>Sysinternals Autorunsc v13.51 (or newer) - Autostart program viewer.</p>
</li>
<li>
<p>Sysinternals Sigcheck v2.50&nbsp; (or newer) - File version and signature viewer.</p>
</li>
<li>
<p>Internet connection if you will run a check against Virus Total.</p>
</li>
<li>
<p><span style="background-color:#ffff00;"><b>Important!</b></span> Once run Sigcheck -v &lt;any file&gt; and accept the agreement with Virus Total, if you do agree of cause :).&nbsp;</p>
</li>
<li>
<p><span style="background-color:#ffff00;"><b>Important!</b> </span>Agree to Autorunsc.exe EULA.</p>
</li>
<li>
<p><span style="background-color:#ffff00;"><b>Important!</b></span> Agree to SigCheck.exe EULA.</p>
</li>
</ul>
<p>Run the PowerShell script once and it will prompt you with the option to agree to the EULA and to use Virus Total.</p>
<p><b>Tip!</b> :&nbsp; I would recommend the nice script <b>Update-sysinternals.ps1</b> to keep your Sysinternals tools updated.</p>
<p>Modify the following command in the script to something like this.</p>
<p><span style="color:#ffffff;background-color:#0000ff;">Update-Sysinternalshttp -ToolsLocalDir &quot;c:\Sysinternals&quot;</span></p>
<p><span style="color:#0563c1;"><a href="https://gallery.technet.microsoft.com/scriptcenter/Another-Sysinternals-Tools-aa288439">https://gallery.technet.microsoft.com/scriptcenter/Another-Sysinternals-Tools-aa288439</a></span>&nbsp;</p>
<h2><b>Config</b></h2>
<p>To run this you have to put these two files, Autorunsc.exe and SigCheck.exe,&nbsp; in a folder on your drive,&nbsp; the expected path is<strong> C:\Sysinternals</strong> but it&#39;s configurable.</p>
<p>&nbsp;1<span style="font-family:Calibri;font-size:medium;">.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:Calibri;font-size:medium;">First run must include the &quot;-Analyze&quot; switch . This is needed after each boot since it will collect all auto-runs.</span></p>
<p><span style="color:#ffffff;background-color:#0000ff;">Verify-Autoruns.ps1 -Analyze</span></p>
<p>Or</p>
<p><span style="color:#ffffff;background-color:#0000ff;">Verify-Autoruns.ps1 -Analyze -Dir &lt;folder path to Autorunsc.exe and SigCheck.exe&gt;</span></p>
<p>&nbsp;2<span style="font-family:Calibri;font-size:medium;">.</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family:Calibri;font-size:medium;">Once we have collected data we can run the script without scanning if we just want to get notifications and summary</span>&nbsp;</p>
<p><span style="color:#ffffff;background-color:#0000ff;">Verify-Autoruns.ps1</span>&nbsp;</p>
<p>Or if we want notifications even if nothing has happend:&nbsp;</p>
<p><span style="color:#ffffff;background-color:#0000ff;">Verify-Autoruns.ps1 -Icon</span>&nbsp;</p>
<p>I also suggest you put the script in the same directory, but it is not a requirement ,though it must be configured in the scheduled task.&nbsp;</p>
<p><strong>You can schedule a task in that runs at every boot.</strong></p>
<p>This is the action for the task:</p>
<p><b>Program:</b> C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</p>
<p><b>Arguments:</b> -ExecutionPolicy Unrestricted -File &quot;C:\Sysinternals\Verify-Autoruns.ps1&quot; &quot;-Analyze&quot;</p>
<p>If you want you can just import the exported Scheduled Task provided : Verify Autoruns - Analyze Boot.xml included in the attached file&nbsp;<strong><span style="font-size:small;">VerifyAutoruns_ScheduledTaskExports.zip</span></strong>&nbsp;</p>
<p></p>
<p>You can also schedule a task in that runs at every logon to provide the user that logons with notifications.</p>
<p><b>Program:</b> C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</p>
<p><b>Arguments: </b>-Nologo -WindowStyle Hidden -ExecutionPolicy Unrestricted -File &quot;C:\Sysinternals\Verify-Autoruns.ps1&quot; &quot;-Icon&quot;</p>
<p>If you want you can just import the exported Scheduled Task provided : Verify Autoruns - Verify.xml&nbsp;&nbsp;included in the attached file&nbsp;<strong><span>VerifyAutoruns_ScheduledTaskExports.zip</span></strong>&nbsp;</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/ScheduleTasksVerifyAutoruns.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/ScheduleTasksVerifyAutoruns.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/ScheduleTasksVerifyAutoruns.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/ScheduleTasksVerifyAutoruns.png" border="0" alt=" " /></a></p>
<h2><b>Output from Verify-Autoruns</b></h2>
<p>What will this powershell script generate:</p>
<ul>
<li>
<p>A CSV file with all the autoruns on the system in a folder called C:\AutorunsLogs (Can be customized). Example: AutorunsC_20160210-0925.csv</p>
</li>
</ul>
<p><span style="color:#ffffff;background-color:#0000ff;">Verify-Autoruns.ps1&nbsp; -LogDir &lt;folder path to all logs&gt;</span></p>
<ul>
<li>A CSV file with any new files added . This will require that you have at least two boot scans created, there&#39;s only going to be one file for each boot. Example file: AutorunsC_New_20160210-0950.csv</li>
<li>
<p>A CSV file with the collected summary of all added files, i.e. the contents of all AutorunsC_New.. files.</p>
</li>
<li>
<p>SigCheck input CSV file for offline systems that can not access to internet. This file can be moved and run on internet connected systems for checking with Virus Total.</p>
</li>
<li>
<p>Notifications Icon.</p>
</li>
<li>
<p>Ballon Notifications.</p>
</li>
<li>
<p>Report Window.</p>
</li>
<li>
<p>Summary Window.&nbsp;</p>
</li>
</ul>
<h2><b>Notifications Icon</b></h2>
<p>This Shield icon in the task bar let you access three things:</p>
<ul>
<li>
<p>The Report Window.</p>
</li>
<li>
<p>The Summary of the last run.</p>
</li>
<li>
<p>Windows Reliability Monitor (This tool can provide you with events on your system that might have caused one of the additions to the auto-runs)</p>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/NotificationIconMeny.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/NotificationIconMeny.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/NotificationIconMeny.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/NotificationIconMeny.png" border="0" /></a>&nbsp;</p>
<h2><b>Balloon Notifications</b></h2>
<p>The following notifications are fired at detection. This will require that you have at least two boot scans created, there&#39;s only going to be one file for each boot.</p>
<ul>
<li>
<p><strong>New Non-Microsoft Files that are not signed</strong></p>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/8372.Notifi_UnsignedNonMS.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/8372.Notifi_5F00_UnsignedNonMS.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/8372.Notifi_UnsignedNonMS.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/8372.Notifi_5F00_UnsignedNonMS.png" border="0" alt=" " /></a></p>
<ul>
<li>
<p><strong>Files with new Hash that are not signed</strong></p>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/Notifi_UnsignedNewHash.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/Notifi_5F00_UnsignedNewHash.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/Notifi_UnsignedNewHash.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/Notifi_5F00_UnsignedNewHash.png" border="0" /></a></p>
<ul>
<li>
<p><strong>New Microsoft files that are not signed</strong></p>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/8037.Notifi_UnsignedMS.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/8037.Notifi_5F00_UnsignedMS.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/8037.Notifi_UnsignedMS.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/8037.Notifi_5F00_UnsignedMS.png" border="0" alt=" " /></a></p>
<ul>
<li>
<p><strong>New Non-Microsoft files added</strong></p>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/Notifi_NonMS.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/Notifi_5F00_NonMS.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/Notifi_NonMS.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/Notifi_5F00_NonMS.png" border="0" /></a></p>
<ul>
<li>
<p>New Microsoft files added</p>
</li>
</ul>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/Notifi_MS.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/Notifi_5F00_MS.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/Notifi_MS.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/Notifi_5F00_MS.png" border="0" /></a>&nbsp;</p>
<h2><b>Report Window</b></h2>
<p>Here can you view the files added to autoruns. You can also:</p>
<ul>
<li>
<p>View a summary of the last boot.</p>
</li>
<li>
<p>View the logfile.</p>
</li>
<li>
<p>Check the new files against Virus Total. Requires Internet. (Requires SigCheck.exe ver 2.50 in the same&nbsp; folder as Autorunsc.exe).</p>
</li>
<li>
<p>Check all current autoruns against Virus Total .Requires Internet. (This might take a while).</p>
</li>
</ul>
<p>&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/8156.AlertGUI_NonMSUnsigned.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/8156.AlertGUI_5F00_NonMSUnsigned.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/8156.AlertGUI_NonMSUnsigned.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/8156.AlertGUI_5F00_NonMSUnsigned.png" border="0" alt=" " /></a>&nbsp;</p>
<h2><b>Summary Window</b></h2>
<p>This list shows the results from the latest analysis.</p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/SummaryGUI.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/SummaryGUI.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/SummaryGUI.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/SummaryGUI.png" border="0" /></a></p>
<h2><b>Virus Total Check Window</b></h2>
<p>This is a table with the results from Virus Total. <span style="background-color:#ffff00;"><strong>The column VT Detection will let you know the detection ratio. How many indications of the binary to be &quot;unsecure&quot; in ratio with the number of sources of information.</strong></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/VTGUI.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/VTGUI.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/VTGUI.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/VTGUI.png" border="0" /></a></p>
<p>This picture shows the Virus Total outcome of the new addtions to Windows from the latest boot.</p>
<p></p>
<h2><b>Scan the entire systems auto-runs against Virus Total</b></h2>
<p>If you like to scan all binaries that the system runs at boot and startup you can do it from the <strong>Report Window</strong>, just click &quot;C<strong>heck All System Autoruns with Virus Total</strong>&quot;, or <span style="background-color:#ffff00;">you can do it directly from the <strong>Powerhshell</strong> command line.</span></p>
<p>Command:</p>
<p><span style="color:#ffffff;background-color:#0000ff;">PS C:\Sysinternals&gt; .\Verify-Autoruns.ps1 -SystemCheck</span>&nbsp;</p>
<p>This action might take a while since there are many files to be checked over internet.&nbsp;</p>
<p><strong><span style="background-color:#ffff00;">Or if no internet connection is possible:</span></strong></p>
<p>&nbsp;<span style="color:#ffffff;background-color:#0000ff;">PS C:\Sysinternals&gt; .\Verify-Autoruns.ps1 -SystemCheck -Offline</span></p>
<p>The output from this command can be used with SigChekc on a internet connected system like this:</p>
<p><span style="color:#ffffff;background-color:#000000;">SigCheck.exe -o -v VTInput.csv &gt; VTResult.csv</span></p>
<p>This output will file contain the VT Detection ratio for each file. It&#39;s a CSV file that&#39;s best suitable for opening in Excel or similar.</p>
<h2><b>Summary</b></h2>
<p>With this script running on my PC&#39;s I can easily determine all the auto-runs added, even over time.<span style="background-color:#ffff00;"> But the coolest feature according to me is that you can scan the entire systems auto-runs against Virus Total online or offline.</span></p>
<p><span style="background-color:#ffffff;">This script does of course <span style="background-color:#ffff00;"><strong><span style="text-decoration:underline;">not replace any antivirus or malware software</span></strong></span>. I use it on all my PC&#39;s as an additional control and nice to have.</span></p>
<p>The script is available at&nbsp;<a href="https://gallery.technet.microsoft.com/scriptcenter/Malware-detection-and-995f01eb">TechNet Script Center here.</a></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/telligent.evolution.components.attachments/01/9414/00/00/03/66/05/56/VerifyAutoruns_ScheduledTaskExports.zip" original-url="https://blogs.technet.com/cfs-filesystemfile.ashx/__key/telligent-evolution-components-attachments/01-9414-00-00-03-66-05-56/VerifyAutoruns_5F00_ScheduledTaskExports.zip">VerifyAutoruns_ScheduledTaskExports.zip</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Port Mirroring for Advanced Threat Analytics</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/port-mirroring-for-advanced-threat-analytics</link>
      <pubDate>Wed, 23 Dec 2015 08:06:00 GMT</pubDate>
      <dc:creator><![CDATA[fredengren]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2015/12/23/port-mirroring-for-advanced-threat-analytics/</guid>
      <description><![CDATA[The main data source used by ATA is deep packet inspection of the network traffic to and from your...]]></description>
      <content:encoded><![CDATA[The main data source used by ATA is deep packet inspection of the network traffic to and from your domain controllers. For ATA to see the network traffic, port mirroring needs to be configured. Port mirroring copies the traffic on one port, known as the source port, to another port, known as the destination port. ATA works with most solutions that can mirror traffic - if the traffic can be port mirrored to ATA, it can be used to analyze threats to your system <a href="https://technet.microsoft.com/en-us/library/mt429376.aspx.">https://technet.microsoft.com/en-us/library/mt429376.aspx.</a>

One of the most common questions for Advanced Threat Analytics is on how to mirror ports.

I will give some references to different sites that will provide information on how to create mirrored ports.

<strong>Switches that support mirroring</strong>

<a href="https://www.miarec.com/knowledge/switches-port-mirroring">https://www.miarec.com/knowledge/switches-port-mirroring</a>

Hyper-V

<a href="/b/networking/archive/2015/01/06/setting-up-port-mirroring-to-capture-mirrored-traffic-on-a-hyper-v-virtual-machine.aspx">https://blogs.technet.com/b/networking/archive/2015/01/06/setting-up-port-mirroring-to-capture-mirrored-traffic-on-a-hyper-v-virtual-machine.aspx</a>

Vmware

<a href="https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.networking.doc%2FGUID-8D1768B0-074D-4F06-9931-2BE4777D35F8.html">https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.networking.doc%2FGUID-8D1768B0-074D-4F06-9931-2BE4777D35F8.html</a>

https://pubs.vmware.com/vsphere-55/index.jsp#com.vmware.vsphere.networking.doc/GUID-68B5DD45-DD3F-4E9B-A6CD-BE97026A846A.html

HP

<a href="https://h10032.www1.hp.com/ctg/Manual/c02640590">https://h10032.www1.hp.com/ctg/Manual/c02640590</a>

Cisco

<a href="https://supportforums.cisco.com/document/13891/how-configure-port-monitoring-span-catalyst-2940-2950-2955-2970-3550-or-3750-series">https://supportforums.cisco.com/document/13891/how-configure-port-monitoring-span-catalyst-2940-2950-2955-2970-3550-or-3750-series</a>

https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus1000/sw/4_2_1_s_v_2_2_2/system_management/b_Cisco_Nexus_1000V_System_Management_Configuration_Guide_2_2_2/b_Cisco_Nexus_1000V_System_Management_Configuration_Guide_2_2_2_chapter_01010.html

&nbsp;

Juniper

<a href="https://www.juniper.net/documentation/en_US/junos13.2/topics/usage-guidelines/services-configuring-port-mirroring.html">https://www.juniper.net/documentation/en_US/junos13.2/topics/usage-guidelines/services-configuring-port-mirroring.html</a>

NetGear

<a href="https://www.miarec.com/knowledge/how-configure-port-mirroring-netgear-fs726t">https://www.miarec.com/knowledge/how-configure-port-mirroring-netgear-fs726t</a>

TP-Link

<a href="https://www.miarec.com/knowledge/how-configure-port-mirroring-tp-link-tl-sl2428web">https://www.miarec.com/knowledge/how-configure-port-mirroring-tp-link-tl-sl2428web</a>

Dell

<a href="https://www.miarec.com/knowledge/how-configure-port-mirroring-dell-powerconnect-2700-series">https://www.miarec.com/knowledge/how-configure-port-mirroring-dell-powerconnect-2700-series</a>

D-Link

<a href="https://www.miarec.com/knowledge/how-configure-port-mirroring-d-link-des-3010">https://www.miarec.com/knowledge/how-configure-port-mirroring-d-link-des-3010</a>

Most of these links points for other vendors webpages and they are the ones that can give support on their products.

To verify that the port-mirroring is working (<a href="https://technet.microsoft.com/en-us/library/dn707710.aspx">https://technet.microsoft.com/en-us/library/dn707710.aspx</a>), remember to use Network monitor on the ATA Gateway.

<a href="https://technet.microsoft.com/en-us/library/mt163705.aspx">https://technet.microsoft.com/en-us/library/mt163705.aspx</a>]]></content:encoded>
    </item>
    <item>
      <title>SCOM tuning: the video</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/scom-tuning-the-video</link>
      <pubDate>Fri, 28 Nov 2014 02:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Danny Hermans [EST8]]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2014/11/28/scom-tuning-the-video/</guid>
      <description><![CDATA[Thanks to Jonas Lenntun from Approved Consulting AB https://www.approved.se/ in Sweden, you can now...]]></description>
      <content:encoded><![CDATA[<p>Thanks to Jonas Lenntun from Approved Consulting AB <a href="https://www.approved.se/">https://www.approved.se/</a> in Sweden, you can now watch the recorded version of my presentation at the SCOM Days in G&ouml;teborg.</p>
<p>It&#39;s a 45 minute presentation about the best practices in tuning your Operations Manager Environment and your management packs.</p>
<p>Enjoy!</p>
<p><a href="https://youtu.be/GgLkscRz6oo">https://youtu.be/GgLkscRz6oo</a></p>
<p></p>
<p>And there&#39;s more coming soon - Watch this blog closely in the next months.</p>
<p>/Danny</p>]]></content:encoded>
    </item>
    <item>
      <title>Prevent Lateral Movement With Local Accounts</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/prevent-lateral-movement-with-local-accounts</link>
      <pubDate>Thu, 16 Oct 2014 17:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2014/10/16/prevent-lateral-movement-with-local-accounts/</guid>
      <description><![CDATA[What is Lateral Movement?

Lateral movement is an activity used when an attacker is scavenging a...]]></description>
      <content:encoded><![CDATA[<h2 lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:14pt;">What is Lateral Movement?</h2>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">Lateral movement is an activity used when an attacker is scavenging a network for credentials, typically used in a Pass-The-Hash scenario.</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">From <a title="Mitigating Pass-the-Hash (PtH) Attacks and Other Credential Theft Techniques.pdf" href="https://www.microsoft.com/en-us/download/details.aspx?id=36036" target="_blank">Mitigating Pass-the-Hash (PtH) Attacks and Other Credential Theft Techniques.pdf</a></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p>&quot;In this activity, the attacker uses the credentials obtained from a compromised computer to gain access to another computer of the same value to the organization. For example, the attacker could use stolen credentials for the built-in local Administrator account from the compromised computer to gain access to another computer that has the same user name and password.&quot;</p>
<p></p>
<h2>&nbsp;The local accounts issue</h2>
<p><strong>- What&#39;s the problem with local accounts, they&#39;re local to the machine right?</strong></p>
<p lang="en-GB">&nbsp;</p>
<p lang="en-GB">Well, there is a functionality like the&nbsp; &quot;Windows for Workgroups&quot; behaviour, inherited from previous versions of Windows, that makes local accounts a security issue. In this behaviour a client trust a local account from another machine if the password is exactly the same. This means that if you know the password of the local administrator account on one machine you could use that account to connect to other machines where the local administrator password is identically.</p>
<p lang="en-GB">&nbsp;</p>
<p lang="en-GB">Normally you do not need local accounts when your machine is domain joined. You should use domain accounts instead.</p>
<h2 lang="en-GB">How do you solve it?</h2>
<p lang="en-GB">One really good mitigation is to make the local administrators accounts passwords unique. Then you cannot use this account to connect to other machines.</p>
<p lang="en-GB">But , how about other local accounts? Can you be sure there&#39;s no other local accounts created anywhere?</p>
<p lang="en-GB">The best way is to prevent all local accounts to access other machines over the network via a group policy.</p>
<p lang="en-GB">&nbsp;</p>
<p lang="en-GB">This can be done with the two new Well-known groups:</p>
<p lang="en-GB"><span style="font-size:small;"><strong>Local account S-1-5-113</strong></span></p>
<p lang="en-GB">All accounts in the local SAM .</p>
<p lang="en-GB"><span style="font-size:small;"><strong>Local account and member of Administrators group S-1-5-114</strong></span></p>
<p lang="en-GB">All accounts in the local SAM and member of the administrators Group.</p>
<h2 lang="en-GB">How do you get these two new groups?</h2>
<p lang="en-GB">If you already have&nbsp; Windows 8.1/Windows Server 2012 R2&nbsp; they&#39;re there waiting to be used.</p>
<p lang="en-GB">If you have Windows 7, Windows Server 2008 R2, Windows 8 or Windows Server 2012 machines you have to install the security update <a title="KB2871997" href="https://support2.microsoft.com/kb/2871997" target="_blank">KB2871997</a>.</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">This update adds the new groups among other new great security features.</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">Before installing <strong>KB2871997</strong> the group list for the local administrator account will look like this:</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/LocalAccountGroup.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/LocalAccountGroup.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/LocalAccountGroup.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/LocalAccountGroup.png" border="0" /></a></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"></p>
<p style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">With <a title="KB2871997" href="https://support2.microsoft.com/kb/2871997" target="_blank">KB2871997</a> installed:</p>
<p style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/LocalAccountGroup_Wellknown_Selected.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/LocalAccountGroup_5F00_Wellknown_5F00_Selected.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/LocalAccountGroup_Wellknown_Selected.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/LocalAccountGroup_5F00_Wellknown_5F00_Selected.png" border="0" /></a></p>
<p lang="en-GB"></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"></p>
<h2>Create the Group Policy&nbsp;</h2>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">By adding the new group &quot;Local Account&quot; to the user right assignment <strong>&quot;Deny access to this computer from the network&quot;, </strong>you deny access to the computer for local accounts over the network. Set this setting in a group policy and apply it to your machines you would like to protect. I suggest you to make sure you do not have an application relying on this old legacy behaviour before applying it to the masses.</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/PassTheHasH_Mitigation2_GPO.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/PassTheHasH_5F00_Mitigation2_5F00_GPO.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/PassTheHasH_Mitigation2_GPO.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/PassTheHasH_5F00_Mitigation2_5F00_GPO.png" border="0" /></a></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:14pt;"></p>
<h2>The Result&nbsp;</h2>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">Local accounts will be&nbsp;limited to the machine where they are stored.</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">&nbsp;<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/PassTheHasH_AccessDenied.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/PassTheHasH_5F00_AccessDenied.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/PassTheHasH_AccessDenied.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/PassTheHasH_5F00_AccessDenied.png" border="0" /></a></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">Perfect! They are kept right where they belongs.</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"></p>
<h2>Conclusion</h2>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:14pt;"></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">This setting in combination with unique password and preventing local accounts from logging on using remote desktop you have relatively easy made a <span style="text-decoration:underline;">big impact </span>on security!</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">&nbsp;</p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;">From: <a title="Mitigating-Pass-the-Hash-Attacks-and-Other-Credential-Theft-Version-2.pdf" href="https://www.microsoft.com/en-us/download/details.aspx?id=36036" target="_blank">Mitigating-Pass-the-Hash-Attacks-and-Other-Credential-Theft-Version-2.pdf</a></p>
<p lang="en-GB" style="margin:0in;color:black;font-family:Calibri;font-size:11pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/PassTheHasH_Mitigation2.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/PassTheHasH_5F00_Mitigation2.png"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/PassTheHasH_Mitigation2.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/PassTheHasH_5F00_Mitigation2.png" border="0" /></a></p>]]></content:encoded>
    </item>
    <item>
      <title>Access denied on C:, even though you have given the user Full Control</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/access-denied-on-c-even-though-you-have-given-the-user-full-control</link>
      <pubDate>Mon, 07 Apr 2014 13:01:17 GMT</pubDate>
      <dc:creator><![CDATA[fredengren]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2014/04/07/access-denied-on-c-even-though-you-have-given-the-user-full-control/</guid>
      <description><![CDATA[Overview  
One of my customer was in the process of migrating away from Windows XP. As a part of...]]></description>
      <content:encoded><![CDATA[<p><span style="font-size:medium;"><b><span style="font-family:Calibri;">Overview</span></b></span><br /><span style="font-family:Calibri;font-size:medium;"> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">One of my customer was in the process of migrating away from Windows XP. As a part of this work, the customer was verifying application compatibility. During the testing of applications, they discovered that 2 applications that are business critical for the customer were having issues with file creations. These issues are counted as showstoppers for the roll out of Windows 7. The purpose of this&nbsp;blog is to describe the technical reasons of this issue and its resolution.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">The customer&acute;s technical issue with creating files via a web based tool with an ActiveX Component that will save information locally and Scanning Application on the client machine, focusing two specific error messages: </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Error message &ldquo;unable to create file&rdquo; in the Scanning application</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Error message &ldquo;Internet explorer has had a fatal error&rdquo; in the&nbsp;ActiveX component&nbsp;application</span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">Both these application are working in Windows XP without any issues. The customer is doing a 1:1 migration of the application when they move the applications to Windows 7.</span> </span></p>
<p><span style="font-family:Calibri;">&nbsp;</span></p>
<p style="margin:0cm 0cm 10pt;"></p>
<p style="margin:0cm 0cm 10pt;line-height:normal;"><strong><span lang="EN-US" style="color:black;font-size:13.5pt;"><span style="font-family:Calibri;">Security settings</span></span></strong></p>
<p style="margin:0cm 0cm 10pt;"></p>
<p style="margin:0cm 0cm 10pt;line-height:normal;"><span lang="EN-US" style="color:black;font-size:13.5pt;"><span style="font-family:Calibri;">The will give the users the same NTFS permissions as they had on Windows XP.</span></span></p>
<p style="margin:0cm 0cm 10pt;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/FullControl.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/FullControl.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/FullControl.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/FullControl.jpg" border="0" /></a></p>
<p><img alt=" " /></p>
<p><span style="font-family:Calibri;font-size:medium;">Based on the documentation on the applications there is a need to save temporary files in C:\. Based on this configuration shown in the Picture above,&nbsp;the application user will have all the necessary NTFS permission to write the application files to %systemroot%, in this case&nbsp;C:\. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Even though when the user is having Full Control in C:\, the user will get the access denied message. </span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">Something strange magic is at Work here. There are more things going on than meets the eye.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;">The customer has high security requirements and has enabled User Account Control. One of the setting that are set is the following:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">&nbsp;</span></p>
<table border="1" cellpadding="0">
<tbody>
<tr>
<td><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">User Account Control: Virtualize file and registry write failures to per-user locations</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Enabled</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">When this policy setting is enabled, application write failures are redirected at run time to defined user locations. Enable this policy setting in environments where legacy applications need to run as if they were running in Windows XP.</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">When this policy setting is disabled, applications that attempt to write in privileged resources, such as the Program Files folder, fail. Disable this policy setting in environments where file and registry virtualization is not required.</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
</tbody>
</table>
<p><span style="font-family:Calibri;font-size:medium;">This UAC setting must be enabled for Virtual Store to be functional.</span></p>
<p><span style="font-family:Calibri;font-size:medium;">More information about this setting is available here:</span></p>
<p><span style="font-family:Calibri;font-size:medium;">https://technet.microsoft.com/en-us/library/dd851895.aspx<br /> <br /> </span></p>
<p><br /><span style="font-family:Calibri;font-size:medium;"> This means that they have enabled Virtual Stores, which means that information from the application should be written to Virtual Store directory (%LOCALAPPDATA%\VirtualStore, C:\Users\user\AppData\Local\VirtualStore).<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">After verifying the application we are seeing that Virtual Store is not being used. <br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Based on this information, we realized that we are not getting access denied when we are trying to write to C:\<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">As mention above in the UAC policy we should have a write failure to start the virtualization of file and registry. Without having a write failure on C:\ the Virtual Store functionality&nbsp;will not work.<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">So we have given Full Control to the user on C:\ and we have verified that the Virtual store will not be used&nbsp;as the user has write access to C:\.<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">This would mean that the user can write the temp files to C:\, but still we get Access Denied from the application.<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">There is another security feature at work here:<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">As we are trying to write to %systemroot%, the operating system will protect itself, by implementing Windows Integrity Mechanism.<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Windows Integrity Mechanism is a functionality to ensure that a lower privileged process can&acute;t alter system configuration that are critical for the operating systems.<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Integrity level assignment </span></p>
<table style="width:100%;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Integrity Level</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Example Processes</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Low Mandatory Level</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Protected Mode Internet Explorer and processes launched by Protected Mode Internet Explorer</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Medium Mandatory Level</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Standard user and non-elevated AAM processes</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">High Mandatory Level</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Processes running with administrative rights</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
<tr>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">System Mandatory Level</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
<td valign="top"><span style="font-family:Times New Roman;font-size:medium;"> </span>
<p><span style="font-family:Calibri;font-size:medium;">Local System, Local Service, and Network Service processes</span></p>
<span style="font-family:Times New Roman;font-size:medium;"> </span></td>
</tr>
</tbody>
</table>
<p><br /><span style="font-family:Calibri;font-size:medium;"> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Based on this information we came to the conclusion that we had two processes, the ActiveX Component running in a Low Mandatory Level and the scanning application running at a Medium Mandatory Level. These applications are trying to write their temporary files to C:\, which is %systemroot%. %Systemroot% is containing several system&nbsp;critical files that is needed for the operating system. This means that you will need High Mandatory Level Integrity Level permission to be able to write to C:\<br /> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">More information about Integrity level can be found here:<br /> <br /> </span></p>
<p><span style="font-size:medium;"><a href="https://msdn.microsoft.com/en-us/library/bb625957.aspx"><span style="font-family:Calibri;">https://msdn.microsoft.com/en-us/library/bb625957.aspx</span></a></span></p>
<p><span style="font-size:medium;"><a href="https://msdn.microsoft.com/en-us/library/bb625963.aspx"><span style="font-family:Calibri;">https://msdn.microsoft.com/en-us/library/bb625963.aspx</span></a></span></p>
<p><br /><span style="font-family:Calibri;font-size:medium;"> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">So the actual issue is that the operating system is protecting itself from having critical operating system files being altered.<br /> <br /> </span></p>
<p><br /><span style="font-family:Calibri;font-size:medium;"> <br /> </span></p>
<p><span style="font-family:Calibri;font-size:medium;">Based on this information we realized that the NTFS file and folder permission are evaluated first in the perspective if the UAC configuration about Virtual Store should be used and then the Windows Integrity Level will verify if it should allow a write to %systemroot%.<br /> <br /> </span></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">This is the actual issue on why we get Access Denied even though we have given the user Full Control on C:\. The operating system is trying to protect itself from being compromised by a low privileged process!</span><br /> <br /> </span></p>
<p><span style="font-family:times new roman,times;font-size:medium;"><span style="font-family:Times New Roman;font-size:medium;"> </span><br /></span></p>
<p><span style="font-family:times new roman,times;font-size:medium;">&nbsp;</span></p>
<p><span style="font-family:Calibri;font-size:medium;"><strong>Conclusion</strong><br />&nbsp;<span style="font-family:Times New Roman;"> </span></span></p>
<p><span style="font-family:Calibri;font-size:medium;">So how did we get the application to Work?<br /> <br /> </span></p>
<p></p>
<p><span style="font-family:Calibri;font-size:medium;">By giving the user Read Only to C:\ we get the expected Access Denied on the write attempt on the expected C:\ folder that the application wants to do. Hence the Virtual Store will be used and the temp files are written to C:\Users\user\AppData\Local\VirtualStore, where the user has write access.<br /> <br /> </span></p>
<p></p>
<p><span style="font-family:Calibri;"><span style="font-size:medium;">So the correct NTFS Permission for these application would be</span><br /> <br /> </span></p>
<p><span style="font-family:Calibri;"><span style="font-family:Times New Roman;font-size:medium;"> </span></span><span style="font-family:times new roman,times;font-size:medium;"><br /> <a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/ReadOnly.jpg" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/ReadOnly.jpg"><img alt=" " src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/ReadOnly.jpg" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/ReadOnly.jpg" border="0" /></a><br /></span></p>
<p><span style="font-family:times new roman,times;font-size:medium;"><img alt=" " /></span></p>
<p style="margin:0cm 0cm 10pt;line-height:normal;"><span lang="EN-US" style="color:black;font-size:13.5pt;"><span style="font-family:Calibri;">So by giving less permission on %Systemroot% the user will get the permission to write the temporary files to the Virtual Store and the application will work again.</span></span></p>
<p></p>
<p></p>
<p></p>
<p></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Get location of Hyper-V Virtual Machines with Powershell</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/get-location-of-hyper-v-virtual-machines-with-powershell</link>
      <pubDate>Fri, 11 Oct 2013 07:30:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2013/10/11/get-location-of-hyper-v-virtual-machines-with-powershell/</guid>
      <description><![CDATA[Sometime you probably like to re-install your system or replace a disk where you have installed...]]></description>
      <content:encoded><![CDATA[<p><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-ansi-language: EN-US;" lang="EN-US">Sometime you probably like to re-install your system or replace a disk where you have installed Hyper-V.</span></p>
<p><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-ansi-language: EN-US;" lang="EN-US">In that situation you better keep track of your VMs files.</span></p>
<p><span style="color: black; font-family: 'Arial','sans-serif'; font-size: 9pt; mso-ansi-language: EN-US;" lang="EN-US">Here's a one-liner to list the location of the VM files:</span></p>
<p>&nbsp;</p>
<p><span style="color: #ffffff; font-size: medium; background-color: #0000ff;">get-vm * |sort-object| ft -auto Name,path,configurationlocation,snapshotfilelocation,@{L="Disks";E={$_.harddrives.path}}</span></p>
<p><span style="color: #ffffff; font-size: medium; background-color: #0000ff;"><a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/7510.HyperVLocations.png" original-url="https://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/7510.HyperVLocations.png"><img src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/7510.HyperVLocations.png" original-url="https://blogs.technet.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-00-94-14/7510.HyperVLocations.png" alt="" border="0" /></a></span></p>
<p>&nbsp;</p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Effective Rights - What can users do?</title>
      <link>https://docs.microsoft.com/archive/blogs/pfesweplat/effective-rights-what-can-users-do</link>
      <pubDate>Tue, 08 Oct 2013 03:20:00 GMT</pubDate>
      <dc:creator><![CDATA[Robin Granberg]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.technet.microsoft.com/pfesweplat/2013/10/08/effective-rights-what-can-users-do/</guid>
      <description><![CDATA[I guess I'm not the only one that have been sitting and wondering .. Hmm.. What permissions does...]]></description>
      <content:encoded><![CDATA[I guess I'm not the only one that have been sitting and wondering .. Hmm.. What permissions does these users got in Active Directory actually? I can see a lot of groups in the access control list but how do I relate that to a certain user.

Ok, we got the Effective Rights tab under Advanced Security. But it does not show everything I expect it to do.

<a href="https://support.microsoft.com/kb/933071/en-us">https://support.microsoft.com/kb/933071/en-us</a>

I have used it from time to time and it has been a nice complement to investigating the actual permissions.

But it's hard to get a good overview of permissions, since you can't export the result or do more than one object at a time.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/1537.EffectiverighGUI.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/1537.EffectiverighGUI.png" border="0" /></a>

To address this problem I have added more functionality to the AD ACL Scanner tool.

<a href="https://adaclscan.codeplex.com/">https://adaclscan.codeplex.com/</a>

&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/7181.ADACLScan1.3.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/7181.ADACLScan1.3.png" border="0" /></a>

&nbsp;
<h3><strong>How to scan effective rights for a user with AD ACL Scanner:</strong></h3>
<ol>
 	<li>Download and launch the script in Powershell.</li>
 	<li>Click <strong>Connect</strong> or <strong>List Domains </strong>if you would like to select and connect to another domain then you default.</li>
 	<li>Browse to the object you would like to scan for effective rights and select it.</li>
 	<li>Click on the <strong>Effective Rights</strong> tab and check "<strong>Enable Effective Rights</strong>".</li>
 	<li>Type the samAccountName of the user/Group or computer in the textbox. You could choose an object from a trusted domain if you first click <strong>Locations...</strong> And select the domain name.</li>
 	<li>Click <strong>Get Account</strong> and the <strong>Selected Security Principal</strong> field should be filled in. If you like you can take a look at all contributing memberships this account got by clicking <strong>View Account</strong>.</li>
 	<li>Press <strong>Run Scan</strong> to generate the report.</li>
</ol>
<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/4035.EffectiverighScan1.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/4035.EffectiverighScan1.png" border="0" /></a>

The result will show all permissions this account is granted through its memberships.
<h3><strong>Why will not all Well-known SIDs be evaluated?</strong></h3>
There are several Well-known security identifiers (SIDs) you should not expect the report to match against.

<strong>Well-known SIDs</strong>

<a href="https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx">https://msdn.microsoft.com/en-us/library/windows/desktop/aa379649(v=vs.85).aspx</a>

<strong>2.4.2.4 Well-Known SID Structures</strong>

<a href="https://msdn.microsoft.com/en-us/library/cc980032.aspx">https://msdn.microsoft.com/en-us/library/cc980032.aspx</a>
<h4>Why is this not in the tool?</h4>
Because first of all the account to be evaluated has to logon or be impersonated through all these scenarios to get these SIDs.

The second reason is that they are relative self explanatory. If I have granted users permissions to create group objects as a member of <strong>INTERACTIVE</strong>, they need to logon interactively
on a DC and make sure they point the tool or LDAP operation to the local machine to be able to create a group.

&nbsp;
<h4>Well-known security identifiers (SIDs) generated at logon that is evaluated</h4>
<ul>
 	<li><strong>Everyone</strong></li>
 	<li><strong>Authenticated Users</strong></li>
 	<li><strong>This Organization</strong> (All accounts in all trusted forests)</li>
 	<li><strong>Other Organization</strong> (Accounts from an incoming domain or forest trust with Selective Authentication )</li>
</ul>
If you really would like to know if a user with the Well-knonw SID  <strong>INTERACTIVE</strong> have permissions in AD you could use the filter function in <strong>AD ACL Scanner</strong> and filter for "NT AUTHORITY\INTERACTIVE" as <strong>Trustee</strong>

&nbsp;
<h3><strong>How to quickly determine the degree of permissions in the report?</strong></h3>
To do that I have added a function that will mark the permissions with color codes based on the criticality of the permissions according to this table:

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/5481.ColorLegend.png"><img width="249" height="361" alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/5481.ColorLegend.png" border="0" /></a>

All you have to do is check the box "Show color coded criticality" and run a scan.

Works only for Effective Rights reports.

<a href="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/7725.EffectiverighScan2.png"><img alt="" src="https://msdnshared.blob.core.windows.net/media/TNBlogsFS/prod.evol.blogs.technet.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/00/94/14/7725.EffectiverighScan2.png" border="0" /></a>

This is not optimal but I hope it will give you a <span style="text-decoration: underline">hint</span> on accounts with high privileges.

You have probably another view on what is critical or not depending on the situation you have.

For example I think it is more critical to create user objects than shared folder objects, since user objects are security principals.

For example I think Write Properties permissions to the Personal-Information property set would not be considered as Medium while Write Properties to pwdLastSet on user objects could be considered as critical.

&nbsp;

&nbsp;

I suggest all of you to create an administrtive model using Roles-Based Approach with the principle of least privilege in assigning rights and permissions.

Hopefully this tool simplify the work of building an administrative model.

<strong>Download tool from here:</strong>

<a href="https://github.com/canix1/ADACLScanner">AD ACL Scanner</a>

<a href="https://github.com/canix1/ADACLScanner">https://github.com/canix1/ADACLScanner</a>

Suggested reading  <a href="https://aka.ms/bpsad" title="Best Practices for Securing Active Directory">Best Practices for Securing Active Directory</a>

&nbsp;]]></content:encoded>
    </item>
  </channel>
</rss>