7 Minute Read
Trustwave's Threat Intelligence team has discovered a new malware dubbed Pronsis Loader, with its earliest known variant dating back to November 2023. This loader shares similarities with the D3F@ck Loader , which surfaced in January 2024. Pronsis Loader has been observed delivering different malware variants, including Lumma Stealer and Latrodectus as its primary payloads. Additionally, the team identified infrastructure linked to Lumma Stealer during the investigation. Pronsis Loader is a newly identified malware that bears similarities to the D3F@ck Loader. Both utilize JPHP-compiled executables, making them easily interchangeable. However, one area they diverge in is their installer approaches: while D3F@ck Loader uses Inno Setup Installer, Pronsis Loader leverages Nullsoft Scriptable Install System (NSIS) . NSIS, an open-source tool, enables the creation of customized Windows installers, which Pronsis Loader uses for its deployment. What makes this type of loader particularly interesting is its use of JPHP, a less common programming language among threat actors. JPHP, a Java implementation of PHP, was notably used by IceRat in 2020 then by D3F@ck in 2024. Unlike typical Java files that use the .class extension, JPHP files are compiled into .phb format. While these .phb files cannot be directly decompiled with conventional Java tools, they still contain 0xCAFEBABE headers, which signify a Java class. This allows for decompilation after extraction. A key difference with Pronsis Loader is its overall lack of certificate usage, including SSL certificates, in its installer files. While many malware families rely on certificates to enhance trust or encrypt communications, often bypassing security measures, Pronsis Loader generally avoids this approach. This omission could make it easier to detect in environments that check for certificate-based security. The Pronsis Loader discovered was named FullWorker-Install_sib.xyz (SHA256: fee966680f41a4e28497ebf9d6e10486b427efff21f88163462a6c19b7d2bdc0). Using 7-Zip, we extracted the contents of the NSIS installer. Interestingly, while the latest versions of 7-Zip cannot extract NSIS scripts, version 15.05 and earlier versions allow for successful extraction of these scripts. Upon analysis, most of the NSI script focuses on dropping files into the %Temp% directory. Despite the installer’s considerable size (~90MB), most of the installer’s contents consist of benign files designed to disguise malicious files. As seen in Figure 5, all these are known files aside from the FailWorker-Install.exe (SHA256: 7e3ccfeb074c4666a4a34ae23c0606432f77c641e1cf62fc034a6575dd23abd1), which contains the malicious code. At the latter end of the script, an NSIS plug-in was used for executing the Pronsis Loader. This calls Nact.dll with the exportinstall, which will run the JPHP-compiled executable loader FailWorker-Install.exe. In Pronsis Loader, the executable is implemented in Java and can be easily extracted using 7-Zip, making it relatively straightforward to analyze. In contrast, some versions of D3F@ck Loader uses a password-protected file, with the password embedded in its InnoSetup installer script. In certain instances of Pronsis Loader, a visible user interface is presented during the "installation" process. However, in most recent versions, a silent installation method is employed, where no user interface is displayed. Once extracted, the initial module to be loaded can be identified within the JPHP-INF directory. In Figure 8, the launcher.conf file specifies a .bootstrap file, which indicates that the app\modules directory will be loaded. The AppModule directory contains two .phb files that still cannot be directly decompiled. However, extracting the files with the 0xCAFEBABE headers allows it to be successfully decompiled. In this case, we have also included other .phb files in the app directory and not only in the app\modules\ directory. Upon extracting the .class file from MainModule.phb, it becomes clear that the loader is designed to download a payload from a specified URL. This URL is later observed delivering the Latrodectus malware. The source path of the threat actor for Pronsis Loader for this file is: Our observations reveal consistent patterns in both the source path and ZIP file naming conventions used by Pronsis Loader. The loader consistently utilizes the source path E:\Lab\ORDERS\<Date>, and the ZIP files generally follow a naming pattern of three concatenated words ([word1][word2][word3].zip). Notably, in most ZIP files, the third word is PRO. This information was extracted from the Pronsis Loader files, as detailed below: Source Path Download ZIP File File Date E:\\Lab\\ORDERS\\1103-1\\01new\\src\\app\\modules\\MainModule.php respondintegratepro.zip November 2023 E:\\Lab\\ORDERS\\0329-5\\03\\src\\app\\modules\\MainModule.php messagescientistpro.zip March 2024 E:\\Lab\\ORDERS\\061724-1\\src\\app\\modules\\MainModule.php userapidpro.zip June 2024 E:\\Lab\\ORDERS\\072924-1\\src\\app\\forms\\MainForm.php speechcarrierpro.zip July 2024 The payload is contained in a file named todaydatabase.zip (SHA256: 32f3bf999bda8cb72484c2fa659be105cf6cfd56487e2d825843a96b7a32ada0), which is downloaded and saved in the path %Temp%/todaydatabase.zip . After the download, the todaydatabase.zip file is extracted and executed, initiating the infection process for Latrodectus malware. In addition to the payload delivery, a module for defense evasion is embedded within the MainForm.phb file. The string within this module is encoded in base64, and when decoded, it reveals a PowerShell script. This script is used to exclude the user's profile directory (C:\Users\<username>) from being scanned by Windows Defender, enabling the malware to evade detection. The decoded command is as follows: This PowerShell command will be placed in a batch file (.bat) with a randomized numeric filename and saved in the %Temp% directory. This batch file is then executed via cmd.exe. Latrodectus, discovered in October 2023, shares similarities with IcedID in terms of behavior and structure. It has primarily been distributed via phishing emails and has garnered attention in recent months due to its increasing activities. Within the downloaded archive file, the payload todaydatabase.exe (SHA256: b45bc251e0c731d157638bf162aad13b4428387ada433b37dba3796cbd9b4093) is executed, which subsequently drops another executable, todaydatabaseovlresig.exe (SHA256: d8ff7b3040d2674dbdc77b184266ddef54444c0d8db4880ddd3bcd45d610e0c1). This secondary executable then drops and executes the various components of the Latrodectus malware, leading to its full infection on the system. The file todaydatabaseovlresig.exe was converted using Bat2Exe and, upon execution, drops a 7zip archive. This archive contains two files: The batch file (autorun.bat) is executed from a temporary directory, facilitating further actions related to the deployment of Latrodectus. The contents of autorun.bat are detailed in Figure 16. The script begins with the command @echo off, which disables the display of commands being executed. It then uses xcopy to copy todaydatabaseovlresig.exe from its current location to the %TEMP% directory. After setting up some variables, the script runs a PowerShell command to create a Windows Shortcut File for the copied file in the %TEMP% directory. This ensures that the file automatically executes when the user logs in. The PowerShell script used is as follows: Since the malware has not yet been executed from the %Appdata% directory, it will drop a copy of itself into the %Appdata%\Custom_update directory with a filename that includes randomized hexadecimal characters. In this case, the final path and name is: This file in the AppData directory will be the final executable used to carry out the malware’s functions. To achieve persistence, the malware creates a scheduled task named Updater that runs every 10 minutes, executing the file located in the Custom_update directory. Additionally, the malware establishes a mutex named runnung , consistent with previous versions of the malware. The observed command-and-control (C2) servers for this Latrodectus variant are: The team has also observed that Pronsis Loader deploys Lumma Stealer, which operates under a Malware-as-a-Service (MaaS) model and has been active in the wild since 2022. Unlike Latrodectus , which is another payload associated with Pronsis Loader, Lumma Stealer has been the predominant payload in most instances of Pronsis Loader files. The initial file of the Lumma stealer observed is detailed_agreement_and_payment_information_august_2024_documentation.exe (SHA256: a94c04f560d7381a445aaef3cc977fbf179e021568674e09170a7a4bcf381d10), which is a Nullsoft installer. Upon installation, it drops a JPHP-compiled file named EducationGraduate_Setup.exe (SHA256: 77ccd2215c29f6c4ee2c997d93edbd598a3346df352d75abe0a51a8f002f0ea2) in the %Temp%/EducationGraduate_Setup path. It will be downloading the payload from the following URL: This ZIP file contains the executable individualcoordinate.exe (SHA256: 5448b5b736ed090c7216e01bf24088607b0ee5f34c2508f0e1a9112e473b87f7), which is a .NET application. The executable includes functionality for decoding an encrypted DLL file, which is retrieved from: The encrypted DLL file Zazkanqh.wav (SHA256: f244b2c81fbb82c7086a1b9eb0d22c3435cc7d0d6e34759fcc6b6089746ec1fd) can be decoded either using the routine embedded in individualcoordinate.exe or manually with XOR decryption tools. The observed C2 server for this Lumma Stealer variant is: Based on the IP address from which Pronsis Loader downloaded the Lumma Stealer file, the team was able to identify additional infrastructure that the loader may be utilizing both currently and in the future. The IP address 91[.]208[.]206[.]5 is hosted by Alexhost SRL. From this information, the team was able to identify additional IP addresses with open directories accessed by the loader for downloading Lumma Stealer. Identified IP addresses: From these IP addresses, we identified additional open directories that are used to store malicious files, particularly Lumma Stealer files. Here are some of the identified open directories: Open Directory Content hxxp://193[.]233[.]203[.]37/look/ Lisacbhs.pdf Pic1.jpg Pic2.jpg Vkqqolfaw.pdf middledetailedpro.zip nightconsiderablepro.zip hxxp://193[.]233[.]203[.]37/cook/ Document.pdf.url Eduxkwamadk.pdf Imyiewu.vdf Movpyeijzyn.mp3 Nyujne.dat Xaiyd.vdf eitherareapro.zip manassociatepro.zip new.html putty.exe hxxp://193[.]233[.]203[.]37/moon/ Ckinnxvfff.vdf Dmhxiccu.vdf LummaC2.exe PHOENIX_NATION_BUILD_YOUR_FOUNDATION_6_WEEK_PROGRAM.pdf concernprospectpro.zip formprogrammerpro.zip hxxp://193[.]233[.]203[.]37/wood/ Gefzummbqfg.mp4 Oyrqngkj.mp4 Xbbem.pdf americanperformpro.zip hxxp://91[.]208[.]206[.]5/env Npiumcdlbc.mp3 Qeoqmrzbhj.mp3 alsodiscussionpro.zip yearprogrampro.zip hxxp://91[.]208[.]206[.]5/mime DifferentVendor.zip amongcommunication.zip hxxp://91[.]208[.]206[.]5/mpm Ipqgeb.mp3 whereeyestrainpro.zip hxxp://91.208.206.5/authz/ fathertaskpro.zip hxxp://91.208.206.5/nego/ Zazkanqh.wav individualcoordinatepro.zip hxxp://193[.]233[.]203[.]31/mine/ Nkpko.vdf Uptnoriap.vdf Yzscv.mp3 forest.jpeg pressureprocesspro.zip hxxp://37[.]221[.]65[.]251/nano/ Jodlqytbdy.pdf longworkplacepro.zip hxxp://37[.]221[.]65[.]251/mobi/ 7d.jpg millionarisepro.zip putty.zip hxxp://37[.]221[.]67[.]211/direct/ Mfrngcojt.mp4 Sjehrpev.pdf Ztyavdk.wav easyenterprisepro.zip speechcarrierpro.zip svchost.exe hxxp://37[.]221[.]67[.]211/before/ - hxxp://213[.]232[.]235[.]202/garant/ 7d.jpg talkprevailingpro.zip Aside from these IP addresses and open directories, the team has discovered similarities among the latest Pronsis Loader files. The internal name used for these files, particularly in the latest campaign, is newfileov01prosign. Moreover, another name identified in the files is IedZ95gZDV, which was used before this latest campaign. From this, additional loader files were also identified All these are JPHP-compiled files. Most of the payload of these files are Lumma Stealer. This leads to new IP addresses with open directories based on their connections: The discovery of Pronsis Loader highlights its similarities with D3F@ck Loader and its role in delivering Lumma Stealer and Latrodectus as primary payloads. The identification of related infrastructure enhances understanding of this threat. Looking ahead, this underscores the importance of maintaining vigilance and adaptability in threat intelligence practices. Leveraging these insights will be crucial for anticipating and countering future malware developments, ensuring that defenses remain effective against evolving threats.Pronsis Loader
Figure 1. The use of NSIS by Pronsis Loader
Figure 2. CAFEBABE headers within the .phb files
Figure 3. NSIS Script File extracted in earlier versions of 7-zip
Figure 4. Dropping of files in the %TEMP% directory
Figure 5. FailWorker-Install.exe disguising itself within legitimate files
Figure 6. NSIS plug-in to run Pronsis Loader
Figure 7. Installation that leads to Pronsis Loader
Figure 8. Identifying which module is the entry point
Figure 9. Directory of the main module
Figure 10. CAFEBABE headers within the main modules
Figure 11. Code snippet where the payload is downloaded fromE:\\Lab\\ORDERS\\090424-3\\src\\app\\modules\\MainModule.php
Figure 12. Base64-encoded string used to evade Windows Defender scanning@ECHO OFF
powershell -inputformat none -outputformat none -NonInteractive -ExecutionPolicy Bypass -Command Add-MpPreference -ExclusionPath $env:USERPROFILE
Figure 13. Creation and execution of the batch fileLatrodectus Payload
Figure 14. Process tree of the initial Latrodectus malware
Figure 15. Contents of the 7-zip file
Figure 16. Contents of autorun.batpowershell -Command
"$WScriptShell = New-Object -ComObject WScript.Shell;
$Shortcut = $WScriptShell.CreateShortcut('%startupFolder%\%shortcutName%');
$Shortcut.TargetPath = '%filePath%';
$Shortcut.Save()"
C:\Users\<user>\AppData\Roaming\Custom_update\Update_824f1995.exe
Figure 17. Process tree leading to the final payload
Figure 18. Scheduled task of Latrodectus
Figure 19. Created mutex for Latrodectus
Lumma Stealer Payload
Figure 20. Dropped files of the installer file
Figure 21. Decryption routine for the DLL file
Figure 22. Manual decryption using Cyberchef
Lumma Stealer Repository