TWEAKOS — Windows Stealer, Telegram-Bot C2 & Stolen-Account Marketplace

Discord token theft · Telegram account hijack via social-engineered login codes · single-bot-token C2 and storefront · detection, response, and hardening
Threat
TWEAKOS infostealer / Telegram C2 ecosystem
Type
Windows credential/token stealer, no-admin persistence, monetized marketplace
Severity
High
Version
v1.0 · 2026-09-27
Author
slapopotamus
Confidence
High corroboration across 5 independent sources for mechanics; no published hashes or dedicated C2 infrastructure limits atomic-indicator coverage
01

Executive Summary

What happened: Flare published research on 2026-09-24 describing TWEAKOS, a Windows infostealer paired with a Telegram-bot command-and-control channel and a built-in stolen-account marketplace. The operation surfaced after its own source code was posted to Pastebin, which exposed a hardcoded Telegram bot token and two hardcoded admin IDs shared by both the stealer and the backend bot. Cyber Security News, Cyber Press, Security Boulevard, and Cryptika independently corroborated the core mechanics on 2026-09-25 and after.

Observed tradecraft: TWEAKOS is two components sharing one bot token. The stealer harvests Discord authentication tokens from Local Storage LevelDB files for Discord, Discord PTB, and Chrome's default profile, validates each candidate against the Discord API, and exfiltrates working tokens to the operators. Separately, it social-engineers the victim for a Telegram phone number and login code, uses the Telethon library to mint a brand-new session file, and sends that session to two operator accounts, granting access without ever resetting the victim's password. Persistence needs no admin rights: the packaged build drops itself as SystemHelper.exe in the user Startup folder, and the script build adds an HKCU Run value named SystemHelper. A referenced follow-on payload, WindowsSecurityChecker.exe, was not recovered by researchers. Operators can also push a per-victim blocker_{uid}.vbs script that displays a repeating full-screen Russian-language warning to coerce payment or compliance.

Detection strategy: No file hashes and no dedicated malicious C2 domains or IPs were published for this campaign; every operator-facing network endpoint named in the reporting (Telegram's Bot API, Discord's API) is a legitimate, heavily-used public service. This pack's detection value is therefore behavioral: the two no-admin persistence mechanisms (Q01/Q02/Q03), the coercion script's execution pattern (Q05), a packaging fingerprint for the frozen Python binary (Q04), and clearly-labelled enrichment correlations against the two legitimate APIs (Q06/Q07) that must never be treated as blockable infrastructure on their own.

