


This is hard to do, but not impossible, however I rarely encounter untrusted execution. So to bypass Smart Screen, we need to exploit the trust issue of either a bad CreateProcess, ShellExec, WinExec, etc call where we can specify our own executable name / path. Does it only apply to process creation? NO! Dynamic link libraries work in the same manner! So programs spawned from trusted programs are trusted.

Programs that aren’t signed that are run by programs that are signed are given the same trust. Signed executables have an inherit trust issue. The answer lies in the fundamental flaw in how Windows does its signing and code running.

“But Joe”, you may ask, “how the fuck are we supposed to run our code when these trusted exes have a signed check that breaks once you modify them?”. We exploit a program in the ‘good boy’ list to run our code. Even then if the certificate authority isn’t in the Microsoft ‘good boy’ list, then smart screen will still alert. OK, so how the hell do you bypass this? Well you could sign your exe, but that costs money. Here we have it popping Smart Screen, upset that my binary doesn’t pass its ‘background check’. What makes them so special?Īnyways, here we have an unsigned, untrusted exe written by me that does nothing. Ever wondered why when you attempt to open a microsoft tool downloaded from the internet that Smart Screen doesn’t say shit? This is because some certs are in the ‘good boy’ list. The ‘good boy’ list I am referring to is a list of certificates that are trusted by Microsoft no questions asked. Is the signing authority in our ‘good boy’ list?.Is there a malware signature in this binary?.Microsoft Smart Screen works on executables by checking: Kind of annoying when you’re writing malware or exploits when Windows Defender detects your payloads, but that’s a topic for another post. It pops up a warning if you attempt to run a binary that is unsigned and / or untrusted. OK, so Smart Screen is a windows defender utility that comes with Windows 10. Feels like the last time I updated this blog I figured if I was to make an update after more than a year’s absence, it better damned well be a good fucking update. God, its been forever since I made an update.
