SLUB Gets Rid of GitHub, Intensifies Slack Use

by Cedric Pernet, Elliot Cao, Jaromir Horejsi, Joseph C. Chen, William Gamazo Sanchez

Four months ago, we exposed an attack that leveraged a previously unknown malware that Trend Micro named SLUB. The past iteration of SLUB spread from a unique watering hole website exploiting CVE-2018-8174, a VBScript engine vulnerability. It used GitHub and Slack as tools for communication between the malware and its controller.

On July 9, we discovered a new version of SLUB delivered via another unique watering hole website. This malicious site used CVE-2019-0752, an Internet Explorer vulnerability discovered by Trend Micro’s Zero Day Initiative (ZDI) that was just patched this April. This is the first time we found this exploit used in the wild.

This new version of the SLUB malware has stopped using GitHub as a way to communicate, heavily using Slack instead via two free workspaces. Slack is a collaborative messaging system that lets users create and use their own workspaces through the use of channels, similar to the internet relay chat (IRC) system. Slack has since shut down the relevant Workspaces.

Coincidence or not, both websites that have delivered the SLUB malware are supportive of the North Korean government.

Infection chain

The SLUB malware was delivered through watering hole websites that were injected with exploits for CVE-2018-8174 or CVE-2019-0752. A victim browsing the websites with an unpatched Internet Explorer browser will be infected with a SLUB loader.

Listed below are the steps that the exploit script performs to execute the loader. The infection chain is similar to the previous iteration of SLUB; however, this version employs different techniques to bypass AV heuristics and machine learning algorithms:

    • Open PowerShell for delivery mechanism with hidden WindowStyle and obfuscation.
    • Using Rundll32 to invoke a “C++ runtime impersonated name” malicious DLL (impersonated dll name: mfcm14u.dll) downloaded from watering hole website.
    • The malicious DLL implements export symbols following the Windows Naming Convention and uses actual Windows API name: AfxmReleaseManagedReferences. Note that this combination of naming conventions could help the attackers to bypass ML algorithms.

Figure. 1

Figure 1. PowerShell script to download and launch SLUB loader

The PowerShell script will look at the architecture of the system to check which malicious DLL files should be downloaded. The malicious DLL files are actually the SLUB loader. In case of a x86 system, a 32-bit SLUB loader will be downloaded and CVE-2019-0808, a relatively new vulnerability patched in March, will be used. In a x64 system, a 64-bit SLUB loader will be downloaded and CVE-2019-0803, another new vulnerability patched in April, will be leveraged. Both are exploited for privilege escalation on Windows. Then, the loader will check the architecture of the system to decide if it will download and use either the x86 version or x64 version of the SLUB malware to infect the victim.

All the exploits, loaders, and SLUB malware were directly hosted on watering hole websites.

Figure. 2

Figure 2. Infection chain of SLUB malware

Figure. 3

Figure 3. Traffic Pattern of SLUB malware infection chain

The backdoor

Since we published out last report on SLUB, the backdoor has been updated and several improvements were implemented. The most notable change is the complete adoption of Slack as an avenue to organize victim machines and give commands.

Here are the changes in detail:

  • Github is not used anymore
  • Operator creates a Slack workspace
  • Each infected machine joins the workspace, a separate channel named is created in the workspace
  • Command and control (C&C) communication only uses these Slack channels; if the operator wants to execute a command on an infected machine, he inserts a message to a victim-specific channel and pins this message
  • Victim machine reads pinned messages from its dedicated channel, parses the message, and executes the requested command

Aside from these changes we also found new information from two Slack tokens we found hardcoded into binary (similar to the previous version).

Figure. 4

These tokens can be used to query the Slack API for some metadata information, such as team info, user list, channel list (which in this case would be the victims). Investigating this information reveals that, at the time of this research, the workspace has been active since at least the end of May and one of the users had their time zone set to “Korea Standard Time.”

When checking both token response headers, we can see the following difference in OAuth scopes:

C&C token:

Figure. 3

Notify token:

Figure. 4

The C&C token contains “admin” in its OAuth scope, which allows it to “administer your workspace.”

If the operator needs to change these tokens, then he can update them by updating the content of the toni132[.]pen[.]io webpage. The source code of this webpage is parsed for certain keywords: HELLO^, WHAT^, !!!.

If the desired keywords are found, tokens are parsed out and updated:

Figure. 5

Command communication

In detail, the communication works as follows: If the operator (one of the users from user list) wants to send a command to the victim, he posts and pins a message onto the corresponding channel. The text value of the message specifies which command should be executed.

The example below shows a “capture” command for taking screenshot, pinned to a certain channel by an operator.

Figure. 8

The command for listing files in a given directory may look like the following:

Figure. 9

