Researchers at Huntress Labs have uncovered what they described as a really clever use of Windows batch scripting by the authors of Trickbot to try and sneak the latest version of their malware past automated detection tools.
The technique takes advantage of the way the Windows command line interpreter, cmd [.] exe, reads and interprets data that is typed on the command line.
What the authors of Trickbot have done is use a batch script to break up their payload into numerous small chunks and then use the command line interpreter to rebuild the original payload, says John Hammond, senior security researcher at Huntress.
"The gist of this technique is substituting each character in a payload with a new mapped value, so the payload can be slowly created with building blocks."
This technique isn't specific to Trickbot. In fact, any other code or malware sample can do this within Windows batch scripting, Hammond says. But this is the first time that Huntress has observed a threat actor using this exact obfuscation technique, he says. "It seems to be a very simple technique, and now that Trickbot has introduced it, it may become more popular."
Though PowerShell and other command line tools are now available for Windows, cmd [.] exe remains the default command line interpreter for the operating system, as it has for decades. The technology makes a good target for attackers because it provides an interactive interface that they can use to execute commands, run malicious programs, delete files, and carry out a variety of other actions.
Typically, the command prompt can be hardened and locked down with application whitelisting or more secure configuration settings, Hammond notes. "But if a threat actor can access it, it is really a high-value target," because of the extent of control that it allows an attacker to establish over the operation system.
According to Huntress, the batch script that Trickbot authors have used to obfuscate their payload looks like a whole of lot of garbled code with random letters and weird percent signs scattered all over. But a closer examination of the code showed that it is designed to create small, one-letter or two-character variable values that are small chunks of the final payload. Though the code might look completely unintelligible, cmd [.] exe interprets it and executes it.
Troublingly, to an automated scanner, the multiple, smaller chunks would not appear like any malicious strings, so the malware would be able to evade detection. "This obfuscated loader primarily evades signature-based detection — which hunts for known bad strings or characters that can indicate malicious activity," Hammond says.
For organizations, the main takeaway is that automated tools don't guarantee protection against all malware threats. In this case, the obfuscation that the authors of Trickbot employed would have been relatively easy to spot for human analysts. But a scanner might not see any evidence of malicious or bad commands and let the malware slip past, Hammond says.
"A real person might look at this batch script and say, 'oh, if you just add this command right here, it spits out the payload and tells you what exactly it is trying to do,'" he says. "Automated solutions do not and cannot think to do that."