Trusted by millions of developers worldwide, GitHub is often the target of abuse and turned into an unlikely weapon in the hands of financially motivated threat actors; this represents a developing and increasingly well-documented trend. Researchers have previously identified cases in which GitHub’s infrastructure was exploited to distribute phishing pages, deliver stealer payloads, and host malicious content at scale, taking advantage of the platform’s trusted reputation, free HTTPS coverage, and ease of deployment. What this campaign demonstrates is that the tactic has matured: threat actors are now combining GitHub Pages hosting with serverless exfiltration backends and modular kit architectures to conduct large-scale, persistent operations that are significantly harder to detect and dismantle.
What sets this operation apart is its scale, persistence, and operational sophistication. Group-IB researchers identified a large-scale phishing campaign targeting at least 12 financial institutions in Mexico, active for approximately three years and built on a fully serverless architecture that abuses GitHub Pages for hosting and the SheetBest API for credential exfiltration — eliminating the need for any dedicated backend infrastructure. Historical tracking and infrastructure analysis indicate that this campaign, or variations of it, has demonstrated long-term persistence, reuse of components, and continuous operational maintenance throughout this period.
While the exact distribution mechanism has not been confirmed, victims are likely reached through common phishing delivery channels such as SMS, messaging apps, email, or social media platforms. In all cases, the victim receives a fraudulent URL that leads directly to a phishing page impersonating a trusted financial institution.
Group-IB has reported all phishing pages and domains identified from this research to GitHub.
Group-IB customers can access our Threat Intelligence portal for more information about GitBait and the phishing scheme described in this blog.


The analyzed infrastructure corresponds to a modular phishing kit that includes an internal campaign selector used by threat actors to generate institution-specific phishing pages. This selector is not intended for victims but functions as an operational interface that allows attackers to choose targeted institutions and distribute the corresponding fraudulent URLs. Its presence confirms a multi-target phishing infrastructure designed for reuse across multiple campaigns.
Notably, both the phishing kit panel and the impersonated landing pages are developed to support desktop and mobile screens, indicating a deliberate effort to maximize reach and improve the success rate of victim interaction across different devices.
The campaign is hosted across numerous independent GitHub Pages repositories rather than a single domain. Each repository contains duplicated phishing content deployed under different directory paths (e.g., /cancelacion/, /soporte/, /mb1/), reflecting an intentional strategy to distribute the infrastructure, evade takedowns, and rapidly redeploy cloned pages when individual repositories are removed.
The phishing operation primarily targets organizations within the banking and financial sector in Mexico, including both local and foreign institutions with operations in the country. Historical tracking suggests that this phishing infrastructure, or variations of it, has been active for over three years, demonstrating persistence, reuse of components, and a structured approach to large-scale financial phishing operations.

Figure 1: Phishing kit selector panel and mobile’s version used to generate and distribute company-specific phishing campaigns.

Figure 1: Phishing kit selector panel and mobile’s version used to generate and distribute company-specific phishing campaigns.
The analyzed domains host a modular phishing kit that includes multiple brand-specific landing pages designed to impersonate legitimate financial institutions operating in Mexico. The site structure allows attackers to select a target institution and redirect victims to tailored phishing pages that visually replicate the online presence of official banking or service portals.
Each landing page functions as a trust-building stage, presenting cloned branding, layout, and navigation elements intended to convince victims they are interacting with a legitimate institution before being redirected to credential harvesting forms.

Figure 2: Examples of the impersonation landing pages targeting financial institutions.

Figure 2: Examples of the impersonation landing pages targeting financial institutions.
Following the initial impersonation landing pages, victims are redirected to dedicated phishing pages designed to collect sensitive authentication and financial information. These pages replicate the visual identity and login workflows of legitimate online banking portals, prompting users to enter details such as usernames, customer IDs, passwords, and card information.

Figure 3: Impersonation landing pages targeting financial institutions.

Figure 3: Impersonation landing pages targeting financial institutions.
Further analysis confirms that the credential harvesting stage contains active input fields requesting sensitive information such as payment card details, client identifiers, and passwords. The structure includes multiple nested forms and generic submission identifiers — common characteristics of cloned phishing kits. This stage represents the final data capture point within a multi-brand phishing operation.
The phishing pages employ a client-side JavaScript script that retrieves login form elements and attaches a submit event listener to intercept the normal submission process. By preventing the default browser behavior, the script captures the credentials entered by the victim before any legitimate request is made.
The collected values are serialized into JSON format and transmitted via a POST request to an external API endpoint — the SheetBest service — confirming active data exfiltration in real-time. After the transmission attempt, the script dynamically replaces the login interface with a verification screen, simulating a legitimate banking workflow to maintain user trust and reduce suspicion.

