Cyber security

FLOWER – A Novel Obfuscation Technique For Enhanced Cybersecurity

In the evolving landscape of cybersecurity, obfuscation plays a critical role in protecting against intrusive memory scans.

‘FLOWER’ emerges as a groundbreaking technique, offering a fresh approach to sleep obfuscation. Developed by bakki at sillywa.re, FLOWER leverages unique methods to queue the ropchain, enhancing compatibility and evading detection.

This article delves into the intricacies of FLOWER, exploring its implementation, versatility, and the strategic advantages it offers in the digital defense arsenal.

/*!
 *
 * FLOWER
 *
 * flowing sleep obfuscation 
 *
 * bakki - sillywa.re
 *
!*/

This is a primitive implementation of the technique I discuss in my blogpost

for any technical explanation, caveats or IOCs, do give it a read.

A version of this that does not rely on any external technique to queue the ropchain will be made available.

FLAGS

To showcase the compatibility of this technique, several flags are made available for the user

Techniques

Self explanatory, specifies which technique you wish to use to queue the ropchain

FLOWER_EKKO_OBF
FLOWER_FOLIAGE_OBF
FLOWER_ZILEAN_OBF

Zero

Freeing the old region means a copy of our shellcode is still there for as long as the old region does not get used.

Considering changing the protection back to RW has, at this time, no perceivable caveats stealth wise; I added the option to zero out the old region before freeing it.

FLOWER_ZERO_PROTECT

Jop

Using jump gadgets is nowadays the preferred way to evade the PATRIOT memory scanner which targets the research of both @C5pider and ilove2pwn_.

In simple terms, PATRIOT will check if the Rip field of a CONTEXT struct points to a *Protect function.

Since it doesn’t inspect non-volatile registers we can simply store the address of our function in a non-volatile register and point the Rip of the CONTEXT to an arbitrary gadget that jumps to said register.

//
// use the given register to store our function address
// we then execute it through a JMP gadget
//
FLOWER_GADGET_RAX
FLOWER_GADGET_RBX

Stackspoofing

Will conceal the instruction pointer (RtlUserThreadStart + 0x21) and stack of the beacon thread (Rsp pointing to an empty buffer)

FLOWER_STACKSPOOF

Tamil S

Tamil has a great interest in the fields of Cyber Security, OSINT, and CTF projects. Currently, he is deeply involved in researching and publishing various security tools with Kali Linux Tutorials, which is quite fascinating.

Recent Posts

Bomber : Navigating Security Vulnerabilities In SBOMs

bomber is an application that scans SBOMs for security vulnerabilities. So you've asked a vendor…

21 hours ago

EmbedPayloadInPng : A Guide To Embedding And Extracting Encrypted Payloads In PNG Files

Embed a payload within a PNG file by splitting the payload across multiple IDAT sections.…

21 hours ago

Exploit Street – Navigating The New Terrain Of Windows LPEs

Exploit-Street, where we dive into the ever-evolving world of cybersecurity with a focus on Local…

3 days ago

ShadowDumper – Advanced Techniques For LSASS Memory Extraction

Shadow Dumper is a powerful tool used to dump LSASS (Local Security Authority Subsystem Service)…

4 days ago

Shadow-rs : Harnessing Rust’s Power For Kernel-Level Security Research

shadow-rs is a Windows kernel rootkit written in Rust, demonstrating advanced techniques for kernel manipulation…

2 weeks ago

ExecutePeFromPngViaLNK – Advanced Execution Of Embedded PE Files via PNG And LNK

Extract and execute a PE embedded within a PNG file using an LNK file. The…

3 weeks ago