Giter Site home page Giter Site logo

sulemanmanji / windows-defender-application-control-hardening Goto Github PK

View Code? Open in Web Editor NEW

This project forked from simeononsecurity/windows-defender-application-control-hardening

0.0 0.0 0.0 423 KB

Harden Windows with Windows Defender Application Control (WDAC)

Home Page: https://simeononsecurity.ch/github/Windows-Defender-Application-Control-Hardening

License: MIT License

PowerShell 100.00%

windows-defender-application-control-hardening's Introduction

Windows-Defender-Application-Control-Hardening

VirusTotal Scan

This is a PowerShell script that configures Windows Defender Application Control (WDAC) on a Windows machine. The script requires elevated privileges to run and continues even if errors are encountered. It creates a new "Temp" directory in the C:\ drive and copies necessary Windows Defender configuration files to it. The script then enables WDAC by importing policies and adding necessary services. The script also enables the Intelligent Security Graph (ISG) and Managed Installer (MI) diagnostic events for troubleshooting. The script ends with a prompt to the user to restart the computer to make changes effective.

Notes:

  • Windows Server 2016/2019 or anything before version 1903 only support a single legacy policy at a time.
  • Windows Server Core edition supports WDAC but some components that depend on AppLocker won’t work
  • Please read the Recommended Reading before implementing or even testing.

A list of scripts and tools this collection utilizes:

Additional configurations were considered from:

Explanation:

XML vs. BIN:

  • Simply put, the "XML" policies are for applying to a machine locally and the "BIN" files are for enforcing them with either Group Policy or Microsoft Intune. While you can use XML, BIN, or CIP policies in a local deployment, generally speaking you should stick to XML where possible and especially so while auditing or troubleshooting.

Policy Descriptions:

  • Default Policies:
    • The "Default" policies use only the default features available in the WDAC-Toolkit.
  • Recommended Policies:
    • The "Recommended" policies use the default features as well as Microsoft's recommended blocks and driver block rules.
  • Audit Policies:
    • The "Audit" policies, just log exceptions to the rules. This is for testing in your environment, so that you may modify the policies, at will, to fit your environments needs.
  • Enforced Policies:
    • The "Enforced" policies will not allow any exceptions to the rules, applications, drivers, dlls, etc. will be blocked if they do not comply.

Available Policies:

  • XML:
    • Audit Only:
      • WDAC_V1_Default_Audit.xml
      • WDAC_V1_Recommended_Audit.xml
    • Enforced:
      • WDAC_V1_Default_Enforced.xml
      • WDAC_V1_Recommended_Enforced.xml
  • BIN:
    • Audit Only:
      • WDAC_V1_Default_Audit.bin
      • WDAC_V1_Recommended_Audit.bin
    • Enforced:
      • WDAC_V1_Default_Enforced.bin
      • WDAC_V1_Recommended_Enforced.bin
  • CIP:
    • Audit Only:
      • WDAC_V1_Default_Audit\{uid}.cip
      • WDAC_V1_Recommended_Audit\{uid}.cip
    • Enforced:
      • WDAC_V1_Default_Enforced\{uid}.cip
      • WDAC_V1_Recommended_Enforced\{uid}.cip

Update the following line in the script to use the policy that you desire locally:

$PolicyPath = "C:\temp\Windows Defender\CIP\WDAC_V1_Recommended_Enforced\*.cip"
#https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/deployment/deploy-wdac-policies-with-script
ForEach ($Policy in (Get-ChildItem -Recurse $PolicyPath).Fullname) {
  $PolicyBinary = "$Policy"
  $DestinationFolder = $env:windir+"\System32\CodeIntegrity\CIPolicies\Active\"
  $RefreshPolicyTool = "./Files/EXECUTABLES/RefreshPolicy(AMD64).exe"
  Copy-Item -Path $PolicyBinary -Destination $DestinationFolder -Force
  & $RefreshPolicyTool
}

Alternatively, you may use Group Policy or Microsoft Intune to enforce the WDAC policies.

Auditing:

You can view the WDAC event logs in event viewer under:

Applications and Services Logs\Microsoft\Windows\CodeIntegrity\Operational

Recommended Reading:

How to run the script:

Manual Install:

If manually downloaded, the script must be launched from an administrative powershell in the directory containing all the files from the GitHub Repository

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Force
Get-ChildItem -Recurse *.ps1 | Unblock-File
.\sos-wdachardening.ps1

windows-defender-application-control-hardening's People

Contributors

simeononsecurity avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.