Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WDACConfig Module Update v0.4.1 #284

Merged
merged 17 commits into from
Jul 2, 2024
Merged

Conversation

HotCakeX
Copy link
Owner

@HotCakeX HotCakeX commented Jun 18, 2024

What's New

Simulating Application Control (WDAC) Deployment in Windows


  • Added support for WHQLFilePublisher, WHQLPublisher, WHQL and FilePath levels to the WDAC Simulation. If you want to read more about the levels check out this article.

  • Lots of performance improvements and optimizations in pretty much every component of the WDACConfig module to make it faster.

  • WDAC Simulation's logic has been substantially improved under the hood for faster and completely different mechanism that unlocks all Application Control levels to be verifiable through the simulation engine.

  • WDAC Simulation now supports parallelism. You can set the number of parallel threads between 1 which is minimum, and the number of your CPU cores which is the maximum. With this improvement, you can perform WDAC Simulation on the entire C drive in only a few minutes.

  • Laid the groundwork for the future GUI implementation in the WDACConfig module.

  • When deploying signed policies, before attempting to download the SignTool.exe from the official Microsoft Nuget repository, the module now checks whether Nuget exists as a package source on the system (which should be by default) and if it isn't, it will add it.

  • When using the New-KernelModeWDACConfig to deploy a strict kernel mode WDAC policy with no flight root signers (which is not the default behavior and you have to go out of your way to choose that option), the module now performs a WDAC simulation on the Windows Kernel to ensure your current OS version does not belong to Dev/Canary insider channels, to prevent from deploying a policy that could render the system unusable.

  • Lots of PowerShell code have been converted to native C# code for improved agility, future use-cases and being able to directly utilize Windows APIs.

  • Since Windows no longer has a cap on the number of the WDAC policies that can be deployed, many components of the module have been updated to handle large number of deployed policies.

  • The module's startup time has been substantially improved, now the parameter suggestions and arguments are loaded at least x3 times faster than before.

  • Removed the self-signed certificate details from the module files as most of them are converted to C# and .cs files don't support Authenticode signature. The best way to verify the integrity of the WDACConfig module files is using the Assert-WDACConfigIntegrity which uses the strongest available hashing algorithms (SHA3 and SHA2).

  • All of the PowerShell native global variables have been switched to C# constants, this offers greater protection against tampering since reflection can no longer be used to overwrite them. To compromise C# constants you would need to directly modify their in-memory values which imposes more cost from an attacker's point of view. Read more about this method here


@HotCakeX HotCakeX added the Enhancement 💯 New feature or request label Jun 18, 2024
@HotCakeX HotCakeX self-assigned this Jun 18, 2024
PS Class conversion to C#
@HotCakeX HotCakeX marked this pull request as ready for review July 1, 2024 23:59
@HotCakeX HotCakeX merged commit 4a885cc into main Jul 2, 2024
2 checks passed
@HotCakeX HotCakeX deleted the WDACConfig-Module-update-v0.4.1 branch July 2, 2024 00:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement 💯 New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant