{"id":2910,"date":"2024-09-25T20:25:34","date_gmt":"2024-09-25T20:25:34","guid":{"rendered":"https:\/\/xdr-mdr.lmntrix.com\/main_web\/?p=2910"},"modified":"2025-07-29T06:45:22","modified_gmt":"2025-07-29T06:45:22","slug":"rapid-ransomware-stumbles-at-the-first-hurdle","status":"publish","type":"post","link":"https:\/\/lmntrix.com\/blog\/rapid-ransomware-stumbles-at-the-first-hurdle\/","title":{"rendered":"Rapid Ransomware stumbles at the first hurdle"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"475\" height=\"318\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/rafting_river_adventure_raft_extreme_paddle_outdoor_activity-1191682.webp\" alt=\"rafting_river_adventure\" class=\"wp-image-2918\"\/><\/figure>\n<\/div>\n\n\n<p><strong>Overview<\/strong><br><br>The latest malware to cross our desks is the alliterated Rapid Ransomware \u2013 a strain that seemingly rolls off the tongue easier than it rolls into computers. From its earliest days, anti-virus vendors were successful in identifying the strain based on heuristic rules. &nbsp;<br><br>As yet, little is known about the strain\u2019s distribution method, but analysis on the sample itself uncovers some interesting characteristics.&nbsp;<br><br><ins>Sample Details<\/ins><br><br>File Hash (SHA-256): cdd7cde605f034698b9f6502e71154c250143b98dc677fecb18f1d376e0617c2<br><br>File Size: 886272 bytes<br><br>PE type: EXE<br><br><strong>Static Analysis<\/strong><br><br>Before disassembling the sample, our researchers collected the static properties such as compiler used, creation details, and the sample\u2019s blacklisted APIs:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"713\" height=\"83\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/1-7-1.webp\" alt=\"\" class=\"wp-image-2911\"\/><\/figure>\n\n\n\n<p><em>Figure 1 Compiled by VC++<\/em><br><br>Timestamp details show us the malware was created on December 29 last year, but it is still being seen in the wild more than a month later.<br><br>It was first uploaded to VirusTotal on New Year\u2019s Eve, and while it was initially flagged by AV tools on heuristic rules, it is now detected specifically as \u2018Rapid Ransomware\u2019.<br><br>Below, we outline the sample\u2019s blacklisted APIs which also identifies its anti-debug functionalities. As well as the common APIs we\u2019d expect to see in a ransomware sample such as GetLogicDrive, CryptEncrypt, CryptImportKey, CryptExportKey, CryptSetKeyParam, CryptDestroyKey, CryptGenKey, and CryptAcquireContextA, we also see:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"517\" height=\"789\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/2-7-1.webp\" alt=\"\" class=\"wp-image-2912\"\/><\/figure>\n\n\n\n<p><em>Figure 2 Usage of Blacklisted API and Anti-debug API<\/em><br><br>Static analysis also uncovered a number of interesting strings, listed below:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>.text:0xABACE &nbsp; &nbsp; &nbsp; &nbsp;! How Decrypt Files.txt<br>.text:0xABC48 &nbsp; &nbsp; &nbsp; &nbsp;\\info.exe<br>.rdata:0xAC41B &nbsp; &nbsp; &nbsp; &nbsp;Software\\Microsoft\\Windows\\CurrentVersion\\Run<br>.rdata:0xACA95 &nbsp; &nbsp; &nbsp; &nbsp;RegOpenKeyEx<br>.rdata:0xACB76 &nbsp; &nbsp; &nbsp; &nbsp;RegQueryValueEx<br>.rdata:0xACB89 &nbsp; &nbsp; &nbsp; &nbsp;RegCloseKey<br>.rdata:0xAD7CE &nbsp; &nbsp; &nbsp; &nbsp;f:\\dd\\vctools\\crt\\vcruntime\\src\\eh\\std_type_info.cpp<br>.rdata:0xAD91D &nbsp; &nbsp; &nbsp; &nbsp;f:\\dd\\vctools\\crt\\vcruntime\\src\\internal\\per_thread_data.cpp<br>.rdata:0xAF99F &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\misc\\dbgrpt.cpp<br>.rdata:0xAFAEF &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\stdio\\_file.cpp<br>.rdata:0xB810B &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\inc\\corecrt_internal_stdio_output.h<br>.rdata:0xBCD28 &nbsp; &nbsp; &nbsp; &nbsp;Client hook allocation failure.<br>.rdata:0xBDE93 &nbsp; &nbsp; &nbsp; &nbsp;Object dump complete.<br>.rdata:0xBE2CB &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\startup\\argv_parsing.cpp<br>.rdata:0xBE308 &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\desktopcrt\\env\\environment_initialization.cpp<br>.rdata:0xBE4DE &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\startup\\onexit.cpp<br>.rdata:0xBF0B7 &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\locale\\wsetlocale.cpp<br>.rdata:0xBF22D &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\internal\\per_thread_data.cpp<br>.rdata:0xC2237 &nbsp; &nbsp; &nbsp; &nbsp;minkernel\\crts\\ucrt\\src\\appcrt\\misc\\signal.cpp<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>In the below snapshot, we can see the ransomware adds the extension \u2018.rapid\u2019 to encrypted files, the file drop location is %appdata%, as well as the contact email address for file restore.<br><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"940\" height=\"366\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/3-6-1.webp\" alt=\"\" class=\"wp-image-2913\"\/><\/figure>\n\n\n\n<p><em>Figure 3 Interesting strings<\/em><br><br>Having analysed the string details and blacklisted API usage, we next disassembled the sample to study its characteristics:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"892\" height=\"400\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/4-6-1.webp\" alt=\"\" class=\"wp-image-2914\"\/><\/figure>\n\n\n\n<p><em>Figure 4 File &#8216;info.exe&#8217; and queries logical drive info<\/em><br><br>The query \u2018GetLogicalDrives()\u2019 collects information for the logical drives that can be found in the victim system. It does so by retrieving an integer as bitmask value.\u00a0<br><br>For example, if the function returns a value of \u20184\u2019, then its equivalent binary is 100 \u2013 this could mean either C, B, or A (though A and B are not present) so the only available drive is C.\u00a0<br><br>Below we see the functions responsible for replacing file extensions with \u2018.rapid\u2019:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"875\" height=\"306\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/5-5-1.webp\" alt=\"\" class=\"wp-image-2915\"\/><\/figure>\n\n\n\n<p><em>Figure 5 &#8216;.Rapid&#8217; file extension<\/em><\/p>\n\n\n\n<p>As mentioned in the blacklisted API, we found the \u2018cryptencrypt\u2019 function in the disassembled code which is used to encrypt the data. Its associated function, \u2018Cryptgenkey\u2019, generates a cryptographic session key. The below snapshot shows the \u2018cryptencrypt\u2019 function in use:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"730\" height=\"580\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/6-5-1.webp\" alt=\"\" class=\"wp-image-2916\"\/><\/figure>\n\n\n\n<p>\u00a0<em>Figure 6 CryptEncrypt ()<\/em><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"830\" height=\"619\" src=\"https:\/\/lmntrix.com\/blog\/wp-content\/uploads\/2024\/09\/7-4-1.webp\" alt=\"\" class=\"wp-image-2917\"\/><\/figure>\n\n\n\n<p>\u00a0<em>Figure 7 Run Registry entry<\/em><\/p>\n\n\n\n<p>For maintaining persistence, the malware uses the above run registry entry, while info.exe is dropped in the %appdata% location. With the value of the registry entry as \u2018Encrypter\u2019, this gives the appearance that the registry entry belongs to a legitimate application, rather than a malicious one.<\/p>\n\n\n\n<p>Contents of how to decrypt files:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>Hello!<br>All your files have been encrypted by us If you want restore files write on e-mail \u2013 rapid(at)rape(.)lol<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Threat Indicators\/IOC Details<\/strong><br><br>File Hash (SHA-256):&nbsp;<br><br>\u2022&nbsp;&nbsp; &nbsp;cdd7cde605f034698b9f6502e71154c250143b98dc677fecb18f1d376e0617c2<br><br>Dropped Files:&nbsp;<br><br>\u2022&nbsp;&nbsp; &nbsp;info.exe (under %appdata% location)<br><br>\u2022&nbsp;&nbsp; &nbsp;\u2018! How Decrypt Files.txt\u2019<br><br>E-mail:&nbsp;<br><br>\u2022&nbsp;&nbsp; &nbsp;rapid(at)rape(.)lol<br><br>Registry entry:&nbsp;<br><br>\u2022&nbsp;&nbsp; &nbsp;Run entry created with the value as \u201cEncrypter\u201d.<br><br>File extension:&nbsp;<br><br>\u2022&nbsp;&nbsp; &nbsp;.Rapid<br><br><strong>Conclusion<\/strong><br><br>The above IOC details can help security professionals detect this ransomware. &nbsp;<br><br>Standard computer hygiene practices like regular backups and exercising caution when dealing with emails and attachments from unknown senders are the best defence against most ransomware attacks.<br><br>In this case, as most AV vendors detected this ransomware with heuristic rules from the day it appeared on the internet, updated anti-virus with latest definition should protect most users.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Overview The latest malware to cross our desks is the alliterated Rapid Ransomware &ndash; a strain that seemingly rolls off the tongue easier than it rolls into computers. From its earliest days, anti-virus vendors were successful in identifying the strain based on heuristic rules. &nbsp; As yet, little is known about the strain&rsquo;s distribution method, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2918,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[],"class_list":["post-2910","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-labs"],"_links":{"self":[{"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/posts\/2910","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/comments?post=2910"}],"version-history":[{"count":4,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/posts\/2910\/revisions"}],"predecessor-version":[{"id":4340,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/posts\/2910\/revisions\/4340"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/media\/2918"}],"wp:attachment":[{"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/media?parent=2910"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/categories?post=2910"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lmntrix.com\/blog\/wp-json\/wp\/v2\/tags?post=2910"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}