Linux malware strengthens hyperlinks between Lazarus and the 3CX provide‑chain assault

Similarities with newly found Linux malware utilized in Operation DreamJob corroborate the speculation that the notorious North Korea-aligned group is behind the 3CX supply-chain assault
ESET researchers have found a brand new Lazarus Operation DreamJob marketing campaign focusing on Linux customers. Operation DreamJob is the title for a sequence of campaigns the place the group makes use of social engineering strategies to compromise its targets, with faux job provides because the lure. On this case, we have been capable of reconstruct the total chain, from the ZIP file that delivers a faux HSBC job supply as a decoy, up till the ultimate payload: the SimplexTea Linux backdoor distributed by way of an OpenDrive cloud storage account. To our data, that is the primary public point out of this main North Korea-aligned risk actor utilizing Linux malware as a part of this operation.
Moreover, this discovery helped us verify with a excessive degree of confidence that the current 3CX supply-chain assault was in truth carried out by Lazarus – a hyperlink that was suspected from the very starting and demonstrated by a number of safety researchers since. On this blogpost, we corroborate these findings and supply further proof in regards to the connection between Lazarus and the 3CX supply-chain assault.
The 3CX supply-chain assault
3CX is a global VoIP software program developer and distributor that gives cellphone system providers to many organizations. In accordance with its web site, 3CX has greater than 600,000 clients and 12,000,000 customers in numerous sectors together with aerospace, healthcare, and hospitality. It gives shopper software program to make use of its techniques through an online browser, cellular app, or a desktop utility. Late in March 2023, it was found that the desktop utility for each Home windows and macOS contained malicious code that enabled a bunch of attackers to obtain and run arbitrary code on all machines the place the appliance was put in. Quickly, it was decided that this malicious code was not one thing that 3CX added themselves, however that 3CX was compromised and that its software program was utilized in a supply-chain assault pushed by exterior risk actors to distribute further malware to particular 3CX clients.
This cyber-incident has made headlines in current days. Initially reported on March 29th, 2023 in a Reddit thread by a CrowdStrike engineer, adopted by an official report by CrowdStrike, stating with excessive confidence that LABIRINTH CHOLLIMA, the corporate’s codename for Lazarus, was behind the assault (however omitting any proof backing up the declare). Due to the seriousness of the incident, a number of safety firms began to contribute their summaries of the occasions, specifically Sophos, Check Point, Broadcom, Trend Micro, and extra.
Additional, the a part of the assault affecting techniques working macOS was lined intimately in a Twitter thread and a blogpost by Patrick Wardle.
Timeline of occasions

