The SideWalk backdoor gets a Linux variant | Honor Tech

Posted on

ESET researchers have uncovered one other instrument within the already in depth arsenal of the SparklingGoblin APT group: a Linux variant of the SideWalk backdoor

ESET researchers have found a Linux variant of the SideWalk backdoor, one of many a number of customized implants utilized by the SparklingGoblin APT group. This variant was deployed towards a Hong Kong college in February 2021, the identical college that had already been focused by SparklingGoblin throughout the pupil protests in Could 2020. We initially named this backdoor StageClient, however now check with it merely as SideWalk Linux. We additionally found {that a} beforehand identified Linux backdoor – the Specter RAT, first documented by 360 Netlab – can be really a SideWalk Linux variant, having a number of commonalities with the samples we recognized.

SparklingGoblin is an APT group whose ways, strategies, and procedures (TTPs) partially overlap with APT41 and BARIUM. It makes use of Motnug and ChaCha20-based loaders, the CROSSWALK and SideWalk backdoors, together with Korplug (aka PlugX) and Cobalt Strike. Whereas the group targets largely East and Southeast Asia, we have now additionally seen SparklingGoblin concentrating on a broad vary of organizations and verticals world wide, with a specific give attention to the educational sector. SparklingGoblin is without doubt one of the teams with entry to the ShadowPad backdoor.

This blogpost paperwork SideWalk Linux, its victimology, and its quite a few similarities with the initially found SideWalk backdoor.


The SideWalk backdoor is unique to SparklingGoblin. Along with the a number of code similarities between the Linux variants of SideWalk and varied SparklingGoblin instruments, one of many SideWalk Linux samples makes use of a C&C handle (66.42.103[.]222) that was beforehand utilized by SparklingGoblin.

Contemplating all of those components, we attribute with excessive confidence SideWalk Linux to the SparklingGoblin APT group.


Despite the fact that there are numerous SideWalk Linux samples, as we now know them, on VirusTotal, in our telemetry we have now discovered just one sufferer compromised with this SideWalk variant: a Hong Kong college that, amidst pupil protests, had beforehand been focused by each SparklingGoblin (utilizing the Motnug loader and the CROSSWALK backdoor) and Fishmonger (utilizing the ShadowPad and Spyder backdoors). Be aware that at the moment we put these two completely different clusters of exercise underneath the broader Winnti Group denomination.

SparklingGoblin first compromised this explicit college in Could 2020, and we first detected the Linux variant of SideWalk in that college’s community in February 2021. The group constantly focused this group over a protracted time frame, efficiently compromising a number of key servers, together with a print server, an e-mail server, and a server used to handle pupil schedules and course registrations.

The highway to Sidewalk Linux

SideWalk, which we first described in its Home windows type in our blogpost on August 24th, 2021, is a multipurpose backdoor that may load extra modules despatched from the C&C server. It makes use of Google Docs as a dead-drop resolver, and Cloudflare employees as its C&C server. It may correctly deal with communication behind a proxy.

The compromise chain is at the moment unknown, however we expect that the preliminary assault vector might have been exploitation. This speculation relies on the 360 Netlab article describing the Specter botnet concentrating on IP cameras, and NVR and DVR units, and the truth that the Hong Kong sufferer used a weak WordPress server, since there have been many makes an attempt to put in varied webshells.

We first documented the Linux variant of SideWalk as StageClient on July 2nd, 2021, with out making the connection at the moment to SparklingGoblin and its customized SideWalk backdoor. The unique identify was used due to the repeated appearances of the string StageClient within the code.

Whereas researching StageClient additional, we discovered a blogpost in regards to the Specter botnet described by 360 Netlab. That blogpost describes a modular Linux backdoor with versatile configuration that makes use of a ChaCha20 encryption variant – principally a subset of StageClient’s performance. Additional inspection confirmed this speculation; we moreover discovered an enormous overlap in performance, infrastructure, and symbols current in all of the binaries.

We in contrast the StageClient pattern E5E6E100876E652189E7D25FFCF06DE959093433 with Specter samples 7DF0BE2774B17F672B96860D013A933E97862E6C and located quite a few similarities, a few of which we record under.

