{"id":25602,"date":"2024-12-19T09:21:16","date_gmt":"2024-12-19T17:21:16","guid":{"rendered":"http:\/\/www.palada.net\/index.php\/2024\/12\/19\/news-19331\/"},"modified":"2024-12-19T09:21:16","modified_gmt":"2024-12-19T17:21:16","slug":"news-19331","status":"publish","type":"post","link":"https:\/\/www.palada.net\/index.php\/2024\/12\/19\/news-19331\/","title":{"rendered":"Phishing platform Rockstar 2FA trips, and \u201cFlowerStorm\u201d picks up the pieces"},"content":{"rendered":"<p><strong>Credit to Author: gallagherseanm| Date: Thu, 19 Dec 2024 15:11:48 +0000<\/strong><\/p>\n<div class=\"entry-content lg:prose-lg mx-auto prose max-w-4xl\">\n<h4>Editor&#8217;s note: Sophos MDR&#8217;s Johua Rawles, Mark Parsons, Jordon Olness, and Colin Cowie contributed to this report.<\/h4>\n<p>&nbsp;<\/p>\n<p>One of the Internet\u2019s most prolific cybercrime-as-a-service operations recently suffered a setback: In November, Sophos MDR noticed that detections for the Rockstar2FA \u201cphishing-as-a-service\u201d(PaaS) platform had suddenly gone quiet.<\/p>\n<p>Based on telemetry gathered by Sophos MDR, it appears that the group running the service experienced at least a partial collapse of its infrastructure, with pages associated with the service no longer reachable. This does not appear to be because of a takedown action, but due to some technical failure on the backend of the service.<\/p>\n<p>The disappearance of Rockstar2FA, an updated version of phishing services known as DadSec (previously associated with Microsoft\u2019s Storm-1575 threat group) came two weeks before <a href=\"https:\/\/www.trustwave.com\/en-us\/resources\/blogs\/spiderlabs-blog\/rockstar-2fa-phishing-as-a-service-paas-noteworthy-email-campaigns\/\">TrustWave published research detailing the phishing-as-a-service operation<\/a>. Elements of the phishing service\u2019s infrastructure are now no longer reachable, returning an HTTP 522 response\u2014 indicating that they were cut off from the Cloudflare content delivery network. Telegram channels associated with command and control of the service also appear to have gone offline.<\/p>\n<p>In the weeks following\u00a0 the disruption of Rockstar2FA, we observed a surge in the use of a similar set of PaaS portals that have been <a href=\"https:\/\/x.com\/Jane_0sint\/status\/1849697232037216638\"><span data-contrast=\"none\"> tagged by some researchers<\/span><\/a> as \u201cFlowerStorm\u201d\u2014the name coming from the use of plant-related terms in the HTML page titles of many of the phishing pages themselves (\u201cFlower,\u201d \u201cSprout, \u201cBlossom,\u201d and \u201cLeaf,\u201d for example). FlowerStorm shares a number of features with Rockstar and with Tycoon, another Telegram bot-powered PaaS platform.<\/p>\n<h2>So, you want to be a rock star<\/h2>\n<p>Rockstar2FA is (or perhaps was) a PaaS kit that mimics legitimate credential-request behavior of commonly used cloud and software-as-a-service platforms. Would-be cybercriminals purchase and control phishing campaigns through Telegram and are given a unique phishing page and URL to use in their campaign.\u00a0 Visits via the link delivered to the target delivered the phish; visits to the domain of the site itself are routed to a \u201cdecoy\u201d page. Rockstar\u2019s decoy pages usually had an automotive theme.<\/p>\n<figure id=\"attachment_958945\" aria-describedby=\"caption-attachment-958945\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstar-decoy.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-958945 size-full\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstar-decoy.png\" alt=\"A screenshot of a Rockstar2FA &quot;decoy&quot; page, a fake auto dealer site.\" width=\"640\" height=\"389\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstar-decoy.png 901w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstar-decoy.png?resize=300,182 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstar-decoy.png?resize=768,466 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958945\" class=\"wp-caption-text\">Figure 1: A Rockstar2FA \u201cdecoy\u201d page<\/figcaption><\/figure>\n<p>Visitors to the URL would be routed to a counterfeit Microsoft login page. That page captured credentials and multifactor authentication tokens and sent them via an HTTP POST message to an adversary-controlled \u201cbackend server\u201d page \u2014a PHP page with a seemingly random number for its name (as shown in Figure 2). These back-end servers were largely on .ru, .de and .moscow registered domains. The decoy pages were frequently hosted on the same hosts as the back-end servers.<\/p>\n<figure id=\"attachment_958946\" aria-describedby=\"caption-attachment-958946\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstar-backend-server-comms.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958946\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstar-backend-server-comms.jpg\" alt=\"Screen shots of the developer view of Chrome showing web requests sent from a Rockstar2FA phishing portal. \" width=\"640\" height=\"375\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstar-backend-server-comms.jpg 704w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstar-backend-server-comms.jpg?resize=300,176 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958946\" class=\"wp-caption-text\">Figure 2: HTTP POST data sent from a Rockstar2FA phishing page to a backend server on a .ru domain (shown in Chrome developer tool view)<\/figcaption><\/figure>\n<p>Most of the phishing pages were on domains registered in the .com, .de, .ru. and .moscow top-level domains. At any given time, the Rockstar2FA service used about 2,000 domains across these and other TLDs.<\/p>\n<figure id=\"attachment_958947\" aria-describedby=\"caption-attachment-958947\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarTLDs.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958947\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarTLDs.png\" alt=\"A pie chart showing the distribution of top-level domains the 10 most heavily used domain names were registered with. A third were .ru, a fifth were .com. \" width=\"640\" height=\"640\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarTLDs.png 826w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarTLDs.png?resize=150,150 150w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarTLDs.png?resize=300,300 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarTLDs.png?resize=768,768 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958947\" class=\"wp-caption-text\">Figure 3: Distribution of Top 10 Rockstar2FA phishing domains by TLD<\/figcaption><\/figure>\n<p>However, starting no later than June 2024, some of these pages used <a href=\"https:\/\/pages.cloudflare.com\/\">Cloudflare Pages serverless deployment<\/a> (using the domain pages[.]dev), along with code deployed as Cloudflare workers (at the domain worker[.]dev), while still relying on backend servers for exfiltrating phishing data. These phishing pages used subdomain names that did not appear to be created with a domain generation algorithm (DGA)\u2014instead, they appear to have been manually typed by the operator of the kit. Some were crafted to emulate specific target domains (as with 4344655-proofpoint-online-secure.pages[.]dev). But others were similar to keyboard spam:<\/p>\n<ul>\n<li>whenyoucreatanydominsamedominusedturnslite.pages[.]dev<\/li>\n<li>pppaaaaulhaaaammmlinnnnbuiiildddeeeerrsssssnzzzzzozzzz.pages[.]dev<\/li>\n<\/ul>\n<p>These domains made up only a small number of the overall URLs related to Rockstar, and were generally associated with the phishing portals themselves.<\/p>\n<figure id=\"attachment_958949\" aria-describedby=\"caption-attachment-958949\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStorm-detects-by-TLD.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958949\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStorm-detects-by-TLD.jpg\" alt=\"A bar chart showing the distribution of TLDs and number of URLs detected per month for Rockstar2FA. The number of .ru domains decreased significantly over time.\" width=\"640\" height=\"360\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStorm-detects-by-TLD.jpg 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStorm-detects-by-TLD.jpg?resize=300,169 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStorm-detects-by-TLD.jpg?resize=768,432 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStorm-detects-by-TLD.jpg?resize=1024,576 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958949\" class=\"wp-caption-text\">Figure 4: New Rockstar URL detections by day from May 24 to November 12, grouped by top-level domain. The use of .ru domains shrank over time as the campaign progressed, and use of .com TLDs expanded. November data ends at November 12 when new detections dropped off. The use of pages.dev was limited to a handful of hostnames per month.<\/figcaption><\/figure>\n<h2>Technical difficulties<\/h2>\n<p>On November 11, the infrastructure of Rockstar2FA suddenly was disrupted. Redirects to decoy pages failed, yielding a Cloudflare 522 error, indicating that the server providing the page was no longer in communication with Cloudflare.<\/p>\n<p><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958950\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png\" alt=\"A screenshot of a failed connection error for a Rockstar decoy page.\" width=\"640\" height=\"312\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png 3030w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png?resize=300,146 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png?resize=768,374 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png?resize=1024,499 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png?resize=1536,748 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Rockstarerror522.png?resize=2048,998 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a>Figure 5. A failed connection to a decoy page domain<\/p>\n<p>Additionally, the portal pages began to fail. While clicking the Cloudflare \u201cI\u2019m human\u201d test previously resulted in a counterfeit Microsoft login portal being loaded, now all that loaded was the animated Outlook logo. The remainder of the script for the portal pages fails because the connection to the back-end server (via a POST request) has been severed.<\/p>\n<figure id=\"attachment_958951\" aria-describedby=\"caption-attachment-958951\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarOutlookanimate.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958951\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarOutlookanimate.png\" alt=\"A screenshot of an animated Office365 logo for Outlook used by Rockstar's phishing portal pages.\" width=\"640\" height=\"411\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarOutlookanimate.png 990w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarOutlookanimate.png?resize=300,193 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RockstarOutlookanimate.png?resize=768,493 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958951\" class=\"wp-caption-text\">Figure 6: The Microsoft Outlook animated logo shown by the now-failing phishing kit<\/figcaption><\/figure>\n<p>The same was true for pages[.]dev hosted portal pages, which also hung while trying to connect to the back-end URLs. Since November, we have continued to see new phishing portal pages set up on pages[.]dev subdomains, but they all fail to connect to their backend servers.<\/p>\n<figure id=\"attachment_958952\" aria-describedby=\"caption-attachment-958952\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958952\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png\" alt=\"A screenshot of a Chrome developer view of a Rockstar pages.dev phishing portal failing to connect to a backend server.\" width=\"640\" height=\"129\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png 3470w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png?resize=300,61 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png?resize=768,155 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png?resize=1024,207 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png?resize=1536,310 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Failed_connection_Rockstar_backend.png?resize=2048,413 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958952\" class=\"wp-caption-text\">Figure 7: A failed POST request to a Rockstar2FA backend server<\/figcaption><\/figure>\n<p>This suggests that the operators are continuing to struggle to get their infrastructure back online. This may be because of a web hosting problem or some other technical issue plaguing the Rockstar2FA operators. The fact that the Telegram bots used to run the service also appear to be down suggests there is some larger sort of disruption to the operation.<\/p>\n<h2>The rising rock star (?): FlowerStorm<\/h2>\n<p>Within about a week and a half of the interruption of Rockstar, we saw a surge in activity from FlowerStorm, though we also found many of these sites were being disrupted as well. The FlowerStorm PaaS platform has been active since at least June of 2024.<\/p>\n<p>Looking at the behavior of FlowerStorm samples, we found that the portal used the same URL to send an authentication request for the target as used in communication requests to the &#8220;backend portal\u201d\u2014in this case, to a backend server utilizing the file \u201cnext.php\u201d.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_958953\" aria-describedby=\"caption-attachment-958953\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958953\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png\" alt=\"A screenshot of data abouit and \" width=\"640\" height=\"214\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png 2720w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png?resize=300,100 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png?resize=768,257 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png?resize=1024,343 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png?resize=1536,514 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormphishnext-php.png?resize=2048,685 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958953\" class=\"wp-caption-text\">Figure 8: An HTTP request from the FlowerStorm phishing page<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>In this case, the same IP address utilized for the credential harvesting was also used for the authentication to the user account, based on EntraID sign-in logs.<\/p>\n<figure id=\"attachment_958954\" aria-describedby=\"caption-attachment-958954\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormEntraID-log.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958954\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormEntraID-log.png\" alt=\"Figure 9: the EnteraID log for a sign-in by the adversary-in-the-middle script on the phishing service\u2019s back-end server.\" width=\"640\" height=\"333\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormEntraID-log.png 980w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormEntraID-log.png?resize=300,156 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormEntraID-log.png?resize=768,400 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958954\" class=\"wp-caption-text\">Figure 9: the EnteraID log for a sign-in by the adversary-in-the-middle script on the phishing service\u2019s back-end server.<\/figcaption><\/figure>\n<p>The phishing pages\u2019 communication to the backend servers PHP file utilized the expected fields and communication below:<\/p>\n<p><strong>Field Descriptions and Expected Values<\/strong><\/p>\n<p><strong>Expected Responses and Interpretations<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>Action<\/strong><\/td>\n<td><strong>Response<\/strong><\/td>\n<td><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td>check<\/td>\n<td>{ &#8220;status&#8221;: &#8220;success&#8221;, &#8220;banner&#8221;: null, &#8220;background&#8221;: null, &#8220;federationLogin&#8221;: &#8220;&#8221;, &#8220;type&#8221;: &#8220;office&#8221; }<\/td>\n<td>Indicates a valid email and issues a token.<\/td>\n<\/tr>\n<tr>\n<td>login<\/td>\n<td>{ &#8220;status&#8221;: &#8220;verify&#8221;, &#8220;message&#8221;: &#8220;Please verify your account&#8221;, &#8220;method&#8221;: &#8220;&lt;base64 encoded method response&gt;&#8221;, &#8220;token&#8221;: &#8220;&lt;JWT_Token&gt;&#8221;, &#8220;key&#8221;: &#8220;&lt;base64_encoded_password&gt;&#8221;, &#8220;user&#8221;: &#8220;&lt;email&gt;&#8221; }<\/td>\n<td width=\"196\">Prompts for MFA using the same JWT for session tracking.<\/td>\n<\/tr>\n<tr>\n<td>Method<\/td>\n<td>{ &#8220;status&#8221;: true, &#8220;data&#8221;: &#8220;&lt;base64 encoded session data&gt;&#8221;, &#8220;number&#8221;: 59 }<\/td>\n<td>Posts session-specific data used for MFA.<\/td>\n<\/tr>\n<tr>\n<td>Method (Data Decoded)<\/td>\n<td>[ { &#8220;authMethodId&#8221;: &#8220;PhoneAppNotification&#8221;, &#8220;data&#8221;: &#8220;PhoneAppNotification&#8221;, &#8220;isDefault&#8221;: true }, { &#8220;authMethodId&#8221;: &#8220;PhoneAppOTP&#8221;, &#8220;data&#8221;: &#8220;PhoneAppOTP&#8221;, &#8220;phoneAppOtpTypes&#8221;: [&#8220;MicrosoftAuthenticatorBasedTOTP&#8221;] } ]<\/td>\n<td>Details multi-factor authentication methods available to the user.<\/td>\n<\/tr>\n<tr>\n<td>CheckVerify (Failure)<\/td>\n<td>{ &#8220;status&#8221;: false, &#8220;message&#8221;: &#8220;Verification failed&#8221;, &#8220;token&#8221;: &#8220;&lt;JWT_Token&gt;&#8221; }<\/td>\n<td>Server begins checking for MFA acceptance.<\/td>\n<\/tr>\n<tr>\n<td>CheckVerify (Success)<\/td>\n<td>{ &#8220;&lt;string_with_session_cookies&gt;&#8221; }<\/td>\n<td>MFA was accepted, response contains session cookies for authentication.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Not all the phishing pages utilize the same backend server structure. Some portals will utilize a next.php hosted on the same domain as the phishing landing page. The IP address in EntraID authentication logs will not be the same for these portals. For example, in the case below, the phishing page protectivewearsupplies[.]doclawfederal[.]com\/wQBPg\/ sends its post request to a different host with the same domain name:<\/p>\n<figure id=\"attachment_958955\" aria-describedby=\"caption-attachment-958955\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958955\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png\" alt=\"Figure 10: the HTTP header data for a phishing page\u2019s backend server communications on a separate host\" width=\"640\" height=\"449\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png 1811w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png?resize=300,211 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png?resize=768,539 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png?resize=1024,719 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/Flowerstorm-same-host-authenticate.png?resize=1536,1078 1536w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958955\" class=\"wp-caption-text\">Figure 10: the HTTP header data for a phishing page\u2019s backend server communications on a separate host<\/figcaption><\/figure>\n<figure id=\"attachment_958956\" aria-describedby=\"caption-attachment-958956\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958956\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png\" alt=\"Figure 11: A developer browser view of the phishing page protectivewearsupplies[.]doclawfederal[.]com\/wQBPg\/\" width=\"640\" height=\"411\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png 2126w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png?resize=300,193 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png?resize=768,493 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png?resize=1024,657 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png?resize=1536,986 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerstormDeveloperViewPhishportal.png?resize=2048,1315 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958956\" class=\"wp-caption-text\">Figure 11: A developer browser view of the phishing page protectivewearsupplies[.]doclawfederal[.]com\/wQBPg\/<\/figcaption><\/figure>\n<h2>Rockstar2FA\/ FlowerStorm similarities<\/h2>\n<p>FlowerStorm has a significant number of similarities to Rockstar2FA, both in the format of its phishing portal pages and the connection to its backend server .<\/p>\n<h3>Document object model<\/h3>\n<p>&nbsp;<\/p>\n<p>The HTML of FlowerStorm\u2019s portal pages has changed over the past six months but still retains a similar Document Object Model (DOM) content to that of Rockstar pages. The HTML pages of older and newer FlowerStorm phishing pages, like those of Rockstar2FA, have strings of random, unrelated text in HTML comments, use Cloudflare \u201cturnstile\u201d keys to prompt a check of the incoming page request, and have other similar structures and content, as shown below:<\/p>\n<p>&nbsp;<\/p>\n<table>\n<tbody>\n<tr>\n<td><strong>\u00a0<\/strong><\/td>\n<td><strong>New FlowerStorm<\/strong><\/td>\n<td><strong>Old Rockstar2FA<\/strong><\/td>\n<td><strong>Old FlowerStorm<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>Title<\/strong><\/td>\n<td>OreganoLeaf<\/td>\n<td>Unalike<\/td>\n<td>Elderberry<\/td>\n<\/tr>\n<tr>\n<td><strong>Turnstile Sitekey<\/strong><\/td>\n<td>0x4AAAAAAA0_fAGSk-ZDbrja<\/td>\n<td>0x4AAAAAAAhiG1SBeMjCx4fG<\/td>\n<td>0x4AAAAAAAceMeRudDiJWXJJ<\/td>\n<\/tr>\n<tr>\n<td><strong>Form Submission Script<\/strong><\/td>\n<td>FennelBlossom<\/td>\n<td>Nautili<\/td>\n<td>Bravery<\/td>\n<\/tr>\n<tr>\n<td><strong>Comments Themes<\/strong><\/td>\n<td>Literary\/academic<\/td>\n<td>Cars, fitness, fruits<\/td>\n<td>Cars, lifestyle, fruits<\/td>\n<\/tr>\n<tr>\n<td><strong>Visible Security Text<\/strong><\/td>\n<td>&#8220;Initializing browser security protocols&#8221;<\/td>\n<td>&#8220;Running browser verification to protect your safety&#8221;<\/td>\n<td>&#8220;Browser security verification ongoing for your safety&#8221;<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The elements in the chart above are called out in the screenshots below, showing the HTML code of each of the phishing portals. The HTML document title tags are highlighted with a red box, comments are highlighted with orange, turnstyle key with yellow, the script function name in green, and the visible \u201csecurity\u201d text in blue. All appear to follow the same sort of template for generating HTML, though the comment and title naming schemes reference different text arrays.<\/p>\n<figure id=\"attachment_958958\" aria-describedby=\"caption-attachment-958958\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958958\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png\" alt=\"Figure12: The document object model of a Rockstar2FA phishing page \" width=\"640\" height=\"496\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png 3046w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png?resize=300,232 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png?resize=768,595 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png?resize=1024,793 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png?resize=1536,1190 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/rockstardom.png?resize=2048,1587 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958958\" class=\"wp-caption-text\">Figure12: The document object model of a Rockstar2FA phishing page<\/figcaption><\/figure>\n<figure id=\"attachment_958959\" aria-describedby=\"caption-attachment-958959\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958959\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png\" alt=\"Figure 13: The DOM of an older FlowerStorm phishing page (from June 2024)\" width=\"640\" height=\"488\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png 3196w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png?resize=300,229 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png?resize=768,585 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png?resize=1024,780 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png?resize=1536,1171 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/OldFlowerDom.png?resize=2048,1561 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958959\" class=\"wp-caption-text\">Figure 13: The DOM of an older FlowerStorm phishing page (from June 2024)<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_958960\" aria-describedby=\"caption-attachment-958960\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958960\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png\" alt=\"Figure 14: The DOM of a newer FlowerStorm phishing page; the algorithm generating the title and function names uses a combination of two botanical-themed words\" width=\"640\" height=\"505\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png 3216w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png?resize=300,237 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png?resize=768,607 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png?resize=1024,809 1024w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png?resize=1536,1213 1536w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/NewFlowerDom.png?resize=2048,1618 2048w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958960\" class=\"wp-caption-text\">Figure 14: The DOM of a newer FlowerStorm phishing page; the algorithm generating the title and function names uses a combination of two botanical-themed words<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>While abuse of the Cloudflare CDN\u2019s security turnstyles has been present in other adversary-in-the-middle phishing kits, the structure of FlowerStorm and Rockstar phishing portals suggests at least a common ancestry.<\/p>\n<h3>Credential harvesting<\/h3>\n<p>The methods utilized by FlowerStorm for communication bear close resemblance to the previous Rockstar2FA portals, with some minor variation in the field names and responses:<\/p>\n<h3>Common Fields<\/h3>\n<table>\n<tbody>\n<tr>\n<td><strong>\u00a0<\/strong><\/td>\n<td><strong>FlowerStorm<\/strong><\/td>\n<td><strong>Rockstar2FA<\/strong><\/td>\n<td><strong>Commonality<\/strong><\/td>\n<\/tr>\n<tr>\n<td><strong>PHP Communication<\/strong><\/td>\n<td>Next.php<\/td>\n<td>&lt;numbers&gt;.php<\/td>\n<td>Both communicate to a backend server hosting a PHP file. Used for exfiltration and data communication.<\/td>\n<\/tr>\n<tr>\n<td><strong>Email Validation<\/strong><\/td>\n<td>&#8220;do&#8221;:<\/p>\n<p>&#8220;check&#8221; for email validation<\/td>\n<td>&#8220;do&#8221;: &#8220;check&#8221; for email validation<\/td>\n<td>Both support email validation as a fundamental feature.<\/td>\n<\/tr>\n<tr>\n<td><strong>Login Event<\/strong><\/td>\n<td>&#8220;do&#8221;: &#8220;login&#8221; for authentication<\/td>\n<td>&#8220;do&#8221;: &#8220;le&#8221; for authentication<\/td>\n<td>Both facilitate login operations.<\/td>\n<\/tr>\n<tr>\n<td><strong>Password <\/strong><\/td>\n<td>\u201cpass\u201d: contains base64 encoded password<\/td>\n<td>\u201cpx\u201d: contains plaintext password<\/td>\n<td>Both communicate passwords to backend server.<\/td>\n<\/tr>\n<tr>\n<td><strong>Session Tracking<\/strong><\/td>\n<td>&#8220;token\u201d for session tracking.<\/td>\n<td>&#8220;sec\u201d for session tracking<\/td>\n<td>Both provide session tracking tokens.<\/td>\n<\/tr>\n<tr>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<h2>Domain Registration and Discovery<\/h2>\n<p>The patterns of domain registration and the detection of new pages through URLScan submissions for both phishing kits\u2019 infrastructure appear to follow a distinct pattern, especially when comparing the domain activity and identification of the two.<\/p>\n<figure id=\"attachment_958962\" aria-describedby=\"caption-attachment-958962\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RS_vs_FS_detects.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958962\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RS_vs_FS_detects.jpg\" alt=\"Figure 15: A chart plotting daily page detections for Rockstar2FA and FlowerStorm through the end of November 2024 \" width=\"640\" height=\"360\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RS_vs_FS_detects.jpg 1200w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RS_vs_FS_detects.jpg?resize=300,169 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RS_vs_FS_detects.jpg?resize=768,432 768w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/RS_vs_FS_detects.jpg?resize=1024,576 1024w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958962\" class=\"wp-caption-text\">Figure 15: A chart plotting daily page detections for Rockstar2FA and FlowerStorm through the end of November 2024<\/figcaption><\/figure>\n<p>From October 1 to November 11 the peaks and valleys of FlowerStorm and Rockstar Decoy page detections and domain registrations follow a remarkably similar trend, often rising and falling in tandem. This behavior could indicate a shared infrastructure, overlapping operational objectives, or coordinated timing between the two activities.<br \/> After November 11th, the two patterns diverge:<\/p>\n<ul>\n<li>\u00a0FlowerStorm begins to show stronger independent peaks, especially around November 22\u201326<\/li>\n<li>Rockstar Decoy page activity dwindles significantly after November 11, which is in line with the ceasing of operations previously mentioned.<\/li>\n<\/ul>\n<h2>FlowerStorm targeting<\/h2>\n<p>The overall nature of FlowerStorm as a paid phishing service means that FlowerStorm\u2019s operators don\u2019t choose who gets targeted for phishing attacks. That\u2019s the decision of their customers. But an analysis of what actors are doing once they have access to the system can be useful for defenders.<\/p>\n<p>Based on our detection information for FlowerStorm, the vast majority of the targets chosen by FlowerStorm users (84%) are in the United States, Canada, United Kingdom, Australia, and Italy. Organizations in the United States were the most frequently targeted, with over 60% of cases associated with organizations primarily located within the US. Canada was the next most targeted country, at only 8.96%. Overall, 94% of the targets of FlowerStorm phishing attempts Sophos has detected were employees of North American and European organizations. Beyond those locations, Singapore, India, Israel, New Zealand, and the United Arab Emirates make up the remaining 5% of targets.<\/p>\n<figure id=\"attachment_958963\" aria-describedby=\"caption-attachment-958963\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormTargeting.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958963\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormTargeting.png\" alt=\"Figure 16: The ten countries most targeted by attackers using FlowerStorm, based on Sophos detections\" width=\"640\" height=\"467\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormTargeting.png 990w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormTargeting.png?resize=300,219 300w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FlowerStormTargeting.png?resize=768,560 768w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958963\" class=\"wp-caption-text\">Figure 16: The ten countries most targeted by attackers using FlowerStorm, based on Sophos detections<\/figcaption><\/figure>\n<figure id=\"attachment_958964\" aria-describedby=\"caption-attachment-958964\" style=\"width: 640px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FSindustrytargeting.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-958964\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FSindustrytargeting.png\" alt=\"Figure 17: The ten business sectors most targeted by attackers using FlowerStorm\" width=\"640\" height=\"490\" srcset=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FSindustrytargeting.png 762w, https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/FSindustrytargeting.png?resize=300,230 300w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><\/a><figcaption id=\"caption-attachment-958964\" class=\"wp-caption-text\">Figure 17: The ten business sectors most targeted by attackers using FlowerStorm<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>The most heavily targeted sector is the service industry, with particular focus on firms providing engineering, construction, real estate, and legal services and consulting.<\/p>\n<p>&nbsp;<\/p>\n<h2>Conclusions<\/h2>\n<p>We cannot with high confidence link Rockstar2FA and FlowerStorm, other than to note that the kits reflect a common ancestry at a minimum due to the similar contents of the kits deployed The similar patterns of domain registration could be a reflection of FlowerStorm and Rockstar working in coordination, though it is also \u00a0possible that these matching patterns were driven by market forces more than the platforms themselves. The diverging activity post-November 11might reflect:<\/p>\n<ul>\n<li>A strategic pivot in one of the groups<\/li>\n<li>A change in personnel impacting operations<\/li>\n<li>A disruption in shared infrastructure<\/li>\n<li>A deliberate decoupling of operations to avoid detection<\/li>\n<\/ul>\n<p>Furthermore, the rapid ramp-up of FlowerStorm has led to some mistakes and misconfigurations in their operations that have allowed them to also easily be disrupted. Those mistakes have also provided us with an opportunity to more closely examine their back-end operations\u2014which we will continue to do.<\/p>\n<p>A list of indicators of compromise related to FlowerStorm is available on <a href=\"https:\/\/github.com\/sophoslabs\/IoCs\/blob\/master\/FlowerStormPaaS.csv\">Sophos X-Ops&#8217; Github repository<\/a>.<\/p>\n<\/p><\/div>\n<p><a href=\"https:\/\/news.sophos.com\/en-us\/2024\/12\/19\/phishing-platform-rockstar-2fa-trips-and-flowerstorm-picks-up-the-pieces\/\" target=\"bwo\" >http:\/\/feeds.feedburner.com\/sophos\/dgdY<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/news.sophos.com\/wp-content\/uploads\/2024\/12\/shutterstock_1469287178.jpg\"\/><\/p>\n<p><strong>Credit to Author: gallagherseanm| Date: Thu, 19 Dec 2024 15:11:48 +0000<\/strong><\/p>\n<p>A sudden disruption of a major phishing-as-a-service provider leads to the rise of another\u2026that looks very familiar\u00a0<\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[10378,10377],"tags":[11458,129,32240,32159,3924,32241,27570,32242,24552,16771],"class_list":["post-25602","post","type-post","status-publish","format-standard","hentry","category-security","category-sophos","tag-cloudflare","tag-featured","tag-flowerstorm","tag-legitimate-service-abuse","tag-phishing","tag-phishing-as-a-service","tag-rockstar","tag-rockstar2fa","tag-security-operations","tag-threat-research"],"_links":{"self":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/25602","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/comments?post=25602"}],"version-history":[{"count":0,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/posts\/25602\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/media?parent=25602"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/categories?post=25602"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.palada.net\/index.php\/wp-json\/wp\/v2\/tags?post=25602"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}