Figure 4: Script intercepts credentials and infiltrates them via SheetBest API endpoint.
The phishing kit reuses a consistent HTML form structure across all impersonated institutions:
Network analysis confirms that the phishing form transmits victim credentials via POST requests to the SheetBest API endpoint, which stores the data directly into an attacker-controlled Google Sheet. This technique eliminates the need for a dedicated backend server and is commonly used in modern phishing kits to facilitate rapid deployment and credential collection at scale.
Network telemetry indicates that multiple phishing pages impersonating different financial institutions leverage this same data exfiltration mechanism. Although each phishing page uses a different SheetBest sheet identifier, all credential harvesting forms submit victim data through HTTP POST requests to the same backend API infrastructure, resolving to the IP address 159.89.254[.]93 over HTTPS.
The following SheetBest API endpoints were identified receiving credential submissions from phishing pages associated with this campaign:
The reuse of identical submission logic, API infrastructure, and request patterns across multiple phishing pages strongly suggests a centralized credential harvesting backend supporting multiple phishing templates and impersonated brands within the same campaign.
Regardless of the GitHub domain used, all phishing instances follow a consistent multi-stage structure. Victims are first redirected to a landing page impersonating the targeted institution, and then to a final path where credential harvesting occurs.
The following paths represent the primary entry points observed across the phishing infrastructure, including both user-facing lures (e.g., account cancellation or support themes) and internal panel routing paths:
| Path | Phishing Panel Count |
| /cancelacion | 57 |
| /soporte | 43 |
| /mb1 | 6 |
| /st1 | 4 |
| /soporte-cancelacion | 4 |
| /stdr | 3 |
| /d7 | 2 |
| /d43 | 2 |
| Others | <2 each |
The following paths correspond to the final credential harvesting endpoints, each associated with a specific institution impersonation template. The consistent path naming across deployments serves as a strong infrastructure fingerprint:
This modular path structure — separating luring, routing, and harvesting stages — enables scalable deployment and reuse of the same phishing kit across multiple financial brands with minimal modifications.
The phishing pages load external JavaScript through highly obfuscated and randomized paths rather than embedding the logic directly in the HTML. This approach hides malicious functionality, complicates static analysis, and enables payload rotation without modifying the phishing page itself.
Analysis of a GitHub repository hosting phishing pages confirmed that credential harvesting is performed through the SheetBest service, and that the infrastructure is actively maintained by multiple contributors.
A review of the commit history revealed that the file responsible for form submissions was recently modified to rotate the SheetBest endpoint used for credential collection — a pattern also observed across multiple other domains associated with the campaign.
Repository metadata confirms an actively maintained operation:
The phishing pages also all share an identical front-end technology stack:
Examples observed across multiple impersonated institutions:
The randomized path structure complicates signature-based detection and allows the attacker to rotate or replace the malicious payload without altering the phishing page itself, significantly reducing the likelihood of detection by automated security scanners.
Analysis of the commit history exposed multiple accounts involved in maintaining the phishing infrastructure, along with associated email addresses:
| Git Username | First Observed | Activity | |
| ss-soporte | rronromo@gmail[.]com | 16-01-2025 | Initial repository setup and base infrastructure creation |
| ce-soporte | jejrvsbdb@gmail[.]com | 21-01-2025 | Activation of GitHub Pages hosting |
| soporte-s1 | jejrvsbdb@gmail[.]com | 27-01-2025 | Addition of new institution templates and removal of others |
| soporte-<BRAND_NAME>01 | yoli.bahena69@gmail[.]com | 30-01-2025 | Updates to credential harvesting pages |
| <BRAND_NAME>-soperte12 | genarool505@gmail[.]com | 12-03-2026 | Rotation of the SheetBest credential collection endpoint (currently active) |
Notably, the accounts ce-soporte and soporte-s1 share the same email address (jejrvsbdb@gmail[.]com), indicating they are likely controlled by the same operator.
Commit history also confirms that templates impersonating additional financial institutions were present in earlier versions of the repository and subsequently removed, indicating that the campaign’s target scope has been dynamically adjusted over time.
Analysis of the repository’s HTML source reveals two corroborating technical indicators that, taken together, identify the campaign’s likely distribution vector.