First, there may be an overlap in C&C instructions. Subsequent, the samples have the identical construction of configuration and encryption methodology (see Determine 1 and Determine 2).

The SideWalk backdoor gets a Linux variant | Honor Tech You never walk alone The SideWalk backdoor gets a

Determine 1. StageClient’s configuration with modified symbols

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 848 You never walk alone The SideWalk backdoor gets a

Determine 2. Specter’s configuration with modified symbols

Moreover, the samples’ modules are managed in virtually the identical approach, and nearly all of the interfaces are an identical; modules of StageClient solely must implement one extra handler, which is for closing the module. Three out of the 5 identified modules are virtually an identical.

Lastly, we might see hanging overlaps within the community protocols of the in contrast samples. A variant of ChaCha20 is used twice for encryption with LZ4 compression in the exact same approach. Each StageClient and Specter create various threads (see Determine 3 and Determine 4) to handle sending and receiving asynchronous messages together with heartbeats.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 236 You never walk alone The SideWalk backdoor gets a

Determine 3. Part of StageClient’s StageClient::StartNetwork operate

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 893 You never walk alone The SideWalk backdoor gets a

Determine 4. Part of Specter’s StartNetwork operate

Regardless of all these hanging similarities, there are a number of adjustments. Probably the most notable ones are the next:

  • The authors switched from the C language to C++. The reason being unknown, however it must be simpler to implement such modular structure in C++ resulting from its polymorphism help.
  • An choice to trade messages over HTTP was added (see Determine 5 and Determine 6).

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 778 You never walk alone The SideWalk backdoor gets a

Determine 5. Sending a message in StageClient

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 354 You never walk alone The SideWalk backdoor gets a

Determine 6. Sending a message in Specter

  • Downloadable plugins have been changed with precompiled modules that fulfill the identical goal; various new instructions and two new modules have been added.
  • Added the module TaskSchedulerMod, which operates as a built-in cron utility. Its cron desk is saved in reminiscence; the roles are acquired over the community and executed as shell instructions.
  • Added the module SysInfoMgr, which offers details about the underlying system such because the record of put in packages and {hardware} particulars.

These similarities persuade us that Specter and StageClient are from the identical malware household. Nevertheless, contemplating the quite a few code overlaps between the StageClient variant used towards the Hong Kong college in February 2021 and SideWalk for Home windows, as described within the subsequent part, we now imagine that Specter and StageClient are each Linux variants of SideWalk, so we have now determined to check with them as SideWalk Linux.

Similarities with the Home windows variant

SideWalk Home windows and SideWalk Linux share too many similarities to explain inside the confines of this blogpost, so right here we solely cowl essentially the most hanging ones.


An apparent similarity is noticeable within the implementations of ChaCha20 encryption: each variants use a counter with an preliminary worth of 0x0B, which was beforehand talked about in our blogpost as a specificity of SideWalk’s ChaCha20 implementation.

Software program structure

One SideWalk particularity is using a number of threads to execute one particular job. We seen that in each variants there are precisely 5 threads executed concurrently, every of them having a selected job. The next record describes the operate of every; the thread names are from the code:

  • StageClient::ThreadNetworkReverse
    If a connection to the C&C server will not be already established, this thread periodically makes an attempt to retrieve the native proxy configuration and the C&C server location from the dead-drop resolver. If the earlier step was profitable, it makes an attempt to provoke a connection to the C&C server.
  • StageClient::ThreadHeartDetect
    If the backdoor didn’t obtain a command within the specified period of time, this thread can terminate the reference to the C&C server or change to a “nap” mode that introduces minor adjustments to the habits.
  • StageClient::ThreadPollingDriven
    If there is no such thing as a different queued knowledge to ship, this thread periodically sends a heartbeat command to the C&C server that may moreover include the present time.
  • StageClient::ThreadBizMsgSend
    This thread periodically checks whether or not there may be knowledge to be despatched within the message queues utilized by all the opposite threads and, in that case, processes it.
  • StageClient::ThreadBizMsgHandler
    This thread periodically checks whether or not there are any pending messages acquired from the C&C server and, in that case, handles them.


