{"id":17088,"date":"2025-12-02T10:56:08","date_gmt":"2025-12-02T10:56:08","guid":{"rendered":"\/cybersecurity-blog\/?p=17088"},"modified":"2025-12-02T12:47:44","modified_gmt":"2025-12-02T12:47:44","slug":"salty2fa-tycoon2fa-hybrid-phishing-2025","status":"publish","type":"post","link":"\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/","title":{"rendered":"Salty2FA &amp; Tycoon2FA\u00a0Hybrid: A New Phishing Threat\u00a0to\u00a0Enterprises\u00a0"},"content":{"rendered":"\n<p>&nbsp;Phishing kits usually have distinct signatures in their delivery methods, infrastructure, and client-side code, which makes attribution&nbsp;fairly predictable. But recent samples began showing traits from two different kits at once, blurring those distinctions.&nbsp;<\/p>\n\n\n\n<p>That\u2019s&nbsp;exactly what&nbsp;<a href=\"https:\/\/any.run\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktolanding\" target=\"_blank\" rel=\"noreferrer noopener\">ANY.RUN<\/a>&nbsp;analysts saw with Salty2FA and Tycoon2FA: a sudden&nbsp;drop in&nbsp;Salty activity, the appearance of Tycoon indicators inside Salty-linked chains, and eventually single payloads carrying code from both frameworks. This overlap marks a meaningful shift; one that weakens kit-specific rules, complicates attribution, and gives threat actors more room to slip past early detection.&nbsp;<\/p>\n\n\n\n<p>Let\u2019s&nbsp;examine how this hybrid&nbsp;emerged, why it signals a shift in 2FA phishing, and what measures defenders should take in response.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Key Takeaways&nbsp;<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Salty2FA activity collapsed abruptly in late October 2025<\/strong>, dropping from hundreds of weekly&nbsp;uploads to&nbsp;<a href=\"https:\/\/any.run\/features\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linksandboxlanding\" target=\"_blank\" rel=\"noreferrer noopener\">ANY.RUN\u2019s Interactive Sandbox<\/a>&nbsp;to&nbsp;just a few dozen.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>New samples began showing overlapping indicators from both Salty2FA and Tycoon2FA<\/strong>, including shared IOCs, TTPs, and detection rule triggers.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Code-level analysis confirmed hybrid payloads<\/strong>:&nbsp;early stages&nbsp;matched Salty2FA, while later stages reproduced Tycoon2FA\u2019s execution chain&nbsp;almost line-for-line.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Salty2FA infrastructure showed signs of operational failure<\/strong>, forcing samples to fall back to Tycoon-based hosting and payload delivery.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The overlap aligns with earlier hypotheses suggesting a&nbsp;<strong>possible connection&nbsp;to Storm-1747<\/strong>, who are known operators of Tycoon2FA.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Attribution&nbsp;remains&nbsp;essential<\/strong>:&nbsp;Distinguishing between these \u201c2FA\u201d phishing kits helps analysts&nbsp;maintain&nbsp;accurate&nbsp;hunting hypotheses and track operator behavior.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Defenders should update detection logic<\/strong>&nbsp;to account for scenarios where Salty2FA and Tycoon2FA appear within the same campaign or even a single payload.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>More cross-kit overlap is likely<\/strong>, meaning future phishing campaigns may blend infrastructures, payloads, and TTPs across frameworks.&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Part 1:&nbsp;Numbers&nbsp;Don\u2019t&nbsp;Lie&nbsp;&#8211;&nbsp;A Sudden Drop in Salty2FA Activity&nbsp;<\/h2>\n\n\n\n<p>It all started around the end of October 2025, when the number of\u00a0<a href=\"https:\/\/app.any.run\/submissions\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">the ANY.RUN sandbox submissions<\/a>\u00a0showing activity linked to Salty2FA dropped sharply compared to\u00a0previous\u00a0periods.\u00a0<\/p>\n\n\n\n<p>Weekly phishing reports (see the&nbsp;<a href=\"https:\/\/x.com\/search?q=from%3Aanyrun_app%20%22Phishing%20activity%20in%20the%20past%207%20days%22&amp;src=typed_query&amp;f=live\" target=\"_blank\" rel=\"noreferrer noopener\">company\u2019s X posts<\/a>) show that, despite the usual fluctuations in overall upload volume, the average number of Salty2FA-related&nbsp;analysis sessions&nbsp;consistently stayed in the range of several hundred per week.&nbsp;<\/p>\n\n\n\n<p>However, once November began, the decline became dramatic:&nbsp;By&nbsp;<a href=\"https:\/\/x.com\/anyrun_app\/status\/1988139884796600506\" target=\"_blank\" rel=\"noreferrer noopener\">November 11, 2025<\/a>, Salty2FA had fallen to the bottom of the weekly threat rankings, with only&nbsp;<strong>51 submissions<\/strong>, compared to its typical&nbsp;<strong>250+ per week<\/strong>.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"495\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-1024x495.jpg\" alt=\"\" class=\"wp-image-17097\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-1024x495.jpg 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-300x145.jpg 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-768x372.jpg 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-370x179.jpg 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-270x131.jpg 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image-740x358.jpg 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image.jpg 1201w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.1: Salty2FA activity chart<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Along with indicators of compromise&nbsp;(IOCs)&nbsp;and hunting rules, the ANY.RUN&nbsp;sandbox\u2019s&nbsp;<strong>network block<\/strong>&nbsp;previously triggered a near-constant alert tied to Salty-specific HTTP activity.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"483\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-1024x483.png\" alt=\"\" class=\"wp-image-17098\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-1024x483.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-300x142.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-768x363.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-1536x725.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-370x175.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-270x127.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1-740x349.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image2-1.png 1737w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.2: Last sandbox analyses showing detection of Salty2FA TTPs<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>This refers to the Suricata rule&nbsp;<strong>sid:85002719<\/strong>. If we filter&nbsp;<em>Public&nbsp;submissions&nbsp;<\/em>for&nbsp;analysis sessions&nbsp;where this rule fired, the most recent match&nbsp;dates back to&nbsp;<strong>2025-11-01<\/strong>:&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/app.any.run\/tasks\/c7de3c82-1819-4d26-919e-d510f6534762\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">Check recent analysis session<\/a>&nbsp;<\/p>\n\n\n\n<p>The first assumption was obvious: the detection logic became outdated, the framework received an update, and analysts simply&nbsp;hadn\u2019t&nbsp;refreshed the signatures in time.&nbsp;But what about&nbsp;<strong>infrastructure indicators&nbsp;or domains<\/strong>?&nbsp;&nbsp;<\/p>\n\n\n\n<p>While IOCs sit lower on the Pyramid of Pain than Tools\/TTP coverage, they are easy to track at scale and often remain in use long enough to provide meaningful visibility.&nbsp;They often&nbsp;remain&nbsp;active for some time, leaving repeated traces in the data. These recurring indicators make it easier for analysts to track the threat, update its context, and perform wider hunting to uncover new related domains, behaviors, and activity patterns.&nbsp;<\/p>\n\n\n\n<p>The plan was simple: search for recent&nbsp;analysis sessions&nbsp;tagged with the threat name in ANY.RUN\u2019s&nbsp;<a href=\"https:\/\/any.run\/threat-intelligence-lookup\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktotilookuplanding\" target=\"_blank\" rel=\"noreferrer noopener\">Threat Intelligence&nbsp;Lookup<\/a>, examine changes in the kit\u2019s behavior and client-side code, and then update the detection methods:&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/intelligence.any.run\/analysis\/lookup?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktotilookup#%7B%2522query%2522:%2522threatName:%255C%2522salty2fa%255C%2522%2522,%2522dateRange%2522:60%7D\" target=\"_blank\" rel=\"noreferrer noopener\">threatName:&#8221;salty2fa&#8221;<\/a>&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"580\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-1024x580.png\" alt=\"\" class=\"wp-image-17100\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-1024x580.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-300x170.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-768x435.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-1536x870.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-370x210.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-270x153.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15-740x419.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image15.png 1820w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.3: &nbsp;TI Lookup provides a complete overview of the latest Salty2FA attacks&nbsp;<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>But then things became even more unusual. In&nbsp;almost every&nbsp;analysis&nbsp;executed after&nbsp;<strong>November&nbsp;1<\/strong>, the samples were either completely non-functional (examples&nbsp;<a href=\"https:\/\/app.any.run\/tasks\/3f30c9f6-9510-4de9-a711-5a5f7bd5d013\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">1<\/a>,&nbsp;<a href=\"https:\/\/app.any.run\/tasks\/d8b9ca70-0a67-49e0-9ebc-e1c98fbf316f\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">2<\/a>,&nbsp;<a href=\"https:\/\/app.any.run\/tasks\/6ba30b2e-0fb0-4a87-a767-07fde33e088f\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">3<\/a>) or behaved in ways that&nbsp;didn\u2019t&nbsp;align with Salty2FA at all.&nbsp;<\/p>\n\n\n\n<!-- Regular Banner START -->\n<div class=\"regular-banner\">\n<!-- Text Content -->\n<p class=\"regular-banner__text\">\nCatch attacks early with\u00a0<span class=\"highlight\">instant IOC enrichment<\/span> in TI Lookup<br>\nPower your proactive defense with data from 15K SOCs\n<\/p>\n<!-- CTA Link -->\n<a class=\"regular-banner__link\" id=\"article-banner-regular\" href=\"https:\/\/intelligence.any.run\/analysis\/lookup?utm_source=anyrunblog&#038;utm_medium=article&#038;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&#038;utm_term=021225&#038;utm_content=linktoregistration\" target=\"_blank\" rel=\"noopener\">\nStart investigation\u00a0<\/a>\n<\/div>\n<!-- Regular Banner END -->\n<!-- Regular Banner Styles START -->\n\n<style>\n.regular-banner {\ndisplay: flex;\ntext-align: center;\nflex-direction: column;\nalign-items: center;\ngap: 1.5rem;\nwidth: 100%;\npadding: 2rem;\nmargin: 1.5rem 0;\nborder-radius: 0.5rem;\nfont-family: 'Catamaran Bold';\nmargin-inline: auto;\nbackground: rgba(32, 168, 241, 0.1);\nborder: 1px solid rgba(75, 174, 227, 0.32);\n}\n\n.regular-banner__text {\nfont-size: 1.5rem;\nmargin: 0;\n}\n\n.highlight {\ncolor: #ea2526;\n}\n\n.regular-banner__link {\npadding: 0.5rem 1.5rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: #FFFFFF;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\n}\n\n.regular-banner__link:hover {\nbackground-color: #68CBFF;\ncolor: white;\n}\n<\/style>\n<!-- Regular Banner Styles END -->\n\n\n\n<p>For example, one&nbsp;analysis session&nbsp;showed the use of an&nbsp;<strong>ASP.NET CDN<\/strong>, which is not typical for this kit. It started to look as if someone had flipped a switch and taken a significant part of the framework\u2019s infrastructure offline.&nbsp;&nbsp;<\/p>\n\n\n\n<p>A shutdown, maybe?&nbsp;Not exactly.&nbsp;<\/p>\n\n\n\n<p>Alongside this decline, analysts also began seeing more&nbsp;sessions&nbsp;where the verdict included&nbsp;<strong>both&nbsp;Salty2FA&nbsp;and&nbsp;Tycoon2FA;<\/strong>&nbsp;two&nbsp;phishing kits that offer similar capabilities but differ in how&nbsp;they\u2019re&nbsp;built and&nbsp;operated.&nbsp;<\/p>\n\n\n\n<p>And this&nbsp;didn\u2019t&nbsp;resemble a simple misattribution. The Tycoon2FA&nbsp;indicators were supported by long-validated detection logic, including rules that flag&nbsp;<strong>DGA-generated domains<\/strong>&nbsp;tied to the kit\u2019s&nbsp;<strong>fast-flux infrastructure<\/strong>.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/app.any.run\/tasks\/46352ebf-7ee1-4d74-9850-2cdc6f6f0a49\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">Check analysis session&nbsp;with&nbsp;Salty2FA and Tycoon<\/a>&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"935\" height=\"665\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2.png\" alt=\"\" class=\"wp-image-17101\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2.png 935w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2-300x213.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2-768x546.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2-370x263.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2-270x192.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image3-2-740x526.png 740w\" sizes=\"(max-width: 935px) 100vw, 935px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.4:&nbsp;Suricata detection showing Tycoon indicators inside a Salty2FA analysis session<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>This raised another hypothesis: a&nbsp;possible merging&nbsp;of infrastructure between the operators behind these&nbsp;PhaaS&nbsp;platforms. To verify it, we took another look at the JavaScript code used in the phishing pages.&nbsp;&nbsp;<\/p>\n\n\n\n<p>The results turned out to be&nbsp;very interesting!&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 2:&nbsp;When Two Kits Become One: A Deep Look at the Hybrid Payload&nbsp;<\/h2>\n\n\n\n<p>To understand what changed inside this new wave of submissions, we compared the code to earlier versions of both kits. For reference, the&nbsp;previous&nbsp;analyses are available here:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/any.run\/cybersecurity-blog\/salty2fa-technical-analysis\/\" target=\"_blank\" rel=\"noreferrer noopener\">Salty2FA<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/any.run\/cybersecurity-blog\/tycoon2fa-evasion-analysis\/\" target=\"_blank\" rel=\"noreferrer noopener\">Tycoon2FA<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>With these baselines in mind,&nbsp;let\u2019s&nbsp;take a closer look at the&nbsp;following&nbsp;analysis session:&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/app.any.run\/tasks\/ccf7d689-7926-495d-b37f-d509536ff42b\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">Check analysis session<\/a>&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"578\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-1024x578.png\" alt=\"\" class=\"wp-image-17102\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-1024x578.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-300x169.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-768x433.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-1536x867.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-370x209.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-270x152.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16-740x417.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image16.png 1840w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.5: ANY.RUN\u2019s Sandbox exposes phishing attempts in&nbsp;seconds<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>The activity begins with the phishing page hosted on&nbsp;<strong>Cloudflare Pages Dev;&nbsp;<\/strong>a platform intended for front-end development and static site hosting, but one that&nbsp;threat&nbsp;actors&nbsp;frequently&nbsp;abuse due to how easy it is to deploy content there.&nbsp;<\/p>\n\n\n\n<!-- Regular Banner START -->\n<div class=\"regular-banner\">\n<!-- Text Content -->\n<p class=\"regular-banner__text\">\nDetect phishing threats\u00a0<span class=\"highlight\">in under 60 seconds<\/span><br>\nIntegrate ANY.RUN\u2019s Sandbox in your SOC\n<\/p>\n<!-- CTA Link -->\n<a class=\"regular-banner__link\" id=\"article-banner-regular\" href=\"https:\/\/app.any.run\/?utm_source=anyrunblog&#038;utm_medium=article&#038;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&#038;utm_term=021225&#038;utm_content=linktoregistration#register\/\" target=\"_blank\" rel=\"noopener\">\nSign up now\u00a0\u00a0<\/a>\n<\/div>\n<!-- Regular Banner END -->\n<!-- Regular Banner Styles START -->\n\n<style>\n.regular-banner {\ndisplay: flex;\ntext-align: center;\nflex-direction: column;\nalign-items: center;\ngap: 1.5rem;\nwidth: 100%;\npadding: 2rem;\nmargin: 1.5rem 0;\nborder-radius: 0.5rem;\nfont-family: 'Catamaran Bold';\nmargin-inline: auto;\nbackground: rgba(32, 168, 241, 0.1);\nborder: 1px solid rgba(75, 174, 227, 0.32);\n}\n\n.regular-banner__text {\nfont-size: 1.5rem;\nmargin: 0;\n}\n\n.highlight {\ncolor: #ea2526;\n}\n\n.regular-banner__link {\npadding: 0.5rem 1.5rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: #FFFFFF;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\n}\n\n.regular-banner__link:hover {\nbackground-color: #68CBFF;\ncolor: white;\n}\n<\/style>\n<!-- Regular Banner Styles END -->\n\n\n\n<p>A closer look reveals several familiar artifacts: \u201cmotivational quotes\u201d embedded in the markup and class names generated using a simple&nbsp;<strong>\u201cword + number\u201d<\/strong>&nbsp;pattern. These elements closely resemble the older (and certainly not harmless)&nbsp;<strong>Salty2FA<\/strong>&nbsp;codebase:&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-1024x229.png\" alt=\"\" class=\"wp-image-17103\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-1024x229.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-300x67.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-768x172.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-370x83.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-270x60.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1-740x166.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image4-1.png 1167w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.6: Salty2FA \u201cQuotes\u201d<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"579\" height=\"498\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image5.png\" alt=\"\" class=\"wp-image-17104\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image5.png 579w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image5-300x258.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image5-370x318.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image5-270x232.png 270w\" sizes=\"(max-width: 579px) 100vw, 579px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.7: Salty2FA class names<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Scrolling a bit further down, we see the trampoline code responsible for retrieving and loading the next payload stage into the DOM; a sequence identical to the older Salty implementation.&nbsp;&nbsp;<\/p>\n\n\n\n<p>But&nbsp;here\u2019s&nbsp;the interesting part: the code&nbsp;contains&nbsp;comments noting that the&nbsp;initial&nbsp;payload may&nbsp;fail to&nbsp;load, in which case the script should fetch the payload from an alternative URL. That fallback URL is written directly into the code with no obfuscation whatsoever.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"311\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-1024x311.png\" alt=\"\" class=\"wp-image-17105\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-1024x311.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-300x91.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-768x233.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-1536x466.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-2048x622.png 2048w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-370x112.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-270x82.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image17-740x225.png 740w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><span style=\"font-family: -webkit-standard; text-align: start; white-space: normal;\"><em>Fig.8: Trampoline code in an older Salty sample&nbsp;<\/em><\/span><\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"449\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-1024x449.png\" alt=\"\" class=\"wp-image-17106\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-1024x449.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-300x131.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-768x337.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-1536x673.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-2048x898.png 2048w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-370x162.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-270x118.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image18-740x324.png 740w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.9: Trampoline code in the new Salty sample<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>After decoding the function argument, we get the address&nbsp;<strong>hxxps[:\/\/]omvexe[.]shop\/\/;&nbsp;<\/strong>an IOC associated with Salty2FA. However, the payload will never be retrieved. When the script&nbsp;attempts&nbsp;to resolve the domain name, the DNS response is&nbsp;<strong>SERVFAIL<\/strong>, which differs from&nbsp;<strong>NXDOMAIN<\/strong>&nbsp;(non-existent domain).&nbsp;<\/p>\n\n\n\n<p>SERVFAIL indicates an issue on the server side; for example, incorrect NS records or delegation problems where the resolver cannot&nbsp;determine&nbsp;which authoritative DNS server&nbsp;is responsible for&nbsp;the domain.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"229\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-1024x229.png\" alt=\"\" class=\"wp-image-17107\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-1024x229.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-300x67.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-768x172.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-370x83.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-270x60.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8-740x165.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image8.png 1360w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.10: Salty2FA domain resolution errors<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>In other words, the Salty infrastructure is experiencing issues, and the script switches to a fallback plan, loading the page from the hardcoded secondary address.&nbsp;<\/p>\n\n\n\n<p>After the&nbsp;initial&nbsp;failure, the script switches to a direct request to&nbsp;<strong>hxxps[:\/\/]4inptv[.]1otyu7944x8[.]workers[.]dev\/<\/strong>, which delivers the next stage.&nbsp;<\/p>\n\n\n\n<p>The first part of this stage&nbsp;contains&nbsp;obfuscated anti-analysis checks, implemented through Base64 decoding followed by an&nbsp;eval() call.&nbsp;<\/p>\n\n\n\n<p>The second part is obfuscated using a&nbsp;<strong>Base64-XOR<\/strong>&nbsp;technique and&nbsp;contains&nbsp;the next&nbsp;portion&nbsp;of the payload:&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"409\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-1024x409.png\" alt=\"\" class=\"wp-image-17108\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-1024x409.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-300x120.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-768x307.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-1536x613.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-2048x818.png 2048w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-370x148.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-270x108.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image19-740x295.png 740w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.11: Payload from the \u201calternative\u201d execution path<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>After the code above runs, the page content is replaced, and new DOM elements are injected to mimic Microsoft\u2019s official authentication page. The script also reinstates several common defense mechanisms; for example, blocking keyboard shortcuts that open&nbsp;DevTools&nbsp;and performing execution-timing checks designed to detect debugging attempts using breakpoints.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"565\" height=\"619\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagea.png\" alt=\"\" class=\"wp-image-17126\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagea.png 565w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagea-274x300.png 274w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagea-370x405.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagea-270x296.png 270w\" sizes=\"(max-width: 565px) 100vw, 565px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.12: Blocking&nbsp;DevTools&nbsp;keyboard shortcuts<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>What\u2019s&nbsp;more interesting is that traces of Salty2FA are still present here; in particular, the familiar \u201csalted\u201d source code comments:&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"454\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-1024x454.png\" alt=\"\" class=\"wp-image-17110\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-1024x454.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-300x133.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-768x341.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-370x164.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-270x120.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb-740x328.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imageb.png 1206w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.13: Salty2FA traces inside the payload\u2019s source code<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>At the bottom of the page, there is a two-line script that once again executes Base64-decoded code via&nbsp;eval():&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"315\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-1024x315.png\" alt=\"\" class=\"wp-image-17111\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-1024x315.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-300x92.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-768x236.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-370x114.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-270x83.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec-740x227.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagec.png 1523w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.14: Another obfuscated code snippet<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Finally, we hit the plot twist: the next stage loads code that mirrors the last steps of the&nbsp;<a href=\"https:\/\/any.run\/cybersecurity-blog\/tycoon2fa-evasion-analysis\/\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Tycoon2FA execution chain<\/strong><\/a>&nbsp;almost&nbsp;line&nbsp;for&nbsp;line. The variable values, the order of functions, the way each&nbsp;component&nbsp;is implemented; all of it matches what earlier analyses and reports have already documented for this&nbsp;PhaaS&nbsp;platform.&nbsp;<\/p>\n\n\n\n<p>Here are some of the clearest similarities between this sample and Tycoon:&nbsp;&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"286\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-1024x286.png\" alt=\"\" class=\"wp-image-17112\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-1024x286.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-300x84.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-768x215.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-1536x429.png 1536w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-370x103.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-270x75.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged-740x207.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imaged.png 1560w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.15: Variable set with predefined values<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"615\" height=\"240\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagee.png\" alt=\"\" class=\"wp-image-17128\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagee.png 615w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagee-300x117.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagee-370x144.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagee-270x105.png 270w\" sizes=\"(max-width: 615px) 100vw, 615px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.16: Data-encryption function with hardcoded IV\/key<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"786\" height=\"375\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef.png\" alt=\"\" class=\"wp-image-17129\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef.png 786w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef-300x143.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef-768x366.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef-370x177.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef-270x129.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/imagef-740x353.png 740w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.17: Function for encoding stolen data as binary octets<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"878\" height=\"898\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10.png\" alt=\"\" class=\"wp-image-17116\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10.png 878w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10-293x300.png 293w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10-768x785.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10-370x378.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10-270x276.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image10-740x757.png 740w\" sizes=\"(max-width: 878px) 100vw, 878px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.18: Dynamic URL routing using&nbsp;RandExp&nbsp;patterns<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"485\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-1024x485.png\" alt=\"\" class=\"wp-image-17117\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-1024x485.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-300x142.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-768x364.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-370x175.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-270x128.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11-740x350.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image11.png 1366w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.19: POST request to a server using a characteristic DGA-generated domain name<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>It was also noted that some test data was not fully removed from the code. <\/p>\n\n\n\n<!-- Regular Banner START -->\n<div class=\"regular-banner\">\n<!-- Text Content -->\n<p class=\"regular-banner__text\">\nSpeed up MTTR by 21 minutes and boost DR by 36%<br>\nIntegrate <span class=\"highlight\">ANY.RUN&#8217;s solutions<\/span> in your SOC\n<\/p>\n<!-- CTA Link -->\n<a class=\"regular-banner__link\" id=\"article-banner-regular\" href=\"https:\/\/any.run\/enterprise\/?utm_source=anyrunblog&#038;utm_medium=article&#038;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&#038;utm_term=021225&#038;utm_content=linktoenterpriseform#contact-sales\" target=\"_blank\" rel=\"noopener\">\nContact us<\/a>\n<\/div>\n<!-- Regular Banner END -->\n<!-- Regular Banner Styles START -->\n\n<style>\n.regular-banner {\ndisplay: flex;\ntext-align: center;\nflex-direction: column;\nalign-items: center;\ngap: 1.5rem;\nwidth: 100%;\npadding: 2rem;\nmargin: 1.5rem 0;\nborder-radius: 0.5rem;\nfont-family: 'Catamaran Bold';\nmargin-inline: auto;\nbackground: rgba(32, 168, 241, 0.1);\nborder: 1px solid rgba(75, 174, 227, 0.32);\n}\n\n.regular-banner__text {\nfont-size: 1.5rem;\nmargin: 0;\n}\n\n.highlight {\ncolor: #ea2526;\n}\n\n.regular-banner__link {\npadding: 0.5rem 1.5rem;\nfont-weight: 500;\ntext-decoration: none;\nborder-radius: 0.5rem;\ncolor: #FFFFFF;\nbackground-color: #1491D4;\ntext-align: center;\ntransition: all 0.2s ease-in;\n}\n\n.regular-banner__link:hover {\nbackground-color: #68CBFF;\ncolor: white;\n}\n<\/style>\n<!-- Regular Banner Styles END -->\n\n\n\n<p>Several sections&nbsp;appear to be entirely&nbsp;commented out, as if the phishing kit operator&nbsp;was&nbsp;making quick edits or testing new functionality but&nbsp;didn\u2019t&nbsp;have time to&nbsp;finish refining it.&nbsp;<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"384\" height=\"467\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image12-2.png\" alt=\"\" class=\"wp-image-17118\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image12-2.png 384w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image12-2-247x300.png 247w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image12-2-370x450.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image12-2-270x328.png 270w\" sizes=\"(max-width: 384px) 100vw, 384px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.20: Test data inside the code<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"785\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-1024x785.png\" alt=\"\" class=\"wp-image-17119\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-1024x785.png 1024w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-300x230.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-768x588.png 768w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-370x284.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-270x207.png 270w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-740x567.png 740w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13-80x60.png 80w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image13.png 1091w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.21: Fully commented-out function<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"651\" height=\"337\" src=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image14.png\" alt=\"\" class=\"wp-image-17120\" srcset=\"\/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image14.png 651w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image14-300x155.png 300w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image14-370x192.png 370w, \/cybersecurity-blog\/wp-content\/uploads\/2025\/12\/image14-270x140.png 270w\" sizes=\"(max-width: 651px) 100vw, 651px\" \/><figcaption class=\"wp-element-caption\"><em>Fig.22: Disabled IP logging inside one of the 2FA-handling routines<\/em>&nbsp;<\/figcaption><\/figure><\/div>\n\n\n<p>Taken together, this&nbsp;provides&nbsp;clear evidence&nbsp;that a single phishing campaign, and, more interestingly, a single&nbsp;sample,&nbsp;contains&nbsp;traces of both&nbsp;<strong>Salty2FA<\/strong>&nbsp;and&nbsp;<strong>Tycoon<\/strong>, with Tycoon serving as a fallback payload once the Salty infrastructure stopped working for reasons that are still unclear.&nbsp;<\/p>\n\n\n\n<p>So, what does the appearance of this kind of hybrid in the wild mean for&nbsp;PhaaS&nbsp;attribution, for the operators behind these frameworks, and for phishing threat hunting more broadly? Could this point to multiple groups working together within the same operation, especially given earlier assumptions that&nbsp;<strong>Storm-1747<\/strong>&nbsp;(the Tycoon operators) might also be connected to Salty2FA? Or does it suggest that the major&nbsp;PhaaS&nbsp;kits may&nbsp;ultimately be&nbsp;run by the same people?&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Part 3:&nbsp;Are&nbsp;All These \u201cSome2FA\u201d&nbsp;Frameworks&nbsp;Really the&nbsp;Same?&nbsp;<\/h2>\n\n\n\n<p>Even though forensic work occasionally uncovers samples that include \u201ca little bit of everything,\u201d proper attribution between different phishing-kit families still matters. Being able to tell one kit from another ensures analysts&nbsp;don\u2019t&nbsp;lose the unique traces that belong to a specific framework and&nbsp;don\u2019t&nbsp;appear anywhere else. Those unique markers allow TI and Threat Hunting teams to build and test focused hypotheses, because trying to hunt under the umbrella of \u201call phishing attacks in the world\u201d simply&nbsp;doesn\u2019t&nbsp;work.&nbsp;<\/p>\n\n\n\n<p>Clear attribution also helps teams collect and share fresh threat intelligence, write detection rules that map to the upper layers of the&nbsp;<strong>Pyramid of Pain<\/strong>, and keep those rules effective for as long as possible.&nbsp;<\/p>\n\n\n\n<p>Attribution becomes even more valuable when you look at how it helps track shifts in the behavior and motivation of the groups&nbsp;running&nbsp;these kits. With&nbsp;<strong>Salty2FA<\/strong>, for example, there has already been speculation that&nbsp;<strong>Storm-1747<\/strong>&nbsp;may&nbsp;be responsible for&nbsp;maintaining, or even creating, the framework. If&nbsp;that\u2019s&nbsp;true, then the known TTPs, victim profiles, and operational patterns associated with Tycoon2FA would also apply to attacks involving Salty2FA. That overlap can significantly shorten detection and response times.&nbsp;<\/p>\n\n\n\n<p>It also leads to a practical expectation: if the activity of one kit suddenly drops off, defenders should be ready for a surge in another kit&nbsp;that\u2019s&nbsp;likely controlled&nbsp;by the same operators. That means updating detection logic, running new threat-hunting sweeps, carrying out security audits and awareness training, and reviewing incident-response playbooks that reflect&nbsp;<strong>Storm-1747\u2019s<\/strong>&nbsp;known TTPs.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How Should SOC Teams Respond to This Shift?&nbsp;<\/h2>\n\n\n\n<p>For SOC teams, the appearance of Salty2FA\u2013Tycoon2FA hybrids calls for a shift in how these campaigns are detected, correlated, and investigated. When a phishing kit can fall back to a different&nbsp;framework&nbsp;mid-execution, defenders need to adapt their processes accordingly.&nbsp;<\/p>\n\n\n\n<p><strong>1. Treat Salty2FA and Tycoon2FA as part of one threat cluster:&nbsp;<\/strong>The overlap in infrastructure, indicators, and execution stages means detections tied to one kit may surface activity from the other. Correlation rules and enrichment pipelines should consider both families together.&nbsp;<\/p>\n\n\n\n<p><strong>2. Build hunting hypotheses that account for fallback payloads:&nbsp;<\/strong>If Salty infrastructure becomes unavailable, the same campaign may pivot into Tycoon2FA without leaving a clear break. Threat hunting should look for these transitions to avoid missing supporting evidence.&nbsp;<\/p>\n\n\n\n<p><strong>3. Rely more on behavior than static IOCs:&nbsp;<\/strong>Hybrid kits weaken simple signature-based workflows. DOM manipulation patterns, execution-stage logic, DGA activity, and fast-flux domains&nbsp;remain&nbsp;more stable than standalone indicators.&nbsp;<\/p>\n\n\n\n<p><strong>4. Refresh IR playbooks to reflect mixed execution chains:&nbsp;<\/strong>Playbooks should include scenarios where multiple frameworks appear in the same campaign, or where an incident involves a sequence of payloads from different kits.&nbsp;<\/p>\n\n\n\n<p><strong>5. Expect faster TTP propagation:&nbsp;<\/strong>If Storm-1747 is indeed behind both frameworks, changes&nbsp;observed&nbsp;in Tycoon2FA may quickly appear in Salty2FA as well. SOC teams should&nbsp;monitor&nbsp;these shifts to stay ahead of detection gaps.&nbsp;<\/p>\n\n\n\n<p>In short, the rise of hybrid 2FA phishing kits means defenders should&nbsp;prepare for&nbsp;campaigns that&nbsp;operate&nbsp;more flexibly, more modularly, and with a higher tolerance for infrastructure failures;&nbsp;traits that align with increasingly mature threat groups.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Supporting Detection and Response with ANY.RUN&nbsp;<\/h2>\n\n\n\n<p>ANY.RUN provides SOC teams with the visibility and speed needed to keep up with hybrid phishing kits. With interactive analysis and real-time intelligence in one workflow, SOC analysts can&nbsp;validate&nbsp;attribution, tune detections, and respond with confidence:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Fast investigation of complex threats:<\/strong>&nbsp;Analysts see initial malicious activity in&nbsp;about 60 seconds in 90% of cases, even for multi-stage phishing kits.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Immediate access to fresh IOCs:&nbsp;<\/strong><a href=\"https:\/\/any.run\/threat-intelligence-feeds\/?utm_source=anyrunblog&amp;utm_medium=email_and_blog&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktotifeedslanding\" target=\"_blank\" rel=\"noreferrer noopener\">ANY.RUN\u2019s Threat Intelligence Feeds<\/a>&nbsp;aggregate&nbsp;newly observed domains, URLs, IPs, and artifacts from&nbsp;15,000 organizations&nbsp;and a community of more than&nbsp;600,000 analysts worldwide, providing early visibility into indicators.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Deep inspection of mixed execution chains:&nbsp;<\/strong>The&nbsp;<a href=\"https:\/\/any.run\/features\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linksandboxlanding\" target=\"_blank\" rel=\"noreferrer noopener\">interactive sandbox<\/a>&nbsp;gives full visibility into each stage of the attack.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>One-click enrichment with&nbsp;<\/strong><a href=\"https:\/\/any.run\/threat-intelligence-lookup\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktotilookuplanding\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>TI Lookup<\/strong><\/a><strong>:&nbsp;<\/strong>Analysts can instantly view historical use, related samples, and broader activity patterns around any indicator.&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Reliable correlation signals:<\/strong>&nbsp;Shared domains, DGA patterns, and reused client-side code become&nbsp;immediately&nbsp;visible across public and private submissions.&nbsp;<\/li>\n<\/ul>\n\n\n\n<p>Together, these capabilities give SOC analysts a clearer, faster way to deal with hybrid phishing campaigns. They help teams spot changes early, run more&nbsp;focused&nbsp;hunts, and respond before attackers manage to regain traction.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion&nbsp;<\/h2>\n\n\n\n<p>In this analysis, we reviewed a case where payloads from&nbsp;<strong>Salty2FA<\/strong>&nbsp;and&nbsp;<strong>Tycoon2FA<\/strong>&nbsp;appeared together, following a sharp decline in Salty2FA activity. This kind of overlap may&nbsp;indicate&nbsp;operational issues on the Salty side, or, just as plausibly, suggest that both frameworks are&nbsp;operated&nbsp;by the same group, namely&nbsp;<strong>Storm-1747<\/strong>.&nbsp;<\/p>\n\n\n\n<p>Going forward, we should expect to see more overlap in indicators of compromise, TTPs, and victim organizations across phishing campaigns involving these kits. For that reason, defenders should revisit their detection logic and develop hunting hypotheses that account for traces of both&nbsp;<strong>Salty<\/strong>&nbsp;and&nbsp;<strong>Tycoon<\/strong>&nbsp;appearing within the same context.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">About ANY.RUN&nbsp;<\/h2>\n\n\n\n<p><a href=\"https:\/\/any.run\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktolanding\" target=\"_blank\" rel=\"noreferrer noopener\">ANY.RUN<\/a>&nbsp;is a leading provider of interactive malware analysis and threat intelligence solutions used by security teams around the world. The service combines&nbsp;<a href=\"https:\/\/any.run\/features\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linksandboxlanding\" target=\"_blank\" rel=\"noreferrer noopener\">real-time sandboxing<\/a>&nbsp;with a rich intelligence ecosystem that includes&nbsp;<a href=\"https:\/\/any.run\/threat-intelligence-feeds\/?utm_source=anyrunblog&amp;utm_medium=email_and_blog&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktotifeedslanding\" target=\"_blank\" rel=\"noreferrer noopener\">TI Feeds<\/a>,&nbsp;<a href=\"https:\/\/any.run\/threat-intelligence-lookup\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktotilookuplanding\" target=\"_blank\" rel=\"noreferrer noopener\">TI Lookup<\/a>, and public malware submissions.&nbsp;<\/p>\n\n\n\n<p>More than&nbsp;500,000 analysts and 15,000 organizations rely on ANY.RUN to speed up investigations, validate TTPs, collect fresh&nbsp;IOCs, and understand emerging threats through live, behavior-based analysis.&nbsp;<\/p>\n\n\n\n<p>By giving defenders an interactive view of how malware behaves from the very first second of execution, ANY.RUN helps teams detect attacks faster, make informed decisions, and strengthen their overall security posture.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/any.run\/demo\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktodemo\" target=\"_blank\" rel=\"noreferrer noopener\">Experience how ANY.RUN\u2019s solutions can power your SOC: start 14-day trial<\/a>&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Indicators of Compromise&nbsp;<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1otyu7944x8[.]workers[.]dev&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>xm65lwf0pr2e[.]workers[.]dev&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>diogeneqc[.]pages[.]dev&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>stoozucha[.]sa[.]com&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>omvexe[.]shop&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lapointelegal-portail[.]pages[.]dev&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li>lathetai[.]sa[.]com&nbsp;<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">References&nbsp;<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/app.any.run\/tasks\/46352ebf-7ee1-4d74-9850-2cdc6f6f0a49\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/app.any.run\/tasks\/46352ebf-7ee1-4d74-9850-2cdc6f6f0a49<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/app.any.run\/tasks\/ccf7d689-7926-495d-b37f-d509536ff42b\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/app.any.run\/tasks\/ccf7d689-7926-495d-b37f-d509536ff42b<\/a>&nbsp;<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/intelligence.any.run\/analysis\/lookup\/?utm_source=anyrunblog&amp;utm_medium=article&amp;utm_campaign=Salty2fa_Tycoon2fa_hybrid_phishing_2025&amp;utm_term=021225&amp;utm_content=linktoservice#{%22query%22:%22threatName:%5C%22salty2fa%5C%22%20AND%20threatName:%5C%22tycoon%5C%22%20AND%20domainName:%5C%22.dev$%5C%22%22,%22dateRange%22:60\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/intelligence.any.run\/analysis\/lookup#{%22query%22:%22threatName:%5C%22salty2fa%5C%22%20AND%20threatName:%5C%22tycoon%5C%22%20AND%20domainName:%5C%22.dev$%5C%22%22,%22dateRange%22:60<\/a>}&nbsp;<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp;Phishing kits usually have distinct signatures in their delivery methods, infrastructure, and client-side code, which makes attribution&nbsp;fairly predictable. But recent samples began showing traits from two different kits at once, blurring those distinctions.&nbsp; That\u2019s&nbsp;exactly what&nbsp;ANY.RUN&nbsp;analysts saw with Salty2FA and Tycoon2FA: a sudden&nbsp;drop in&nbsp;Salty activity, the appearance of Tycoon indicators inside Salty-linked chains, and eventually single [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":17122,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[57,10,34],"class_list":["post-17088","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-malware-analysis","tag-anyrun","tag-cybersecurity","tag-malware-analysis"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.10 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Salty2FA &amp; Tycoon2FA: Hybrid Phishing Threat\u00a0<\/title>\n<meta name=\"description\" content=\"A Salty2FA\u2013Tycoon2FA hybrid\u00a0is hitting\u00a0inboxes worldwide. See how it formed, why attribution is breaking, and the updates SOC teams need now.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"raptur3\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\n\t    \"@context\": \"https:\/\/schema.org\",\n\t    \"@graph\": [\n\t        {\n\t            \"@type\": \"Article\",\n\t            \"@id\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#article\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/\"\n\t            },\n\t            \"author\": {\n\t                \"name\": \"raptur3\",\n\t                \"@id\": \"https:\/\/any.run\/\"\n\t            },\n\t            \"headline\": \"Salty2FA &amp; Tycoon2FA\u00a0Hybrid: A New Phishing Threat\u00a0to\u00a0Enterprises\u00a0\",\n\t            \"datePublished\": \"2025-12-02T10:56:08+00:00\",\n\t            \"dateModified\": \"2025-12-02T12:47:44+00:00\",\n\t            \"mainEntityOfPage\": {\n\t                \"@id\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/\"\n\t            },\n\t            \"wordCount\": 3152,\n\t            \"commentCount\": 0,\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/any.run\/\"\n\t            },\n\t            \"keywords\": [\n\t                \"ANYRUN\",\n\t                \"cybersecurity\",\n\t                \"malware analysis\"\n\t            ],\n\t            \"articleSection\": [\n\t                \"Malware Analysis\"\n\t            ],\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"CommentAction\",\n\t                    \"name\": \"Comment\",\n\t                    \"target\": [\n\t                        \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#respond\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebPage\",\n\t            \"@id\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/\",\n\t            \"url\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/\",\n\t            \"name\": \"Salty2FA & Tycoon2FA: Hybrid Phishing Threat\u00a0\",\n\t            \"isPartOf\": {\n\t                \"@id\": \"https:\/\/any.run\/\"\n\t            },\n\t            \"datePublished\": \"2025-12-02T10:56:08+00:00\",\n\t            \"dateModified\": \"2025-12-02T12:47:44+00:00\",\n\t            \"description\": \"A Salty2FA\u2013Tycoon2FA hybrid\u00a0is hitting\u00a0inboxes worldwide. See how it formed, why attribution is breaking, and the updates SOC teams need now.\",\n\t            \"breadcrumb\": {\n\t                \"@id\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#breadcrumb\"\n\t            },\n\t            \"inLanguage\": \"en-US\",\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"ReadAction\",\n\t                    \"target\": [\n\t                        \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/\"\n\t                    ]\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"BreadcrumbList\",\n\t            \"@id\": \"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#breadcrumb\",\n\t            \"itemListElement\": [\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 1,\n\t                    \"name\": \"Home\",\n\t                    \"item\": \"https:\/\/any.run\/cybersecurity-blog\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 2,\n\t                    \"name\": \"Malware Analysis\",\n\t                    \"item\": \"https:\/\/any.run\/cybersecurity-blog\/category\/malware-analysis\/\"\n\t                },\n\t                {\n\t                    \"@type\": \"ListItem\",\n\t                    \"position\": 3,\n\t                    \"name\": \"Salty2FA &amp; Tycoon2FA\u00a0Hybrid: A New Phishing Threat\u00a0to\u00a0Enterprises\u00a0\"\n\t                }\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"WebSite\",\n\t            \"@id\": \"https:\/\/any.run\/\",\n\t            \"url\": \"https:\/\/any.run\/\",\n\t            \"name\": \"ANY.RUN&#039;s Cybersecurity Blog\",\n\t            \"description\": \"Cybersecurity Blog covers topics for experienced professionals as well as for those new to it.\",\n\t            \"publisher\": {\n\t                \"@id\": \"https:\/\/any.run\/\"\n\t            },\n\t            \"potentialAction\": [\n\t                {\n\t                    \"@type\": \"SearchAction\",\n\t                    \"target\": {\n\t                        \"@type\": \"EntryPoint\",\n\t                        \"urlTemplate\": \"https:\/\/any.run\/?s={search_term_string}\"\n\t                    },\n\t                    \"query-input\": \"required name=search_term_string\"\n\t                }\n\t            ],\n\t            \"inLanguage\": \"en-US\"\n\t        },\n\t        {\n\t            \"@type\": \"Organization\",\n\t            \"@id\": \"https:\/\/any.run\/\",\n\t            \"name\": \"ANY.RUN\",\n\t            \"url\": \"https:\/\/any.run\/\",\n\t            \"logo\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\/\/any.run\/\",\n\t                \"url\": \"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg\",\n\t                \"contentUrl\": \"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg\",\n\t                \"width\": 1,\n\t                \"height\": 1,\n\t                \"caption\": \"ANY.RUN\"\n\t            },\n\t            \"image\": {\n\t                \"@id\": \"https:\/\/any.run\/\"\n\t            },\n\t            \"sameAs\": [\n\t                \"https:\/\/www.facebook.com\/www.any.run\/\",\n\t                \"https:\/\/twitter.com\/anyrun_app\",\n\t                \"https:\/\/www.linkedin.com\/company\/30692044\",\n\t                \"https:\/\/www.youtube.com\/channel\/UCOgCPho7lzmH7m6fPNlukrQ\"\n\t            ]\n\t        },\n\t        {\n\t            \"@type\": \"Person\",\n\t            \"@id\": \"https:\/\/any.run\/\",\n\t            \"name\": \"raptur3\",\n\t            \"image\": {\n\t                \"@type\": \"ImageObject\",\n\t                \"inLanguage\": \"en-US\",\n\t                \"@id\": \"https:\/\/any.run\/\",\n\t                \"url\": \"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2025\/05\/rapture3.png\",\n\t                \"contentUrl\": \"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2025\/05\/rapture3.png\",\n\t                \"caption\": \"raptur3\"\n\t            },\n\t            \"description\": \"Network Analyst at ANY.RUN. Keen to become a 'cybersec Swiss Army knife' man. Enjoys reading and writing deep-dive tech research.\",\n\t            \"url\": \"#molongui-disabled-link\"\n\t        }\n\t    ]\n\t}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Salty2FA & Tycoon2FA: Hybrid Phishing Threat\u00a0","description":"A Salty2FA\u2013Tycoon2FA hybrid\u00a0is hitting\u00a0inboxes worldwide. See how it formed, why attribution is breaking, and the updates SOC teams need now.","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:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/","twitter_misc":{"Written by":"raptur3","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#article","isPartOf":{"@id":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/"},"author":{"name":"raptur3","@id":"https:\/\/any.run\/"},"headline":"Salty2FA &amp; Tycoon2FA\u00a0Hybrid: A New Phishing Threat\u00a0to\u00a0Enterprises\u00a0","datePublished":"2025-12-02T10:56:08+00:00","dateModified":"2025-12-02T12:47:44+00:00","mainEntityOfPage":{"@id":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/"},"wordCount":3152,"commentCount":0,"publisher":{"@id":"https:\/\/any.run\/"},"keywords":["ANYRUN","cybersecurity","malware analysis"],"articleSection":["Malware Analysis"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/","url":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/","name":"Salty2FA & Tycoon2FA: Hybrid Phishing Threat\u00a0","isPartOf":{"@id":"https:\/\/any.run\/"},"datePublished":"2025-12-02T10:56:08+00:00","dateModified":"2025-12-02T12:47:44+00:00","description":"A Salty2FA\u2013Tycoon2FA hybrid\u00a0is hitting\u00a0inboxes worldwide. See how it formed, why attribution is breaking, and the updates SOC teams need now.","breadcrumb":{"@id":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/any.run\/cybersecurity-blog\/salty2fa-tycoon2fa-hybrid-phishing-2025\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/any.run\/cybersecurity-blog\/"},{"@type":"ListItem","position":2,"name":"Malware Analysis","item":"https:\/\/any.run\/cybersecurity-blog\/category\/malware-analysis\/"},{"@type":"ListItem","position":3,"name":"Salty2FA &amp; Tycoon2FA\u00a0Hybrid: A New Phishing Threat\u00a0to\u00a0Enterprises\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/","name":"ANY.RUN&#039;s Cybersecurity Blog","description":"Cybersecurity Blog covers topics for experienced professionals as well as for those new to it.","publisher":{"@id":"https:\/\/any.run\/"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/any.run\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/any.run\/","name":"ANY.RUN","url":"https:\/\/any.run\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg","contentUrl":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2020\/08\/ANYRUN-Icon.svg","width":1,"height":1,"caption":"ANY.RUN"},"image":{"@id":"https:\/\/any.run\/"},"sameAs":["https:\/\/www.facebook.com\/www.any.run\/","https:\/\/twitter.com\/anyrun_app","https:\/\/www.linkedin.com\/company\/30692044","https:\/\/www.youtube.com\/channel\/UCOgCPho7lzmH7m6fPNlukrQ"]},{"@type":"Person","@id":"https:\/\/any.run\/","name":"raptur3","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/any.run\/","url":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2025\/05\/rapture3.png","contentUrl":"https:\/\/any.run\/cybersecurity-blog\/wp-content\/uploads\/2025\/05\/rapture3.png","caption":"raptur3"},"description":"Network Analyst at ANY.RUN. Keen to become a 'cybersec Swiss Army knife' man. Enjoys reading and writing deep-dive tech research.","url":"#molongui-disabled-link"}]}},"_links":{"self":[{"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/17088"}],"collection":[{"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/comments?post=17088"}],"version-history":[{"count":18,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/17088\/revisions"}],"predecessor-version":[{"id":17147,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/posts\/17088\/revisions\/17147"}],"wp:featuredmedia":[{"embeddable":true,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/media\/17122"}],"wp:attachment":[{"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/media?parent=17088"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/categories?post=17088"},{"taxonomy":"post_tag","embeddable":true,"href":"\/cybersecurity-blog\/wp-json\/wp\/v2\/tags?post=17088"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}