The Underground Access Economy: Storm Infostealer and the Era of Passwordless Attacks

Search for a command to run...

No comments yet. Be the first to comment.
Tổng Quan Một chiến dịch tấn công bằng dòng mã độc tống tiền mới mang tên Spirals đã ghi nhận vụ việc đầu tiên mã hóa thành công toàn bộ hệ thống của một công ty dịch vụ IT tại Nam Á chỉ trong vòng ch

Tóm tắt rủi ro Bạn bảo một web agent: "tóm tắt giúp tôi các review trên trang này". Một review giả do kẻ tấn công đăng lên khiến agent bấm nhầm nút "Buy Now", và đơn hàng được đặt. Không malware, khôn

Campaign Summary A Russian-speaking criminal group tracked by Cisco Talos as UAT-11795 has been running a continuous campaign since at least June 2025, distributing malware inside trojanized installer

Tóm tắt chiến dịch Nhóm tội phạm nói tiếng Nga được Cisco Talos theo dõi dưới định danh UAT-11795 đã hoạt động liên tục từ ít nhất tháng 06/2025, phát tán mã độc thông qua các bộ cài đặt phần mềm hợp

Tóm Tắt Chiến Dịch Vào ngày 14/07/2026, kẻ tấn công đã xâm nhập thành công tổ chức AsyncAPI trên npm — một trong những dự án mã nguồn mở phổ biến nhất cho các API event-driven, và tiêm mã độc vào 4 gó

