NET assemblies in their platforms.Ĭobalt Strike 3.11’s execute-assembly command makes good on this. I also advised that payload developers, myself included, would do well to embrace the use of. In Modern Defenses and YOU!, I advised that operators who depend on PowerShell should brush up on working without it. If the current process loads the same library later (for whatever reason), you will crash Beacon’s process. While this is a powerful feature, caveats apply! If the library you load is not large enough to host Beacon, you will crash Beacon’s process. The module_圆4 option enables this for the 圆4 Beacon. Set module_x86 to a favorite x86 DLL to module stomp with the x86 Beacon. When enabled, Beacon’s loader will shun VirtualAlloc and instead load a DLL into the current process and overwrite its memory.
These permissions exist in legitimate applications, but these properties are a warm flame that attracts the hunters from their cyber blinds.Ĭobalt Strike 3.11 also adds module stomping to Beacon’s Reflective Loader. What about the permissions of that memory? We still have pages with execute permissions that are not tied to a loaded module. Together, obfuscate and cleanup allow Beacon to live in-memory without content that screams memory-injected DLL. When this operation succeeds, your Beacon will live in-memory without the package that put it there. This hint asks Beacon to release the memory associated with its loader. What about the memory that contains Beacon and its self-bootstrapping Reflective Loader? That package still has the MZ, PE, and e_lfanew values. It’s nice that the final Beacon DLL is better disguised. Now, when obfuscate is set to true, Beacon’s Reflective Loader will situate Beacon in its new memory without bringing over any of its DLL headers. Cobalt Strike 3.11 takes this to the next level. It masks Beacon’s import table and other fields in Beacon’s DLL. Cobalt Strike’s existing Malleable PE obfuscate option provides some help here.
One way to avoid detection as a memory injected DLL is to not look like an injected DLL at all (go figure). Cobalt Strike 3.11 adds more options to challenge and train defenders that use memory hunting techniques. Here’s the IOCs report with the HaveX Malleable C2 profile loaded:įebruary 2018’s In-memory Evasion course discusses heuristics to find injected DLLs in memory, explains why these heuristics work, and offers strategies to push back on these defenses. Each profile is presented as a unique “malware sample” with a summary of PE headers, contacted hosts, an HTTP traffic sample, and interesting strings. The Indicators of Compromise report in Cobalt Strike 3.11 now includes more information about the profiles used during the engagement. Of course, flexible indicators have little utility without ground truth to give to the blue team.
Set this option to false and Beacon becomes a more obvious in-memory target.Ĥ. This option controls a common in-memory evasion tactic. The stomppe option controls whether or not Beacon’s loader stomps the MZ, PE, and e_lfanew values after loading. This allows red teams to quickly extract and apply indicators from a malicious executable or DLL to Cobalt Strike’s Beacon.ģ. The peclone utility parses a DLL and reports a ready-to-use Malleable C2 stage block. This release also adds a peclone utility to Cobalt Strike’s Linux package. Malleable C2 profiles now have the ability to specify the checksum, entry point, exported DLL name, and rich_header of the Beacon DLL.Ģ. Today, wire indicators have their place, but defenders are just as likely to rip a DLL from memory to extract indicators and understand what they’re up against.Ĭobalt Strike 3.7 introduced Malleable PE to give Beacon indicator flexibility in-memory. Malleable C2 focused on wire indicators because that’s what defenders could most easily observe. Malleable C2 ( 2014) was the start of this. One of the things that makes Cobalt Strike different is its ability to emulate multiple toolsets with one agent and one platform. NET executable assemblies without touching disk, and implements the Token Duplication UAC bypass attack. This release adds to Cobalt Strike’s in-memory threat emulation and evasion capabilities, adds a means to run.