Determine 1. Timeline of occasions associated to the preparation and distribution of 3CX trojanized functions
The timeline reveals that the perpetrators had deliberate the assaults lengthy earlier than execution; as early as December 2022. This means they already had a foothold inside 3CX’s community late final yr.
Whereas the trojanized 3CX macOS utility reveals it was signed in late January, we didn’t see the unhealthy utility in our telemetry till February 14th, 2023. It’s unclear whether or not the malicious replace for macOS was distributed previous to that date.
Though ESET telemetry reveals the existence of the macOS second-stage payload as early as February, we didn’t have the pattern itself, nor metadata to tip us off about its maliciousness. We embody this data to assist defenders decide how far again techniques may need been compromised.
A number of days earlier than the assault was publicly revealed, a mysterious Linux downloader was submitted to VirusTotal. It downloads a brand new Lazarus malicious payload for Linux and we clarify its relationship to the assault later within the textual content.
Attribution of the 3CX supply-chain assault to Lazarus
What’s already printed
There may be one area that performs a big position in our attribution reasoning: journalide[.]org. It’s talked about in a number of the vendor stories linked above, however its presence isn’t defined. Curiously, articles by SentinelOne and ObjectiveSee don’t point out this area. Neither does a blogpost by Volexity, which even shunned offering attribution, stating “Volexity can’t presently map the disclosed exercise to any risk actor”. Its analysts have been among the many first to research the assault in depth and so they created a software to extract a listing of C&C servers from encrypted icons on GitHub. This software is beneficial, because the attackers didn’t embed the C&C servers instantly within the intermediate levels, however quite used GitHub as a lifeless drop resolver. The intermediate levels are downloaders for Home windows and macOS that we denote as IconicLoaders, and the payloads they get as IconicStealer and UpdateAgent, respectively.
On March 30th, Joe Desimone, a safety researcher from Elastic Security, was among the many first to offer, in a Twitter thread, substantial clues that the 3CX-driven compromises are in all probability linked to Lazarus. He noticed {that a} shellcode stub prepended to the payload from d3dcompiler_47.dll is much like AppleJeus loader stubs attributed to Lazarus by CISA again in April 2021.
On March 31st it was being reported that 3CX had retained Mandiant to offer incident response providers regarding the supply-chain assault.
On April 3rd, Kaspersky, by way of its telemetry, confirmed a direct relationship between the 3CX supply-chain victims and the deployment of a backdoor dubbed Gopuram, each involving payloads with a typical title, guard64.dll. Kaspersky information reveals that Gopuram is linked to Lazarus as a result of it coexisted on sufferer machines alongside AppleJeus, malware that was already attributed to Lazarus. Each Gopuram and AppleJeus have been noticed in assaults towards a cryptocurrency firm.
Then, on April 11th, the CISO of 3CX summarized Mandiant’s interim findings in a blogpost. In accordance with that report, two Home windows malware samples, a shellcode loader known as TAXHAUL and a posh downloader named COLDCAT, have been concerned within the compromise of 3CX. No hashes have been offered, however Mandiant’s YARA rule, named TAXHAUL, additionally triggers on different samples already on VirusTotal:
- SHA-1: 2ACC6F1D4656978F4D503929B8C804530D7E7CF6 (ualapi.dll),
- SHA-1: DCEF83D8EE080B54DC54759C59F955E73D67AA65 (wlbsctrl.dll)
The filenames, however not MD5s, of those samples coincide with these from Kaspersky’s blogpost. Nevertheless, 3CX explicitly states that COLDCAT differs from Gopuram.
The following part accommodates a technical description of the brand new Lazarus malicious Linux payload we lately analyzed, in addition to the way it helped us strengthen the present hyperlink between Lazarus and the 3CX compromise.
Operation DreamJob with a Linux payload
The Lazarus group’s Operation DreamJob includes approaching targets by way of LinkedIn and tempting them with job provides from trade leaders. The title was coined by ClearSky in a paper printed in August 2020. That paper describes a Lazarus cyberespionage marketing campaign focusing on protection and aerospace firms. The exercise has overlap with what we name Operation In(ter)ception, a sequence of cyberespionage assaults which were ongoing since not less than September 2019. It targets aerospace, navy, and protection firms and makes use of particular malicious, initially Home windows-only, instruments. Throughout July and August 2022, we discovered two situations of Operation In(ter)ception focusing on macOS. One malware pattern was submitted to VirusTotal from Brazil, and one other assault focused an ESET person in Argentina. A number of weeks in the past, a local Linux payload was discovered on VirusTotal with an HSBC-themed PDF lure. This completes Lazarus’s skill to focus on all main desktop working techniques.
On March 20th, a person within the nation of Georgia submitted to VirusTotal a ZIP archive known as HSBC job supply.pdf.zip. Given different DreamJob campaigns by Lazarus, this payload was in all probability distributed by way of spearphishing or direct messages on LinkedIn. The archive accommodates a single file: a local 64-bit Intel Linux binary written in Go and named HSBC job supply․pdf.
Curiously, the file extension will not be .pdf. It’s because the obvious dot character within the filename is a leader dot represented by the U+2024 Unicode character. Using the chief dot within the filename was in all probability an try and trick the file supervisor into treating the file as an executable as a substitute of a PDF. This might trigger the file to run when double-clicked as a substitute of opening it with a PDF viewer. On execution, a decoy PDF is exhibited to the person utilizing xdg-open, which can open the doc utilizing the person’s most well-liked PDF viewer (see Determine 3). We determined to name this ELF downloader OdicLoader, because it has an analogous position because the IconicLoaders on different platforms and the payload is fetched from OpenDrive.
OdicLoader drops a decoy PDF doc, shows it utilizing the system’s default PDF viewer (see Determine 2), after which downloads a second-stage backdoor from the OpenDrive cloud service. The downloaded file is saved in ~/.config/guiconfigd (SHA-1: 0CA1723AFE261CD85B05C9EF424FC50290DCE7DF). We name this second-stage backdoor SimplexTea.
Because the final step of its execution, the OdicLoader modifies ~/.bash_profile, so SimplexTea is launched with Bash and its output is muted (~/.config/guiconfigd >/dev/null 2>&1).

Determine 2. Illustration of the possible chain of compromise