Operational consequence: A confirmed hit does not mean the endpoint alone is compromised: a stolen Discord token or a hijacked Telegram session is valid until revoked, independent of any local remediation. Response must include out-of-band account recovery (revoke Discord tokens, terminate the victim's active Telegram sessions from a trusted device) in addition to endpoint cleanup, because deleting the local artifact does not undo the account theft.

Defender priority: Hunt the two no-admin persistence patterns fleet-wide, treat any hit as an account-compromise event (not just a malware event) and drive Discord token revocation plus Telegram session termination in parallel with endpoint remediation.
PriorityWhy nowCoverage deliveredKey limitation
Hunt SystemHelper.exe/HKCU Run persistence fleet-wide; treat hits as account-compromise, not just malware, eventsCurrent reporting (2026-09-24/25), no-admin-rights persistence, live account-takeover impact7 analyst-authored CQL queries, 5 native hunts, 4 candidate Custom IOAsNo public hashes or dedicated C2 infrastructure were published; behavioral coverage only
02

Source and Claim Review

All five sources were fetched during this run and saved as plain-text snapshots in TWEAKOS-Stealer-Hunt-sources/. Remote content was treated as untrusted data throughout: no source-supplied command, code, or instruction was executed, and no source attempted to direct this pipeline's behavior. The fetch tool declined to reproduce full article text verbatim on two of the five sources (copyright policy) and returned structured summaries plus short quoted fragments instead; both passes are preserved in the snapshot files.

IDPublisherTierAccessedStatus
S01Flareprimary-vendor-research2026-09-27summary + targeted quotes (copyright-limited)
S02Cyber Security Newsindependent-corroboration2026-09-27full extraction
S03Cyber Pressindependent-corroboration2026-09-27full extraction
S04Security Boulevardindependent-corroboration2026-09-27summary + targeted quotes (copyright-limited)
S05Cryptikaindependent-corroboration2026-09-27full extraction

Disqualified sources: none. All five requested URLs returned usable content; no fetched page contained embedded instructions directed at this pipeline.

Claim ledger

ClaimStatementSourcesConfidenceCaveat
C01The operation surfaced after its source code was posted to Pastebin, exposing a hardcoded Telegram bot token and two hardcoded admin IDs.S01, S02, S04, S05highnone
C02TWEAKOS is two components (a Windows stealer and a Telegram-bot backend) sharing the same bot token and admin IDs.S01, S02, S03, S04, S05highnone
C03The stealer scans Discord, Discord PTB, and Chrome's default-profile Local Storage LevelDB files, validates candidate tokens against the Discord API, and exfiltrates working tokens to the operators; Chrome scanning is limited to LevelDB and does not touch saved passwords or cookies.S01, S02, S03, S05highthe "no password/cookie access" scope limit is single-sourced (S03)
C04For Telegram, the stealer prompts the victim for a phone number and login code (and a cloud password if 2FA is set), uses Telethon to create a new session file, and sends the session to two operator accounts without resetting the victim's password.S01, S02, S03, S04, S05highnone
C05Persistence needs no admin rights: the packaged build copies itself into the user Startup folder as SystemHelper.exe; the script build adds an HKCU ...\CurrentVersion\Run value named SystemHelper.S01, S02, S03, S04, S05highnone
C06A referenced follow-on payload, WindowsSecurityChecker.exe, is sent to a victim under a "Critical security update" pretext; researchers did not recover or analyze the binary.S01, S03, S04, S05mediumfunctionality unknown; binary unrecovered
C07Operators can push a per-victim blocker_{uid}.vbs script producing a repeating full-screen warning reading “ВАШ КОМПЬЮТЕР ЗАБЛОКИРОВАН!” (“YOUR COMPUTER IS BLOCKED!”), referencing the discord.gg/tweakos invite; the backend deletes the local script after use.S01, S04mediumthe exact Russian string was captured from only 2 of 5 fetch passes; S02/S03/S05 confirm the coercion mechanism but not the literal string in the text captured
C08The backend stores state in an operator-side SQLite database, tweakos_data.db, tracking victims, products, orders, buyers, and admin logs.S01, S04, S05highoperator-side artifact, not expected on victim endpoints
C09Non-admin document submissions to the bot are treated as session submissions and saved as session_{uid}.session, keyed to the sender's Telegram chat ID.S04mediumsingle-sourced; ships as hunt-only, never prevent
C10The marketplace sells “telegram” and “discord” accounts under the TWEAKOS brand, priced in Telegram Stars, discounted 5% per day up to 70% off, minimum one Star.S01, S02, S03, S05highnone
C11A Discord invite, https://discord.gg/tweakos, is referenced in TWEAKOS branding and was reported invalid or expired at analysis time.S01, S05mediuminvite was already dead when researchers checked it; context, not live infrastructure
C12No file hashes and no dedicated malicious C2 domains or IP addresses were published for TWEAKOS; the only network endpoints named are legitimate public APIs (Telegram Bot API, Discord API).S01, S02, S03, S04, S05 (absence confirmed across all five snapshots)highthis is a statement about the limits of current public reporting, not a claim that no such infrastructure exists
03

Hunt Brief and Attack Chain

Hypotheses are separated into endpoint-hunt candidates and explicit telemetry gaps. Attribution beyond the cited sources is not inferred, and no offensive/weaponized detail (the coercion script's actual payload, the token-harvesting code, or the Telethon sign-in flow) is reproduced here.

StepClaimsBehaviorPlatformGoal
1C05packaged or script build installs no-admin persistence (Startup-folder copy or HKCU Run value)Windows endpointcatch installation before first theft cycle
2C03stealer enumerates Discord/Discord PTB/Chrome LevelDB files and validates candidate tokens against the Discord APIWindows endpointcorrelate non-browser process activity with Discord API contact
3C04stealer social-engineers a Telegram login code and mints a new Telethon session, exfiltrated via the Telegram Bot APIWindows endpointcorrelate non-Telegram-client process activity with Telegram Bot API contact
4C06operator pushes WindowsSecurityChecker.exe as a follow-on payload under a fake update pretextWindows endpointflag unsigned executables delivered via the same channel; no hash available
5C07operator triggers blocker_{uid}.vbs to coerce the victim with a full-screen warningWindows endpointcatch wscript.exe/cscript.exe executing the distinctive filename pattern before the backend deletes it

Hypotheses

IDBehaviorTelemetryUseLookbackValidation
H01SystemHelper.exe written into the user Startup folderPeFileWrittenhunt30dDrop a benign, identically-named test binary into a lab Startup folder and confirm the query returns it, then confirm it is absent from a clean baseline host.
H02HKCU Run value named SystemHelper addedAsepValueUpdate / RegGenericValueUpdatehunt30dAdd a benign HKCU Run value literally named SystemHelper in an isolated lab account and confirm the query returns it.
H03SystemHelper.exe execution from a Startup-folder or logon contextProcessRollup2hunt30dExecute the same benign test binary from the lab Startup folder at logon and confirm a matching row.
H04frozen-Python temp-extraction pattern from an unsigned binaryProcessRollup2hunt (inference)14dThis is an analyst hypothesis based on common frozen-Python packaging behavior, not a vendor-confirmed TWEAKOS artifact — the reporting mentions sys.frozen packaging but does not name the packer. Validate against a known-benign PyInstaller-built internal tool before trusting the signal.
H05wscript.exe/cscript.exe executing a blocker_<id>.vbs fileProcessRollup2hunt30dRun a benign, inert script named blocker_test123.vbs under wscript.exe in an isolated lab VM and confirm a matching row.
H06non-Discord-client process resolving/contacting Discord's APIDnsRequest joined to ProcessRollup2enrichment only7dapi.discord.com / discord.com are legitimate, heavily-used services. This correlation is context for an existing finding, never a standalone alert and never a block candidate.
H07non-Telegram-client process resolving/contacting the Telegram Bot APIDnsRequest joined to ProcessRollup2enrichment only7dapi.telegram.org is legitimate, heavily-used infrastructure serving countless bots. This correlation is context for an existing finding, never a standalone alert and never a block candidate.
H08process reading Discord/Chrome Local Storage LevelDB files directlygeneric file-open telemetrygapn/aNo generic file-read event exists in the reference Falcon data model used to build this pack; if your tenant has file-open telemetry enabled (an optional/premium sensor policy in some deployments), validate field names locally before building a query.
H09operator-side SQLite database and marketplace activityn/a — not endpoint telemetrygapn/aEntirely infrastructure the victim organization does not control; relevant only for OSINT/takedown correlation, not endpoint hunting.

Affected surface and telemetry

Surface: Windows endpoints running Discord, Discord PTB, or Chrome; Windows endpoints where users sign into personal Telegram accounts; the user Startup folder and HKCU Run hive; wscript.exe/cscript.exe script-execution surface. Exposure: user context only — no privilege escalation or admin rights are required or observed anywhere in this campaign.

Coverage boundaries

  • No portable Falcon event proves direct LevelDB file reads; H08 is a documented gap.
  • No file hash exists for any TWEAKOS component; every filename-based query can be defeated by a rename.
  • The backend database, marketplace, and pricing logic (C08, C09, C10) are operator-side and out of scope for endpoint hunting.
  • Account-level remediation (Discord token revocation, Telegram session termination) is outside Falcon's scope entirely and must be tracked as a separate response action.
04

Consolidated IOC Table

No file hashes and no dedicated C2 domains or IPs were published for TWEAKOS. Every row below is a filename, filename pattern, or a single contextual URL, transcribed only from the saved source snapshots in TWEAKOS-Stealer-Hunt-sources/. None of these values are unique identifiers on their own; treat every hit as a lead requiring process-context correlation, not as proof of compromise.

IDTypeValueContextSourcesConfidenceAction
I01filenameSystemHelper.exepersistence dropper name, both variantsS01, S02, S03, S04, S05highdetect
I02filenametweakos_data.dboperator-side backend SQLite databaseS01, S04, S05mediumdetect
I03filenameblocker_{uid}.vbsper-victim coercion script, short on-disk dwell timeS01, S04, S05mediumhunt
I04filenameWindowsSecurityChecker.exereferenced follow-on payload, not recovered by researchersS01, S03, S04, S05mediumhunt
I05filename{phone}.sessionTelethon session created on the victim host during Telegram takeoverS01, S02, S03, S04, S05highdetect
I06filenamesession_{uid}.sessionoperator-side renamed session copyS04mediumhunt (single-sourced)
I07urlhttps://discord.gg/tweakosbrand invite referenced in coercion messaging; reported invalid/expiredS01, S05mediumdetect (context only)
Never block on these two, even though they appear in the CQL below: api.telegram.org and discord.com/api.discord.com are legitimate, heavily-used public services named in the TWEAKOS reporting only because the malware abuses them. They do not appear anywhere in §10's importable CSV and must never be added to a Falcon IOC block list.
05

Affected Surface & Telemetry Matrix

SurfaceRequired TelemetryPriorityGap Risk
Windows endpoints running Discord, Discord PTB, or ChromeProcessRollup2, DnsRequest, NetworkConnectIP4 (Falcon); file-open/LevelDB access telemetry (native, optional)HighFalcon has no generic file-read event by default; direct LevelDB access is only visible if your sensor policy enables file-open telemetry (§3, H08)
Windows endpoints with personal Telegram sign-inProcessRollup2, DnsRequest, NetworkConnectIP4HighFalcon cannot see the interactive phone-number/login-code prompt itself; only the resulting process and network behavior is visible
User Startup folder (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\)PeFileWritten (or NewExecutableWritten fallback)CriticalLow — well covered by Q01, but a renamed dropper defeats a filename-only filter
HKCU ...\CurrentVersion\RunAsepValueUpdate / RegGenericValueUpdateCriticalLow — well covered by Q02, same rename caveat applies to the value name
Script-execution surface (wscript.exe/cscript.exe)ProcessRollup2MediumLow while the operator keeps the blocker_<id>.vbs naming convention; the backend deletes the script after use so on-disk forensics is time-limited
Fleet-wide DNS/network egress to Telegram and Discord APIsDnsRequest, NetworkConnectIP4Low (context only)High false-positive base rate — these are two of the most heavily used consumer services on any managed fleet; never a standalone signal
06

ATT&CK Mapping

Mappings are analyst inferences from source-backed behavior, not vendor-supplied ATT&CK attribution.

TacticTechniqueNameBehaviorSourcesClaims
ExecutionT1204.002User Execution: Malicious Filevictim runs the packaged stealer executable or script buildS01–S05C02, C05
Credential AccessT1528Steal Application Access TokenDiscord authentication tokens are harvested from LevelDB and validated against the Discord APIS01, S02, S03, S05C03
Credential AccessT1539Steal Web Session Cookie (closest analog)a freshly-minted Telethon session file grants persistent Telegram account access without a password resetS01–S05C04
PersistenceT1547.001Registry Run Keys / Startup FolderSystemHelper.exe dropped to Startup, or an HKCU Run value named SystemHelperS01–S05C05
Command and ControlT1102.002Web Service: Bidirectional Communicationa single Telegram bot token handles ingestion, victim management, and operator communicationS01–S05C01, C02
ExfiltrationT1041Exfiltration Over C2 Channelvalidated Discord tokens and Telegram session files are sent to operators via the Telegram Bot API (sendMessage/sendDocument)S01, S02, S03, S05C03, C04
ImpactT1491.001Internal Defacementa full-screen Russian-language warning is used to coerce the victimS01, S04C07
ImpactT1657Financial Theftstolen Discord/Telegram accounts are resold under the TWEAKOS brand for Telegram Stars — a business-model mapping, not an on-host TTPS01, S02, S03, S05C10
07

Native / Non-CQL Hunts

These close gaps that portable Falcon endpoint telemetry cannot see on its own and should be correlated with the CQL results in §8.

#HuntWhereWhat to look for
N1Discord OAuth/authorized-app auditDiscord account security settings, org Discord admin console if applicableUnrecognized authorized applications or active sessions following a suspected token-theft event; revoke and re-authenticate
N2Telegram active-sessions reviewTelegram app → Settings → Devices, on a trusted deviceUnrecognized active sessions or a newly-created session immediately following a reported phone/code prompt from an untrusted source; terminate and re-authenticate
N3Script-control / AMSI review for VBScript executionEDR script-control telemetry (if enabled), Windows Event Log (Script Block Logging)wscript.exe/cscript.exe invocations matching blocker_<id>.vbs, captured before the backend's self-delete completes
N4Help-desk / user-report correlation for "critical security update" social engineeringTicketing system, phishing-report mailboxUser reports of an unsolicited "critical update" file matching the WindowsSecurityChecker.exe pretext
N5File-open telemetry review (optional/premium sensor policy)Falcon file-open telemetry, where enabledNon-browser, non-Discord processes opening Local Storage\leveldb paths under Discord/Discord PTB/Chrome profile directories (closes gap H08)
08

CrowdStrike LogScale CQL Hunt Queries

Pick your tenant's cloud first — every "Open in Falcon" button below uses this selection.
Query strategy: Q01–Q03 are the strongest, lowest-effort persistence keepers. Q05 is a distinctive, low-FP coercion-script catch. Q04 is an unconfirmed packaging inference — keep it hunt-only. Q06/Q07 are enrichment correlations against legitimate infrastructure and must never be promoted to a standalone alert or a block rule.

All queries are STATIC-ONLY. Validate event population, fields, semantics, and volume in your tenant before operational use.

Q01 · SystemHelper.exe written to the Startup folder
CONF highFP mediumCOST low

Looks for: a file named SystemHelper.exe written into a user Startup folder path. Accomplishes: catches the packaged-build persistence variant at install time, before the first theft cycle runs.

Trace: H01 · IOA-1

// HUNT: SystemHelper.exe written into a user Startup folder (packaged-build persistence)
// HYPOTHESIS: H01
// USE: hunt
// MITRE: T1547.001
// CONF: high
// FP: medium
// COST: low
// TIMEFRAME: 30d
// REQUIRES: PeFileWritten with FileName, FilePath, ComputerName, UserName, SHA256HashData — ⚠ validate in tenant: some sensor versions expose the write-target directory as TargetDirectoryName instead of FilePath
// FALSE POSITIVES: any legitimate vendor utility that happens to share the generic name "SystemHelper.exe"
// TUNING: exclude hosts and hashes matching a known-vendor, Authenticode-signed "SystemHelper.exe" once your fleet baseline confirms one exists
// VALIDATION: STATIC-ONLY
#event_simpleName = PeFileWritten
| test(@timestamp >= now() - 2592000000)
| FileName = /^SystemHelper\.exe$/i
| FilePath = /\\Start Menu\\Programs\\Startup\\/i
| table([@timestamp, ComputerName, UserName, FileName, FilePath, SHA256HashData])
| sort(@timestamp, order=desc, limit=1000)
Q02 · HKCU Run value named SystemHelper
CONF highFP mediumCOST low

Looks for: a new HKCU ...\CurrentVersion\Run value literally named SystemHelper. Accomplishes: catches the script-build persistence variant, the other half of the no-admin persistence pair.

Trace: H02 · IOA-2

// HUNT: HKCU Run key value named SystemHelper (script-build persistence)
// HYPOTHESIS: H02
// USE: hunt
// MITRE: T1547.001
// CONF: high
// FP: medium
// COST: low
// TIMEFRAME: 30d
// REQUIRES: AsepValueUpdate or RegGenericValueUpdate with RegObjectName, RegValueName, RegStringValue, ComputerName, UserName
// FALSE POSITIVES: any legitimate helper application that happens to register a Run value literally named "SystemHelper"
// TUNING: confirm RegStringValue points at a known-bad or unexplained path before escalating; allowlist any confirmed legitimate vendor entry after fleet baseline review
// VALIDATION: STATIC-ONLY
#event_simpleName = /AsepValueUpdate|RegGenericValueUpdate/
| test(@timestamp >= now() - 2592000000)
| RegObjectName = /\\Software\\Microsoft\\Windows\\CurrentVersion\\Run$/i
| RegValueName = /^SystemHelper$/i
| table([@timestamp, ComputerName, UserName, RegObjectName, RegValueName, RegStringValue])
| sort(@timestamp, order=desc, limit=1000)
Q03 · SystemHelper.exe execution
CONF highFP mediumCOST low

Looks for: any process execution of SystemHelper.exe, regardless of which persistence variant installed it. Accomplishes: a complementary execution-side check that also catches a manually-launched copy outside Startup/Run.

Trace: H03 · IOA-3

// HUNT: SystemHelper.exe process execution
// HYPOTHESIS: H03
// USE: hunt
// MITRE: T1547.001
// CONF: high
// FP: medium
// COST: low
// TIMEFRAME: 30d
// REQUIRES: ProcessRollup2 with FileName, ImageFileName, ParentBaseFileName, CommandLine, SHA256HashData
// FALSE POSITIVES: same generic-name collision risk as Q01
// TUNING: correlate with Q01/Q02 hits on the same host before escalating a standalone Q03 hit; allowlist a confirmed legitimate signed hash after baseline review
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| FileName = /^SystemHelper\.exe$/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, SHA256HashData])
| sort(@timestamp, order=desc, limit=1000)
Q04 · Frozen-Python temp extraction from an unsigned binary
CONF low (inference)FP highCOST medium

