SEO Poisoning Targets AI Devs with Fake Gemini, Claude Installers
Key Takeaways A widespread SEO poisoning campaign is targeting software developers with fake installers for AI tools like Gemini CLI and Claude Code. The attackers trick developers into executing a...
Key Takeaways
- A widespread SEO poisoning campaign is targeting software developers with fake installers for AI tools like Gemini CLI and Claude Code.
- The attackers trick developers into executing a PowerShell command that deploys a sophisticated, fileless infostealer.
- The malware harvests a wide array of credentials, session tokens, and sensitive data, including OAuth tokens and corporate VPN details.
- The attack leverages stealthy, in-memory execution and evasion techniques, making detection challenging.
- No specific fix is available for the malware itself, but robust defensive measures can mitigate impact.
Cybersecurity researchers have uncovered an active SEO poisoning campaign designed to ensnare software developers by presenting malicious, fake installers for popular AI coding platforms, Gemini CLI and Claude Code. This sophisticated operation leverages search engine optimization to push deceptive websites to the top of search results, leading unsuspecting developers to execute harmful commands on their workstations.
Table Of Content
First observed in early March 2026, the campaign has since broadened its scope beyond AI development tools. Victims are directed to meticulously crafted fraudulent pages that closely mimic official installation guides. These pages prompt users to copy and paste a single PowerShell command into their terminal, which then silently initiates the deployment of a potent infostealer.
This malicious software operates entirely in memory, a technique that allows it to evade traditional disk-based detection mechanisms. Once active, the infostealer is capable of exfiltrating a broad spectrum of sensitive data, including credentials, session tokens, and critical files.
Advanced Infostealer Targets Developer Credentials
Analysts at EclecticIQ, who identified and detailed this ongoing threat, noted that the infostealer systematically collects credentials from a diverse range of applications. The stolen information is then encrypted and transmitted to a command-and-control (C2) server. According to a report by EclecticIQ, this data includes OAuth tokens, CI/CD credentials, corporate VPN login details, and session cookies from collaboration platforms such as Slack, Microsoft Teams, Discord, and Telegram.
The theft of valid session cookies is particularly dangerous, as it enables attackers to bypass multi-factor authentication and passwords, gaining direct access to a victim’s workspace. Such access is highly valued and frequently traded in underground access broker markets.
Beyond credential harvesting, the malware grants attackers the ability to execute additional code remotely on compromised systems. While the initial script does not establish persistence, this remote execution capability poses a significant risk. It allows the threat actors to escalate their intrusion from a single developer workstation into a broader enterprise-wide breach.
The Deceptive Infection Chain
The attack chain is straightforward yet highly effective. A developer searching for installation instructions for tools like Gemini CLI or Claude Code encounters a top search result that appears indistinguishable from the legitimate documentation. For instance, in the Gemini campaign, victims were led to a domain such as geminicli[.]co[.]com. This site then instructed them to run a PowerShell command that downloaded an infostealer payload, named Install.ps1, from gemini-setup[.]com.
A key aspect of the deception is that the genuine Gemini CLI installation proceeds in parallel with the malicious activity. The legitimate npm package completes its installation process in the terminal, giving the user no immediate indication that anything is amiss. By the time the developer’s desired tool is ready for use, the infostealer has already completed its data collection and exfiltration.
The Claude Code campaign employed an identical strategy. On March 30, 2026, the threat actor registered domains like claudecode[.]co[.]com and claude-setup[.]com, mirroring the naming convention used in the Gemini attacks. The cloned installation page for Claude Code was similarly convincing, and the stolen data was directed to events[.]ms709[.]com.
EclecticIQ analysts expanded their investigation using passive DNS records associated with these malicious domains. This pivot revealed a cluster of over 30 additional compromised domains. These domains impersonated other popular software, including Node.js, Chocolatey, KeePassXC, and Monero. Most of these domains were registered between late March and early April 2026, indicating a well-coordinated and active malicious campaign.
Fileless PowerShell Stealer Evades Detection
Upon execution, the second-stage payload immediately takes steps to disable critical Windows security features. It patches Event Tracing for Windows (ETW) to suppress logging and bypasses the Antimalware Scan Interface (AMSI), allowing the remainder of the script to run without triggering alerts.
The PowerShell script itself is substantial, containing approximately 6,800 lines of obfuscated code, including junk code designed to complicate analysis. It also incorporates sandbox detection checks to prevent execution in virtualized analysis environments. The stealer dynamically loads three C# components during runtime to perform deep reconnaissance on the host machine. One component is responsible for dumping entries from Windows Credential Manager, another captures screen resolution for system fingerprinting, and a third enumerates running processes via the Restart Manager API to further avoid detection.
Crucially, the entire operation is executed within PowerShell without writing any files to disk, making it a fileless threat that is notoriously difficult to detect and analyze.
What You Should Do
- Monitor Command-Line Logs: Actively hunt for patterns like
irm | iexin command-line logs, as this is a common method for executing fileless PowerShell payloads. - Alert on Hidden PowerShell Executions: Implement alerts for unusual or hidden PowerShell script executions, especially those that attempt to bypass security features.
- Enforce PowerShell Constrained Language Mode: Enable PowerShell Constrained Language Mode to restrict the functionality available to PowerShell scripts, thereby limiting what malicious scripts can accomplish.
- Utilize FIDO Keys for Privileged Accounts: Deploy FIDO (Fast Identity Online) keys or other hardware-based security keys for all privileged accounts to add a strong layer of multi-factor authentication that is resistant to credential theft.
- Implement Short-Lived OAuth Tokens: Where possible, configure OAuth tokens to have very short lifespans. This reduces the window of opportunity for attackers to exploit stolen tokens.
- Exercise Extreme Caution with Installers: Always verify the authenticity of installation pages and download sources. Double-check domain names for subtle typos or unusual top-level domains.
- Educate Developers: Provide ongoing training to developers on the risks of SEO poisoning, phishing, and the importance of verifying software sources.
Indicators of Compromise (IoCs):-
| Type | Indicator | Description |
|---|---|---|
| Domain | geminicli[.]co[.]com | Fake Gemini CLI installation page |
| Domain | gemini-setup[.]com | Hosts infostealer downloader payload (Install.ps1) |
| Domain | claudecode[.]co[.]com | Fake Claude Code installation page |
| Domain | claude-setup[.]com | Hosts Claude Code infostealer payload |
| Domain | events[.]msft23[.]com | C2 server for Gemini CLI campaign |
| Domain | events[.]ms709[.]com | C2 server for Claude Code campaign |
| Domain | api[.]bio9438[.]com | Attacker-controlled infrastructure |
| Domain | claudecode-install[.]co[.]com | Attacker-controlled domain |
| Domain | openclow[.]co[.]com | Attacker-controlled domain |
| Domain | geninicli[.]co[.]com | Attacker-controlled domain (typosquat) |
| Domain | keepassxc[.]us[.]org | Fake KeePassXC impersonation domain |
| Domain | claude-code[.]co[.]com | Attacker-controlled domain |
| Domain | chocolatey[.]net | Attacker-controlled Chocolatey impersonation |
| Domain | chocolatey-setup[.]co[.]com | Fake Chocolatey installation page |
| Domain | get-monero[.]co[.]uk | Fake Monero impersonation domain |
| Domain | getmonero[.]us[.]com | Fake Monero impersonation domain |
| Domain | metrics[.]msft17[.]com | Attacker-controlled infrastructure |
| Domain | claude-setup[.]com | Payload staging domain |
| Domain | keepassxc[.]us[.]com | Fake KeePassXC impersonation domain |
| Domain | olive3451[.]com | Attacker-controlled domain |
| Domain | chocolatey-download[.]co[.]com | Fake Chocolatey download domain |
| Domain | chocolatey[.]co[.]com | Fake Chocolatey impersonation domain |
| IP Address | 109.107.170[.]111 | Netherlands-based bulletproof hosting (MIRhosting) |
| SHA-256 | ff81cb9263fcde5870a0748fd6af2d30a4ba864415c15ca14827d0dd723eb60c | Infostealer payload hash |
| SHA-256 | 9c87e8162b39fbb773c416006b16f8e34aca53372d1b2d4a584df0ffc69ad333 | Infostealer payload hash |
| SHA-256 | 89d634c8471382ff9c6fd966008ad5c376d7a0edae8f799eb569837170f2373d | Infostealer payload hash |
| SHA-256 | be2ff065a232a3a6f187f9fb03a6c1b368dff3d2ba0966777b1f5503aa5ecd16 | Infostealer payload hash |
| SHA-256 | a1c5e1d9bdc1a931c11ac6fdfdff1fbc69ff88521cf443cb174f9720a05fe72d | Infostealer payload hash |
| SHA-256 | bb78f024c4d8b5a6a128aacb498acad025a234a6b25fde36ff2e14601134555f | Infostealer payload hash |
| SHA-256 | a6525b37b0cc5339df375e17a0c10772b50c9d425001b0c3a9dada99c5f62dd | Infostealer payload hash |
| SHA-256 | b37ee243518221017bab0eb4b54b5431571cc21e54113698ce49a89b89993754 | Infostealer payload hash |
| SHA-256 | aa350580ae5ea46544ffa15c324ab4225dff0dcc5842ac5ca8e2dc4018e5ffad | Infostealer payload hash |
| SHA-256 | 65e1a542bb7d995cc4aa6c71191da125f14f99ca03da7266f5b071440d6d229a | Infostealer payload hash |
| SHA-256 | 64d2a9a49e27d89f1b3489d7db29c3a3a12b4b090f59c24b694c239cb55db262 | Infostealer payload hash |
| SHA-256 | 2d7a94e4a0fedcf31cdd43b06222add9d1888fecb2c5488afc658d08c3f40116 | Infostealer payload hash |
| File Name | Install.ps1 | First-stage infostealer downloader PowerShell script |
Note: IP addresses and domains are intentionally defanged (e.g., [.]) to prevent accidental resolution or hyperlinking. Re-fang only within controlled threat intelligence platforms such as MISP, VirusTotal, or your SIEM.
Disclaimer: HackersRadar reports on cybersecurity threats and incidents for informational and awareness purposes only. We do not engage in hacking activities, data exfiltration, or the hosting or distribution of stolen or leaked information. All content is based on publicly available sources.



No Comment! Be the first one.