#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
Two boolean flags in the compiler code aim to give this webshell stealth:
This means no exe is written & the code remains in memory.
Some forensics will exist from the compilation process, namely some tmp files are written
The output of the called to DynamicRun() is written to the HTTP Response of the original Orion API web request.
This means the adversaries are able to supply this API with arbitrary C# code, have it compiled & the output of that code being executed is passed back to them.
In this video, I demonstrate where to find this malware sample so you can play along, a brief view on my lab setup, two key tools you need to analyse this malware and of course a review of the code per this thread.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
#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.
#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