In early 2026, Varonis Threat Labs identified Storm — a new infostealer circulating on underground cybercrime networks for under $1,000 per month. Storm is not simply another commodity stealer: it represents the next evolutionary step in how attackers compromise digital identities without ever needing a password or triggering MFA.
Varonis' panel analysis confirmed 1,715 victims across multiple countries, including Vietnam. A single Storm-infected browser can hand an operator authenticated access to an organization's entire SaaS estate, cloud environment, and internal tools — through valid, already-authenticated session cookies, without triggering any password-based detection.
Storm does not exist in a vacuum. It is a product of a mature access economy — an underground ecosystem where every link in the attack chain has been specialized, priced, and commoditized.
Highest priority action: Immediately review browser-based credential storage policy for privileged accounts, and enable alerting for impossible travel and fresh token anomalies in Entra ID / Google Workspace.
"Attackers don't break in, they log in" is no longer just a warning — it is an accurate description of a functioning business model.
Underground marketplaces now operate with the full infrastructure of a legitimate market: reputation systems for sellers, escrow to guarantee transactions, role specialization, and tiered pricing by target value. One operator runs infostealers across thousands of machines. Another extracts and sorts credentials. A third sells curated access. A fourth deploys ransomware. Each party focuses on their specialty, and the entire chain operates with disturbing efficiency.
Four primary product categories are traded in this market:
VPN and RDP credentials are listed with full metadata: organization name, geographic region, industry, and VPN product in use. Pricing scales with target value. Varonis documented a confirmed seller offering seven Fortinet SSL VPN credentials targeting educational institutions — a lower-value market. Credentials for financial organizations or government agencies command significantly higher prices, sometimes with "exclusive access" guarantees — meaning the seller will not sell the same access to multiple buyers simultaneously.
This is the largest product category by volume. Infostealer families including Redline, Raccoon, Vidar, Lumma, and Risepro harvest browser-saved passwords, session cookies, autofill data, cryptocurrency wallet seeds, and authentication tokens — then distribute structured, searchable logs through subscription channels.
DAISY CLOUD is a representative example: a stealer log distribution service operating on subscription at $400 for seven days or $1,350 per month. Logs are indexed and searchable by credential type, country, and platform.
Session cookies are the highest-value product in this category. If an infostealer captures a valid cookie, an attacker can import it directly into a browser and inherit the fully authenticated session — no password needed, no MFA prompt triggered.
Data from historical breaches is categorized by geography, sector, freshness, and field completeness (does the record include email + phone + password hash?). This data serves multiple purposes: credential stuffing, organizational reconnaissance, and building employee profiles for targeted spear-phishing.
One example documented in Varonis research: a dump from three Egyptian government ministries containing 24,000 HTML files and thousands of PDFs with citizen records.
Web shells bypass authentication entirely. These are backdoors planted on already-compromised servers that give buyers command execution capability over HTTP without any credentials. Once installed, a web shell persists independently of the original vulnerability — patching the vulnerability does not remove the shell.
One listing Varonis documented: root RCE and shell access to a government revenue management system (Linux, root-level permissions) — priced at $400, from a seller with a reputation score of 61 built over four months of operation.
Storm is the clearest evidence of where infostealers are heading: from raw data dumping tools to automated identity takeover platforms.
Traditional infostealers decrypted browser credentials on the victim's machine by loading SQLite libraries and directly accessing credential stores. EDR and endpoint security tools adapted to this — anomalous access to browser databases became one of the clearest signals of malicious activity on an endpoint.
In July 2024, Google deployed App-Bound Encryption in Chrome 127, binding encryption keys to the Chrome process itself and making local decryption significantly harder. This is where Storm and next-generation stealers pivoted: rather than decrypting on the endpoint, they exfiltrate the encrypted data blob to the attacker's server and decrypt it there.
The result: no suspicious SQLite access on the endpoint, no browser credential store access anomaly — the signals that EDR was trained to detect are simply absent.
Storm harvests everything an operator needs to restore a hijacked session remotely:
After decrypting the stolen data, Storm does not simply dump credentials into an operator panel for manual exploitation. It automates the next step:
This technique is not new: Varonis' Cookie-Bite research demonstrated that stolen Azure Entra ID session cookies completely neutralize MFA. SessionShark showed phishing kits intercepting session tokens in real time. Storm is the productization of these known techniques — packaged into a subscription service with operator-friendly UX.
Varonis found 1,715 entries in panel data, originating from Brazil, Ecuador, India, Indonesia, Vietnam, and the United States. While not all entries can be confirmed as genuine victims (test data may be included), the diversity of IP addresses, ISPs, and data sizes indicates active malicious campaigns are ongoing.
Stolen credentials cover a range of high-value platforms including Google, Facebook, Twitter/X, financial accounts, and corporate SaaS.
[Infection Vector]
Phishing email / Malicious download / Compromised third-party tool
│
▼
[Collection — Endpoint]
Storm harvests: passwords, cookies, tokens, wallets, documents
→ No local decryption, no direct SQLite access
→ Packages data as encrypted blob
│
▼
[Exfiltration → C2 Server]
Encrypted blob shipped to attacker-controlled server
│
▼
[Server-Side Decryption]
Attacker server decrypts all browser data
→ Credentials and session cookies dumped to operator panel
│
▼
[Session Restore — Automation]
Google Refresh Token + SOCKS5 proxy (geo-matched to victim)
→ Panel silently restores authenticated session
│
▼
[Impact]
Authenticated access to SaaS, cloud, internal tools
→ No password alert triggered, no MFA required
| Tactic | Technique ID | Technique Name | Notes |
|---|---|---|---|
| Initial Access | T1566 | Phishing | Primary delivery vector |
| Initial Access | T1078 | Valid Accounts | Using purchased VPN/RDP credentials from market |
| Credential Access | T1555.003 | Credentials from Web Browsers | Core Storm capability |
| Credential Access | T1539 | Steal Web Session Cookie | Priority target |
| Credential Access | T1528 | Steal Application Access Token | Google Refresh Token |
| Defense Evasion | T1027 | Obfuscated Files or Information | Encrypted blob avoids local detection |
| Exfiltration | T1041 | Exfiltration Over C2 Channel | Encrypted blob shipped to attacker server |
| Persistence | T1505.003 | Web Shell | Applies to web shell access brokers |
| Initial Access | T1190 | Exploit Public-Facing Application | Vector for web shell installation |
| Lateral Movement | T1550.004 | Web Session Cookie | Using cookie to pivot across services |
With server-side decryption, local signals are weaker than previous-generation stealers — but they do not disappear entirely:
// Detect anomalous child processes spawned by browsers — potential Storm loader activity
DeviceProcessEvents
| where InitiatingProcessFileName in~ ("chrome.exe", "msedge.exe", "firefox.exe")
| where FileName !in~ ("chrome.exe", "msedge.exe", "firefox.exe", "crashpad_handler.exe")
| where ProcessCommandLine !contains "extension"
| project Timestamp, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine
| order by Timestamp desc
// Monitor anomalous access to browser credential stores
DeviceFileEvents
| where FolderPath has_any (
@"\AppData\Local\Google\Chrome\User Data\Default\Login Data",
@"\AppData\Local\Microsoft\Edge\User Data\Default\Login Data",
@"\AppData\Roaming\Mozilla\Firefox\Profiles"
)
| where InitiatingProcessFileName !in~ ("chrome.exe", "msedge.exe", "firefox.exe", "MicrosoftEdgeUpdate.exe")
| project Timestamp, DeviceName, InitiatingProcessFileName, FolderPath, ActionType
Session hijacking leaves clear traces at the identity layer — this is where detection is most effective:
// Impossible travel following successful sign-in — indicates session restore with proxy
SigninLogs
| where ResultType == 0
| summarize
Locations = make_set(Location),
IPAddresses = make_set(IPAddress),
Count = count()
by UserPrincipalName, bin(TimeGenerated, 1h)
| where array_length(Locations) > 1
| project TimeGenerated, UserPrincipalName, Locations, IPAddresses, Count
// Refresh token use from unknown IP — Google Refresh Token abuse pattern
AADNonInteractiveUserSignInLogs
| where AuthenticationProtocol == "refreshToken"
| where NetworkLocationDetails !contains "trustedNamedLocation"
| join kind=leftouter (
SigninLogs
| where TimeGenerated > ago(30d)
| summarize KnownIPs = make_set(IPAddress) by UserPrincipalName
) on UserPrincipalName
| where IPAddress !in (KnownIPs)
| project TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, Location
| Source | Purpose |
|---|---|
| MDE — Process Creation | Detect Storm loader / child process anomaly |
| MDE — File Events | Monitor browser credential store access |
| Entra ID Sign-in Logs | Session hijack detection, impossible travel |
| Entra ID Non-Interactive Logs | Refresh token abuse detection |
| Network Proxy Logs | Exfiltration and SOCKS5 detection |
| Microsoft Sentinel — UEBA | Behavioral baseline for user sessions |
# Related Infostealer Ecosystem
Redline Stealer
Raccoon Stealer
Vidar
Lumma Stealer
Risepro
# Distribution Services
DAISY CLOUD (stealer log subscription service)
→ Pricing: \(400 / 7 days | \)1,350 / month
# Storm Binary Hashes
[NEEDS VERIFICATION: Varonis has not released specific Storm binary hashes in open sources]
# Storm C2 Infrastructure
[NEEDS VERIFICATION: C2 domains/IPs not published in public reporting at time of writing]
# Session Restore Technique Indicator
Google Refresh Token abuse + geographically matched SOCKS5 proxy
→ Detect via: AADNonInteractiveUserSignInLogs with refreshToken auth from unknown IP
Storm is not a zero-day and does not rely on fundamentally new techniques. Every core capability — server-side decryption, session cookie theft, refresh token abuse — has been previously documented. What Storm does is productize the entire workflow into a subscription service with an operator interface simple enough that technical depth is no longer required.
This is more concerning than any novel technique: the barrier to entry for identity-based attacks continues to fall.
The presence of Vietnam in Storm's panel data is a specific signal, not a general warning. Multiple financial institutions and government agencies in Vietnam currently use browser-based SSO and OAuth for internal systems — this is a direct attack surface. An employee with an active browser session into a core banking web portal, or into a Microsoft 365 tenant, is a high-value target for a Storm operator.
The broader trend is clear: infostealers are rapidly shifting from noisy local theft (increasingly caught by EDR) toward server-side stealth with higher automation. In the next two years, session hijacking will become the primary initial access vector for account takeover, displacing traditional credential stuffing that MFA has largely throttled.
A critical operational point for SOC teams: an infostealer incident is an identity incident. Remediating the malware on the endpoint and closing the ticket is insufficient. The full response must include reviewing all SaaS OAuth grants, mailbox rules, and SSO integrations — immediately after confirming infection. Any session active at the time of compromise should be considered stolen until proven otherwise.