And listing all files on the victim’s desktop may look like the following:

Figure. 10

The victim machine then reads the command, executes it, and (in the case of taking a screenshot) it responds by uploading the screenshot and sharing the link to the file. Notice the “upload” value is set to “true.”

Figure. 11

Other supported commands are exec, dnexec, capture, file, drive, reg, and tmout, which are similar to the ones we described in our previous post on SLUB. In the case of running a command, the command output results are uploaded to, the same as in the previous post.

During this attack, we found that the SLUB malware used two Slack teams “sales-yww9809” and “marketing-pwx7789.” The workspaces creation time is unknown. Inside team sales-yww9809, it contained two users, Lomin (lomio8158@cumallover[.]me) and Yolo (yolo1617@cumallover[.]me) who were both created on the same day (May 23, 2019). Lomin’s timezone was GMT time and mentioned Africa/Monrovia, while Yolo’s was Korea Standard Time and mentioned Asia/Seoul. The other team, marketing-pwx7789, also has two users named Boshe (boshe3143@firemail[.]cc) and Forth (misforth87u@cock[.]lu). They were also created on the same day (April 17, 2019). And similar to previous one, Boshe has the timezone set in Africa/Monrovia with GMT while Forth is in Asia/Seoul with Korea Standard Time.

These email addresses used a free encrypted email service; we could not find additional information on those usernames.


Once again, this attack shows a professional level when it comes to the OpSec deployed. The constant use of online services like Slack,, and makes it harder to track this threat actor.

Similar to the previous variant, this one has been very discreet and has not been spread at a wide scale. We could not find any other variant anywhere else, nor did we find any other ongoing campaign run by these attackers.

We are once again confident that this attack targets specific individuals visiting that particular watering hole, with surveillance as a highly probable final goal.

In response to this incident, Slack replied with the following:

As noted in their previous post, and detailed further in this new post, Trend Micro has discovered, and is actively tracking, a third party that is attempting to use targeted malware known as SLUB, and which attempts to use Slack related to this effort. As part of the Trend Micro investigation, we were made aware of free workspaces being used in this manner. We investigated and immediately shut down the reported Slack Workspaces as a violation of our terms of service. We confirmed that Slack was not compromised in any way as part of this incident. We are committed to preventing the misuse of our platform and we will take action against anyone who violates our terms of service

Trend Micro Deep Security customers are protected by the following rules:

  • 1009067-Microsoft Windows VBScript Engine Remote Code Execution Vulnerability (CVE-2018-8174)
  • 1009655-Microsoft Internet Explorer Scripting Engine Memory Corruption Vulnerability (CVE-2019-0752)
  • 1009647-Microsoft Windows GDI Elevation Of Privilege Vulnerability (CVE-2019-0803)
  • 1009582-Microsoft Windows Win32k Elevation Of Privilege Vulnerability (CVE-2019-0808)

Indicators of compromise

SHA 256AttributionFilename
482a8e66b49372269f204afcd3abca8cc0f73d61b65ccca0981addf17d720f58Slub loader (cve-2019-0808)Thumb-403720952_ax14pavm_image14.jpg
20c807d48fecbe04672250c37b4585b3433e8e4b6205be963e0b36d87c1e68edSlub loader (cve-2019-0808)637155112_zlwxf13b_eab192aa14.jpg
c9933e93cae1261d0f935e1fee95238cb70a776e9689bba9c28a67d9dc74b1f3Slub loader (cve-2019-0803)Thumb-403720952_ax14pavm_image13.jpg
d118fd11d0d048193f5c3e13773082c2deed203279c961cddc5ed4ba60a75665Slub loader (cve-2019-0803)637155112_zlwxf13b_eab192aa13.jpg
4b0650f4ddf3c4e182eea8a0d03fd44d5e76ed1d82283949ddf7cb467495990dSlub malware (x32)Thumb-403720952_ax14pavm_image16.jpg
4ff9f6f67c9f330e6afd32762f3d40ffea8651206c3cf935fc94e57ef9f34190Slub malware (x32)637155112_zlwxf13b_eab192aa16.jpg
5dd2e2d59eb54e4a7b1756ca7a6c1e4ce0551ac793cf8791211c7c81fb644561Slub malware (x64)Thumb-403720952_ax14pavm_image15.jpg
C6352f9940ccf205879fcddfc69b18dfe39272689b859cad3b5399a8fe37e9a3Slub malware (x64)637155112_zlwxf13b_eab192aa15.jpg
8b576ae94749984fe294b96b77e28b7f5007934da53689a37ea09cf7971177a3Slub malware (x64)637155112_zlwxf13b_eab192aa17.jpg

The post SLUB Gets Rid of GitHub, Intensifies Slack Use appeared first on .