Figure 5: GitHub repository showing phishing HTML code with Open Graph tags for messaging app
Robots noindex/nofollow directive. The credential harvesting page includes <meta name=”robots” content=”noindex, nofollow”>, explicitly instructing search engine crawlers not to index or follow the page. This confirms the page was never intended to attract organic traffic; it is designed to be reached exclusively via a direct link delivered to the victim.
Crafted Open Graph metadata. The repository’s primary landing pages contain a full set of Open Graph tags (og:title, og:description, og:image, og:site_name), populated with content impersonating a legitimate banking portal. These tags serve no functional purpose in email campaigns or SEO-driven attacks. Their sole utility is to render rich link preview cards — displaying a trusted brand name, description, and logo thumbnail — when a URL is shared through messaging applications such as WhatsApp, Telegram, iMessage, or RCS-enabled SMS. This technique is specifically engineered to make the phishing URL appear completely legitimate before the victim ever taps it.
For one of the targeted institutions, the campaign used a different exfiltration method from the SheetBest mechanism observed elsewhere. After users entered their credentials, the data was exfiltrated in real time to a Telegram bot using hardcoded token and chat ID values embedded directly in the phishing page’s JavaScript — a common technique in modern phishing kits to collect stolen information without maintaining dedicated backend infrastructure.
Subsequent analysis of the identified bot token and chat ID showed that they were no longer active at the time of analysis, suggesting the exfiltration channel had been disabled or abandoned. However, multiple domains impersonating the same institution’s brand remain active, indicating the campaign continues.

Figure 6: Hardcoded Telegram bot token and chat ID embedded in phishing JavaScript.
By hosting phishing content on GitHub Pages, the threat actor benefits from the inherent trust and HTTPS coverage that these domains carry, making it harder for both victims and automated security tools to flag the content as malicious. By routing stolen credentials through SheetBest rather than maintaining a dedicated command-and-control server, the actor eliminates a critical point of exposure, operating entirely within the boundaries of legitimate cloud services. This serverless approach significantly reduces the infrastructure footprint and complicates attribution efforts.
For the financial sector, this campaign illustrates a broader shift in the threat landscape: attackers no longer need sophisticated malware or complex infrastructure to conduct large-scale credential theft. The abuse of everyday cloud platforms lowers the barrier to entry while increasing operational effectiveness. Organizations that rely solely on traditional phishing detection methods — such as blocklists of known malicious domains — will find this type of infrastructure increasingly difficult to defend against, underscoring the need for behavioral detection, continuous monitoring of brand impersonation activity, and proactive intelligence sharing across the sector.
For financial institutions:
For regulators and policymakers:
arrow_drop_down
Victims who interact with the fraudulent pages may unknowingly submit their banking credentials, customer IDs, card numbers, and passwords to attacker-controlled infrastructure. This data is stored in real time and can be used for account takeover, unauthorized transactions, or resold in underground markets.
arrow_drop_down
GitHub Pages provides free, reliable hosting with HTTPS enabled by default, lending a degree of apparent legitimacy to phishing URLs. The platform’s reputation may reduce victim suspicion. Additionally, creating and redeploying repositories is frictionless, enabling attackers to rapidly restore infrastructure after individual pages are removed.
arrow_drop_down
If you believe you may have submitted credentials to a phishing page, you should immediately change your banking passwords, contact your financial institution to report the incident and request a card block if card data was entered, and enable multi-factor authentication on your accounts if not already active.
arrow_drop_down
Victims are directed to the fraudulent pages primarily through direct link sharing via mobile messaging applications. The phishing URL is sent directly to the victim’s device — typically through WhatsApp, SMS, or similar platforms — disguised as legitimate banking communication. The pages are engineered with crafted Open Graph metadata to render convincing link preview cards before the victim taps the URL, reducing suspicion at the point of delivery. The pages are not indexed by search engines and generate no organic traffic, confirming that all access is driven exclusively by direct link distribution to targeted individuals.

DISCLAIMER: All technical information, including malware analysis, indicators of compromise and infrastructure details provided in this publication, is shared solely for defensive cybersecurity and research purposes. Group-IB does not endorse or permit any unauthorized or offensive use of the information contained herein. The data and conclusions represent Group-IB’s analytical assessment based on available evidence and are intended to help organizations detect, prevent, and respond to cyber threats.
Group-IB expressly disclaims liability for any misuse of the information provided. Organizations and readers are encouraged to apply this intelligence responsibly and in compliance with all applicable laws and regulations.
This blog may reference legitimate third-party services such as Telegram and others, solely to illustrate cases where threat actors have abused or misused these platforms.
This material is provided for informational purposes, prepared by Group-IB as part of its own analytical investigation, and reflects recently identified threat activity.
All trademarks referenced herein are the property of their respective owners and are used solely for informational purposes, without any implication of affiliation or sponsorship.