Short Summary:
The article discusses a phishing attack that led to a malware infection involving the 0bj3ctivity Stealer, facilitated by the Ande Loader. eSentire’s Threat Response Unit (TRU) details their investigation, response, and recommendations for enhancing security measures against such threats.
Key Points:
- eSentire operates 24/7 Security Operations Centers (SOCs) with elite threat hunters.
- In July 2024, a phishing attack resulted in a 0bj3ctivity Stealer infection.
- The attack involved a malicious JavaScript file that executed additional payloads.
- Ande Loader was used to facilitate the infection and maintain persistence.
- The stealer exfiltrates sensitive data from various browsers and sends it to Telegram or a C2 server.
- Advanced techniques like process injection, anti-debugging, and string obfuscation were employed.
- Recommendations include enhancing user awareness training and implementing advanced detection mechanisms.
MITRE ATT&CK TTPs – created by AI
- Credential Dumping (T1003)
- Extracting credentials from web browsers.
- Process Injection (T1055)
- Injecting malicious payloads into legitimate processes.
- Persistence (T1547)
- Creating registry run keys to maintain persistence.
- Exfiltration Over Command and Control Channel (T1041)
- Sending exfiltrated data to a C2 server or Telegram.
- Obfuscated Files or Information (T1027)
- Using obfuscation techniques to hide malicious scripts.
- Phishing (T1566)
- Initial compromise through phishing emails.
Adversaries don’t work 9-5 and neither do we. At eSentire, our 24/7 SOCs are staffed with Elite Threat Hunters and Cyber Analysts who hunt, investigate, contain and respond to threats within minutes.
We have discovered some of the most dangerous threats and nation state attacks in our space – including the Kaseya MSP breach and the more_eggs malware.
Our Security Operations Centers are supported with Threat Intelligence, Tactical Threat Response and Advanced Threat Analytics driven by our Threat Response Unit – the TRU team.
In TRU Positives, eSentire’s Threat Response Unit (TRU) provides a summary of a recent threat investigation. We outline how we responded to the confirmed threat and what recommendations we have going forward.
Here’s the latest from our TRU Team…
What did we find?
In July 2024, eSentire’s Threat Response Unit (TRU) observed a phishing attack that led to a 0bj3ctivity Stealer malware infection. The user clicked on a Discord CDN link containing a malicious JavaScript file named Enquiry-Dubai.js (MD5: 42436fb03b579a159464fb2af53696f1). This file contained instructions to retrieve and execute additional payloads, including Ande Loader and the aforementioned stealer.
The JavaScript file contains an AES-encrypted PowerShell script. Figure 1 shows the decrypted script.
It searches for specific markers “<<BASE64_START>>” and “<<BASE64_END>>” that define a base64-encoded segment within the new-image.jpg file (MD5: 41914711cfdaba63ddf1701270077855). The extracted base64-encoded blob is then decoded to get a byte array, which is a .NET payload which is loaded into the memory. The PowerShell script retrieves the type RunPE.Home from the .NET payload then accesses the “VAI” method and invokes it with the following arguments:
- ‘txt[.]771/ved.2r.47af32aec8e60a782794603c0b134c93-bup//:spxxh’ , ‘1’ , ‘C:ProgramData’ , ‘pipa’,’AddInProcess32′,’desativado’
Based on the method name and the .NET code, we can attribute it to Ande Loader. We wrote about Ande Loader in our analysis of the Blind Eagle campaign.
The .NET payload is responsible for the following:
- Creates persistence via Registry Run Keys (the malicious JavaScript file is renamed to “pipa.js” and placed under the C:ProgramData folder)
- Downloads additional payload (MD5: d1c9c2c55d5c287ebdc9f9a7f5f2e630) from the server (hxxps://pub-39c431b0c306497287a06e8cea23fa74.r2.dev/177[.]txt)
- Performs process injection of the downloaded payload via Process Hollowing into the AddInProcess32.exe process.
The downloaded payload is responsible for retrieving the stealer from the server (hxxps://whatismyipaddressnow[.]co/API/FETCH/filter.php?countryid=14&token=FEzEd9JbsoLF) and executing it in memory. The payload also checks if it is being debugged via the “get_IsAttached” method, and if it is, the process exits.
As mentioned before, the final payload is the 0bj3ctivity Stealer. The stealer was previously analyzed by CERT-AGID. The strings in the stealer payload are obfuscated, as shown in Figure 3.
The decryption works by iterating over each character of an encrypted string, subtracting a constant integer value passed as the third parameter (A_2) from each character of the encrypted string, and then reconstructing the string for Base64 decoding.
Upon successful execution, the stealer sends the data to Telegram, indicating with boolean values “True” or “False” whether the data is present, as shown in Figure 4.
It’s worth mentioning that if it fails to send data to the Telegram bot, it will send the data to a C2 server at hxxps://whatismyipaddressnow.co/API/FETCH/getcountry[.]php or an SMTP server instead.
Password decryption occurs locally on the user’s machine rather than remotely on a server. The software loads the necessary libraries required to decrypt the passwords.
The stealer also has Virtualization checks. Specifically, it checks for the presence of specific DLL, system, and video properties that are commonly associated with virtual environments and sandboxes (Figure 6).
The checks are also performed for the presence of monitoring and debugging tools, as shown in Figure 7.
If the virtualization environment or one of the monitoring and debugging tools is detected, the stealer terminates the process and removes itself from the host machine via the “cmd.exe /C choice /C Y /N /D Y /T 3 & Del ” command.
The stealer also checks if the host is a VPS or cloud-hosted machine by reaching out to hxxp://ip-api[.]com/line/?fields=hosting and reaches out to hxxp://icanhazip[.]com to get the public IP address of the infected machine.
The stealer exfiltrates data from the following browsers:
- Chrome
- Blisk
- Avast
- Slimjet
- Kinza
- Xvast
- Opera
- 360 Browser
- Comodo Dragon
- CoolNovo
- Torch Browser
- Brave Browser
- Iridium Browser
- 7Star
- Amigo
- CentBrowser
- Chedot
- CocCoc
- Elements Browser
- Epic Privacy Browser
- Kometa
- Orbitum
- Sputnik
- uCozMedia
- Vivaldi
- Sleipnir 6
- Citrio
- Coowon
- Liebao Browser
- QIP Surf
- Edge Chromium
For credit card extraction, the stealer uses a dictionary of regular expressions to match credit card numbers from different issuers.
- American Express cards, starting with 34 or 37, 15 digits total. Regex: ^3[47][0-9]{13}$
- BCGlobal cards, starting with 6541 or 6556, followed by 12 digits. Regex: ^(6541|6556)[0-9]{12}$
- Carte Blanche cards start with 389, followed by 11 digits. Regex: ^389[0-9]{11}$
- Diners Club cards, starting with either 300-305, 36, or 38, totaling 14 digits. Regex: ^3(?:0[0-5]|[68][0-9])[0-9]{11}$
- Discover cards beginning with 6011 or starting with 65, followed by 12 additional digits. Regex: 6(?:011|5[0-9]{2})[0-9]{12}$
- Insta Payment Cards starting with 637 to 639, followed by 13 digits. Regex: ^63[7-9][0-9]{13}$
- JCB cards starting with 2131, 1800, or beginning with 35 followed by three digits and another 11 digits. Regex: ^(?:2131|1800|35d{3})d{11}$
- Korean local cards starting with 9, followed by 15 digits. Regex: ^9[0-9]{15}$
- Laser cards beginning with 6304, 6706, 6709, or 6771, ranging from 16 to 19 digits in total. Regex: ^(6304|6706|6709|6771)[0-9]{12,15}$
- Maestro cards starting with 5018, 5020, 5038, 6304, 6759, 6761, or 6763, between 12 and 19 digits long. Regex: ^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$
- Mastercards starting with numbers from 51 to 55, followed by 14 additional digits. Regex: 5[1-5][0-9]{14}$
- Solo cards beginning with 6334 or 6767, followed by 12, 14, or 15 digits. Regex: ^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$
- Switch cards with various starting sequences and lengths, designed to capture all valid formats. Regex: ^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$
- Union Pay cards starting with 62, followed by 14 to 17 digits. Regex: ^(62[0-9]{14,17})$
- Visa cards starting with 4, followed by either 12 or 15 additional digits. Regex: 4[0-9]{12}(?:[0-9]{3})?$
- Visa Mastercards, a combination pattern for either Visa or Mastercard numbers. Regex: ^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$
- Express cards, specifically for American Express cards, similar to Amex card regex. Regex: 3[47][0-9]{13}$
The collected data will be archived and sent out to the C2, Telegram, or SMPT server in the following format:
- Gecko/Cookies.txt
- Gecko/History.txt
- Gecko/Recovery.txt
- Chromium/Cookies.txt
- Chromium/Bookmarks.txt
- Chromium/History.txt
- Chromium/Recovery.txt
- Chromium/AutoFill.txt
- Chromium/CreditCards.txt
- Chromium/Downloads.txt
- Chromium/TopSites.txt
- Extensions/ChromiumExtensions.zip
- Extensions/EdgeExtensions.zip
- Sessions/Telegram.zip
- Sessions/Skype.zip
- Sessions/Element.zip
- Sessions/Signal.zip
- Messengers/OutLook.txt
- Messengers/Pidgin.txt
- Messengers/FoxMail.txt
- Messengers/Discord.txt
- FTP/FileZilla.txt
- Wallets.zip
- Sys/Info.txt
- Sys/Wifi.txt
- Sys/Clipboard.txt
- Sys/Installed_Apps.txt
- Sys/Win_Key.txt
Below is an example of what the contents of Info.txt look like.
We further looked into the Telegram bot that received the exfiltrated data using the TeleTracker tool and identified the owner of the bot (@bukky101) as well as some exfiltrated data the bot received, as shown in Figure 8.
We found two samples in the wild that referenced the Telegram username tied to Agent Tesla RAT (refer to https://tria.ge/240304-vreasafg5s and https://tria.ge/240418-lwnwcaah8v).
The case study from July 2024, analyzing the phishing attack that led to the 0bj3ctivity Stealer infection, highlights the usage of Ande Loader in the attack chain. This loader, previously analyzed in relation to the Blind Eagle campaign, keeps enhancing its capabilities with new features such as anti-debugging techniques and a new string obfuscation method.
These developments might significantly increase the time required for researchers to analyze the malware effectively, particularly when they do not have the relevant deobfuscation scripts readily available.
What did we do?
- Our team of 24/7 SOC Cyber Analysts isolated the affected host to contain the infection on the customer’s behalf.
What can you learn from this TRU Positive?
-
The use of a multi-layered delivery mechanism involving Ande Loader to deploy the 0bj3ctivity Stealer demonstrates how attackers use methods to bypass traditional security measures.
- The malware’s distribution through obfuscated and encrypted scripts, memory injection techniques, and the ongoing enhancement of Ande Loader with features like anti-debugging and string obfuscation underscore the need for advanced detection mechanisms and continuous research.
- The initial compromise via a phishing email highlights the effectiveness and prevalence of social engineering tactics. This emphasizes the critical importance of user awareness training.
Indicators of Compromise
You can access the indicators of compromise here.
Recommendations
References
Source: Original Post