Determine 3. An HSBC-themed lure within the Linux DreamJob marketing campaign
SimplexTea is a Linux backdoor written in C++. As highlighted in Desk 1, its class names are similar to perform names present in a pattern, with filename sysnetd, submitted to VirusTotal from Romania (SHA-1: F6760FB1F8B019AF2304EA6410001B63A1809F1D). Due to the similarities in school names and performance names between SimplexTea and sysnetd, we consider SimplexTea is an up to date model, rewritten from C to C++.
Desk 1. Comparability of the unique image names from two Linux backdoors submitted to VirusTotal
guiconfigd |
sysnetd |
CMsgCmd::Begin(void) | MSG_Cmd |
CMsgSafeDel::Begin(void) | MSG_Del |
CMsgDir::Begin(void) | MSG_Dir |
CMsgDown::Begin(void) | MSG_Down |
CMsgExit::Begin(void) | MSG_Exit |
CMsgReadConfig::Begin(void) | MSG_ReadConfig |
CMsgRun::Begin(void) | MSG_Run |
CMsgSetPath::Begin(void) | MSG_SetPath |
CMsgSleep::Begin(void) | MSG_Sleep |
CMsgTest::Begin(void) | MSG_Test |
CMsgUp::Begin(void) | MSG_Up |
CMsgWriteConfig::Begin(void) | MSG_WriteConfig |
MSG_GetComInfo | |
CMsgHibernate::Begin(void) | |
CMsgKeepCon::Begin(void) | |
CMsgZipDown::Begin(void) | |
CMsgZip::StartZip(void *) | |
CMsgZip::Begin(void) | |
CHttpWrapper::RecvData(uchar *&,uint *,uint,signed char) | |
RecvMsg | |
CHttpWrapper::SendMsg(_MSG_STRUCT *) | SendMsg |
CHttpWrapper::SendData(uchar *,uint,uint) | |
CHttpWrapper::SendMsg(uint,uint,uchar *,uint,uint) | |
CHttpWrapper::SendLoginData(uchar *,uint,uchar *&,uint *) |
How is sysnetd associated to Lazarus? The next part reveals similarities with Lazarus’s Home windows backdoor known as BADCALL.
BADCALL for Linux
We attribute sysnetd to Lazarus due to its similarities with the next two recordsdata (and we consider that sysnetd is a Linux variant of the group’s backdoor for Home windows known as BADCALL):
- P2P_DLL.dll (SHA-1: 65122E5129FC74D6B5EBAFCC3376ABAE0145BC14), which reveals code similarities to sysnetd within the type of domains used as a entrance for faux TLS connection (see Determine 4). It was attributed to Lazarus by CISA in December 2017. From September 2019, CISA began to name newer variations of this malware BADCALL (SHA-1: D288766FA268BC2534F85FD06A5D52264E646C47).

Determine 4. Similarities between a Home windows and a Linux variant of BADCALL (a listing of domains used as a entrance for a faux TLS connection)
- prtspool (SHA-1: 58B0516D28BD7218B1908FB266B8FE7582E22A5F), which reveals code similarities to sysnetd (see Determine 5). It was attributed to Lazarus by CISA in February 2021. Notice as effectively that SIMPLESEA, a macOS backdoor discovered throughout the 3CX incident response, implements the A5/1 stream cipher.

Determine 5. Similarities between AppleJeus for macOS and the Linux variant of BADCALL (the important thing for the A5/1 stream cipher)
This Linux model of the BADCALL backdoor, sysnetd, hundreds its configuration from a file named /tmp/vgauthsvclog. Since Lazarus operators have beforehand disguised their payloads, the usage of this title, which is utilized by the VMware Visitor Authentication service, means that the focused system could also be a Linux VMware digital machine. Curiously, the XOR key on this case is similar as one utilized in SIMPLESEA from the 3CX investigation.

Determine 6. Loading a configuration file by BADCALL for Linux, cf. Determine 8
Looking on the three 32-bit integers, 0xC2B45678, 0x90ABCDEF, and 0xFE268455 from Determine 5, which characterize a key for a customized implementation of the A5/1 cipher, we realized that the identical algorithm and the an identical keys have been utilized in Home windows malware that dates again to the top of 2014 and was concerned in one of the infamous Lazarus circumstances: the cybersabotage of Sony Photos Leisure (SHA-1: 1C66E67A8531E3FF1C64AE57E6EDFDE7BEF2352D).