Looks for: a process running from a PyInstaller-style _MEI<digits> temp-extraction folder with no Authenticode signature. Accomplishes: a packaging-level fingerprint for the frozen Python stealer build. Caveat: the reporting we captured mentions sys.frozen-style packaging but never names PyInstaller specifically for TWEAKOS — this query is an analyst hypothesis based on common frozen-Python behavior, not a sourced TWEAKOS artifact, and it will also fire on any other PyInstaller-packaged software on the fleet.

Trace: H04

// HUNT: Unsigned process executing from a PyInstaller-style _MEI temp-extraction path
// HYPOTHESIS: H04
// USE: hunt (unconfirmed inference, not a sourced TWEAKOS artifact)
// MITRE: T1204.002
// CONF: low
// FP: high
// COST: medium
// TIMEFRAME: 14d
// REQUIRES: ProcessRollup2 with ImageFileName, CommandLine, ParentBaseFileName, SHA256HashData, AuthenticodeHashData — ⚠ validate in tenant: AuthenticodeHashData population depends on sensor policy
// FALSE POSITIVES: every other PyInstaller-onefile application on the fleet (internal tools, some commercial software) will also match this path pattern
// TUNING: allowlist known-good PyInstaller-built internal tools by hash; require correlation with Q01/Q02/Q03/Q06/Q07 before treating a hit as TWEAKOS-related
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 1209600000)
| ImageFileName = /\\AppData\\Local\\Temp\\_MEI[0-9]{5,8}\\/i
| AuthenticodeHashData = ""
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, ImageFileName, CommandLine, SHA256HashData])
| sort(@timestamp, order=desc, limit=1000)
Q05 · wscript/cscript executing blocker_<id>.vbs
CONF highFP lowCOST low

