Authors: Rui Ataide, Hermes Bojaxhi
GuidePoint’s DFIR team is frequently called upon to respond to Ransomware incidents. While many such incidents have TTPs that are often shared by the security community, we wanted to contribute by sharing some less common TTPs that we have observed recently.
We recently observed this group use an open-source backup solution, Restic, for data exfiltration, which Huntress previously mentioned in this post. Restic is available here: https://github.com/restic/restic, and in our case, it used the server portion, too, which can be found here: https://github.com/restic/rest-server.
We also wanted to share some insight related to their encryptor, which, in our incidents, was named win.exe or windows.exe for Windows versions, and lin for Linux versions. The encryptor has a usage menu that describes its options.
In addition to adding the INC extension to the encrypted files, the encryptor also appends 80 bytes of data to the end of each encrypted file. This 80-byte footer is critical for the decryption process. Here is an example of this 80-byte footer appended to an encrypted PDF file.
0x40420F00 – This DWORD specifies the block size that is encrypted. In this case, 0x000F4240 = 1,000,000 bytes.0x05000000 – This DWORD specifies the skip size during encryption. This value is multiplied by the Encryption Block Size. So, in this case, the encryptor has skipped 5 x 1,000,000 = 5,000,000 bytes. In an encrypted file, the first 1,000,0000 bytes will be encrypted, followed by 5,000,000 bytes of unencrypted data, and then another block of encrypted data, and so forth. During decryption, this value only matters if the Medium encryption mode was used. It is ignored for the Fast and Slow modes.
If you purchase a decryptor, it is mandatory that you make full backup copies of the encrypted data before proceeding with the decryption process. Doing so ensures that any mishaps with the decryption process do not irreversibly destroy your data and, therefore, any chances of successful decryption.
Looking at the footer of an encrypted file can inform you of your chances for recovery without a decryptor, as well as the chances of success for the decryptor. Here are a couple of scenarios:
In our experience, the decryption process was successful overall, with only a small number of random files being corrupted during the encryption process. Namely, the files were encrypted and had the .INC extension, but not the 80-byte footer. In these cases, decryption is not possible.
If you are considering purchasing a decryptor, the proof of decryption is typically done with small files. So, before purchasing a decryptor, you should also check your critical files (such as full or incremental backup files) or other large critical files (such as database files or VMDKs) to ensure that they have at least one 80-byte footer. Otherwise, decryption of these files will not be possible.
In our recent incidents involving the Rhysida group, the predominant intrusion vector was Search Engine Optimization (SEO) poisoning, with themes such as downloading Microsoft Teams, which leads the user to a malicious Microsoft look-alike site that delivers a digitally signed dropper named Teams.exe. One such sample can be found here.
GuidePoint then observed several of the TTPs described by CISA here, such as the use of AnyDesk, NetSupport, extensive use of PowerShell, and living off the land tools. In addition to these TTPs, we saw this threat actor deploy a custom tool that appears to be related to SocksProxyGo as described by PRODAFT. Based on additional open-source intelligence (OSINT), we have observed that this tool has evolved since the above reference with samples using Go obfuscation and other techniques, including some of the latest versions that use C++ and possibly other languages, too.
Based on the knowledge acquired around this backdoor, GuidePoint performed some research to validate and obtain additional knowledge on this type of malware. Several instances of this malware were uncovered through VirusTotal threat hunting, some in recent weeks in relation to the writing of this post.
Most of the samples are DLL files, which have some interesting patterns in their naming convention. Some of these names (such as hematologists and subordinates) come from within the metadata of the samples rather than what the TA may have named them during the incident. Some of the scheduled tasks that were used for the persistence of these DLLs were also themed around words like “hematologists”.
Some of the recent submissions have names that mimic security vendor/product names on the metadata of these files. According to VirusTotal data, these are now also UPX packed and written in C++.
Some of the samples have high detection rates on VirusTotal by now. However, not all samples have high detection rates, such as file C64Proxy.dll submitted on August 1, 2024, with only 2/75 detections. Even these recent samples used C2 servers that were already known on the C2IntelFeeds mentioned below.
This Trojan also shows a common pattern in terms of network traffic activity as seen in the behavior section of the malware analysis in VT. This includes the use of OpenDNS DNS requests to detect the victim’s public IP, and connections to a path named “/ping” on their C2s.
From the endpoint perspective, a common behavior of this malware is for rundll32.exe to load the DLL and call the “Test” export function. The DLL is usually entrenched as a scheduled task. Furthermore, when the Trojan is loaded, it spawns a PowErsHELl.exe child process via rundll32.exe, which in turn launches nslookup.exe to obtain the victim’s public IP via the previously mentioned OpenDNS service.
While some of the earlier/older versions of these Trojans are written in the Go language, they also contain references to two additional open-source projects: go-cmd/Cmd and Invoke-SocksProxy. The most recent samples are either packed/obfuscated or not detected as Go-based binaries at all.
Another commonality between several of these files is the high number of randomly named export functions that seem to serve no purpose.
Finally, several C2 IPs are also listed on OSINT feeds/data as C2IntelFeeds.
Overall, we hope this additional information helps prevent the next ransomware attack and/or perform some additional validation before purchasing any decryptors.
109.176.207.22 | Possible Rhysida Trojan IP (Unverified) |
139.64.133.194 | Possible Rhysida Trojan IP (Unverified) |
159.100.6.103 | Possible Rhysida Trojan IP (Unverified) |
173.46.80.206 | Possible Rhysida Trojan IP (Unverified) |
185.216.144.51 | Possible Rhysida Trojan IP (Unverified) |
216.74.123.41 | Possible Rhysida Trojan IP (Unverified) |
37.59.205.5 | Possible Rhysida Trojan IP (Unverified) |
5.161.252.127 | Possible Rhysida Trojan IP (Unverified) |
51.68.216.13 | Possible Rhysida Trojan IP (Unverified) |
51.89.137.8 | Possible Rhysida Trojan IP (Unverified) |
57.128.166.214 | Possible Rhysida Trojan IP (Unverified) |
65.108.49.36 | Possible Rhysida Trojan IP (Unverified) |
78.47.60.67 | Possible Rhysida Trojan IP (Unverified) |
85.239.53.94 | Possible Rhysida Trojan IP (Unverified) |
048660468e44dbddb5631f288a19060ac41cb82daf2802de46713dd8ed372b71 | “hxxp://173[.]46[.]80[.]206/ping” |
22f5335e9a594e673f1d57fdd8bd0e771e900b90b3230f594c9b98f8f7e70033 | “hxxp://google-static[.]work[.]gd/ping” |
26e71d383a69a494ebb03d7e34ea5f3ba1465a97411084251509a68f32d41e13 | “hxxp://216[.]74[.]123[.]41/ping” |
367dcaa16a199ab8e9c8b837962c9c8ee3db36b94f56af09e34177d5a2160db7 | “hxxp://107[.]175[.]32[.]226/ping” |
3fd2155ed05bcb8167b2d967ff8f140db66c646dbcef0ed6dc9d3b6685bd60d8 | “hxxp://139[.]64[.]133[.]194/ping” |
40c325544cf7d41915f19c02a128c44e14cc4caafd47d0b12b59707e4b8ff4f8 | “hxxp://173[.]46[.]80[.]206/ping” |
422e5fe9265ff01e8bf2bf2d5b7de6faf358cc88da8c5ad71bac220983fc1345 | “hxxp://216[.]74[.]123[.]41/ping” |
6867e62933c94396e60754def16fe29d817a9671bf00c90e48d433a929b4c349 | “hxxp://139[.]64[.]133[.]194/ping” |
76cbcd2b69ab608685ebc243a4e0fc5a38e698a9f0a40e61338961ca12227ba1 | “hxxp://172[.]96[.]189[.]249/ping” |
78b42d4d051cb1f1c4e1f47e8390810c23ba0e24f8dc689b99b40996945abc87 | “hxxp://108[.]62[.]141[.]161/ping” |
7bff54dcaed42fbf825d0464b39106be6412822251cc7e68f12d1e8cccfc524e | “hxxp://23[.]227[.]198[.]234/ping” |
960993e88b54f129eeae86860c400df1131333be6d2bbda271024985c8062dcb | “hxxp://23[.]227[.]198[.]234/ping” |
9db2c7d2b32abd9408aad9ca0891d405396ec09583ae463798ffa33599196eb8 | “hxxp://139[.]64[.]133[.]194/ping” |
9f66708cb440a2c849457da724ae745263b94e9a30170568ed1a7004f0d405d6 | “hxxp://135[.]125[.]216[.]24/ping” |
ca5931d48e2a8a539fc84596fdf3394809ebdf07490a86df8c5648883ee594df | “hxxp://23[.]108[.]57[.]83/ping” |
d8a9f37d2f3165e1ba74fda062af1402318e01705219769e46292090e35c15c3 | “hxxp://135[.]125[.]216[.]24/ping” |
e606db5a8dafe5765dab9d06832f2ef558cd43fe400dda1e120fabc67a7f948f | “hxxp://51[.]77[.]126[.]67/ping” |
fbc17b0087710c808ab01d145209cb9ac1617168f552924b909ee5ce94ab7211 | “hxxp://173[.]46[.]80[.]206/ping” |
fd9e1f9284cdba556e9df2cb39f15bc38135b5a894d6bd271d8fd6882da5d42b | “hxxp://139[.]64[.]133[.]194/ping” |
048660468e44dbddb5631f288a19060ac41cb82daf2802de46713dd8ed372b71 |
22f5335e9a594e673f1d57fdd8bd0e771e900b90b3230f594c9b98f8f7e70033 |
26e71d383a69a494ebb03d7e34ea5f3ba1465a97411084251509a68f32d41e13 |
367dcaa16a199ab8e9c8b837962c9c8ee3db36b94f56af09e34177d5a2160db7 |
3fd2155ed05bcb8167b2d967ff8f140db66c646dbcef0ed6dc9d3b6685bd60d8 |
40c325544cf7d41915f19c02a128c44e14cc4caafd47d0b12b59707e4b8ff4f8 |
422e5fe9265ff01e8bf2bf2d5b7de6faf358cc88da8c5ad71bac220983fc1345 |
6867e62933c94396e60754def16fe29d817a9671bf00c90e48d433a929b4c349 |
76cbcd2b69ab608685ebc243a4e0fc5a38e698a9f0a40e61338961ca12227ba1 |
78b42d4d051cb1f1c4e1f47e8390810c23ba0e24f8dc689b99b40996945abc87 |
7bff54dcaed42fbf825d0464b39106be6412822251cc7e68f12d1e8cccfc524e |
960993e88b54f129eeae86860c400df1131333be6d2bbda271024985c8062dcb |
9db2c7d2b32abd9408aad9ca0891d405396ec09583ae463798ffa33599196eb8 |
9f66708cb440a2c849457da724ae745263b94e9a30170568ed1a7004f0d405d6 |
ca5931d48e2a8a539fc84596fdf3394809ebdf07490a86df8c5648883ee594df |
d8a9f37d2f3165e1ba74fda062af1402318e01705219769e46292090e35c15c3 |
e606db5a8dafe5765dab9d06832f2ef558cd43fe400dda1e120fabc67a7f948f |
fbc17b0087710c808ab01d145209cb9ac1617168f552924b909ee5ce94ab7211 |
fd9e1f9284cdba556e9df2cb39f15bc38135b5a894d6bd271d8fd6882da5d42b |
*** This is a Security Bloggers Network syndicated blog from The Guiding Point | GuidePoint Security authored by GuidePoint Security. Read the original post at: https://www.guidepointsecurity.com/blog/update-from-the-ransomware-trenches/