Determine 7. The decryption routine shared between the BADCALL for Linux and focused harmful malware for Home windows from 2014
Further attribution information factors
To recap what we’ve lined thus far, we attribute the 3CX supply-chain assault to the Lazarus group with a excessive degree of confidence. That is primarily based on the next components:
- Malware (the intrusion set):
- The IconicLoader (samcli.dll) makes use of the identical kind of robust encryption – AES-GCM – as SimplexTea (whose attribution to Lazarus was established through the similarity with BALLCALL for Linux); solely the keys and initialization vectors differ.
- Primarily based on the PE Wealthy Headers, each IconicLoader (samcli.dll) and IconicStealer (sechost.dll) are initiatives of an analogous dimension and compiled in the identical Visible Studio atmosphere because the executables iertutil.dll (SHA-1: 5B03294B72C0CAA5FB20E7817002C600645EB475) and iertutil.dll (SHA-1: 7491BD61ED15298CE5EE5FFD01C8C82A2CDB40EC) reported within the Lazarus cryptocurrency campaigns by Volexity and Microsoft. We embody beneath the YARA rule RichHeaders_Lazarus_NukeSped_IconicPayloads_3CX_Q12023, which flags all these samples, and no unrelated malicious or clear recordsdata, as examined on the present ESET databases and up to date VirusTotal submissions.
- SimplexTea payload hundreds its configuration in a really related technique to the SIMPLESEA malware from the 3CX official incident response. The XOR key differs (0x5E vs. 0x7E), however the configuration bears the identical title: apdl.cf (see Determine 8).

Determine 8. Loading a configuration file by SimplexTea for Linux, cf. Determine 6
- Infrastructure:
- There may be shared community infrastructure with SimplexTea, because it makes use of https://journalide[.]org/djour.php because it C&C, whose area is reported within the official results of the incident response of the 3CX compromise by Mandiant.