As in SideWalk Home windows, the configuration is decrypted utilizing ChaCha20.


First, earlier than decrypting, there’s a knowledge integrity test. This test is analogous in each implementations of SideWalk (see Determine 7 and Determine 8): an MD5 hash is computed on the ChaCha20 nonce concatenated to the encrypted configuration knowledge. This hash is then checked towards a predefined worth, and if not equal, SideWalk exits.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 7 You never walk alone The SideWalk backdoor gets a

Determine 7. SideWalk Linux: Configuration integrity test

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 389 You never walk alone The SideWalk backdoor gets a

Determine 8. SideWalk Home windows: Configuration integrity test


Determine 9 presents excerpts of decrypted configurations from the samples that we analyzed.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 995 You never walk alone The SideWalk backdoor gets a

Determine 9. Configuration elements from E5E6E100876E652189E7D25FFCF06DE959093433 (left) and FA6A40D3FC5CD4D975A01E298179A0B36AA02D4E (proper)

The SideWalk Linux config incorporates much less info than the SideWalk Home windows one. This is smart as a result of nearly all of the configuration artifacts in SideWalk Home windows are used as cryptography and community parameters, whereas most of those are inner in SideWalk Linux.

Decryption utilizing ChaCha20

As beforehand talked about, SideWalk makes use of a most important world construction to retailer its configuration. This configuration is first decrypted utilizing the modified implementation of ChaCha20, as seen in Determine 10.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 573 You never walk alone The SideWalk backdoor gets a The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 440 You never walk alone The SideWalk backdoor gets a

Determine 10. ChaCha20 decryption name in SideWalk Home windows (left) and in SideWalk Linux (proper)

Be aware that the ChaCha20 secret is precisely the identical in each variants, strengthening the connection between the 2.

Lifeless-drop resolver

The dead-drop resolver payload is an identical in each samples. As a reminder from our blogpost on SideWalk, Determine 11 depicts the format of the payload that’s fetched from the dead-drop resolver.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 872 You never walk alone The SideWalk backdoor gets a

Determine 11. Format of the string hosted within the Google Docs doc

For the primary delimiter, we discover that the PublicKey: a part of the string is ignored; the string AE68[…]3EFF is immediately searched, as proven in Determine 12.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 586 You never walk alone The SideWalk backdoor gets a The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 739 You never walk alone The SideWalk backdoor gets a

Determine 12. SideWalk Linux’s first delimiter routine (left), finish delimiter and center delimiter routines (proper)

The delimiters are an identical, in addition to the entire decoding algorithm.

Sufferer fingerprinting

With the intention to fingerprint the sufferer, completely different artifacts are gathered on the sufferer’s machine. We seen that the fetched info is strictly the identical, to the extent of it even being fetched in the identical order.

Because the boot time in both case is a Home windows-compliant time format, we will hypothesize that the operators’ controller runs underneath Home windows, and that the controller is similar for each Linux and Home windows victims. One other argument supporting this speculation is that the ChaCha20 keys utilized in each implementations of SideWalk are the identical.

Communication protocol

Knowledge serialization

The communication protocol between the contaminated machine and the C&C is HTTP or HTTPS, relying on the configuration, however in each circumstances, the info is serialized in the identical method. Not solely is the implementation very comparable, however the an identical encryption secret is utilized in each implementations, which, once more, accentuates the similarity between the 2 variants.

POST requests

Within the POST requests utilized by SideWalk to fetch instructions and payloads from the C&C server, one noticeable level is using the 2 parameters gtsid and gtuvid, as seen in Determine 13. Equivalent parameters are used within the Linux variant.

Determine 13. Instance of a POST request utilized by SideWalk Home windows

One other fascinating level is that the Home windows variant runs as absolutely position-independent shellcode, whereas the Linux variant is a shared library. Nevertheless, we expect the malware’s authors might have simply taken an additional step, utilizing a instrument resembling sRDI to transform a compiled SideWalk PE to shellcode as an alternative of manually writing the shellcode.


