Here's why you should block and monitor .JNLP files
π They're XML files that can Download and Run content from remote locations...
Here, the JNLP file leads to a malicious JAR which in turn downloads Info-Stealer malware executable, disguised as a JPG...
The malware appears to be packed with UPX but the adversaries don't make it easy to unpack...
By manually unpacking the malware, or using @unpacme (which is what I did) leads to you malware that attempts to Unhook itself from Sandbox / Security monitoring...
It loads a copy of Kernel32.dll from disk into RAM using CreateFileMappingW and MapViewOfFile then compares each function loaded from disk to the version in memory. It looks for a JMP instruction (E9 or FF) at the start of each function meaning the function is being hooked...
The malware then overwrites any hooked functions with a clean version it's loaded from disk; and then steals your data sending the contents back to it's C2:
#Zyxel announced CVE-2020-29583 fixing a backdoor admin account which gave attackers root on affected devices via SSH or web interface
If you want to examine the firmware you need to run a #known_plaintext_attack against an encrypted zip
Sounds hard; don't worry I got you... π
Zyxel have actually removed the backdoored firmware versions from their portal; but you can still grab the latest version or earlier versions for further inspection.
#SUPERNOVA#SolarWinds malware is actually pretty boring. So boring in fact, I made a video.
Thread π
Adversaries have injected a call to a method called DynamicRun() into the existing LogoImageHandler class. An existing method, ProcessRequest() has been trojan'ed to accept 4 GET parameters passed to the Orion web API
These GET parameters are designed to contain
"code" - a blob of C# code which is then compiled
"clazz" - the name of a class which is to be instantiated
"method" - the name of a method to call within the clazz
"args" - supplied to the aforementioned method
#SolarWinds#SUNBURST malware checks for a long list of security processes and services running on the endpoint to try and evade detection. It does this by hashing the lowercase process name and comparing it against hardcoded values. Thread π
The hashing function isn't one I'm familiar with, FNV1A, but seems pretty straight forward to understand
FireEye did a great job in brute-forcing many of the hardcoded hashes and identified a big list of security tools that the malware is checking for