Quantcast
Channel: Home Technet Serveur
Viewing all 2937 articles
Browse latest View live

Cumulative Update 2 for System Center 2016 Virtual Machine Manager Technical Preview 5 is now available

$
0
0

Cumulative Update 2 (CU2) for Microsoft System Center 2016 Virtual Machine Manager Technical Preview 5 is now available. There are two updates available for Cumulative Update 2 for System Center 2016 Virtual Machine Manager Technical Preview 5: An update for VMM Server and an update for the Administrator console.

For a complete list of scenarios enabled, issues fixed, known problems as well as download and installation instructions, please see the following:

3160164Cumulative Update 2 for System Center 2016 Virtual Machine Manager Technical Preview 5 (https://support.microsoft.com/en-us/kb/3160164)


J.C. Hornbeck, Solution Asset PM
Microsoft Enterprise Cloud Group


The Endpoint Zone, Episode 15: How Avanade uses Intune MAM

$
0
0

This might be one of the most interesting episodes of The Endpoint Zone in a really long time.

In episode 15, we spend 15 minutes talking with Joseph Paradi, from the consulting firm Avanade, about the expansive work his organization has done to deploy Intune MAM across the company — and the ways this has made the Avanade workforce more productive and more secure.  The move from the heavy control of MDM to the far lighter touch (requiring no enrollment of devices) with MAM has made a huge difference at Avanade — and Joseph has a great perspective on how to protect your organization’s most important assets and client data, while providing a great user experience that enables your workforce to stay productive.  You can skip ahead to Joseph’s section here.

 

 

Simon and I also talk more about how MAM enrollment works, how your organization can benefit from it, and also a recent report from Gartner gives a glimpse of how they see organizations changing.

 

In_The_Cloud_Logos

System Center 2016 to launch in September

$
0
0

We are pleased to announce that Microsoft System Center 2016 will be launched at the Microsoft Ignite conference in late September. System Center makes it possible for you to run your IT operations at higher scale and drive more value for your business. System Center 2016 brings a new set of capabilities that integrate with our cloud management tools to help you manage the challenges of moving to the cloud. This release also unlocks new technologies available in Windows Server 2016 that will enhance the software-defined datacenter and provide new layers of security for your operating system.

With the launch of System Center 2016 and Windows Server 2016 in September, you will have a cloud-ready platform and the operations management tools you need to run a secure, efficient, and responsive datacenter. At Ignite, you’ll find an array of sessions to give you the latest updates on System Center and how to take advantage of these new capabilities.

Highlights of System Center 2016 include:

  • Support for new Windows Server 2016 technologies, including lifecycle management for Nano server-based hosts and virtual machines, Storage Spaces Direct, and shielded virtual machines
  • Performance and usability improvements, including all the update rollups since System Center 2012 R2, improved UNIX and Linux monitoring, and ability to tune management packs and alerts
  • Native integrations with Microsoft Operations Management Suite to give you expanded analytics, data correlation, orchestration, archival, and hybrid management capabilities

You can download System Center 2016 Technical Preview 5 now to get started. See more of What’s New in System Center 2016 and Windows Server 2016.

System Center is a key part of the Microsoft hybrid cloud management strategy. To make it easier to access the value of System Center and the Operations Management Suite, you can now take advantage of a new subscription option. As customers consider their management tools, we believe that the cloud-based capabilities of Operations Management Suite, and the new subscription model which includes System Center, offer a great combination that will make it easier to transition to the cloud.

We look forward to seeing many of you in Atlanta!

Follow us on Twitter @MSCloudMgmt.

Determining the Dominant User and Setting the ManagedBy Computer Attribute

$
0
0

Hi again, this is Stephen Mathews and I’m here to talk about how to determine the dominant or primary user of a Windows operating system. This insight can help administrators facilitate direct communication with the affected user when a system needs management, and can even help non-enterprise users, such as a parent questioning which child is using their computer the most.

We’ll consider the different types of login data available, show how to expose it in the various OS instruments, and then use that information to update the system’s Active Directory computer object ‘ManagedBy’ attribute.

This post uses PowerShell Version 5 on Windows 10 to illustrate examples and it references settings that may not exist in legacy OS versions. All code examples are for illustration purposes only and should be thoroughly tested in a non-production environment. This post is intended to be used within a client OS using its built-in capabilities. Additionally, it is written from an Asset Tracking perspective and is not directly addressing Security and/or User Auditing concerns.

What type of information are you after?

Are you looking for the currently logged in user on the console, remotely logged in users, the last logged in user, the dominant user, or a list of all users?

How will the information be used: for real-time troubleshooting, historical reference, or external app consumption?

Will you script a solution, if so where will you output the data? Will the script be run manually or automatically, if automatically will you use a startup or login script, or a scheduled task?

File System

The filesystem can be the quickest and most efficient way to determine the regular users of a system. By expanding the ‘UserProfile’ environmental variable’s parent directory, you can see users that have had a profile created on that machine. You can check these profile directories and see the Created, Accessed, Modified, and Written timestamps for all of the systems’ users.

Unfortunately, this can also be the most misleading. The user profile directories are mapped via a Security Identifier (SID) that is stored in the registry. If a user account’s logon name is changed, they will still map to the original folder name. Also, if a user’s profile is corrupted they may not get a local directory and be redirected to the default profile. Additionally, the timestamps may not be updating depending on your OS version and/or auditing settings for those folders. And finally, you may not have rights to see the folders or their attributes.

  • Useful for: All Users, Last Logged On (Last access time), Dominant User (Timespan between created and last access time)
  • Get-ChildItem -Path (Get-Item -Path $env:USERPROFILE).PSParentPath | Select-Object -Property Name,*time*

Registry

The registry contains all the configurations and settings for the OS. There are multiple locations in the registry to find specific information about the users. User accounts are usually stored as SIDs inside the registry and will need to be converted into account names.

  • You can resolve a SID directly inside PowerShell which you’ll see later. You can see additional examples of this in Working with SIDs. This code will be worked into a customized Select-Object property hash-table; you can read about that in Using Calculated Properties.
  • (New-Object -TypeName System.Security.Principal.SecurityIdentifier(“S-1-5-18”)).Translate([System.Security.Principal.NTAccount])

  • $Object | Select-Object -Property SID,@{Name=”Account”;Expression={((New-Object -TypeName System.Security.Principal.SecurityIdentifier($_.SID)).Translate([System.Security.Principal.NTAccount])).Value}}

The registry is a sensitive part of the OS and can be corrupted. This risk of corruption leads many organizations to strictly limit and audit registry access. Certain registry settings may change only during startup and/or login, meaning the data may be stale while it’s being queried.

  • Useful for: All Users
  • Get-ChildItem -Path “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\” -Recurse

  • Useful for: Currently logged on users:
  • reg query HKU

  • Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\hivelist

WMI

Windows Management Instrumentation is an infrastructure that exposes the OS to management. You can find current configuration settings, then get and set those properties.

WMI queries can be difficult to construct and may be resource intensive to the point of resource exhaustion. Take precautions to test the retrieving and setting of WMI components in a test environment before using inside production. Access to WMI may be restricted and audited for the same reasons as the registry.

  • Useful for: All Users, Last Logged On (Last use time), Currently Logged On (Loaded)
  • Get-WmiObject -Class Win32_UserProfile | Select-Object -Property SID,LocalPath,Loaded,LastUseTime,@{Name=”Account”;Expression={((New-Object -TypeName System.Security.Principal.SecurityIdentifier($_.Name)).Translate([System.Security.Principal.NTAccount])).Value}}

  • Useful for: Currently Logged On (Console)
  • Get-WmiObject -Class Win32_ComputerSystem | Select-Object -Property *ername*

ADSystemInfo

This is an overlooked tool to identify current system Active Directory network settings. The ‘UserName’ property will report the currently logged in user. It requires network connectivity to return settings and there’s no inherent way to run it remotely.

  • Useful for: Currently Logged On (Console)
  • $ADSystemProps = @(“ComputerName”,”DomainDNSName”,”DomainShortName”,”ForestDNSName”,”IsNativeMode”,”PDCRoleOwner”,”SchemaRoleOwner”,”SiteName”,”UserName”)

    $ADSystemInfo = New-Object -ComObject “ADSystemInfo”

    foreach ($ADSystemProp in $ADSystemProps) {

    $Value = $ADSystemInfo.GetType().InvokeMember($ADSystemProp, “GetProperty”, $Null, $ADSystemInfo, $Null)

    $ADSystemInfo | Add-Member -MemberType NoteProperty -Name $ADSystemProp -Value $Value -Force

    }

    $ADSystemInfo

Event Logs

Event logs are the record keepers of all activities on the system. As such they are the definitive source for tracking the login process. Logging can be turned on or off per provider and the logging level can be tailored based upon the event type: Critical, Error, Warning, Information, and Verbose. The ‘UserID’ property is typically set to the SID of the account creating the event, this is automatically translated for you in the Event Viewer. If the individual Event Log does not populate the ‘UserID’ property, you can parse the event message text with a SID to find events.

  • Get-WinEvent -LogName “Microsoft-Windows-GroupPolicy/Operational” | Select-Object -First 1 -Property *


  • Get-WinEvent -LogName Security | Select-Object -First 1 -Property *

The event log filter can be difficult to configure and a poorly created filter may be resource intensive to the point of resource exhaustion. Access to certain logs may be restricted and not all event logs record the same information in their properties. Furthermore, the logs may be collected into a central repository, making them unavailable or lacking significant detail to make an accurate determination.

In the first example it uses the Group Policy Operational log and groups the events by ‘UserID’, the second example events do not populate the ‘UserID’ property and need the message data to be parsed for matching SIDs; the list of SIDs were defined from the Win32_UserProfiles class.

  • Useful for: All Users, Dominant User (Count)
  • Get-WinEvent -LogName “Microsoft-Windows-GroupPolicy/Operational” | Group-Object -Property UserID | Sort-Object -Property Count -Descending | Select-Object -Property Count,Name,@{Name=”Account”;Expression={((New-Object -TypeName System.Security.Principal.SecurityIdentifier($_.Name)).Translate([System.Security.Principal.NTAccount])).Value}}

  • $SecurityEvents = Get-WinEvent -FilterHashTable @{LogName=”Security”;ID=4624}

    $WMIUserProfiles = Get-WmiObject -Class Win32_UserProfile

    foreach ($WMIUser in $WMIUserProfiles) {

    $WMIUser | Add-Member -MemberType NoteProperty -Name Account -Value ((New-Object -TypeName System.Security.Principal.SecurityIdentifier($WMIUser.SID)).Translate([System.Security.Principal.NTAccount])).Value

    $WMIUser | Add-Member -MemberType NoteProperty -Name Events -Value ($SecurityEvents | Where-Object {($_.Properties).Value -contains $WMIUser.SID}).Count

    $WMIUser | Select-Object -Property Events,Account,SID

    }

System Center Configuration Manager

For those of you with SCCM, it does the hard work for you in its Asset Intelligence feature set. Click to read more about the SMS_SystemConsoleUser Client WMI Class that calculates the dominant user for you. Here are a couple of screen shots.


Using the information

In this example, we want to update the Active Directory computer object ‘ManagedBy’ attribute with the dominant user. In order for this to happen we have to edit the default permissions to that attribute in the Organizational Unit where the computer object resides. Step two utilizes a script to perform the update, there are easier ways to do this, however we want to utilize a process that is as intrinsic as possible to the OS.

  • On the OU where the computer objects are, add permissions for SELF for Descendent Computer objects and select “Write ManagedBy”.
  • #Create the script below and feed it the ‘UserName’ determined from the above solutions
    $DomUser = “UserName”

    #Set Filter strings for locating objects in AD
    $strComputerFilter = “(&(objectCategory=Computer)(name=” + $env:COMPUTERNAME + “))” #get current computer name from environment variable
    $strFilter = “(&(objectCategory=User)(samaccountName=$DomUser))” #username set to $DomUser defined above

    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.PageSize = 1000
    $objSearcher.Filter = $strFilter
    $objSearcher.SearchScope = “Subtree”

    #find LDAP path for User
    $ADUser = $objSearcher.FindAll()

    #create PowerShell ADSI object for User
    $ADSIUser=[ADSI]$ADUser.path

    #find LDAP path for Computer
    $objSearcher.Filter = $strComputerFilter
    $computer = $objSearcher.FindAll()

    #create PowerShell ADSI object for Computer
    $ADComputer=[ADSI]$computer.path

    #set attributes on computer AD object
    $ADComputer.managedby = $ADSIUser.distinguishedname
    #$ADComputer.employeeid = $ADSIUser.employeeID
    $ADComputer.setinfo()

  • Then configure the scheduled task to run as System with Highest Priority.



In closing, I hope this explains the different types of login information that can be collected, exposes those information locations for you to use, and inspires you to keep track of your assets. A special thanks to Mike Kanofsky who created the script and found the permissions required to update the ‘ManagedBy’ computer object attribute and to Kevin Kasalonis for his SCCM expertise. Thanks for reading!

MSRT July 2016 – Cerber ransomware

$
0
0

As part of our ongoing effort to provide better malware protection, the July 2016 release of the Microsoft Malicious Software Removal Tool (MSRT) includes detection for Win32/Cerber, a prevalent ransomware family. The inclusion in MSRT complements our Cerber-specific family detections in Windows Defender, and our ransomware-dedicated cloud protection features.

We started seeing Cerber in February 2016, and since then it has continuously evolved and is now one of the most encountered ransomware families – beating both Exxroute and Locky. The evolution is mostly based around the way in which Cerber is being distributed – with a focus on exploit kits, compromised websites, and email distribution.

When looking at data for the past 30 days, Cerber is the most detected ransomware, taking over a quarter of all ransomware infections.

Ransomware familyShare
Cerber25.97%
Exxroute15.39%
Locky12.80%
Brolo11.66%
Crowti9.97%
FakeBsod9.19%
Teerac3.94%
Critroni3.72%
Reveton2.86%
Troldesh1.21%
Ranscrape1.18%
Sarento0.76%
Urausy0.70%
Genasom0.65%

 

Cerber is especially prevalent in the US, Asia, and Western Europe.

However, infections occur across the globe, and the following heat map demonstrates the geographical spread of infected machines:
Map showing highlighted areas in Eastern US, Western Europe, Asia, South America

 

Cerber infection chain

Cerber can enter your system or PC either through downloaders from spam email or exploits on malicious or compromised sites.

Diagram showing spam email using macro and scripts to install cerber onto a PC

When delivered via spam, we’ve seen the use of both macros and OLE objects to deliver Cerber. We described how malware authors can maliciously use OLE in our blog “Where’s the macro?“, and we’ve previously talked about how macros have been used to deliver malware (although new features in Office 2016 has seen a decrease in macro-based malware).

In this case, we’ve seen malicious files using VisualBasic Script (VBS) and JavaScript to download Cerber from a command and control (C2) server. We’ve also seen malicious macros both downloading Cerber, and dropping VBS scripts that then download Cerber.

The other infection vector – exploit kits – occurs when a user visits a malicious or compromised website that hosts an exploit kit. The exploit kit checks for vulnerabilities on the PC, and tailors an infection to target those vulnerabilities. This allows the exploit kit to download Cerber onto the PC.

Neutrino, Angler, and Magnitude exploit kits have been identified as distributing Cerber.

 

Cerber updates

As with most other encryption ransomware, Cerber encrypts files and places “recovery” instructions in each folder. Cerber provides the instructions both as .html and .txt formats, and replaces the desktop wallpaper.

Cerber, however, also includes a synthesized audio message.

We described the Cerber infection process in detail in our blog “The three heads of the Cerberus-like Cerber ransomware“.

 

Screencap showing a long note explaining how a user was infectedThere have been some updates to this family, however, including a much more detailed description of how ransomware encryption works, and how users can recover their files.

Note that the ransom message now makes claims about Cerber attempting to help make the Internet a safer place, and they don’t mention the payment of fees or ransom to decrypt your files.

Upon investigation, however, we have determined (as of July 8, 2016) that they are asking for a ransom in the form of bitcoins, as shown in the following screenshot of the Tor webpage:

Note showing that Cerber is request bitcoin payment to decrypt files

 

The Cerber desktop wallpaper has also been updated:

Grey wallpaper with a few lines of black text showing links to decrypt files

 

Prevention

To help stay protected:

  • Keep your Windows Operating System and antivirus up-to-date and, if you haven’t already, upgrade to Windows 10.
  • Regularly back-up your files in an external hard-drive
  • Download and apply security patches associated with the exploit kits that are known to distribute this ransomware (for example: Neutrino).
  • Enable file history or system protection. On Windows 10 and Windows 8.1, set up a drive for file history
  • Use OneDrive for Business
  • Beware of phishing emails, spams, and clicking malicious attachment
  • Use Microsoft Edge to get SmartScreen protection. It can help warn you about sites that are known to be hosting exploits, and help protect you from socially-engineered attacks such as phishing and malware downloads.
  • Disable the loading of macros in your Office programs
  • Disable your Remote Desktop feature whenever possible
  • Use two factor authentication
  • Use a safe Internet connection
  • Avoid browsing web sites that are known for being malware breeding grounds (such as illegal music, movies and TV, and software download sites)

Detection

Recovery

In the Office 365 blog “How to deal with ransomware“, there are several options on how you might be able to remediate or recover from a ransomware attack, including backup and recovery using File History in Windows 10 and System Restore in Windows 7.

You can also use OneDrive and SharePoint to backup and restore your files:

 

Carmen Liang and Patrick Estavillo MMPC

 

Determining the Dominant User and Setting the ManagedBy Computer Attribute

$
0
0

Hi again, this is Stephen Mathews and I’m here to talk about how to determine the dominant or primary user of a Windows operating system. This insight can help administrators facilitate direct communication with the affected user when a system needs management, and can even help non-enterprise users, such as a parent questioning which child is using their computer the most.

We’ll consider the different types of login data available, show how to expose it in the various OS instruments, and then use that information to update the system’s Active Directory computer object ‘ManagedBy’ attribute.

This post uses PowerShell Version 5 on Windows 10 to illustrate examples and it references settings that may not exist in legacy OS versions. All code examples are for illustration purposes only and should be thoroughly tested in a non-production environment. This post is intended to be used within a client OS using its built-in capabilities. Additionally, it is written from an Asset Tracking perspective and is not directly addressing Security and/or User Auditing concerns.

What type of information are you after?

Are you looking for the currently logged in user on the console, remotely logged in users, the last logged in user, the dominant user, or a list of all users?

How will the information be used: for real-time troubleshooting, historical reference, or external app consumption?

Will you script a solution, if so where will you output the data? Will the script be run manually or automatically, if automatically will you use a startup or login script, or a scheduled task?

File System

The filesystem can be the quickest and most efficient way to determine the regular users of a system. By expanding the ‘UserProfile’ environmental variable’s parent directory, you can see users that have had a profile created on that machine. You can check these profile directories and see the Created, Accessed, Modified, and Written timestamps for all of the systems’ users.

Unfortunately, this can also be the most misleading. The user profile directories are mapped via a Security Identifier (SID) that is stored in the registry. If a user account’s logon name is changed, they will still map to the original folder name. Also, if a user’s profile is corrupted they may not get a local directory and be redirected to the default profile. Additionally, the timestamps may not be updating depending on your OS version and/or auditing settings for those folders. And finally, you may not have rights to see the folders or their attributes.

  • Useful for: All Users, Last Logged On (Last access time), Dominant User (Timespan between created and last access time)
  • Get-ChildItem -Path (Get-Item -Path $env:USERPROFILE).PSParentPath | Select-Object -Property Name,*time*

Registry

The registry contains all the configurations and settings for the OS. There are multiple locations in the registry to find specific information about the users. User accounts are usually stored as SIDs inside the registry and will need to be converted into account names.

  • You can resolve a SID directly inside PowerShell which you’ll see later. You can see additional examples of this in Working with SIDs. This code will be worked into a customized Select-Object property hash-table; you can read about that in Using Calculated Properties.
  • (New-Object -TypeName System.Security.Principal.SecurityIdentifier(“S-1-5-18”)).Translate([System.Security.Principal.NTAccount])

  • $Object | Select-Object -Property SID,@{Name=”Account”;Expression={((New-Object -TypeName System.Security.Principal.SecurityIdentifier($_.SID)).Translate([System.Security.Principal.NTAccount])).Value}}

The registry is a sensitive part of the OS and can be corrupted. This risk of corruption leads many organizations to strictly limit and audit registry access. Certain registry settings may change only during startup and/or login, meaning the data may be stale while it’s being queried.

  • Useful for: All Users
  • Get-ChildItem -Path “HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\” -Recurse

  • Useful for: Currently logged on users:
  • reg query HKU

  • Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\hivelist

WMI

Windows Management Instrumentation is an infrastructure that exposes the OS to management. You can find current configuration settings, then get and set those properties.

WMI queries can be difficult to construct and may be resource intensive to the point of resource exhaustion. Take precautions to test the retrieving and setting of WMI components in a test environment before using inside production. Access to WMI may be restricted and audited for the same reasons as the registry.

  • Useful for: All Users, Last Logged On (Last use time), Currently Logged On (Loaded)
  • Get-WmiObject -Class Win32_UserProfile | Select-Object -Property SID,LocalPath,Loaded,LastUseTime,@{Name=”Account”;Expression={((New-Object -TypeName System.Security.Principal.SecurityIdentifier($_.Name)).Translate([System.Security.Principal.NTAccount])).Value}}

  • Useful for: Currently Logged On (Console)
  • Get-WmiObject -Class Win32_ComputerSystem | Select-Object -Property *ername*

ADSystemInfo

This is an overlooked tool to identify current system Active Directory network settings. The ‘UserName’ property will report the currently logged in user. It requires network connectivity to return settings and there’s no inherent way to run it remotely.

  • Useful for: Currently Logged On (Console)
  • $ADSystemProps = @(“ComputerName”,”DomainDNSName”,”DomainShortName”,”ForestDNSName”,”IsNativeMode”,”PDCRoleOwner”,”SchemaRoleOwner”,”SiteName”,”UserName”)

    $ADSystemInfo = New-Object -ComObject “ADSystemInfo”

    foreach ($ADSystemProp in $ADSystemProps) {

    $Value = $ADSystemInfo.GetType().InvokeMember($ADSystemProp, “GetProperty”, $Null, $ADSystemInfo, $Null)

    $ADSystemInfo | Add-Member -MemberType NoteProperty -Name $ADSystemProp -Value $Value -Force

    }

    $ADSystemInfo

Event Logs

Event logs are the record keepers of all activities on the system. As such they are the definitive source for tracking the login process. Logging can be turned on or off per provider and the logging level can be tailored based upon the event type: Critical, Error, Warning, Information, and Verbose. The ‘UserID’ property is typically set to the SID of the account creating the event, this is automatically translated for you in the Event Viewer. If the individual Event Log does not populate the ‘UserID’ property, you can parse the event message text with a SID to find events.

  • Get-WinEvent -LogName “Microsoft-Windows-GroupPolicy/Operational” | Select-Object -First 1 -Property *


  • Get-WinEvent -LogName Security | Select-Object -First 1 -Property *

The event log filter can be difficult to configure and a poorly created filter may be resource intensive to the point of resource exhaustion. Access to certain logs may be restricted and not all event logs record the same information in their properties. Furthermore, the logs may be collected into a central repository, making them unavailable or lacking significant detail to make an accurate determination.

In the first example it uses the Group Policy Operational log and groups the events by ‘UserID’, the second example events do not populate the ‘UserID’ property and need the message data to be parsed for matching SIDs; the list of SIDs were defined from the Win32_UserProfiles class.

  • Useful for: All Users, Dominant User (Count)
  • Get-WinEvent -LogName “Microsoft-Windows-GroupPolicy/Operational” | Group-Object -Property UserID | Sort-Object -Property Count -Descending | Select-Object -Property Count,Name,@{Name=”Account”;Expression={((New-Object -TypeName System.Security.Principal.SecurityIdentifier($_.Name)).Translate([System.Security.Principal.NTAccount])).Value}}

  • $SecurityEvents = Get-WinEvent -FilterHashTable @{LogName=”Security”;ID=4624}

    $WMIUserProfiles = Get-WmiObject -Class Win32_UserProfile

    foreach ($WMIUser in $WMIUserProfiles) {

    $WMIUser | Add-Member -MemberType NoteProperty -Name Account -Value ((New-Object -TypeName System.Security.Principal.SecurityIdentifier($WMIUser.SID)).Translate([System.Security.Principal.NTAccount])).Value

    $WMIUser | Add-Member -MemberType NoteProperty -Name Events -Value ($SecurityEvents | Where-Object {($_.Properties).Value -contains $WMIUser.SID}).Count

    $WMIUser | Select-Object -Property Events,Account,SID

    }

System Center Configuration Manager

For those of you with SCCM, it does the hard work for you in its Asset Intelligence feature set. Click to read more about the SMS_SystemConsoleUser Client WMI Class that calculates the dominant user for you. Here are a couple of screen shots.


Using the information

In this example, we want to update the Active Directory computer object ‘ManagedBy’ attribute with the dominant user. In order for this to happen we have to edit the default permissions to that attribute in the Organizational Unit where the computer object resides. Step two utilizes a script to perform the update, there are easier ways to do this, however we want to utilize a process that is as intrinsic as possible to the OS.

  • On the OU where the computer objects are, add permissions for SELF for Descendent Computer objects and select “Write ManagedBy”.
  • #Create the script below and feed it the ‘UserName’ determined from the above solutions
    $DomUser = “UserName”

    #Set Filter strings for locating objects in AD
    $strComputerFilter = “(&(objectCategory=Computer)(name=” + $env:COMPUTERNAME + “))” #get current computer name from environment variable
    $strFilter = “(&(objectCategory=User)(samaccountName=$DomUser))” #username set to $DomUser defined above

    $objDomain = New-Object System.DirectoryServices.DirectoryEntry
    $objSearcher = New-Object System.DirectoryServices.DirectorySearcher
    $objSearcher.SearchRoot = $objDomain
    $objSearcher.PageSize = 1000
    $objSearcher.Filter = $strFilter
    $objSearcher.SearchScope = “Subtree”

    #find LDAP path for User
    $ADUser = $objSearcher.FindAll()

    #create PowerShell ADSI object for User
    $ADSIUser=[ADSI]$ADUser.path

    #find LDAP path for Computer
    $objSearcher.Filter = $strComputerFilter
    $computer = $objSearcher.FindAll()

    #create PowerShell ADSI object for Computer
    $ADComputer=[ADSI]$computer.path

    #set attributes on computer AD object
    $ADComputer.managedby = $ADSIUser.distinguishedname
    #$ADComputer.employeeid = $ADSIUser.employeeID
    $ADComputer.setinfo()

  • Then configure the scheduled task to run as System with Highest Priority.



In closing, I hope this explains the different types of login information that can be collected, exposes those information locations for you to use, and inspires you to keep track of your assets. A special thanks to Mike Kanofsky who created the script and found the permissions required to update the ‘ManagedBy’ computer object attribute and to Kevin Kasalonis for his SCCM expertise. Thanks for reading!

References:

SMS_SystemConsoleUser Client WMI Class

https://msdn.microsoft.com/en-us/library/cc143513.aspx

Troldesh ransomware influenced by (the) Da Vinci code

$
0
0

We at the MMPC are constantly tracking new and emerging ransomware threats so we can be one step ahead of active campaigns and help protect our users. As part of these efforts, we recently came across a new variant of the Win32/Troldesh ransomware family.

Ransomware, like most malware, is constantly trying to change itself in an attempt to evade detection. In this case, we’ve seen the following updates to Troldesh:

  • Tor functionality
  • Glyph/symbol errors on the wallpaper ransom note
  • Modified extension names for encrypted files
  • New malware being delivered (Trojan:Win32/Mexar.A)
  • Updates the ransom note to cover the Tor functionality

The biggest change in this update is the addition of Tor links. Using Tor addresses as the ransom payment method (as opposed to standard www addresses) is the current fashion among ransomware.

The ransom note now includes links to the Tor address (previously, the only method provided for obtaining decryption was an email address):

The ransom note now includes onion.to addresses for payment

However, upon investigation it appears that Tor has blocked the address:

Screenshot showing that the Troldesh payment site has been blocked by Tor

Errors have been introduced into the image that replaces the user’s desktop wallpaper (this occurred to several samples, but not all):

Errors and unknown symbols have been seen in some versions of the wallpaper - the symbols look like blank boxes and random characters

After encryption, Troldesh changes the file’s extension. In the latest update, we’ve seen it use the following strings:

  • .da_vinci_code
  • .magic_software_syndicate

For example, an encrypted file might appear as follows:

A file name that is a series of random characters and ends in .da_vinci_code

The list of file types that Troldesh encrypts has also increased – see the Win32/Troldesh description for a full list.

Prevention

To help stay protected:

  • Keep your Windows Operating System and antivirus up-to-date and, if you haven’t already, upgrade to Windows 10.
  • Regularly back-up your files in an external hard-drive
  • Enable file history or system protection. On Windows 10 and Windows 8.1, set up a drive for file history
  • Use OneDrive for Business
  • Beware of phishing emails, spams, and clicking malicious attachment
  • Use Microsoft Edge to get SmartScreen protection. It can help warn you about sites that are known to be hosting exploits, and help protect you from socially-engineered attacks such as phishing and malware downloads.
  • Disable the loading of macros in your Office programs
  • Disable your Remote Desktop feature whenever possible
  • Use two factor authentication
  • Use a safe Internet connection
  • Avoid browsing web sites that are known for being malware breeding grounds (such as illegal music, movies and TV, and software download sites)

Detection

Recovery

In the Office 365 “How to deal with ransomware” blog, there are several options on how you might be able to remediate or recover from a ransomware attack, including backup and recovery using File History in Windows 10 and System Restore in Windows 7.

You can also use OneDrive and SharePoint to backup and restore your files:

  

Patrick Estavillo
MMPC

Reverse engineering DUBNIUM –Stage 2 payload analysis

$
0
0

Recently, we blogged about the basic functionality and features of the DUBNIUM advanced persistent threat (APT) activity group Stage 1 binary and Adobe Flash exploit used during the December 2015 incident (Part 1, Part 2).

In this blog, we will go through the overall infection chain structure and the Stage 2 executable details. Stage 2 executables are the core of this activity groups’ operation, as it is the final payload delivered to possible targets that matches its profile.

Infection chain overview

The picture below shows the overall infection chain we analyzed.

Flow chart describing how Dubnium is installed

Figure 1: Infection chain overview

 

In most cases, the daily operation of the DUBNIUM APT depends on social engineering through spear-phishing. They are observed to mainly rely on an .LNK file that has an icon that looks like a Microsoft Word file. If the victim clicks the file thinking it’s a Microsoft Office Word file, it downloads a simple dropper that will download and execute next stage binary – which in this case, has the file name of kernelol21.exe.

The Stage 1 binary extensively checks-up on the system for the existence of security products or usual analysis tools for the reverse engineers or security analysts. It will pass the client’s IP address, hostname, MAC address, software profile information, and locale information to the download server. When the server thinks that the client matches profile for possible prospect, the next stage dropper will be downloaded.

 

Stage 0: Social Engineering vs. Exploits

In our previous blogs we described the Adobe Flash Exploit the malware recently used. In this blog we want to provide a brief overview of the social engineering method DUBNIUM uses for its daily infection operations. The activity group uses the .LNK file with an icon image of a Word document as one of its social engineering methods.

Shortcut icon disguised as Word document

Figure 2: Shortcut icon disguised as Word document

 

The shortcut contains commands to download and execute the next level executable or script. Unsuspecting victims will double click this icon and will be unknowingly launching a PowerShell command.

The commands in the shortcut

Figure 3: The commands in the shortcut

 

For example, the following shows the script that downloads a binary and executes it on the target system using PowerShell.

PowerShell script for downloading and execution of next stage binary

Figure 4: PowerShell script for downloading and execution of next stage binary

 

To make the attack more benign, the dropper drops an Office Word document and displays it on the screen. One of the samples we saw had content similar to the following screenshot:

Fake document contents - North Korean style language and mentions on North Korean leaders with New year’s celebration

Figure 5: Fake document contents – North Korean style language and mentions on North Korean leaders with New year’s celebration

 

Stage 2 infection process

Acquiring a Stage 2 binary is very difficult for the analysts because the download server is very selective upon the infection targets. The main direction of the infection strategy is not to infect as many as it can, instead it focuses on infecting targets that matches the desired profile, and avoids detection from security products. One very interesting fact is that the command and control (C2) server we have been observing didn’t go down for months. Overall security product coverage on Stage 2 executables is very poor, and so the strategy with this activity group (with a very selective Stage 2 infection) appears to have been effective.

The following diagram shows the transition from Stage 1 to Stage 2 through the downloaded binary.

Stage 1 to 2 transition

Figure 6: Stage 1 to 2 transition

 

The dropped binary (Dropper PE module) is never written to disk and directly injected to a new process created. In this case plasrv.exe is used, but the process name can actually vary each time. The dropper PE module will drop kbkernelolUpd.dll and kernelol21.exe (which happens to have the same name as the Stage 1 binary – but different contents). The dropper PE module will look for usual system processes, for example dwm.exe in this case, and will inject kbkernelolUpd.dll.

This is the main C2 client that will communicate with the C2 server and process downloaded commands. It performs the extra work of creating a process of usual Windows binary under systems folder and injecting the kernelol21.exe binary into it. This is a process persistency module, which will re-inject kbkernelolUpd.dll if the process is killed for some reason. The kbkernelolUpd.dll module also constantly monitors the existence of the kernelol21.exe injected process and will re-launch and re-inject the module if the infected host process is killed. This makes a process persistency loop.

The following screenshot shows the typical process tree when the Stage 2 infection happens. The dwm.exe and cipher.exe processes are infected with kbkernelolUpd.dll and kernelol21.exe.

Typical process list with Stage 2 infection

Figure 7 Typical process list with Stage 2 infection

 

The persistency of whole infection is carried by the Windows logon key shown in the following picture.

kernelol21.exe load key

Figure 8 kernelol21.exe load key

 

The following table shows the infection targets used for each stage. All infection target process files are default Windows executables under the system32 folder.

ComponentsInjection targetsDescription
Stage 1 dropper PE module
  • plasrv.exe
  • wksprt.exe
  • raserver.exe
  • mshta.exe
  • taskhost.exe
  • dwm.exe
  • sdiagnhost.exe
  • winrshost.exe
  • wsmprovhost.exe
Creates new process
Stage 2 kbkernelolUpd.dll
  • dwm.exe
  • wuauclt.exe
  • ctfmon.exe
  • wscntfy.exe
Injects into existing process

If the process is killed, svchost.exe will be created by stage kernelol21.exe.

Stage 2 kernelol21.exe
  • cipher.exe
  • gpupdate.exe
  • services.exe
  • sppsvc.exe
  • winrshost.exe
Creates new process

Table 1: DUBNIUM infection targets

 

Process image replacement technique

When the main C2 client module, kbkernelolUpd.dll, is injected, it uses LoadLibrary call that is initiated through CreateRemoteThread API. This is a very typical technique used by many malware.

Injected LoadLibrary code

Figure 9: Injected LoadLibrary code

 

But, for dropper PE module in Stage 1 and kernelol21.exe injection in Stage 2, it uses a process image replacement technique. It creates the usual Windows process, injects the PE module to this process, fabricates PEB information and modifies startup code to achieve process injection.

 

Writing PE Image

The technique starts with creating a process from the executable under Windows system folder. Table 1 shows each target processes the injection will be made into, depending on the stage and the binary. The process is created as suspended and modifications will be performed on the image. The first step is injecting the infection PE image upon the process. It uses WriteProcessMemory APIs.

Figure 10 shows the code that injects the PE header, and Figure 11 shows the memory of the target process where the PE header is injected.

Injecting PE header

Figure 10: Injecting PE header

 

PE header written on target process

Figure 11 PE header written on target process

 

After the injection of PE header, it will go through each section of the source PE image and inject them one by one to the target process memory space.

PE section injection

Figure 12: PE section injection

 

The injected PE module has dependencies on the hardcoded base and section addresses. If VirtualAlloc function upon the desired base or section addresses fails, the whole injection process will fail.

 

Acquiring context and PEB information

The next step of infection is using GetThreadContext API to retrieve current context of the target process.

GetThreadContext

Figure 13: GetThreadContext

 

One of the thread contexts retrieved is shown in the following image.

Retrieved Context

Figure 14: Retrieved Context

 

When the process is started as suspended, the ebx register is initialized with the pointer to PEB structure. The following shows the original PEB data from the target process. The ImageBaseAddress member is at offset of +8 and the value is 0x00e0000 in this case. This is the image base of the main module of the target process.

Original PEB structure

Figure 15: Original PEB structure

 

After retrieving the PEB.ImageBaseAddress from the target process (Figure 16), it will replace it with the base address of the injected module (Figure 17).

Reading PEB.ImageBaseAddress

Figure 16: Reading PEB.ImageBaseAddress

Overwriting PEB.ImageBaseAddress

Figure 17: Overwriting PEB.ImageBaseAddress

 

The PEB.ImageBaseAddress of the target process is replaced, as in the following figure, to point to the base address of the injected PE module.

Overwritten PEB.ImageBaseAddress

Figure 18: Overwritten PEB.ImageBaseAddress

 

Overwriting wmainCRTStartup

 

After overwriting PEB.ImageBaseAddress to an injected module’s base address, the next step is patching wmainCRTStartup code from the original main module.

wmainCRTStartup patch code

Figure 19: wmainCRTStartup patch code

 

The following code shows original disassembly from wmainCRTStartup code.

Original code

Figure 20: Original code

 

After patch, it will just jump to the entry code of the injected module located at address of 0x4053d0, which is the entry point of the injected module. When ResumeThread is called upon this thread, it will start the main module from the injected module’s entry code.

Patched code

Figure 21: Patched code

 

Main C2 Client (kbkernelolUpd.dll)

As kbkernelolUpd.dll is the main module of the infection chain, we are going to focus on the analysis of this binary. As we stated before, the detection coverage and information on this specific component is limited in the security industry.

 

The string for the C2 server hostname and URI is encoded in a configuration block inside the binary.

C2 server string decoding

Figure 22: C2 server string decoding

 

From the following disassembly list, get_command uses wininet.dll APIs to send basic client information and to retrieve commands from the server. The process_command is the routine that will parse message and execute designated commands.

C2 command fetch & execution loop

Figure 23: C2 command fetch & execution loop

 

Between each contact to the C2 server, there is a timeout. The timeout value is saved inside the encoded configuration block in the binary. For example, the sample we worked on had a 30-minute time out between each contact request to the server.

Sleep interval between C2 accesses

Figure 24: Sleep interval between C2 accesses

 

Cryptographic C2 channel and message format

The following diagram shows the basic message format of the C2 server payload that is downloaded when the client contacts the server.

Decrypting C2 message

Figure 25: Decrypting C2 message

 

The message from the C2 server can be encoded in various ways. The first byte in the payload is the XOR key that is used to decode following bytes. The encryption type byte indicates what encryption algorithm is used in the code. It has three different encryption schemes (0x50, 0x58, 0x70) supported.

From our static analysis, 0x58 is for AES 256 encryption algorithm, 0x70 and 0x50 are for 3DES 168 algorithm. If this type is 0x40, no encryption will be used and it looks like 0x50 and 0x58 encryption type is not fully implemented yet. So 0x70 encryption type with 3DES 168 algorithm is the only encryption type that is fully working here.

The decryption scheme is using an embedded RSA private key with the decryption key embedded in the binary. By calling CryptHashData upon the embedded password string and using CryptDeriveKey, it will acquire a key to decrypt the encrypted RSA private key. (Figure 26)

Setting encryption key

Figure 26: Setting encryption key

 

This decryption key is used to import 0x258 bytes of private key embedded inside the binary. And this private key is used to decrypt the encrypted key (Key data 02 from Figure 25) passed through the response packet from the C2 server. Next, the IV (Initialization Vector) passed through the response packet is set as a parameter to the key object.

Importing keys and IV

Figure 27: Importing keys and IV

 

Finally, the actual decryption of the payload happens through CryptDecrypt API call. The question still remains why the C2 server and the client are using such an overcomplicated encryption scheme.

Decrypting message

Figure 28: Decrypting message

 

Command processor

The C2 command processor looks very typical. It has a simple packet parser for TLV (type, length, value) data structure. The following picture shows the main routine that processes packet length and types. It will call relevant functions for each packet type.

Main command processor function

Figure 29: Main command processor function

 

Each command provides usual functionalities that are typically seen in backdoors. They include registry, file system manipulations, and searching files with specific patterns, and retrieving and transferring them back to the server and gathering network status information.

Infections statistics

The following chart shows the relative prevalence of the threat overall. We included Stage 1 and Stage 2 payload detections in this map.

Bar chart showing countries with most infections in China and Japan

Figure 30: Infection distribution by countries

 

Most of the infections we saw focused on East Asia—mostly China and Japan. We already described that the Stage 1 dropper collects and sends IP and language locale of the machines it infected to the Stage 2 dropper distribution site. We think this distribution site has a logic to determine whether to drop next payload or not.

The Stage 1 dropper is also known to collect information on culture-specific software like messengers and security software mainly used in mainland China. If the distribution site doesn’t push back Stage 2 payload, Stage 1 payload doesn’t have any means of persistency at all. This means that with all the cost of infiltrating into the machine, the malware simply gives up the machine if the machine doesn’t fit into its profile. Based upon the actual infection map and the behavior of this Stage 1 dropper, it might be a good indication that the activity group has a good geolocation preference with their targets.

 

Conclusion

DUBNIUM is a very cautious actor. From the vendor detections for Stage 2 binaries, we can see that there are no serious detections upon them in the industry. This is partially due to the strategy that DUBNIUM employs. It doesn’t try to infect as many machines as possible, instead it will potentially expose important components, like C2 client modules, to unintended targets. The very long lifespan of the domain it controls and uses for C2 operation supports the story.

Other features with DUBNIUM is that it uses encoding and encryption schemes over the executables and network protocols. Each stage has different styles of encoding and decoding schemes. Some are complicated and some are relatively simple. Stage 1 binaries have a stronger obfuscation and payload encoding scheme than Stage 2 binaries. The C2 server payload has its own format with encrypted message support.

The other feature with DUBNIUM is that over each stages, it always checks the running environment. It focuses on security products and analyst tools on Stage 1, but it is very cautious on debugging tools on Stage 2 binaries. From Stage 1, it also collects extensive information on the client system including locale, IP and MAC address and they are sent to the Stage 2 distribution site. The distribution site also serves each client once based upon this information. Getting served on the next stage binary is sometimes very challenging as we don’t know the backend algorithm behind to determine whether to serve the next stage binary or not.

 

Appendix – Indicators of Compromise

 

Stage 0

Adobe Flash Player Exploit

3eda34ed9b5781682bcf7d4ce644a5ee59818e15 SWF File

 

LNK

25897d6f5c15738203f96ae367d5bf0cefa16f53

624ac24611ef4f6436fcc4db37a4ceadd421d911

 

Droppers

09b022ef88b825041b67da9c9a2588e962817f6d

35847c56e3068a98cff85088005ba1a611b6261f

7f9ecfc95462b5e01e233b64dcedbcf944e97fca

aee8d6f39e4286506cee0c849ede01d6f42110cc

b42ca359fe942456de14283fd2e199113c8789e6

cad21e4ae48f2f1ba91faa9f875816f83737bcaf

ebccb1e12c88d838db15957366cee93c079b5a8e

4627cff4cd90dc47df5c4d53480101bdc1d46720

 

Fake documents displayed from droppers

24eedf7db025173ef8edc62d50ef940914d5eb8a

7dd3e0733125a124b61f492e950b28d0e34723d2

24eedf7db025173ef8edc62d50ef940914d5eb8a

afca20afba5b3cb2798be02324edacb126d15442

 

Stage 1

Droppers

0ac65c60ad6f23b2b2f208e5ab8be0372371e4b3

1949a9753df57eec586aeb6b4763f92c0ca6a895

4627cff4cd90dc47df5c4d53480101bdc1d46720

561db51eba971ab4afe0a811361e7a678b8f8129

6e74da35695e7838456f3f719d6eb283d4198735

8ff7f64356f7577623bf424f601c7fa0f720e5fb

b8064052f7fed9120dda67ad71dbaf2ac7778f08

dc3ab3f6af87405d889b6af2557c835d7b7ed588

 

Stage 2

Dropper

2d14f5057a251272a7586afafe2e1e761ed8e6c0

3d3b60549191c4205c35d3a9656377b82378a047

 

kernelol21.exe

6ce89ae2f1272e62868440cde00280f055a3a638

 

kbkernelolUpd.dll

b8ea4b531e120730c26f4720f12ea7e062781012

0ea2ba966953e94034a9d4609da29fcf11adf2d5

926ca36a62d0b520c54b6c3ea7b97eb1c2d203a9

db56f474673233f9b62bef5dbce1be1c74f78625

 

UserData

147cb0d32f406687b0a9d6b1829fb45414ce0cba

 

Acknowledgement: Special thanks to Mathieu Letourneau at MMPC for providing statistical coverage data on the DUBNIUM multi-stage samples and providing insight on the interpretation of the data. Special thanks to HeungSoo David Kang for providing screenshots from the fake Office Word document file.

 

Jeong Wook Oh
MMPC

 


Troubleshooting Device Enrollment with the Hybrid Diagnostic tool

$
0
0

Author: Raghu Kethineni, Senior Program Manager, Enterprise Client and Mobility

We are excited to announce the release of the System Center Configuration Manager Hybrid Diagnostic tool. If a technical issue is preventing one of your users from enrolling a device, run the Hybrid Diagnostic tool as your first step in troubleshooting. The Hybrid Diagnostic tool’s automated checks reduce investigation time and the provided guidance on the common configuration errors will help you to quickly resolve issues and get your user’s mobile device successfully enrolled.

Troubleshooting with the Hybrid Diagnostic tool takes just 3 simple steps.

  1. Run the tool on the computer that hosts the service connection point and specify the device type and UPN.
  2. The Hybrid Diagnostic Tool will run the following automated checks:
    • Checks that the SMS Executive service is running
    • Checks for the service connection point certificate
    • Checks for potential conflicts between service connection point certificates
    • Checks for DNS CName entry for the specified UPN
    • Checks for device type enablement in Configuration Manager
    • Checks for known errors in Status Messages
    • Checks for UPN synchronization in AAD
    • Checks that the specified user is a member of the cloud user collection
    • Checks that the AAD ID and cloud user ID match
    • Checks for user exceeding device cap
    • Check for multiple valid certificates present on service connection point
  3. If a check fails, choose the More Info link to see more information about resolving the issue.
    Hybrid Diagnostics mobile device troubleshooting summary

It’s that easy.

Try: System Center Configuration Manager Hybrid Diagnostic tool

Learn More:

We are always interested in hearing your feedback. Please provide feedback and suggestions using the Configuration Manager UserVoice site.

-Raghu Kethineni


Additional resources:

Endpoint Protection Updates Configuration Manager

$
0
0

Hi everyone, my name is Nicholas Jones, Premier Field Engineer with Microsoft, specializing in System Center Configuration Manager. For my first blog, I want to introduce you to updating System Center Endpoint Protection (SCEP) definition updates. Huge thanks to my colleague Jeramy Skidmore, Sr. Escalation Engineer, for helping me with this blog.

If your company has deployed or is planning to deploy SCEP, you will certainly have to plan to deploy definition updates.

In my observations, the most common solution that administrators use is to create an ADR (see below) and let it run on a schedule:

This will certainly get the updates deployed, but there is more to consider.

Make Updates Available Outside of Configuration Manager

What happens if the CM Software Update Agent fails to install definitions? What happens if the end user forces an update by pressing the update button in the SCEP user interface? In these situations, we’ll need to better understand the setting for definition update sources in the Antimalware Policy. If you’re not familiar with this, navigate to Assets and Compliance, Endpoint Protection, Antimalware Policies. You could have quite a few Antimalware policies, but I’ll be working with the default policy in my screenshots today.

At this point, those who are familiar with these settings may be ready to skip ahead. Please hang with me.

What do these settings actually do?

You’ve got a few options here, so let’s discuss what they actually do.

When the SCEP client definitions become too far out of date, or if the end user clicks Update in the UI, the SCEP client looks for a FallBackOrder registry key in HKLM\Software\Policies\Microsoft\Microsoft Antimalware\Signature Updates . The SCEP client will check each update source in order until it locates a source that has available definitions. If none of the sources have definitions available, the SCEP client will return an error.

Updates distributed from Configuration Manager

Selecting this option sets a registry value called AuGracePeriod in HKLM\Software\Policies\Microsoft\Microsoft Antimalware\Signature Updates . By default, this is set to 4,320 minutes, or 72 hours. You can modify this value in your Antimalware Policy. This value represents (in minutes) the amount of time the SCEP client will ‘sleep’ and wait for CM to bestow signatures upon it. When this period expires, it will attempt to pull definitions from the order defined by policy and stored in the Fallback registry key. Believe it or not, SCEP cannot use CM as an update source location for definitions, which is why this setting does not modify the FallBackOrder registry key.

Updates from UNC file shares

If we select this option, we must also define the UNC paths in the definition updates section of the antimalware policy. This can be seen a few screenshots above. This option modifies both the FallbackOrder key and the DefinitionUpdateFileShareSources key. Multiple UNC paths can be specified, as seen below. This can leverage existing DFS infrastructure if it exists. A few drawbacks of this option are that the UNC file share is not populated automatically and it does not take advantage of binary delta differentials. Also, if out of date definitions are left on the UNC share, it can cause the clients to fail checking any further sources in the fallback list.

Updates distributed from Microsoft Update

This one sounds fairly obvious. It is useful for clients that are off of your network for a while, unless you are set up to manage internet based clients or are using DirectAccess. Of the two Microsoft hosted fallback locations, this is ideal as it results in the smallest payload delivered to the client.

Updates distributed from Microsoft Malware Protection Center

MMPC should always be last in your source list, as the payload from this location will be much larger.


Updates distributed from WSUS

Configuration Manager admins generally stay out of the WSUS console, except to periodically perform a WSUS cleanup or other maintenance. While it’s true that WSUS is mostly controlled by Configuration Manager, it will still function happily as a standalone WSUS instance for the purposes of making SCEP definition updates available. If you have WSUS listed as an update source, you should plan to create an Automatic Approval rule for SCEP definitions. It will look something like this:

I do hope this post helps you better understand the flow of SCEP definition updates. Please post any comments or questions and I’ll respond when I can.

Announcing: New Transport Advancements in the Anniversary Update for Windows 10 and Windows Server 2016

$
0
0

TCP based communication is used ubiquitously in devices from IoT to cloud servers. Performance improvements in TCP benefit almost every networking workload. The Data Transports and Security (DTS) team in Windows and Devices Group is committed to making Windows TCP best in class. This document will describe the first wave of features in the pipeline of upcoming Windows Redstone releases.

Windows is introducing new TCP features in the Anniversary Update for Windows 10 and Windows Server 2016 releasing summer 2016. In this document we will describe five key features designed to reduce latency, improve loss resiliency and to promote better network citizenship. The goals when starting out were to decrease TCP connection setup time, increase TCP startup speed and to decrease time to recover from packet loss.

Here is a summary of the feature list:

  1. TCP Fast Open (TFO) for zero RTT TCP connection setup. IETF RFC 7413 [1]
  2. Initial Congestion Window 10 (ICW10) by default for faster TCP slow start [5]
  3. TCP Recent ACKnowledgment (RACK) for better loss recovery (experimental IETF draft) [4]
  4. Tail Loss Probe (TLP) for better Retransmit TimeOut response (experimental IETF draft) [3]
  5. TCP LEDBAT for background connections IETF RFC 6817 [2]

 

TCP Fast Open: TCP Fast Open (TFO) accomplishes zero RTT connection setup time by generating a TFO cookie during the first three-way handshake (3WH) connection setup. Subsequent connections to the same server can use the TFO cookie to connect in zero-RTT. TFO connection setup really just means that TCP can carry data in the SYN and SYN-ACK. This data can be consumed by the receiving host during the initial connection handshake. TFO is one full Round Trip Time (RTT) faster than the standard TCP setup which requires a three way-handshake. This leads to latency savings and is very relevant to short web transfers over the Internet where the average latency is on the order of 40 msec.

Transport Layer Security (TLS) over TCP using Fast Open is typically two Round Trip Times faster than a standard TLS over TCP connection setup because a client_hello can be included in the SYN packet saving an additional RTT in the TLS handshake. This savings can add up to a substantial increase in resource efficiency while using busy servers that deliver many small Internet objects to the same clients (standard web page, mobile APP data, etc.) TLS 1.3 is an ongoing effort at the IETF and it will help us achieve zero-RTT connection setup for HTTP workloads in a subsequent release.

Because we are changing the 3WH behavior of TCP there are several issues that we must address and mitigate. Windows recommends that TLS be used over TCP when employing TCP Fast Open to remove the chance that a man in the middle could manipulate TFO cookies for use in amplified DDOS attacks. TLS connections are immune to attacks from behind Shared Public IPs (NATs), however, it is still possible for a compromised host to flood spoofed SYN packets with valid cookies. To address the problem of compromised hosts Windows TFO sets a dynamically adjusted maximum limit on the number of pending TFO connection requests preventing resource exhaustion attacks from compromised hosts running malicious code. Finally, it is possible for the SYN packet to be duplicated in the network. TLS precludes such duplicate delivery but other services need to ensure that TFO is used for idempotent requests. Windows TFO is safe when used as recommended (with TLS) and can provide a substantial increase in resource efficiency.

The Anniversary Update for Windows 10 will ship with a fully compliant client side implementation enabled by default. The Microsoft Edge browser will ship with a About:Flags setting for TCP Fast Open which will be disabled by default. The eventual goal is to have it enabled by default in IE and Edge browsers in a subsequent release. In a subsequent release we plan to support early accept and to fully integrate the server side implementation with http.sys/IIS. The server side implementation will be disabled by default.

Configuration: In the Edge browser, navigate to “about:flags” or “about:config” and use checkbox for “Enable TCP Fast Open”, Netsh int tcp set global fastopen=

Action Items: If you operate infrastructure or own software components like middleboxes or packet processing engines that make use of a TCP state machine, please begin looking into supporting RFC 7413. By next year the combination of TLS 1.3 and TFO is expected to be more widespread.  Read more at: Building a faster and more secure web with TCP Fast Open, TLS False Start, and TLS 1.3

 

Initial Congestion Window (IW10): The Initial Congestion Window (IW or ICW) default value in Windows 10 and Server 2012 R2 is 4 MSS. With the new releases the default value will be 10 MSS. IW10 default improves slow start speed over the previous default value of IW4. This change in Windows TCP’s startup behavior designed to keep pace with the increased emission rates of network routing equipment used on the Internet today. The ICW determines the limit on how much data can be sent in the first RTT. Like Windows TFO, IW10 mostly affects small object transfers over the Internet. Windows IW10 can transfer small Internet objects up to twice as quickly as ICW4.

There are some concerns around burst losses with switches and routers that have shallow buffers. We have telemetered such episodes to help us improve the reliability in subsequent releases. In RS2, we plan to flight IW 4, IW 10 and IW 16 to have a better performance comparison across device types.

Configuration: This is currently configured through templates (netsh) or set-nettcpsetting (Powershell). On client SKU the only options to change the IW are to switch to the compat template (IW = 4) or to use the SIO_TCP_SET_ICW option, which also restricts the values in range (2, 4, 10). On server SKU IW can be configured up to a maximum of 64.

Action Items: Please notify us if you see increased loss rates or timeouts with RS1 clients and servers.

 

Tail Loss Probe (TLP): Tail Loss Probe is intended to improve Windows TCP’s behavior when recovering from packet loss. TLP improves TCP recovery behavior by converting Retransmit TimeOuts (RTOs) into Fast Retransmits for much faster recovery.

TLP transmits one packet in two round-trips when a connection has outstanding data and is not receiving any ACKs. The transmitted packet (the loss probe), can be either new or a retransmission. When there is tail loss, the ACK from a loss probe triggers SACK/FACK based fast recovery, thus avoiding a costly retransmission timeout (which is bad from the point of view of the long duration as well as the reduction of the congestion window and repeat of slow start).

TLP is enabled only for connections that have an RTT of at least 10 msec in both RS1 and Server 2016. This is to avoid spurious retransmissions for low latency connections. The most beneficial scenario for TLP is short web transfers over WAN.

Configuration: The TCP templates have the additional setting called “taillossprobe”. On client SKU switching to compat template turns TLP off. On both client and server SKUs, the Internet template has it enabled by default. The InternetCustom and DatacenterCustom templates can be used for more fine grained control for specific connections.

 

Recent ACKnowledgement (RACK): RACK uses the notion of time instead of counting duplicate ACKnowledgements to detect missing packets for TCP Fast Recovery. RACK provides improved loss detection over standard TCP Fast Recovery techniques.

RACK is based on the notion of time, instead of traditional approaches for packet loss detection such as packet or sequence number checks. Packets are deemed lost if a packet that was sent “sufficiently later” has been cumulatively or selectively acknowledged. The TCP sender records packet transmission times and infers losses using cumulative or selective acknowledgements.

RACK is enabled only for connections that have an RTT of at least 10 msec in both RS1 and Server 2016. This is to avoid spurious retransmissions for low latency connections. RACK is also only enabled for connections that successfully negotiate SACK.

Configuration: The TCP templates have the additional setting called “rack”. On client SKU switching to compat template turns RACK off. On both client and server SKUs, the Internet template has it enabled by default. The InternetCustom and DatacenterCustom templates can be used for more fine grained control for specific connections.

 

Windows Low Extra Delay BAckground Transport (LEDBAT): The fifth feature is in response to a large number of customer requests for a background transport that does not interfere with other TCP connections. In response to these requests we used Windows TCP modular congestion control structure and added a new Congestion Control Module called LEDBAT in order to manage background flows.

Windows LEDBAT is implemented as an experimental Windows TCP Congestion Control Module (CCM). Windows LEDBAT transfers data in the background and does not interfere with other TCP connections. LEDBAT does this by only consuming unused bandwidth. When LEDBAT detects increased latency that indicates other TCP connections are consuming bandwidth it reduces its own consumption to prevent interference. When the latency decreases again LEDBAT ramps up and consumes the unused bandwidth.

Configuration: LEDBAT is only exposed through an undocumented socket option at the moment. Please contact us if you would like to enable experimentation for a background workload.

Introducing #AzureAD Connect Health for Windows Server AD

$
0
0

Howdy folks,

We’ve just turned on the preview of Azure AD Connect Health for Windows Server AD. This new feature of Azure AD Premium gives IT admins the ability to monitor the health and performance of their on-premises Windows Server Domain Controllers from the cloud. This new capability has been a HUGE hit with our private preview customers and we’re hoping you’ll be excited as well.

I’ve asked Arturo Lucatero, one of the Program Managers on the Azure AD Connect Health R&D team, to write a quick blog post on this cool new feature. You’ll find his blog below.

Hopefully you will find this new capability useful! And as always, we would love to receive any feedback or suggestions you have.

Best Regards,

Alex Simons (Twitter: @Alex_A_Simons)

Director of Program Management

Microsoft Identity Division

——————————–

Hello World,

I’m Arturo Lucatero, a Program Manager on the Azure AD Connect Health team. Today, I’m pleased to announce the next addition to Azure AD Connect Health, which is monitoring for Active Directory Domain Services (AD DS.) While Azure AD Connect Health has the ability to monitor ADFS and Azure AD Connect (Sync), we knew that Active Directory Domain Services is a critical component and we wanted to make sure we gave you the same, easy, low-cost and insightful monitoring experience. Starting with the quick and simple onboarding process, Azure AD Connect Health for AD DS is here to improve your monitoring experience!

Active Directory Domain Services was first introduced back in 1999 and is now the cornerstone for identity needs of most business organizations. Enabling a monitoring solution for Active Directory Domain Services is critical to a company’s reliable access to applications. Introducing the ability to monitor your AD DS infrastructure from the cloud, opens many possibilities that weren’t previously available with traditional box monitoring solutions. Let’s take a look!

The preview release of Azure AD Connect Health for AD DS has the following capabilities:

  • Monitoring alerts to detect when domain controllers are unhealthy, along with email notifications for critical alerts.
  • Domain Controllers dashboard which provides a quick view into the health and operational status of your domain controllers.
  • Replication Status dashboard with latest replication information, along with links to troubleshooting guides when errors are detected.
  • Quick anywhere access to performance data graphs of popular performance counters, necessary for troubleshooting and monitoring purposes.
  • RBAC controls to delegate and restrict access to the users managing AD DS.

Installation is extremely simple. All you have to do is install the agent (links available in our documentation as well as in the Connect Health portal) on your domain controllers. This process takes less than 5 minutes! We also provide a scriptable deployment option to automate this in larger environments.

Alerts

The Azure AD Connect Health for AD DS alerts, are intended to inform you when something is wrong in your environment. Whether a domain controller is unable to replicate successfully, not able to find a PDC, is not properly advertising or amongst many other issues, you can count on these alerts to inform you. Additionally, if you enable email notifications, you will receive these alerts straight to your inbox.

We are constantly striving to enhance our alerts, and your feedback is very important to us. You can share your thoughts about a particular alert, by clicking on the feedback command within the alert blade.

Domain Controllers Dashboard

This dashboard provides a unified lens into the health and operational status of your AD DS environment. We interviewed a number of domain admins and one of the challenges for them was the ability to have a quick glance view of their environment to detect hotspots. By presenting a topological view along with health status and key operational metrics of monitored DCs, this dashboard makes it quick and easy to identify any DCs that might require further investigation.

Knowing whether your DCs are advertising, are able to reach a Global Catalog or when was the last time they were rebooted, are a few of the metrics that you can add to your dashboard, by selecting them from the columns blade. By default, DCs are grouped by their corresponding domain; however, a single click will group them by their corresponding site. This is super helpful when trying to understand the topological composition of your environment. Lastly, if you have a large environment, you can use the find box to quickly filter out DCs.

Replication Status Dashboard

Replication is one of the most critical processes that ensures that your environment is running smoothly. This dashboard provides a view of the Replication topology along with the latest replication attempt status, for your monitored DCs. If one or more of your DCs encountered an error during the latest replication, you will find helpful details and documentation links to assist with the remediation process.

To help drive error visibility to the admins, we auto expand any domain controllers with replication errors to ensure that you can quickly focus on those that might require your attention.

Monitoring

The monitoring feature provides the ability to compare the performance of your monitored DCs against each other, as well as comparing different metrics of interest. Knowing these data points can be a critical item, when troubleshooting AD DS. Whether you are interested in knowing how your DCs are handling Kerberos Authentications per sec or knowing the Replication queue size, you can easily find these data points. This allows you to access to the performance data of your environment, completely from the cloud from anywhere in the world.

As part of our first round, we have included 13 of the most popular performance metrics, such as LDAP bind time, LDAP searches per sec, NTLM authentications per sec, amongst others. You can use the “Filter” command to add them to your blade giving you a single location where you can compare different metrics on the same view. Clicking on a chart will allow you to drill into a specific performance metric with additional controls on time and tabular view of the data that shows peaks and averages.

We are constantly adding new items to the list. If there is a particular performance metric you would find helpful to be included, please let us know!

Video

The video below provides an overview of how to get starting using Azure AD Connect Health for AD DS, as well as a walkthrough of the features we’ve discussed.

https://channel9.msdn.com/Series/Azure-Active-Directory-Videos-Demos/Azure-AD-Connect-Health-monitors-on-premises-AD-Domain-Services

What’s coming next?

  • Additional alerts based on customer feedback and data from our support channel
  • Additional performance metrics that help with monitoring your AD DS environment

For additional information on how to get started monitoring your AD DS, see Azure AD Connect Health Documentation.

Your feedback is very important to us and I’d encourage you to post any comments, questions or concerns in our discussion forum or send us note at askaaadconnecthealth@microsoft.com. Additionally, feel free to comment at the bottom of this post.

Thanks for your time,

-Arturo (@ArlucaID) & The Azure AD Connect Health Team

KB: Data to gather when opening a case for Microsoft Azure Automation

$
0
0

A new Knowledge Base article has been published that describes some of the basic information you should gather before opening a case for Azure Automation with Microsoft product support. This information is not required, however it will help Microsoft resolve your problem as quickly as possible. You can find the complete article below.

3178510Data to gather when opening a case for Microsoft Azure Automation (https://support.microsoft.com/en-us/kb/3178510)


J.C. Hornbeck, Solution Asset PM
Microsoft Enterprise Cloud Group

Windows SBS 2011, Windows SBS 2008 and impact of MS16-072

$
0
0

[This post comes to us courtesy of Susan Bradley, Wayne Small and Schumann GE from Product Group]

On June 14, 2016 Microsoft released MS16-072  KB3159398 to fix a vulnerability in Group Policy whereby an attacker can allow elevation of privilege if an attacker launches a man-in-the-middle (MiTM) attack against the traffic passing between a domain controller and the target machine on domain-joined Windows computers.  After MS16-072 is installed, user group policies are retrieved by using the computer’s security context. This by-design behavior change protects domain joined computers from a security vulnerability.  Any Group policy that performs Security filtering on a per user basis will need to be adjusted now work after MS16-072.

For SBS 2008 and SBS 2011 in particular there are several group policies set up in the product for purposes of controlling the users’ desktop environment and Windows Software Update Services (WSUS) that are directly impacted by this change and will need adjustment in order to continue to work after the application of this patch.

There will be no automated patch to fix this issue on the SBS 2011 platform, thus we recommend that you take the following action to ensure that the default group polices on the SBS 2008 and SBS 2011 server are adjusted as well as checking if any group policies you have placed on the systems are impacted.

I would like to thank various blogs and resources that provided additional information that I am relying on in order to provide the information for the SBS community.

If you’d like to review these additional resources, I’d recommend reviewing Jeremy Moskowitz’s blog, and Darren Mar-Elia’s blog .  Additional resources include the AskDS blog, and the  JH consulting blog.  I would recommend reviewing these additional resources if you manage different Server platforms as the commands and PowerShell scripts are slightly different for different versions of Windows Server.

Prior to MS16-072, Group policy could be set up with security filtering uniquely for computer users.  Both the SBS 2008 and SBS 2011 systems as part of the SBSMonitoring service run a routine that every 20 minutes there is a service that synchronizes the SBS created (“stamped”) users with the Security Filtering on the “Windows SBS User Policy” so that the SBS can deploy specific settings to the users desktop environment.  If you merely add the Domain computers READ right to the security filtering section in group policy (or any other manual change to security filtering), 20 minutes later you will find this right removed.  So we must add this domain computer READ right in a specific way.

I’d first recommend that you review your server(s) and workstations to confirm that the patch has been deployed. Secondly, you will need to review your group policies to asses if they are impacted.  An excellent PowerShell script you can use to check your systems is from the PoSHChap blog.

To begin, log into your SBS  2011 server.  Find Windows PowerShell under Accessories/Windows PowerShell.  Right mouse click and click on Run as Administrator.

1

Now copy and paste the following script to review what group polices are impacted:

Copy below this line

===============================================================================

#Load GPO module
Import-Module GroupPolicy

#Get all GPOs in current domain
$GPOs = Get-GPO -All

#Check we have GPOs
if ($GPOs) {

#Loop through GPOs
foreach ($GPO in $GPOs) {

#Nullify $AuthUser & $DomComp
$AuthUser = $null
$DomComp = $null

#See if we have an Auth Users perm
$AuthUser = Get-GPPermissions -Guid $GPO.Id -TargetName “Authenticated Users” -TargetType Group -ErrorAction SilentlyContinue

#See if we have the ‘Domain Computers perm
$DomComp = Get-GPPermissions -Guid $GPO.Id -TargetName “Domain Computers” -TargetType Group -ErrorAction SilentlyContinue

#Alert if we don’t have an ‘Authenticated Users’ permission
if (-not $AuthUser) {

#Now check for ‘Domain Computers’ permission
if (-not $DomComp) {

Write-Host “WARNING: $($GPO.DisplayName) ($($GPO.Id)) does not have an ‘Authenticated Users’ permission or ‘Domain Computers’ permission – please investigate” -ForegroundColor Red

}   #end of if (-not $DomComp)
else {

#COMMENT OUT THE BELOW LINE TO REDUCE OUTPUT!

Write-Host “INFORMATION: $($GPO.DisplayName) ($($GPO.Id)) does not have an ‘Authenticated Users’ permission but does have a ‘Domain Computers’ permission” -ForegroundColor Yellow

}   #end of else (-not $DomComp)

}   #end of if (-not $AuthUser)
elseif (($AuthUser.Permission -ne “GpoApply”) -and ($AuthUser.Permission -ne “GpoRead”)) {

#COMMENT OUT THE BELOW LINE TO REDUCE OUTPUT!
Write-Host “INFORMATION: $($GPO.DisplayName) ($($GPO.Id)) has an ‘Authenticated Users’ permission that isn’t ‘GpoApply’ or ‘GpoRead’” -ForegroundColor Yellow

}   #end of elseif (($AuthUser.Permission -ne “GpoApply”) -or ($AuthUser.Permission -ne “GpoRead”))
else {

#COMMENT OUT THE BELOW LINE TO REDUCE OUTPUT!

Write-Output “INFORMATION: $($GPO.DisplayName) ($($GPO.Id)) has an ‘Authenticated Users’ permission”

}   #end of else (-not $AuthUser)

}   #end of foreach ($GPO in $GPOs)

}   #end of if ($GPOs)

===============================================================================

Copy above this line

Script courtesy of https://blogs.technet.microsoft.com/poshchap/2016/06/16/ms16-072-known-issue-use-powershell-to-check-gpos/

Either paste the script into your PowerShell window on the server or save it as a .ps1 script and run it.  You should see several red warnings that several of your group policies do not have the right permissions.

2

In reading various scripts online – It turns out there are different PowerShell commands for GP Permissions in 2008/2008R2 vs later versions of Windows.  So be aware the solution provided in this blog post specifically works on 2008 and 2008 R2 and does not work on 2012 and 2012 R2.  Specially the difference is simple – for 2008 and 2008 R2, replace the Get-GPPermission and Set-GPPermission commands with Get-GPPermissions and Set-GPPermissions in the script and it will work fine.

Secondly – given we have a large number of SBS sites still, I did some specific testing with it.  The results of the script means that the following policies are affected by this issue and MAY NOT APPLY if you don’t add the Authenticated Users OR Domain Computers as READ on the Delegation tab for that GPO.

  • Windows SBS User Policy
  • SharePoint PSConfig Notification Policy
  • Update Services Server Computers Policy
  • Update Services Client Computers Policy

Microsoft have indicated specific conditions for using either Authenticated Users OR Domain Computers with the READ permission.  I’ve done quite a bit of investigation and in conversation with Group Policy MVPs, have decided that I will implement this consistently using the Domain Computers group as this works for all scenarios.

Now we need to adjust the permissions so that the group policies work after the installation of MS16-072, the patch of KB3159398.

For SBS 2011 in the PowerShell window cut and paste the following script:

Copy below this line

===============================================================================

Import-Module GroupPolicy

Get-GPO -All | Set-GPPermissions -TargetType Group -TargetName “Domain computers” -PermissionLevel GpoRead

===============================================================================

Copy above this line

The first line calls the Group policy module for PowerShell, the second line adds the Domain Computers READ right to the delegation tab so that the Security filtering set up by the server can continue to process.

The script should scroll through the settings and adjust the group policies.

3

The script has done what it needs to do.   If you’d like to visually see the impact, if you go to any Group policy object you will now see Domain Computers on the delegation tab with READ rights.

4

On the Group policy object of Windows SBS User policy you should now see

5

Domain Computers with a Read right to the Group policy object.

Now run the testing script again to confirm that your group policy permissions have been adjusted.

Once again copy and paste the following script in the PowerShell window or save it as a .ps1 script:

Copy below this line

===============================================================================

#Load GPO module
Import-Module GroupPolicy

#Get all GPOs in current domain
$GPOs = Get-GPO -All

#Check we have GPOs
if ($GPOs) {

#Loop through GPOs
foreach ($GPO in $GPOs) {

#Nullify $AuthUser & $DomComp
$AuthUser = $null
$DomComp = $null

#See if we have an Auth Users perm
$AuthUser = Get-GPPermissions -Guid $GPO.Id -TargetName “Authenticated Users” -TargetType Group -ErrorAction SilentlyContinue

#See if we have the ‘Domain Computers perm
$DomComp = Get-GPPermissions -Guid $GPO.Id -TargetName “Domain Computers” -TargetType Group -ErrorAction SilentlyContinue

#Alert if we don’t have an ‘Authenticated Users’ permission
if (-not $AuthUser) {

#Now check for ‘Domain Computers’ permission
if (-not $DomComp) {

Write-Host “WARNING: $($GPO.DisplayName) ($($GPO.Id)) does not have an ‘Authenticated Users’ permission or ‘Domain Computers’ permission – please investigate” -ForegroundColor Red

}   #end of if (-not $DomComp)
else {

#COMMENT OUT THE BELOW LINE TO REDUCE OUTPUT!

Write-Host “INFORMATION: $($GPO.DisplayName) ($($GPO.Id)) does not have an ‘Authenticated Users’ permission but does have a ‘Domain Computers’ permission” -ForegroundColor Yellow

}   #end of else (-not $DomComp)

}   #end of if (-not $AuthUser)
elseif (($AuthUser.Permission -ne “GpoApply”) -and ($AuthUser.Permission -ne “GpoRead”)) {

#COMMENT OUT THE BELOW LINE TO REDUCE OUTPUT!
Write-Host “INFORMATION: $($GPO.DisplayName) ($($GPO.Id)) has an ‘Authenticated Users’ permission that isn’t ‘GpoApply’ or ‘GpoRead’” -ForegroundColor Yellow

}   #end of elseif (($AuthUser.Permission -ne “GpoApply”) -or ($AuthUser.Permission -ne “GpoRead”))
else {

#COMMENT OUT THE BELOW LINE TO REDUCE OUTPUT!

Write-Output “INFORMATION: $($GPO.DisplayName) ($($GPO.Id)) has an ‘Authenticated Users’ permission”

}   #end of else (-not $AuthUser)

}   #end of foreach ($GPO in $GPOs)

}   #end of if ($GPOs)

===============================================================================

Copy above this line

Script courtesy of https://blogs.technet.microsoft.com/poshchap/2016/06/16/ms16-072-known-issue-use-powershell-to-check-gpos/

Your resulting testing screen should not show any red warnings and instead be filled with white and yellow comments:

6

Your SBS 2011 default group polices will now function as usual.

If you’d like to make all future group polices you set up work by default with the new behavior, you can follow the advice in  the section entitled “Making the change permanent in Active Directory for future / newly born GPOs” in the Jeremy Moskowitz’s  blog.

For SBS 2008, you’ll need to manually add the READ permission right to the delegation tab as shown:

4

On the Group policy object of Windows SBS User policy you should now see

5

techhelpkb: Microsoft steps up legal pressure against #Windows10 pirates https://t.co/fH4T7G1INc via @computerworld

$
0
0
techhelpkb: Microsoft steps up legal pressure against #Windows10 pirates https://t.co/fH4T7G1INc via @computerworld

Now Available: Update 1606 for System Center Configuration Manager

$
0
0

Once again, we’re pleased to announce that we’ve released a new version of our System Center Configuration Manager current branch (1606) that includes some great new features and product enhancements.

Looking back at the last 7 months, we’re encouraged by the positive response and momentum we’ve seen with our new current branch model; we now have over 16,000 organizations managing 30 million devices with Configuration Manager version 1511 or later. While we’re thrilled about the adoption we’ve seen, the real point of pride for our team rests in the fact that our quality and reliability have remained so high through this monumental shift. Incredibly, we haven’t seen any increase in the number of support incidents since launching our current branch model! Read more about the reasons behind our current branch success here.

As we release 1606, we’re optimistic that this winning streak will continue. Thanks to our active technical preview community, the 1606 update takes into account feedback and usage data we’ve gathered from customers who have installed and road tested our monthly technical previews over the last few months. It’s also been tested at scale — by real customers, in real production environments — with great success. As of today we have over 1 million devices being managed by the Configuration Manager 1606 update!

1606 is full of new features and enhancements in security and data protection, application management, content distribution, deployment and provisioning, end user experience, and includes loads of new functionality for customers using Configuration Manager in hybrid mode with Microsoft Intune. This is also the version that will bring support for the Windows 10 Anniversary update. Here’s a small sample of what you’ll get when you upgrade:

  • Windows Information Protection (formerly EDP) features allow you to create and deploy information protection policy, including the ability to choose your protected apps and define your EDP-protection level.
  • Windows Defender Advanced Threat Protection features enable the ability to on-board and off-board Windows 10 clients to the cloud service and view agent health in the monitoring dashboard (requires a Windows Defender ATP tenant in Azure).
  • Windows Store for Business Integration allows you to manage and deploy applications purchased through the Windows Store for Business portal for both online and offline licensed apps.
  • Windows Hello for Business policies for domain-joined Windows 10 devices managed by the Configuration Manager client.

We’ve also added a number of popular User Voice items, including:

  • The addition of content status links in the admin console
  • The option of list view for applications in the Software Center
  • The ability to select multiple updates and simultaneously install them with the new Install Selected Updates button in the Software Center

For more details and to view the full list of new features in this update check out our What’s new in version 1606 of System Center Configuration Manager documentation on TechNet.

Note: As the update is rolled out globally in the coming weeks, it will be automatically downloaded and you will be notified when it is ready to install from the “Updates and Servicing” node in your Configuration Manager console. If you can’t wait to try these new features, this PowerShell script can be used to ensure that you are in the first wave of customers getting the update. By running this script on your central administration site or standalone primary site, you will see the update available in your console right away.

For assistance with the upgrade process please post your questions in the Site and Client Deployment forum. To provide feedback or report any issues with the functionality included in this release, please use Connect.  If there’s a new feature or enhancement you want us to consider including in future updates, please use the Configuration Manager UserVoice site.

Thank you,

The System Center Configuration Manager team

Additional resources:

Kovter becomes almost file-less, creates a new file type, and gets some new certificates

$
0
0

Trojan:Win32/Kovter is a well-known click-fraud malware which is challenging to detect and remove because of its file-less persistence on infected PCs. In this blog, we will share some technical details about the latest changes we have seen in Kovter’s persistence method and some updates on their latest malvertising campaigns.

New persistence method

Since June 2016, Kovter has changed their persistence method to make remediation harder for antivirus software.

Upon installation, Kovter will generate and register a new random file extension (for example, .bbf5590fd) and define a new shell open verb to handle this specific extension by setting the following registry keys:

Registry setup for Kovter

Figure 1: Registry setup for Kovter

With this setup, every time a file with the custom file extension (.bbf5590fb) is opened, the malicious Kovter command contained in the registry key is executed via the shell extension open verb.

Therefore, all Kovter needs to do to run on infected machines is open a file with their custom file extension .bbf5590fb – causing the malicious shell open command to run. This in turn runs a command using mshta.

Mshta is a clean tool that is used by Kovter to execute malicious JavaScript. This JavaScript then loads the main payload from another registry location, HKCU\software\67f1a6b24c\d0db239. To trigger this shell open command on a regular basis, Kovter drops several garbage files with its custom file extension in different locations, for example:

The contents of these files are not important, since the malicious code is contained within the shell open verb registry key. The last step in the installation process is setting up the auto-start mechanism to automatically open the above files. Kovter uses both a shortcut file and a batch (.bat) file for this:

Using a shortcut file

Kovter drops a shortcut file (.lnk) in the Windows startup folder which points to the garbage files. We have seen it drop the following shortcut file:

  • %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\28dd1e3d.lnk

The target command of the shortcut file is the following:

C:\Windows\System32\cmd.exe /C start “” “C:\Users\Admin\AppData\Roaming\33e58839\3ad319e6.bbf5590fd”

Once executed at startup, this command will open the file, causing the malicious shell open verb to run the malicious mshta command previously set up in the registry system (see Figure 1).

Using a batch script file

Kovter will drop a batch script file (.bat) and set a registry run key to execute the .bat file. The .bat file will be dropped in a randomly generated folder, such as:

The .bat file has the following content:

Content of the .bat file setup in run key

Figure 2: Content of the .bat file setup in run key

 

Once executed, this bat will also run the dropped file, which then executes the malicious shell open verb.

Instead of just adding the mshta script directly as a run key registry as in the old variant, Kovter is now using this shell open trick to start itself. Although Kovter is technically not fully file-less after this latest update, the majority of the malicious code is still held only within the registry. To remove Kovter completely from an infected computer, antivirus software needs to remove all of these dropped files as well as the registry change.

Windows Defender is able to successfully clean up and remove these new versions of this threat.

Kovter malvertising updates

Since our last blog on Kovter spreading through malicious advertisements as a fake Adobe Flash update, we have observed some changes.

On top of the fake Adobe Flash updates, Kovter is now also pretending to be a Firefox update. Kovter has also rotated through a series of new digital certificates, including the following:

Certificate signer hashValid fromValid until
7e93cc85ed87ddfb31ac84154f28ae9d6bee0116Apr 21 2016Apr 21 2017
78d98ccccc41e0dea1791d24595c2e90f796fd48May 13 2016May 13 2017
c6305ea8aba8b095d31a7798f957d9c91fc17cf6Jun 22 2016Jun 22 2017
b780af39e1bf684b7d2579edfff4ed26519b05f6May 12 2016May 12 2017
a286affc5f6e92bdc93374646676ebc49e21bcaeMay 13 2016May 13 2017
ac4325c9837cd8fa72d6bcaf4b00186957713414Nov 18 2015Nov 17 2016
ce75af3b8be1ecef9d0eb51f2f3281b846add3fcDec 28 2015Dec 27 2016

Table 1: List of certificates used by Kovter

 

We’ve notice that every time Kovter actors release a new wave of samples signed with a new certificate they hit a lot of machines. This can be seen in our telemetry for the past three months, with spikes on May 21, June 14, and the first week of July.

Kovter’s prevalence for the past two months

Figure 3: Kovter’s prevalence for the past two months

 

Besides fake Adobe Flash and Firefox updates, Kovter also pretends to be a Chrome update (chrome-update.exe).

We have seen Kovter downloaded from a large list of URLs, including:

  • hxxps://eepheverseoftheday.org/2811826639187/2811826639187/146819749948281/FlashPlayer.exe
  • hxxps://deequglutenfreeclub.org/8961166952189/8961166952189/146809673281840/FlashPlayer.exe
  • hxxps://zaixovinmonopolet.net/5261173544131/5261173544131/146785099939564/FlashPlayer.exe
  • hxxps://feehacitysocialising.net/7561659755159/1468089713424429/firefox-patch.exe
  • hxxps://eepheverseoftheday.org/1851760268603/1851760268603/1468192094476645/firefox-patch.exe
  • hxxps://uchuhfsbox.net/8031143191240/8031143191240/1467996389305283/firefox-patch.exe
  • hxxps://ierairosihanari.org/1461656983266/1461656983266/1467987174641688/firefox-patch.exe
  • hxxps://anayimovilyeuros.net/7601143032510/7601143032510/1465468888898207/chrome-patch.exe

For reference, here are some SHA1s corresponding to each certificate used by Kovter:

Certificate Signer HashSHA1
7e93cc85ed87ddfb31ac84154f28ae9d6bee01167177811e2f7be8db2a7d9b1f690dc9e764fdc8a2
78d98ccccc41e0dea1791d24595c2e90f796fd48da3261ceff37a56797b47b998dafe6e0376f8446
c6305ea8aba8b095d31a7798f957d9c91fc17cf6c3f3ecf24b6d39b0e4ff51af31002f3d37677476
b780af39e1bf684b7d2579edfff4ed26519b05f6c49febe1e240e47364a649b4cd19e37bb14534d0
a286affc5f6e92bdc93374646676ebc49e21bcae3689ff2ef2aceb9dc0877b38edf5cb4e1bd86f39
ac4325c9837cd8fa72d6bcaf4b00186957713414e428de0899cb13de47ac16618a53c5831337c5e6
ce75af3b8be1ecef9d0eb51f2f3281b846add3fcb8cace9f517bad05d8dc89d7f76f79aae8717a24

Table 2: List of Kovter SHA1 for each certificate

 

To protect yourself from this type of attack, we encourage users to only download and install applications or their updates from their original and trusted websites.

Using an up-to-date version of an antimalware scanner like Windows Defender will also help you to stay protected from Kovter.

Duc Nguyen
MMPC

Nemucod dot dot..WSF

$
0
0

The latest Nemucod campaign shows the malware distributing a spam email attachment with a .wsf extension, specifically ..wsf (with a double dot) extension.

It is a variation of what has been observed since last year (2015) – the TrojanDownloader:JS/Nemucod malware downloader using JScript. It still spreads through spam email attachment, typically inside a .zip file, using a file name of interest with .js or .jse as extension.

The following screenshots show how the malicious file attachment looks like in the recent campaign:

Example of how an email spam containing the latest version of Nemucod might look like

Figure 1: Example of how an email spam containing the latest version of Nemucod might look like

 

Example of how Nemucod malware looks like when extracted and opened with an archive viewer.

Figure 2: Example of how Nemucod malware looks like when extracted and opened with an archive viewer

What the double dots mean: Social engineering for unsuspecting eyes

As seen in the following file name samples, the double dot paired with the uncommon .wsf extension creates an illusion that the file name was either abbreviated, was intentionally omitted, or shortened by the system because it was too long:

  • profile-d39a..wsf
  • profile-e3de..wsf
  • profile-e7dc..wsf
  • profile-f8d..wsf
  • profile-fb50..wsf
  • spreadsheet_07a..wsf
  • spreadsheet_1529..wsf
  • spreadsheet_2c3b..wsf
  • spreadsheet_36ff..wsf
  • spreadsheet_3a8..wsf

Some might look at the sample file names and assume that they might originally have been a long unique string identifier consisting of random letters and numbers that could be a transaction ID, receipt number or even user ID:

  • profile-d39as1u3e8k9i3m4wsf
  • profile-e3dee1uwl8s10f3m4wsf
  • profile-e7dc4d1u3e83m4wsf
  • profile-f8dsdwsfe8k4i38wsf
  • profile-fb50s1u3l8k9i3m4wsf
  • spreadsheet_07as133e3k9i3e4wsf
  • spreadsheet_1529s15se8f9i3o6wsf
  • spreadsheet_2c3bs1u5dfk9i3m6wsf
  • spreadsheet_36ffs1ure8koei3d5ws
  • spreadsheet_3a8s1udwsf8s9i323wsf

However, this is not the case. These are script files that might contain malicious code which could harm your system.

Underneath the WSF

Windows Scripting File is a text document containing Extensible Markup Language (XML) code. It incorporates several features that offer you increased scripting flexibility. Because Windows script files are not specific to a script language, the underlying code can have either JavaScript or VBScript, depending on language declaration in the file. WSF acts as a container.

Underneath the WSF is the same typical Nemucod JScript code.

Nemucod code inside WSF: has encrypted code and the decryption is written under @cc_on (conditional compilation)

Figure 3: Nemucod code inside WSF: has encrypted code and the decryption is written under @cc_on (conditional compilation)

 

This Nemucod version leverages the @cc_on (conditional compilation) command. Such a command can possibly evade AV scanner detection. It tricks the AV scanners to think the command is part of a comment, thus preventing the AV scanners from interpreting it as an executable code.

Upon code decryption, the following URLs – where the malware payload is being hosted – are revealed:

  • hxxp://right-livelihoods.org/rpvch
  • hxxp://nmfabb.com/rgrna1gc
  • hxxp://www.fabricemontoyo.com/v8li8

Recent spam campaign and trends

The latest Nemucod telemetry for the past 15 days shows that it has constantly been active, although there haven’t been any huge spikes.

Daily detection trend for Nemucod. These are the unique machine encounters per day

Figure 4: Daily detection trend for Nemucod. These are the unique machine encounters per day

 

Geographic distribution of Nemucod. Data taken from July 3 to July 18, 2016

Figure 5: Geographic distribution of Nemucod. Data taken from July 3 to July 18,2016

 

Other than using ..wsf and @cc_on technique, we’ve also seen different and old tricks used as part of its social engineering tactics. This includes, but is not limited to:

  • Double extension (for example: pdf.js)
  • Invoice, receipt, and delivery related file names such as DHL, FedEx delivery, and so forth

Nemucod infection chain

Nemucod infection chain showing spam email distributing WSF which downloads and runs malware

Just like the Nemucod campaigns before this, the malware downloader payload includes ransomware, such as:

Mitigation and prevention

To avoid falling prey from this new Nemucod malware campaign:

Francis Tan Seng and Alden Pornasdoro
MMPC

Updated inbox component in Windows Server 2012 R2 Essentials for client connector

$
0
0

[This post comes to us courtesy of Schumann GE from Product Group and Sandeep Biswas from Global Business Support]

We are happy to announce that the fix for client side issues due to Windows 10 feature upgrade that was discussed in the following SBS Blog has been released:

https://blogs.technet.microsoft.com/sbs/2016/01/22/windows-10-feature-upgrade-breaks-client-connector-for-window-server-2012-r2-essentials-windows-server-2012-essentials-and-windows-small-business-server-2011-essentials/

The inbox fix for Windows Server 2012 R2 has been included with the following update rollup:

https://support.microsoft.com/en-in/kb/3172614

Note: This is an optional update and will be promoted to a mandatory one in the next update cycle.

Microsoft Authenticator – Coming August 15th!

$
0
0

Howdy folks,

Today we’re trying something different and sharing news with you about an upcoming release. I really prefer to announce new capabilities when you can actually try them out for yourself! But in this case, a lot of largest enterprise customers need some time to plan for this, so we’re sharing the news early.

On August 15th, we will start releasing the new “Microsoft Authenticator” apps in all mobile app stores. This new app combines the best parts of our previous authenticator apps into a new app which works with both Microsoft accounts and Azure AD accounts

As many of you know, we’ve had separate authenticator apps for Microsoft account and Azure AD for quite a while – the Azure Authenticator for enterprise customers and the Microsoft account app for consumers. With the new Microsoft Authenticator, we’ve combined the best of both into a single app that supports enterprise and consumer scenarios.

Here are some of the new benefits you will see in the app updates:

  • User experience refresh. We’ve made the app experience incredibly simple while maintaining the highest level of security.
  • Best in breed MFA experience through one-click push notifications. You only need to click the “approve” button in the notification to complete your login. (And in most cases, you won’t even need to open the app to complete the approval.)
  • Support for wearables. You can use an Apple Watch or Samsung Gear device to approve MFA challenges.
  • Finger prints instead of passcodes. We’ve added support finger print based approvals on both iPhone and Android.
  • Certificate based authentication. Support for enterprise customers to sign in through certificates instead of passwords.

This new app will be delivered as an update to Azure Authenticator. Existing accounts you already have in your Azure Authenticator app will be automatically upgraded. And users of our Microsoft account Android app will get a message prompting them to download the new app.

We’re just getting started on this new app! Now that we’ve finished consolidating into a single code base, we’re expecting to deliver new improvements at a very rapid pace. So, stay on the lookout for this cool new app, and let us know what you think. If you are an enterprise customer, this is a great time to start updating your documentation to direct employees to the new app!

And as always, we’d love to receive any feedback or suggestions you have!

Best Regards,

Alex Simons (Twitter: @Alex_A_Simons)

Director of Program Management

Microsoft Identity Division

Viewing all 2937 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>