Looks for: wscript.exe or cscript.exe launched against a command line matching the blocker_<id>.vbs naming pattern. Accomplishes: catches the coercion stage while the file still exists on disk; the backend deletes it after use, so alerting speed matters more than lookback depth here.

Trace: H05 · IOA-4

// HUNT: wscript.exe/cscript.exe executing a blocker_<id>.vbs coercion script
// HYPOTHESIS: H05
// USE: hunt
// MITRE: T1491.001
// CONF: high
// FP: low
// COST: low
// TIMEFRAME: 30d
// REQUIRES: ProcessRollup2 with FileName, ParentBaseFileName, CommandLine
// FALSE POSITIVES: an internal script coincidentally named with the same blocker_<id>.vbs pattern (unlikely, but confirm before treating as fatal)
// TUNING: exclude any documented internal script inventory that happens to match the naming pattern
// VALIDATION: STATIC-ONLY
#event_simpleName = ProcessRollup2
| test(@timestamp >= now() - 2592000000)
| FileName = /^(wscript|cscript)\.exe$/i
| CommandLine = /blocker_[A-Za-z0-9_-]+\.vbs/i
| table([@timestamp, ComputerName, UserName, ParentBaseFileName, FileName, CommandLine])
| sort(@timestamp, order=desc, limit=1000)
Q06 · Non-Discord-client process contacting Discord's API (enrichment only)
CONF lowFP highCOST medium