Determine 9. A hardcoded URL in SimplexTea for Linux
Conclusion
The 3CX compromise has gained numerous consideration from the safety neighborhood since its disclosure on March 29th. This compromised software program, deployed on numerous IT infrastructures, which permits the obtain and execution of any form of payload, can have devastating impacts. Sadly, no software program writer is proof against being compromised and inadvertently distributing trojanized variations of their functions.
The stealthiness of a supply-chain assault makes this technique of distributing malware very interesting from an attacker’s perspective. Lazarus has already used this system previously, focusing on South Korean customers of WIZVERA VeraPort software program in 2020. Similarities with current malware from the Lazarus toolset and with the group’s typical strategies strongly recommend the current 3CX compromise is the work of Lazarus as effectively.
It’s also attention-grabbing to notice that Lazarus can produce and use malware for all main desktop working techniques: Home windows, macOS, and Linux. Each Home windows and macOS techniques have been focused throughout the 3CX incident, with 3CX’s VoIP software program for each working techniques being trojanized to incorporate malicious code to fetch arbitrary payloads. Within the case of 3CX, each Home windows and macOS second-stage malware variations exist. This text demonstrates the existence of a Linux backdoor that in all probability corresponds to the SIMPLESEA macOS malware seen within the 3CX incident. We named this Linux element SimplexTea and confirmed that it’s a part of Operation DreamJob, Lazarus’s flagship marketing campaign utilizing job provides to lure and compromise unsuspecting victims.
ESET Analysis provides non-public APT intelligence stories and information feeds. For any inquiries about this service, go to the ESET Threat Intelligence web page.
IoCs
Recordsdata
SHA-1 | Filename | ESET detection title | Description |
---|---|---|---|
0CA1723AFE261CD85B05C9EF424FC50290DCE7DF | guiconfigd | Linux/NukeSped.E | |
3A63477A078CE10E53DFB5639E35D74F93CEFA81 | HSBC_job_offer․pdf | Linux/NukeSped.E | OdicLoader, a 64-bit downloader for Linux, written in Go. |
9D8BADE2030C93D0A010AA57B90915EB7D99EC82 | HSBC_job_offer.pdf.zip | Linux/NukeSped.E | A ZIP archive with a Linux payload, from VirusTotal. |
F6760FB1F8B019AF2304EA6410001B63A1809F1D | sysnetd | Linux/NukeSped.G | BADCALL for Linux. |
Community
IP deal with | Area | Internet hosting supplier | First seen | Particulars |
---|---|---|---|---|
23.254.211[.]230 | N/A | Hostwinds LLC. | N/A | C&C server for BADCALL for Linux |
38.108.185[.]79 38.108.185[.]115 |
od[.]lk | Cogent Communications | Distant OpenDrive storage containing SimplexTea (/d/NTJfMzg4MDE1NzJf/vxmedia) | |
172.93.201[.]88 | journalide[.]org | Nexeon Applied sciences, Inc. | C&C server for SimplexTea (/djour.php) |
MITRE ATT&CK strategies
Tactic | ID | Identify | Description |
---|---|---|---|
Reconnaissance | T1593.001 | Search Open Web sites/Domains: Social Media | Lazarus attackers in all probability approached a goal with a faux HSBC-themed job supply that may match the goal’s curiosity. This has been accomplished largely through LinkedIn previously. |
Useful resource Growth | T1584.001 | Purchase Infrastructure: Domains | In contrast to many earlier circumstances of compromised C&Cs utilized in Operation DreamJob, Lazarus operators registered their very own area for the Linux goal. |
T1587.001 | Develop Capabilities: Malware | Customized instruments from the assault are very seemingly developed by the attackers. | |
T1585.003 | Set up Accounts: Cloud Accounts | The attackers hosted the ultimate stage on the cloud service OpenDrive. | |
T1608.001 | Stage Capabilities: Add Malware | The attackers hosted the ultimate stage on the cloud service OpenDrive. | |
Execution | T1204.002 | Person Execution: Malicious File | OdicLoader masquerades as a PDF file with a view to idiot the goal. |
Preliminary Entry | T1566.002 | Phishing: Spearphishing Hyperlink | The goal seemingly obtained a hyperlink to third-party distant storage with a malicious ZIP archive, which was later submitted to VirusTotal. |
Persistence | T1546.004 | Occasion Triggered Execution: Unix Shell Configuration Modification | OdicLoader modifies the sufferer’s Bash profile, so SimplexTea is launched every time Bash is stared and its output is muted. |
Protection Evasion | T1134.002 | Entry Token Manipulation: Create Course of with Token | SimplexTea can create a brand new course of, if instructed by its C&C server. |
T1140 | Deobfuscate/Decode Recordsdata or Info | SimplexTea shops its configuration in an encrypted apdl.cf. | |
T1027.009 | Obfuscated Recordsdata or Info: Embedded Payloads | The droppers of all malicious chains comprise an embedded information array with an extra stage. | |
T1562.003 | Impair Defenses: Impair Command Historical past Logging | OdicLoader modifies the sufferer’s Bash profile, so the output and error messages from SimplexTea are muted. SimplexTea executes new processes with the identical approach. | |
T1070.004 | Indicator Removing: File Deletion | SimplexTea has the power to delete recordsdata securely. | |
T1497.003 | Virtualization/Sandbox Evasion: Time Primarily based Evasion | SimplexTea implements a number of customized sleep delays in its execution. | |
Discovery | T1083 | File and Listing Discovery | SimplexTea can record the listing content material along with their names, sizes, and timestamps (mimicking the ls -la command). |
Command and Management | T1071.001 | Utility Layer Protocol: Net Protocols | SimplexTea can use HTTP and HTTPS for communication with its C&C server, utilizing a statically linked Curl library. |
T1573.001 | Encrypted Channel: Symmetric Cryptography | SimplexTea encrypts C&C visitors utilizing the AES-GCM algorithm. | |
T1132.001 | Knowledge Encoding: Customary Encoding | SimplexTea encodes C&C visitors utilizing base64. | |
T1090 | Proxy | SimplexTea can make the most of a proxy for communications. | |
Exfiltration | T1041 | Exfiltration Over C2 Channel | SimplexTea can exfiltrate information as ZIP archives to its C&C server. |
Appendix
This YARA rule flags the cluster containing each IconicLoader and IconicStealer, in addition to the payloads deployed within the cryptocurrency campaigns from December 2022.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
/* The next rule will solely work with YARA model >= 3.11.0 */ import “pe” rule RichHeaders_Lazarus_NukeSped_IconicPayloads_3CX_Q12023 meta: description = ” Wealthy Headers-based rule masking the IconicLoader and IconicStealer from the 3CX provide chain incident, and in addition payloads from the cryptocurrency campaigns from 2022-12″ creator = “ESET Analysis” date = “2023-03-31” hash = “3B88CDA62CDD918B62EF5AA8C5A73A46F176D18B” hash = “CAD1120D91B812ACAFEF7175F949DD1B09C6C21A” hash = “5B03294B72C0CAA5FB20E7817002C600645EB475” hash = “7491BD61ED15298CE5EE5FFD01C8C82A2CDB40EC” situation: pe.rich_signature.toolid(259, 30818) == 9 and pe.rich_signature.toolid(256, 31329) == 1 and pe.rich_signature.toolid(261, 30818) >= 30 and pe.rich_signature.toolid(261, 30818) <= 38 and pe.rich_signature.toolid(261, 29395) >= 134 and pe.rich_signature.toolid(261, 29395) <= 164 and pe.rich_signature.toolid(257, 29395) >= 6 and pe.rich_signature.toolid(257, 29395) <= 14 |