Solely 4 instructions are usually not applied or applied in a different way within the Linux variant, as listed in Desk 1. All the opposite instructions are current – even with the identical IDs.

Desk 1. Instructions with completely different or lacking implementation within the Linux model of SideWalk

Command ID (from C&C) Home windows variants Linux variants
0x7C Load a plugin despatched by the C&C server. Not applied in SideWalk Linux.
0x82 Accumulate area details about operating processes, and homeowners (proprietor SID, account identify, course of identify, area info). Do nothing.
0x8C Knowledge serialization operate. Instructions that aren’t dealt with, however fall within the default case, which is broadcasting a message to all of the loaded modules.
0x8E Write the acquired knowledge to the file positioned at %AllUsersProfile%\UTXP\nat\<filename>, the place <filename> is a hash of the worth returned by VirtualAlloc at every execution of the malware.


Within the Linux variant, we noticed a specificity that was not discovered within the Home windows variant: a model quantity is computed (see Determine 14).

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 51 You never walk alone The SideWalk backdoor gets a

Determine 14. Versioning operate in SideWalk Linux

The hardcoded date may very well be the start or finish of improvement of this model of SideWalk Linux. The ultimate computation is made out of the yr, day, and month, from the worth Oct 26 2020. On this case, the result’s 1171798691840.


In SideWalk Linux variants, modules are in-built; they can’t be fetched from the C&C server. That may be a notable distinction from the Home windows variant. A few of these built-in functionalities, like gathering system info (SysInfoMgr, for instance) resembling community configuration, are finished immediately by devoted features within the Home windows variant. Within the Home windows variant, some plugins may be added via C&C communication.

Protection evasion

The Home windows variant of SideWalk goes to nice lengths to hide the aims of its code. It trimmed out all knowledge and code that was pointless for its execution and encrypted the remainder. However, the Linux variants include symbols and depart some distinctive authentication keys and different artifacts unencrypted, which makes the detection and evaluation considerably simpler.

Moreover, the a lot increased variety of inlined features within the Home windows variant means that its code was compiled with the next stage of compiler optimizations.


The backdoor that was used to assault a Hong Kong college in February 2021 is similar malware household because the SideWalk backdoor, and really is a Linux variant of the backdoor. This Linux model reveals a number of similarities with its Home windows counterpart together with varied novelties.


For any inquiries about our analysis printed on WeLiveSecurity, please contact us at [email protected]

ESET Analysis now additionally gives personal APT intelligence studies and knowledge feeds. For any inquiries about this service, go to the ESET Risk Intelligence web page.



A complete record of Indicators of Compromise and samples may be present in our GitHub repository.

SHA-1 Filename ESET detection identify Description
FA6A40D3FC5CD4D975A01E298179A0B36AA02D4E ssh_tunnel1_0 Linux/SideWalk.L SideWalk Linux (StageClient variant)
7DF0BE2774B17F672B96860D013A933E97862E6C hw_ex_watchdog.exe Linux/SideWalk.B SideWalk Linux (Specter variant)


Area IP First seen Notes
rec.micosoft[.]ga 172.67.8[.]59 2021-06-15 SideWalk C&C server (StageClient variant)
66.42.103[.]222 2020-09-25 SideWalk C&C server (Specter variant from 360 Netlab’s blogpost)

MITRE ATT&CK strategies

This desk was constructed utilizing model 11 of the MITRE ATT&CK framework.

Tactic ID Title Description
Useful resource Growth T1587.001 Develop Capabilities: Malware SparklingGoblin makes use of its personal malware arsenal.
Discovery T1016 System Community Configuration Discovery SideWalk Linux has the flexibility to search out the community configuration of the compromised machine, together with the proxy configuration.
Command and Management T1071.001 Software Layer Protocol: Internet Protocols SideWalk Linux communicates by way of HTTPS with the C&C server.
T1573.001 Encrypted Channel: Symmetric Cryptography SideWalk Linux makes use of ChaCha20 to encrypt communication knowledge.

The SideWalk backdoor gets a Linux variant | Honor Tech 1663258932 341 You never walk alone The SideWalk backdoor gets a

You by no means stroll alone: The SideWalk backdoor will get a Linux variant