Looks for: a DNS resolution of discord.com attributed to a process that is not a known Discord/browser client. Accomplishes: surfaces the token-validation step for correlation with an existing Q01–Q05 hit. This is NOT a malicious-infrastructure query — Discord's API is legitimate and this signal is meaningless in isolation.

Trace: H06

// HUNT: Non-Discord-client process resolving discord.com (Discord token-validation correlation)
// HYPOTHESIS: H06
// USE: enrichment only — NEVER a standalone alert, NEVER a block candidate
// MITRE: T1528
// CONF: low
// FP: high
// COST: medium
// TIMEFRAME: 7d
// REQUIRES: DnsRequest with DomainName, ContextProcessId_decimal; ProcessRollup2 with TargetProcessId_decimal, FileName, ImageFileName, CommandLine
// FALSE POSITIVES: extremely high — discord.com is legitimate, widely-used infrastructure; any non-Discord app that embeds Discord's API (bots, integrations, browser extensions) will also match
// TUNING: only ever run this joined against a host that already has a Q01/Q02/Q03/Q04 hit; never alert on this query alone; expand the client-exclusion list for your environment's known Discord-adjacent tooling before relying on it
// VALIDATION: STATIC-ONLY
#event_simpleName = DnsRequest
| test(@timestamp >= now() - 604800000)
| DomainName = /(^|\.)discord\.com$/i
| rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal)
| join(query={#event_simpleName = ProcessRollup2 | FileName != /^(discord|discordptb|discordcanary|chrome|msedge|firefox|brave)\.exe$/i}, field=TargetProcessId_decimal)
| table([@timestamp, ComputerName, UserName, FileName, ImageFileName, CommandLine, DomainName])
| sort(@timestamp, order=desc, limit=1000)
Q07 · Non-Telegram-client process contacting the Telegram Bot API (enrichment only)
CONF lowFP highCOST medium

Looks for: a DNS resolution of api.telegram.org attributed to a process that is not a known Telegram/browser client. Accomplishes: surfaces the exfiltration channel (sendMessage/sendDocument) for correlation with an existing Q01–Q05 hit. This is NOT a malicious-infrastructure query — the Telegram Bot API is legitimate shared infrastructure serving an enormous number of unrelated bots.

Trace: H07

// HUNT: Non-Telegram-client process resolving api.telegram.org (Bot API exfiltration correlation)
// HYPOTHESIS: H07
// USE: enrichment only — NEVER a standalone alert, NEVER a block candidate
// MITRE: T1041
// CONF: low
// FP: high
// COST: medium
// TIMEFRAME: 7d
// REQUIRES: DnsRequest with DomainName, ContextProcessId_decimal; ProcessRollup2 with TargetProcessId_decimal, FileName, ImageFileName, CommandLine
// FALSE POSITIVES: extremely high — api.telegram.org is legitimate infrastructure used by an enormous number of unrelated Telegram bots and integrations
// TUNING: only ever run this joined against a host that already has a Q01/Q02/Q03/Q05 hit; never alert on this query alone; expand the client-exclusion list for your environment's known Telegram-adjacent tooling before relying on it
// VALIDATION: STATIC-ONLY
#event_simpleName = DnsRequest
| test(@timestamp >= now() - 604800000)
| DomainName = /(^|\.)api\.telegram\.org$/i
| rename(field=ContextProcessId_decimal, as=TargetProcessId_decimal)
| join(query={#event_simpleName = ProcessRollup2 | FileName != /^(telegram|updater|chrome|msedge|firefox|brave)\.exe$/i}, field=TargetProcessId_decimal)
| table([@timestamp, ComputerName, UserName, FileName, ImageFileName, CommandLine, DomainName])
| sort(@timestamp, order=desc, limit=1000)
09

CrowdStrike Custom IOA Recommendations

IOA NameField PatternsBenign ExclusionsDeployment Path
IOA-1 · SystemHelper.exe write to Startup folder (Q01)FileName = SystemHelper.exe; FilePath matching \Start Menu\Programs\Startup\A confirmed legitimate signed vendor utility of the same name, if one is found during baseliningCustom IOA → File Write, Detect
IOA-2 · HKCU Run value SystemHelper (Q02)RegObjectName matching ...\CurrentVersion\Run; RegValueName = SystemHelperSame as IOA-1Custom IOA → Registry Operation, Detect
IOA-3 · SystemHelper.exe execution (Q03)FileName = SystemHelper.exeSame as IOA-1Custom IOA → Process Creation, Detect
IOA-4 · blocker_<id>.vbs execution (Q05)FileName is wscript.exe/cscript.exe; CommandLine matching blocker_[A-Za-z0-9_-]+\.vbsNone expectedCustom IOA → Process Creation, Detect
No IOA in this pack is recommended at Detect+Block. No file hash was published for any TWEAKOS component, and every filename here is generic enough that a name-only block risks disrupting unrelated software. Promote to Block only after your own fleet baseline shows zero legitimate collisions.
Q04, Q06, and Q07 carry FP high and stay as tuned hunt/enrichment queries indefinitely. Q06 and Q07 must never become IOAs or block rules under any circumstance — they key on legitimate Discord and Telegram infrastructure, not on TWEAKOS-specific indicators.
10

Machine-Readable IOC Appendix

Every value below traces to a saved source snapshot in TWEAKOS-Stealer-Hunt-sources/ — see §18. Two rows are REPLACE_WITH_ placeholders because no public hash exists for either binary; populate them if a sample is later obtained, do not fabricate a value.

FILENAME6 values
SystemHelper.exe
tweakos_data.db
blocker_{uid}.vbs
WindowsSecurityChecker.exe
{phone}.session
session_{uid}.session
URL (context only)1 value
https://discord.gg/tweakos
SHA256 (unresolved placeholders)2 values
REPLACE_WITH_SYSTEMHELPER_EXE_SHA256
REPLACE_WITH_WINDOWSSECURITYCHECKER_EXE_SHA256
Source-tagged IOC CSV9 rows
type,value,action,severity,expiration,description,tags
filename,SystemHelper.exe,detect,high,review-2026-12-27,Persistence dropper name for both TWEAKOS variants (Startup-folder copy or HKCU Run value); combine with path/registry context before acting,source:S01 source:S02 source:S03 source:S04 source:S05
filename,tweakos_data.db,detect,medium,review-2026-12-27,Operator-side backend SQLite database name; not expected on victim endpoints but useful for OSINT/infrastructure correlation,source:S01 source:S04 source:S05
filename,blocker_{uid}.vbs,hunt,medium,review-2026-12-27,Per-victim coercion script pushed by operators on demand; backend deletes it after use so on-disk dwell time is short,source:S01 source:S04 source:S05
filename,WindowsSecurityChecker.exe,hunt,medium,review-2026-12-27,Referenced follow-on payload sent under a fake security-update pretext; researchers did not recover or analyze the binary,source:S01 source:S03 source:S04 source:S05
filename,{phone}.session,detect,high,review-2026-12-27,Telethon session file generated on the victim host during interactive Telegram account takeover,source:S01 source:S02 source:S03 source:S04 source:S05
filename,session_{uid}.session,hunt,low,review-2026-12-27,Operator-side renamed copy of a submitted session file keyed to the sender's Telegram chat ID; single-sourced so it ships as hunt-only,source:S04
url,https://discord.gg/tweakos,detect,low,review-2026-12-27,Discord invite referenced in TWEAKOS branding and the coercion message; reported invalid/expired at analysis time - context only,source:S01 source:S05
sha256,REPLACE_WITH_SYSTEMHELPER_EXE_SHA256,hunt,medium,review-2026-12-27,No public hash exists for the packaged SystemHelper.exe stealer binary as of this pack's research date; populate when a sample is obtained,source:S01 source:S02 source:S03 source:S04 source:S05
sha256,REPLACE_WITH_WINDOWSSECURITYCHECKER_EXE_SHA256,hunt,medium,review-2026-12-27,Follow-on payload referenced in reporting; binary not recovered by researchers so no hash is available,source:S01 source:S03 source:S04 source:S05
11

Detection Validation Gates

GateRequirement
Telemetry readyConfirm PeFileWritten (or NewExecutableWritten as fallback), AsepValueUpdate/RegGenericValueUpdate, ProcessRollup2, and DnsRequest are flowing for every in-scope Windows host; confirm optional file-open telemetry status before relying on N5
Benign baselineRun Q01, Q02, Q03, Q04, Q06, and Q07 in hunt-only mode for at least 7–14 days to capture legitimate admin tooling and any organically-installed PyInstaller software before writing exclusions
Positive testsLab-verify Q01 (drop a benign, identically-named test binary into a lab Startup folder), Q02 (add a benign HKCU Run value literally named SystemHelper), and Q05 (execute a benign, inert blocker_test123.vbs under wscript.exe in an isolated VM) each return a row before relying on them in production
PromotionPromote IOA-1 through IOA-4 (§9) only after the above; keep Q04, Q06, and Q07 as tuned hunt/enrichment queries indefinitely — Q06/Q07 must never be promoted to a standalone alert or block rule
12

Hardening — Tiered and Deployable

TWEAKOS requires no exploit and no admin rights: every stage depends on the victim running an untrusted file and then typing a login code into it. User education and no-admin-persistence hardening close most of this chain without any product-specific fix.

Immediate — this week
  • Train users that no legitimate service ever needs their login code read back to a program or a stranger — M1017 (User Training). The entire Telegram account-theft technique (C04) depends on the victim voluntarily supplying a one-time code; this single behavior change defeats it regardless of any technical control.
  • Enable Telegram two-step verification (cloud password) and Discord multi-factor authentication organization-wide where these services are sanctioned for business use — M1032 (Multi-factor Authentication). Raises the cost of both theft paths, though TWEAKOS's Telegram flow already attempts to solicit a cloud password if 2FA is present, so this must pair with the training control above.
  • Run Q01/Q02/Q03 fleet-wide as an immediate baseline sweep to establish current exposure before any tuning work begins.
Near-term — pilot first, 1–4 weeks
  • Deploy Q01–Q07 as scheduled hunts, with FP-medium/high queries (Q01, Q02, Q03, Q04, Q06, Q07) in hunt/detect-only mode pending the §11 baseline.
  • Restrict or monitor personal Discord/Telegram installation on managed endpoints where these are not business-required — M1042 (Disable or Remove Feature or Program). Directly reduces the population of endpoints exposed to Discord-token or Telegram-session theft.
  • Enable script-control/AMSI logging for wscript.exe/cscript.exe fleet-wide — M1040 (Behavior Prevention on Endpoint). Improves both detection and forensic capture speed for the short-lived blocker_<id>.vbs coercion script (C07).
  • Document an account-recovery runbook for Discord token revocation and Telegram session termination so responders can act the moment Q01–Q05 fires, since deleting the local artifact does not undo the account theft (§1).
Strategic — 1–3 months
  • Formalize a managed-endpoint policy on personal chat-app usage (installation, profile isolation from work identities, or removal) — M1042. TWEAKOS specifically targets the overlap between personal Discord/Telegram use and corporate endpoints.
  • Extend application allow-listing to the user Startup folder and HKCU Run hive where feasible — M1038 (Execution Prevention). Structurally closes both no-admin persistence variants in this campaign, not just the two named artifacts.
  • Recurring user-awareness campaign on login-code and account-takeover social engineering — M1017, repeated rather than one-time, since this technique class recurs across many unrelated stealer families beyond TWEAKOS.
13

Deployable Playbooks

Playbook A · SystemHelper.exe persistence sweep and validation

  1. Run Q01, Q02, and Q03 unfiltered across the fleet for a 30-day lookback; record every host, hash, and registry value returned.
  2. For each hit, pull the parent process tree and command line via ProcessRollup2 to establish how SystemHelper.exe arrived (download, removable media, email attachment, browser).
  3. Correlate each hit's timeframe against Q06/Q07 on the same host as enrichment context only; do not treat a Discord/Telegram API contact alone as confirmation.
  4. Where corroborated, begin account-level response in parallel with endpoint remediation: initiate Discord token revocation (N1) and Telegram session termination (N2) immediately, do not wait for full endpoint forensics.
  5. Remove the persistence artifact (Startup file or Run value) and the executable; preserve a copy and its hash for the §10 IOC appendix before deletion.
  6. Re-run Q01–Q03 after remediation to confirm no recurrence within one week.
  7. Retain hit list, hashes, account-recovery confirmation, and owner sign-off.

Playbook B · Suspected active coercion screen (blocker_<id>.vbs)

  1. Do not let the user act on the on-screen message (no payment, no contacting the listed Discord); the backend deletes the local script shortly after triggering it, so evidence capture speed matters.
  2. Immediately capture the running wscript.exe/cscript.exe process, its command line, and the referenced .vbs file from disk if still present.
  3. Run Q05 with a short lookback (last 24 hours) across the fleet to check for other affected hosts from the same operator campaign.
  4. Isolate the host from a user-interaction standpoint (lock screen access is not sufficient if the malware persists); investigate for the full TWEAKOS chain (Q01–Q03) since the coercion stage implies the operator already has an established channel to this victim.
  5. Proceed to account-level response (N1/N2) as in Playbook A, since a coercion trigger implies the operator already holds stolen credentials for this victim.
Design state: both playbooks are STATIC-ONLY guidance. Validate every query against your own tenant and complete a benign-baseline period before relying on them operationally.
14

Containment Runbook

PhaseActionsOwnerEvidence
IsolateNetwork-contain any host with a confirmed Q01/Q02/Q03/Q05 hit; do not power off before capturing the running process list if a coercion screen is activeSOC L2 / IRContainment timestamp; process tree; persistence artifact copy and hash
TriageDetermine which persistence variant fired (Startup file vs. Run value); check Q06/Q07 as context only; check for the WindowsSecurityChecker.exe follow-on pretext (N4) and any active coercion (Q05/N3)IRQ01–Q05 hit list; N3/N4 correlation notes
EradicateRemove SystemHelper.exe and its persistence entry (Startup file or Run value); remove any recovered WindowsSecurityChecker.exe or .vbs artifacts; do not assume removal alone resolves the incidentIRRemoval log; before/after file and registry comparison
RecoverRevoke and re-authenticate affected Discord tokens (N1); terminate and re-establish affected Telegram sessions from a trusted device (N2); reset any password the victim may have also disclosed under the fake-update pretextIR + account ownerToken-revocation confirmation; session-termination confirmation
HardenApply §12 Immediate and Near-term controls; promote IOA-1 through IOA-4 after §11 baselining; refresh user training on login-code social engineeringDetection Eng + Security AwarenessIOAs enabled; training completion record

⚠ A confirmed hit is an account-compromise event, not just a malware event. Endpoint remediation without Discord token revocation and Telegram session termination leaves the operator with standing access to the victim's accounts.

15

Detection Coverage Map

TechniqueBehaviorCQLNative / IOACoverage
T1204.002victim runs the stealer (packaged or script build)—N4GAP initial user-execution moment is not independently visible to Falcon
T1528Discord token harvest and API validationQ06 (enrichment)N5 (optional telemetry)Partial direct LevelDB read is a documented gap (H08); Q06 is context-only, high FP
T1539Telegram session theft via TelethonQ07 (enrichment)N2Partial the interactive code prompt itself is not Falcon-visible; Q07 is context-only, high FP
T1547.001SystemHelper.exe Startup-folder copyQ01IOA-1Good while the filename stays unrenamed
T1547.001HKCU Run value SystemHelperQ02IOA-2Good while the value name stays unrenamed
T1547.001SystemHelper.exe executionQ03IOA-3Good
T1204.002 (packaging)frozen-Python temp extractionQ04—GAP-leaning unconfirmed inference, FP high, correlation-only
T1491.001full-screen coercion warningQ05IOA-4, N3Good while the on-disk window lasts
T1041Telegram Bot API exfiltration channelQ07 (enrichment)—GAP-leaning legitimate shared infrastructure, correlation-only, never standalone
T1657stolen-account monetization via Telegram Stars——GAP entirely operator-side; not endpoint-visible

Validation gates: confirm the required telemetry list in §11 is flowing before relying on any query; baseline the FP-medium/high queries for 7–14 days before promoting; lab-test Q01/Q02/Q05 positive cases. This pack ships no file hashes and no dedicated C2 domain/IP because none were published for TWEAKOS as of the cited reporting; every network-facing query targets legitimate shared infrastructure (Telegram Bot API, Discord API) and is explicitly scoped to enrichment, never to blocking.

16

Hunt Summary Ticket

TITLE:        Hunt - TWEAKOS: Windows infostealer, Telegram-bot C2 & stolen-account marketplace
SEVERITY:     High (no-admin-rights persistence; live Discord/Telegram account-takeover impact;
              no published hashes or dedicated C2 infrastructure limits atomic coverage)
SCOPE:        Windows endpoints running Discord/Discord PTB/Chrome; endpoints with personal
              Telegram sign-in; user Startup folder and HKCU Run hive; wscript.exe/cscript.exe
              script-execution surface
HYPOTHESIS:   H01 hunt; H02 hunt; H03 hunt; H04 hunt (inference); H05 hunt; H06 enrichment-only;
              H07 enrichment-only; H08 gap; H09 gap
QUERIES RUN:  Native N1 Discord OAuth audit | N2 Telegram active-sessions review | N3 script-control
              VBScript review | N4 help-desk social-engineering correlation | N5 file-open telemetry
              review (optional)
              CQL Q01 SystemHelper.exe Startup write | Q02 HKCU Run value SystemHelper |
              Q03 SystemHelper.exe execution | Q04 frozen-Python temp extraction (inference) |
              Q05 wscript/cscript blocker_<id>.vbs | Q06 Discord API correlation (enrichment) |
              Q07 Telegram Bot API correlation (enrichment)
DO FIRST:     Run Q01/Q02/Q03 fleet-wide over 30 days; any hit triggers Playbook A (§13) and
              parallel account-level response (Discord token revocation, Telegram session
              termination) alongside endpoint remediation
FINDINGS:     <pending analyst execution>
GAPS:         No portable Falcon event proves direct LevelDB file reads (H08); no file hash exists
              for any TWEAKOS component; the interactive phone/code social-engineering moment is not
              independently Falcon-visible; the operator-side database, marketplace, and pricing
              logic (C08-C10) are out of scope for endpoint hunting
ACTIONS:      Deploy Q01-Q05 as scheduled hunts; baseline Q04/Q06/Q07 for 7-14 days before any
              promotion; document and rehearse the account-recovery runbook (Discord token
              revocation, Telegram session termination); train users on login-code social
              engineering; promote IOA-1 through IOA-4 only after §11 baselining
OWNER:        HuntPack
VERSION:      v1.0 - 2026-09-27
17

Changelog

v1.02026-09-27Initial release. 5 saved source snapshots, 12 claims, 7 CQL hunt queries (2 of which are legitimate-infrastructure enrichment correlations, never for blocking), 5 native hunts, 4 candidate Custom IOAs (Detect only, no Block recommendations), 7 source-bound atomic indicators plus 2 explicitly-labelled REPLACE_WITH_ hash placeholders. No file hashes or dedicated C2 infrastructure were published for this campaign as of the cited reporting.
18

References

IDPublisherEdition/dateAccessedUseURL
S01Flare2026-09-242026-09-27Primary research: two-component architecture, Discord/Telegram theft mechanics, persistence, marketplacehttps://flare.io/learn/resources/blog/tweakos-stealer-telegram-c2-ecosystem-2
S02Cyber Security News2026-09-252026-09-27Independent corroboration: persistence mechanisms, detection indicators, mitigation guidancehttps://cybersecuritynews.com/tweakos-malware/
S03Cyber Press2026-09-25 (approx.)2026-09-27Independent corroboration: Discord LevelDB scanning detail, storefront pricing modelhttps://cyberpress.org/tweakos-stealer-harvests-discord-tokens/
S04Security Boulevard2026-09 (approx.)2026-09-27Independent corroboration: filename inventory, Russian-language coercion string, database schema detailhttps://securityboulevard.com/2026/09/tweakos-uncovered-a-telegram-driven-stealer-and-c2-ecosystem-for-discord-and-telegram-tokens/
S05Cryptika2026-09 (approx.)2026-09-27Independent corroboration: IOC filename/URL inventory, marketplace mechanicshttps://www.cryptika.com/tweakos-malware-turns-telegram-into-a-stealer-c2-platform-and-stolen-account-marketplace/