From 95ed6819103eca43bcaa0a4b73ebf4502a4c13c0 Mon Sep 17 00:00:00 2001 From: Caffeine-rohit Date: Fri, 31 Jan 2025 00:54:34 +0530 Subject: [PATCH] Updated cheat sheet: Removed EMET and added new recommendations. --- .../C-Based_Toolchain_Hardening_Cheat_Sheet.md | 8 ++++++-- exploit-protection-guard.png | Bin 0 -> 33104 bytes 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 exploit-protection-guard.png diff --git a/cheatsheets/C-Based_Toolchain_Hardening_Cheat_Sheet.md b/cheatsheets/C-Based_Toolchain_Hardening_Cheat_Sheet.md index bed548e352..78c3e3a38d 100644 --- a/cheatsheets/C-Based_Toolchain_Hardening_Cheat_Sheet.md +++ b/cheatsheets/C-Based_Toolchain_Hardening_Cheat_Sheet.md @@ -648,6 +648,10 @@ Visual Studio offers a number of debugging aids for use during development. The ![Windows1](../assets/C-Based_Toolchain_Hardening_Windows1.png) -Finally, for runtime hardening, Microsoft has a helpful tool called EMET. EMET is the [Enhanced Mitigation Experience Toolkit](https://en.wikipedia.org/wiki/Enhanced_Mitigation_Experience_Toolkit), and allows you to apply runtime hardening to an executable which was built without it. It's very useful for utilities and other programs that were built without an SDLC. +Finally, for runtime hardening, Microsoft provides **Windows Defender Exploit Guard** and the **Process Mitigation Management Tool**. +[Windows Defender Exploit Guard](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/exploit-protection) replaces EMET and offers advanced exploit protection features. -![Windows2](../assets/C-Based_Toolchain_Hardening_Windows2.png) +Additionally, the [Process Mitigation Management Tool](https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-exploit-guard/customize-exploit-protection) (`ProcessMitigations` module) allows administrators to configure exploit mitigation policies via PowerShell and Group Policy. + +![Windows2](exploit-protection-guard.png) + \ No newline at end of file diff --git a/exploit-protection-guard.png b/exploit-protection-guard.png new file mode 100644 index 0000000000000000000000000000000000000000..24a82829581d4b2e466f2208c087e901846d81dd GIT binary patch literal 33104 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 HaPa>Fsnk?f literal 0 HcmV?d00001