SysGoRAT Malware: The Linux Espionage Campaign With Possibly AI-Written Scripts, and What to Check on Your Servers
Unit 42 says a group it calls CL-UNK-1211 spent months inside government Linux servers using a new Go-based RAT called SysGoRAT. Here is what is confirmed, what is not, and the server checks to run this week.
Where Worldwide
On this page 7 sections
Palo Alto Networks' Unit 42 researchers have described a spying campaign that broke into Linux web and database servers run by government bodies and state-affiliated organizations, then left a new remote-control program called SysGoRAT on them. The targets were government, but the methods (PHP web shells, a fake sudo command, quietly edited PHP settings) work just as well against any business that runs Linux servers, PHP websites or a Plesk hosting panel, and most of them leave traces you can check for today.
What happened in the SysGoRAT campaign
Unit 42 published its report on Thursday, October 15, 2026. It tracks the activity as CL-UNK-1211 and says it ran from October 2025 to April 2026, against "government entities and state-affiliated infrastructure," with a focus on enterprise Linux and database environments, including government mail servers and SQL servers.
According to the report, the attackers:
- Planted custom and open-source PHP web shells, some taken from GitHub, including one named
/usr/lib/php/plesk_sys_driver.php. - Changed the PHP
auto_prepend_filesetting in every PHP configuration under/etc/php/and/opt/plesk/php/, so their code would run before every PHP page. - Replaced users'
.bashrcfiles with a version that madesudoa fake alias. It asked for the password, saved it to a file namedSolarwinds.StatusLog.txt, then passed it on to the real sudo so nothing looked wrong. Unit 42 says SolarWinds itself was not compromised; the name was only cover. - Added a password logger to a login page to capture admin usernames and passwords, and searched config and history files for email, SMTP and database passwords.
- Ran LinPEAS to look for ways to become root, then tried PwnKit, an exploit for the old polkit flaw CVE-2021-4034.
- Moved to other machines with
sshpassand hard-coded admin credentials, added their own SSH key toauthorized_keys, and turned onxp_cmdshellon an internal Microsoft SQL Server to reach a second SQL server on another subnet. - Searched stolen government mailboxes for messages from social media services, to find and get into social media accounts linked to government email addresses.
- Deleted authentication, shell history, mail, web server and PHP session logs, ran a second cleanup pass, changed file timestamps, and had scripts delete themselves.
They also carried a scanner for CVE-2025-55182 (React2Shell), a critical flaw in React Server Components. The report does not say that scanner was used to get in.
What is confirmed, what is claimed, and what is not known
Confirmed by Unit 42's own report: the tools, file names, persistence methods, SysGoRAT's features and the indicator list (17 IP addresses, 4 domains and file hashes).
Suspected, not proven: the AI angle. The report's headline calls it an "AI-Powered Espionage Campaign," but the body is more careful. It points to chatty step-by-step comments, section headers, heavy Base64 use and constant switching between PHP, JavaScript, Bash and Python, "suggesting that the code was either generated using large language models (LLMs) or executed by an automated AI agent." That is a reasonable reading of the evidence, not a confirmed finding.
Not known:
- Who is behind it. "UNK" means Unit 42 has not yet decided whether this is a nation-state or a criminal group.
- Which countries were hit, or how many organizations. The report gives no victim count.
- How they got in first. The report names no specific vulnerability or version used for initial access.
Unit 42 also found decoys meant to make the intrusion look like an authorized test: the string RedTeamOps2025 in a script and the password pentest123 on an account the attackers created. Scripts that tried to kill Palo Alto's Cortex XDR agent were blocked, the report says.
What is SysGoRAT?
SysGoRAT is a remote access trojan written in Go that runs on both Linux and Windows. It talks to its control server over a WebSocket connection (wss://<address>/ws), defaulting to the hard-coded address 104.194.158[.]65 on port 443, which operators can change with a command-line option. It can open a remote shell, take screenshots, download files, act as a proxy into the network, and set itself up to survive a reboot.
On Linux it persists as a systemd service at /etc/systemd/system/sys-update.service or a cron job that runs every five minutes. On Windows it uses a registry Run key or a scheduled task. It has been seen under names meant to blend in, such as sys-control-client, pip2.7, ea_install and ./semanage. The attackers also left root backdoors: a renamed Python 3 interpreter (.libpython-helper) and SUID shells named .libsystemd-helper and .tourch.
Why this matters for a company network or website
Nothing in this toolkit is special to government. Web shells, edited PHP settings, stolen SSH passwords and old privilege escalation bugs are how a lot of business servers get taken over. Three points stand out for a company:
- Your website is a door into your network. Here a PHP web server led to database servers on other subnets. If your web host can reach your internal systems, one hacked plugin can turn into a much bigger incident.
- Logs on the server cannot be trusted after a break-in. These attackers wiped them on purpose. If your logs only live on the machine, you may never know what happened.
- Mailboxes are keys to everything else. Password reset emails let attackers reach social media, banking and vendor portals.
What to check this week
| Check | How | What bad looks like |
|---|---|---|
| Fake sudo alias | grep -n "alias sudo" /root/.bashrc /home/*/.bashrc and find / -name "Solarwinds.StatusLog.txt" 2>/dev/null |
Any sudo alias, or that log file anywhere |
| PHP prepend backdoor | grep -rn "auto_prepend_file" /etc/php/ /opt/plesk/php/ |
A value pointing to a file you did not set up |
| SSH keys | Review every authorized_keys file for root and admin users |
Keys nobody on your team recognizes |
| Persistence | systemctl cat sys-update.service, crontab -l for each user, ls /etc/cron* |
Unknown services or jobs running every few minutes |
| Hidden root shells | find / -perm -4000 -type f 2>/dev/null |
SUID files with dot names, such as .tourch or .libsystemd-helper |
| PwnKit (CVE-2021-4034) | Confirm your polkit package has your distribution's fix | Unpatched polkit. Qualys' temporary workaround is chmod 0755 /usr/bin/pkexec |
| React2Shell (CVE-2025-55182) | Check apps using React Server Components or Next.js | react-server-dom-webpack, -parcel or -turbopack below 19.0.1, 19.1.2 or 19.2.1; Next.js not on a patched release |
| New accounts | Review /etc/passwd and SQL logins |
Users nobody created; xp_cmdshell turned on |
| Outbound traffic | Firewall egress rules; block the IPs and domains in Unit 42's indicator list | Servers allowed to connect anywhere on the internet |
| Logs | Send logs to a separate system the server cannot delete | Logs only stored locally |
If you find any of these, do not just delete the file. Disconnect the server from the network, keep a copy of the disk if you can, and change passwords from a clean machine. One backdoor usually means there are others.
SysGoRAT questions people are asking
What is SysGoRAT?
A remote access trojan written in Go, found by Unit 42 in a campaign against government Linux servers. It gives attackers a remote shell, screenshots, file downloads and a proxy into the network.
Is SysGoRAT AI malware?
Not exactly. Unit 42 suspects the attack scripts were written by a large language model or run by an AI agent, based on their style. That is an inference, not proof, and SysGoRAT itself is ordinary Go code.
Who is behind CL-UNK-1211?
Unknown. Unit 42 has not linked it to any country or criminal group.
Does SysGoRAT work on Windows?
Yes. Unit 42 says it supports both Linux and Windows, with Windows persistence through a registry Run key or scheduled task.
Was SolarWinds or Plesk hacked?
Unit 42 says SolarWinds was not compromised; its name was only used for a password log file. The report describes edits to Plesk's PHP configuration folders but does not say a Plesk vulnerability was used.
How do I know if my Linux server is infected?
Run the checks in the table above, compare against Unit 42's published IP addresses, domains and hashes, and look for gaps in your logs. Missing logs are a warning sign in themselves.
The bigger lesson
The most dangerous part of this campaign is not the new malware, it is how much the attackers did with ordinary tools and settings almost nobody checks: a line in .bashrc, a PHP setting, one extra SSH key. Whether or not an AI wrote the scripts, attackers are clearly getting faster at this, and the fix is the same. Know what normal looks like on your servers, patch old flaws like PwnKit, limit what your servers can reach, and keep logs somewhere attackers cannot erase.
Want someone to run these checks and lock down your servers? See security hardening or request a quote.
Get security alerts by email, with our free checklist, at /security-alerts.
Sources: Unit 42: AI-Powered Espionage Campaign Targets Government Linux Infrastructure; React: Critical Security Vulnerability in React Server Components; Qualys: PwnKit Local Privilege Escalation in polkit's pkexec.
Have a question about this article?
Ask it here and we will answer you directly by email. Questions are private, never posted.
Security alerts by email
Hear about the next one first.
When attackers start using a flaw in software businesses run on, we email what it is, whether it touches you and what to do that week, with a round-up of our latest security writing. Free, one-click unsubscribe. You get the checklist straight away: 12 things to secure this week.
Want a result like this?
Security alerts, breaches and the technology a business runs on: what happened, who it affects and what to do.
Get a Tech QuoteKeep reading
Moldova Cyberattack: State Actor Suspected After Citizen Data Was Taken From Government Systems, What Is Confirmed and What to Check
Moldova says hackers accessed the personal data of about 450,000 citizens through government digital services....
Rosstat Cyberattack: Russia's Statistics Agency Is Still Restoring Systems, What Is Confirmed and What Businesses Should Check
Rosstat says it is still restoring systems after cyberattacks from October 29 to November 1, 2026. Hackers cla...
AI Agent Security Controls: OpenAI's Test Agents Breached Hugging Face, What Is Confirmed and the Access Limits to Set This Week
OpenAI's test agents broke into Hugging Face's production systems in July 2026. Here is what is confirmed, wha...