惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Cisco Talos Blog
Cisco Talos Blog
T
Threat Research - Cisco Blogs
P
Privacy International News Feed
S
Schneier on Security
P
Privacy & Cybersecurity Law Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
云风的 BLOG
云风的 BLOG
P
Proofpoint News Feed
Scott Helme
Scott Helme
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
O
OpenAI News
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
T
Troy Hunt's Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
腾讯CDC
C
Check Point Blog
Spread Privacy
Spread Privacy
L
LINUX DO - 最新话题
Recent Announcements
Recent Announcements
大猫的无限游戏
大猫的无限游戏
P
Palo Alto Networks Blog
Hacker News: Ask HN
Hacker News: Ask HN
M
MIT News - Artificial intelligence
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Hacker News
The Hacker News
H
Hacker News: Front Page
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
T
Tor Project blog
Martin Fowler
Martin Fowler
博客园 - 叶小钗
罗磊的独立博客
C
Cyber Attacks, Cyber Crime and Cyber Security
H
Heimdal Security Blog
V
Vulnerabilities – Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
Latest news
Latest news
WordPress大学
WordPress大学
G
Google Developers Blog
N
Netflix TechBlog - Medium
S
Security Affairs
S
Secure Thoughts
Know Your Adversary
Know Your Adversary

Security Research | Blog

Splunk Enterprise RCE (CVE-2026-20253) | ThreatLabz Edgecution: Malicious Edge Extension Backdoor | ThreatLabz SmartApeSG Supply Chain Attack Targets Okendo | ThreatLabz What the ThreatLabz 2026 Phishing and Initial Access Report Means for the Public Sector | Zscaler Shai-Hulud: Miasma, Hades, & AI Scanner Evasion | ThreatLabz Zscaler ThreatLabz 2026 Phishing and Initial Access Report Technical Analysis of MLTBackdoor | ThreatLabz When the Scanner Starts Thinking: Learnings from Mythos & GPT 5.5 Cyber in Security Testing | Zscaler OpenClaw Skill Distributes Remcos & GhostLoader | ThreatLabz Tropic Trooper: AdaptixC2 + Custom Beacon | ThreatLabz Do not delete blog (testing) | Zscaler Payouts King Takes Aim at the Ransomware Throne | ThreatLabz The Alibaba Incident and Why Zero Trust Matters More Than Ever In-Memory Loader Drops ScreenConnect | ThreatLabz Supply Chain Attacks Surge in March 2026 | ThreatLabz Claude Code Leak: Critical AI Security Threat 2026 Latest Xloader Obfuscation Code & C2 Protocol | ThreatLabz CVE-2026-20131: Analysis of FMC RCE | ThreatLabz Technical Analysis of SnappyClient | ThreatLabz China-nexus Group Targets Arabian Gulf Region | ThreatLabz Middle East Conflict Fuels Cyber Attacks | ThreatLabz Dust Specter APT Targets Gov’t Officials in Iraq | ThreatLabz APT37 Adds New Tools For Air-Gapped Networks | ThreatLabz GuLoader Obfuscation Analysis | ThreatLabz Technical Analysis of Marco Stealer | ThreatLabz Latest Public Sector AI Adoption Trends: What Government, Healthcare, and Education Security Teams Need to Know | Zscaler Operation Neusploit: APT28 Uses CVE-2026-21509 | ThreatLabz 7 Predictions for 2026 | Zscaler SHEETCREEP, FIREPOWER, and MAILCREEP Analysis | ThreatLabz AI is Now Default Enterprise Accelerator: Takeaways from ThreatLabz 2026 AI Security Report | Zscaler GOGITTER, GITSHELLPAD, and GOSHELL Analysis | ThreatLabz Malicious NPM Packages Deliver NodeCordRAT | ThreatLabz What’s Powering Enterprise AI in 2025: ThreatLabz Report Sneak Peek | Zscaler BlindEagle Deploys Caminho and DCRAT | ThreatLabz Technical Analysis of the BlackForce Phishing Kit | ThreatLabz React2Shell RCE Vulnerability (CVE-2025-55182) | ThreatLabz Shai-Hulud V2 Poses Risk to NPM Supply Chain | ThreatLabz Technical Analysis of Matanbuchus 3.0 | ThreatLabz In-Depth Analysis: Water Gamayun APT Multi-Stage Attack Uncovered CVE-2025-50165: Windows Graphics Component Flaw | ThreatLabz Mobile, IoT, and OT Risks Converge in the Public Sector | Zscaler Industry Attacks Surge, Mobile Malware Spreads: The ThreatLabz 2025 Mobile, IoT & OT Report | Zscaler Zscaler Discovers Vulnerability in Keras Models Allowing Arbitrary File Access and SSRF (CVE-2025-12058) | Zscaler F5 Security Incident Advisory | Zscaler Under the Radar: How Non-Web Protocols Are Redefining the Attack Surface | Zscaler SEO Poisoning Targets Ivanti VPN: Credential Theft Alert Cisco Firewall and VPN Zero Day Attacks | ThreatLabz COLDRIVER Adds BAITSWITCH and SIMPLEFIX | ThreatLabz YiBackdoor: Linked to IcedID and Latrodectus | ThreatLabz Technical Analysis of Zloader Updates | ThreatLabz Mitigating Risks from the Shai-Hulud NPM Worm | ThreatLabz Malicious PyPI Packages Deliver SilentSync RAT | ThreatLabz Technical Analysis of SmokeLoader Version 2025 | ThreatLabz Technical Analysis of kkRAT | ThreatLabz APT37: Rust Backdoor & Python Loader | ThreatLabz Anatsa’s Latest Updates | ThreatLabz Termncolor and Colorinal Explained | ThreatLabz GenAI Used to Impersonate Brazil’s Govt Websites | ThreatLabz Tracking Updates to Raspberry Robin | ThreatLabz Ransomware Surges, Extortion Escalates: ThreatLabz 2025 Ransomware Report | Zscaler China-nexus APT Targets the Tibetan Community | ThreatLabz CVE-2025-53770 | ThreatLabz Black Hat SEO Poisoning Search Engine Results For AI | ThreatLabz
AI Generated ClickFix Attack Delivers SmartRAT | ThreatLabz
Shruti Dixit · 2026-06-18 · via Security Research | Blog

SmartRAT Analysis

SmartRAT is a Brazil-focused banking RAT implemented entirely in PowerShell and identified by the embedded string SMART_V25. Its primary objective is remote access and financial data theft through capabilities such as fake bank-branded password forms, keylogging, and QR code interception.

Setup and configuration

SmartRAT decrypts two C2 server configurations. The first is decrypted using XOR with the key 2, resolving to c[.]windowsupdate-cdn[.]com. The fallback C2 is an IP address that is decrypted using XOR with the key 233, resolving to 162[.]141[.]111[.]227. The malware uses the port number 51888 for communication. SmartRAT also hides the running PowerShell window using user32.dll’s ShowWindow function.

Debug logs are written to C:\ProgramData or %APPDATA%\Microsoft\Diagnosis\ETW\client_debug.log, with a fallback to %TEMP%\client_debug.log. A per-process log is also created at C:\ProgramData\Microsoft\Diagnosis\ETW\process_<PID>.log to silently record all RAT activity.

SmartRAT generates a unique identity token by hashing (SHA-256) the machine GUID, MAC address, UTC ticks, a newly generated GUID, and the computer name. It stores this token in etw.dat and install.token

SmartRAT then computes an HMAC-SHA256 of this token value using a hardcoded master key (iuhbdaubdvauygd5562$3@##$r). The hardcoded master key is used for two distinct purposes: the HMAC operation uses the raw UTF-8 bytes of the master key plaintext as its secret, while the 32-byte AES encryption key is derived from the SHA-256 hash of the same string. The encryption and decryption of C2 command traffic is handled by the following two functions, respectively:

  • Initialize-xVxIaX (encrypt): Uses AES-CBC to encrypt plaintext. It generates a fresh IV on each call via $aes.GenerateIV(), ensuring identical plaintext produces different ciphertext. The IV and ciphertext are each hex-encoded separately and returned as a colon-delimited string (<ivHex>:<ciphertextHex>) for transmission.
  • Start-LXqXSB (decrypt): Splits the colon-delimited input into IV and ciphertext, hex-decodes both, and decrypts the payload using the same AES key to recover the plaintext command.

Persistence and privilege strategy

SmartRAT checks its privilege level by comparing the current Windows identity's SID against S-1-5-18 (the well-known LocalSystem SID), or by checking whether it was launched with the -ServiceMode flag. If either condition is true, SmartRAT connects to the C2 immediately. Otherwise, the code performs the following steps:

  1. Copies itself to %APPDATA%\Microsoft\Diagnosis\ETW\msedgeupdate.txt.
  2. Attempts to establish persistence by creating a logon-triggered scheduled task named MicrosoftEdgeUpdateCore. If task creation fails, it falls back to registry-based persistence by writing a MicrosoftEdgeUpdateCore value under HKCU\Software\Microsoft\Windows\CurrentVersion\Run that launches a PowerShell command to re-execute SmartRAT (msedgeupdate.txt) at each user logon.
  3. Prompts for User Account Control (UAC) elevation.
    1. If UAC elevation is approved: SmartRAT compiles inline C# service code using csc.exe and installs a Windows service named MicrosoftEdgeUpdateCore under %ProgramData%\Microsoft\Diagnosis\ETW\. This service is configured to run with System privileges. After the SmartRAT PowerShell process is created, the code creates a watchdog that checks every 5 seconds to ensure it continues to run. Otherwise, the watchdog relaunches SmartRAT.
    2. If UAC elevation is deniedNo Windows service is created. Instead, SmartRAT launches a hidden PowerShell process that bypasses the UAC logic and beacons to the C2. The scheduled task (if created) will prompt for UAC elevation again at the next logon.

SmartRAT also compiles another C# component that uses DuplicateTokenEx and CreateProcessAsUser to spawn a new PowerShell process using the current user’s session, even when the RAT is running as SYSTEM.

SmartRAT supports multiple command-line parameters that control service installation, removal, persistence cleanup, and how the malware runs. The table below lists the parameters that are supported.

Parameter

Action

-InstallService

Installs/starts the MicrosoftEdgeUpdateCore Windows service.

-UninstallService

Stops/deletes the Windows service and its executable.

-Uninstall

Removes persistence (scheduled tasks, registry keys, and files).

-Reinstall 

Uninstalls then reinstalls SmartRAT.

-ServiceMode

Runs SmartRAT as a service; verifies internet connectivity (by resolving google.com) before executing.

-ServiceStatus

Displays the current status of the service and scheduled tasks.

-ScriptPath <path>

Defines the source file location for installation.

-Force

Kills all other PowerShell instances (except itself) and deletes lock (PID) files.

Table 1: Command-line parameters supported by SmartRAT. 

SmartRAT outputs the string SMART_V25 along with the current timestamp as a simple confirmation that the RAT executed successfully.

Operator capabilities and victim interaction

Before connecting to the C2, the following C# classes (which are embedded in SmartRAT’s PowerShell code) are compiled and loaded into memory:

  • NativeInput: Handles mouse and keyboard inputs, including freezing the victim's input.
  • WinEUpjgHelper: Captures the screen using BitBlt (GDI). This class is compiled into memory, but never invoked at runtime. The active screen capture path uses System.Drawing.Graphics.CopyFromScreen().
  • WindowMonitor: Retrieves the foreground window title and process name.
  • InputTracker: A high-priority keylogger that monitors all keystrokes.
  • IdleDetector: Tracks user inactivity using GetLastInputInfo.
  • QRDetector: Detects QR codes using pixel pattern analysis.
  • DisplayOverlay: Renders full-screen fake overlays, including Windows Update, BSOD, and bank-branded security screens for major Brazilian banks.
  • QROverlay: Displays fake overlays with bank branding.

Monitor enumeration 

To map a victim’s screen coordinates and resolution, SmartRAT enumerates all screens and collects each display's full boundaries (X, Y, width, height). It calls SetProcessDpiAwareness (shcore.dll) to bypass DPI scaling and obtain true physical pixel values, then stores the results in a global array so the operator can select a monitor index and accurately align overlays and screen captures.

SmartRAT also tracks banking activity using a window title watchlist, shown in the table below:

Keyword

Target type

santander

Bank

bradesco

Bank

itau

Bank

caixa

Bank

bb.com.br

Bank

bancodobrasil

Bank

nubank

Bank

inter

Bank

c6bank

Bank

safra

Bank

btg

Bank

sicoob

Credit union

sicredi

Credit union

mercadopago

Payment platform

picpay

Payment platform

pagseguro

Payment platform

paypal

Payment platform

binance

Cryptocurrency exchange

mercadobitcoin

Cryptocurrency exchange

bank

Generic keyword

banco

Generic keyword

Table 2: Window-title keywords SmartRAT monitors to detect banking, payment, and cryptocurrency-related activity.

If the window title matches a list of predefined targets, SmartRAT logs the title, matched keyword, process name, and timestamp, and sends this information to the SmartRAT C2 server as a BrowserAlert (message type 0x80). This serves as a tipoff to the operator that the victim is interacting with a financial application.

Acting on this alert, the operator can then issue a dataEntry: command containing bank-specific branding parameters (name, color palette, prompt text, input length). This SmartRAT feature can be used to launch a full-screen overlay such as a bank verification prompt as shown in the figure below.

Example of fake overlay which can be shown to its victims

Figure 4: Example of fake overlay which can be shown to its victims.

The information captured in the overlay form is then exfiltrated to the SmartRAT C2.

Post-infection / infrastructure weakness

SmartRAT attempts to connect to its C2 server indefinitely. If domain resolution fails, it falls back to a hardcoded IP address. Once a connection is established, SmartRAT communicates over a raw TCP socket on port 51888. Each message uses the binary framing represented in the figure below:

SmartRAT C2 message format.

Figure 5: SmartRAT C2 message format.

During connection attempts and initial setup, SmartRAT sends the message types shown in the table below.

Type

Description

ClientHello (type 0x01)

Sends version string 7.3 to the server.

GuestInfo (type 0xE6)

Sends victim profile JSON (OS, username, host, privilege, session ID, install token, HMAC).

Session Negotiation (0x06,0xE0,0xE1)

Waits for a SessionInfo packet (type 0x06) from the server. If Accepted: true, the connection is confirmed. Replies with a ping message type (0xE0) and waits for a Pong message type (0xE1). 

Monitor List (type 0x14)

Sends monitor layout so the operator can select a screen.

Table 3: SmartRAT C2 message types.

SmartRAT features 

After connecting, SmartRAT enters a continuous loop and performs the following high-level tasks:

  • Idle detection: Pauses screen capture after > 20 minutes of inactivity and resumes on user activity.
  • Incoming packet processing: Processes up to 20 C2 packets per main loop iteration.

The table below shows the C2 messages handled by SmartRAT:

Packet (hex)

Action

0xE0 Ping

Reply with Pong.

0x20 MouseMove

Move cursor to operator-specified coordinates.

0x21 MouseButton

Click/release the mouse button.

0x22 MouseWheel

Scrolls

0x23 Keyboard

Inject keystrokes.

0xA0 Command

Run arbitrary PowerShell via Invoke-Expression (can be AES-encrypted).

0xA2 SystemCommand

Executes the built-in RAT commands  below:

  • overlay + mode: Show a bank-branded fake “security update” full-screen overlay (supports Itaú, Bradesco, Santander, Banco do Brasil, Caixa).
  • blockOn: Freeze keyboard/mouse.
  • blockOff: Restore keyboard/mouse.
  • cropArea:: Show a dark overlay with a transparent “hole” at operator-specified coordinates; lock the cursor inside it.
  • dataEntry:: Show a branded bank input form and capture what the victim types; returns captured data to the C2.
  • unlock_screen: Impersonate a winlogon.exe token and send simulated enter keypresses to dismiss a lock screen.
  • logoff: Force user logoff.
  • restart: Force system restart.
  • shutdown: Force system shutdown.
  • client_restart: Restart the SmartRAT process.
  • uninstall: Complete self-removal; delete the service, scheduled tasks, registry keys, and all files, then exit.

0x40 Clipboard

Copy content to the victim's clipboard (can be AES-encrypted).

0x50 FileList

Browse the victim's filesystem.

0x54 FileDownload

Exfiltrate a file (up to 50MB).

0x11 ScreenRequest

Capture and send a screenshot immediately.

0x13 QualityChange

Adjust JPEG compression of screen stream.

0x15 MonitorSelect

Switch to a different monitor.

0x61 ChatPopup

Show a fake "Windows Security" notification dialog.

0x64 AutoQRToggle

Enable/disable automatic QR code scanning.

0x66 ShowQROverlay

Show a full-screen bank-branded QR fake overlay.

0x67 HideQROverlay

Close the QR overlay.

0x70 InputTrackStart

Start keylogger thread.

0x71 InputTrackStop

Stop the keylogger.

0xB2 ProcessList

Return list of running processes.

0xB3 ServiceList

Return list of Windows services.

Table 4: Smart SmartRAT C2 commands.

SmartRAT also supports the following features:

  • Automatic screen streaming: Captures and streams screenshots to the operator at configurable intervals. The default interval is set to 12 milliseconds.
  • QR auto-detection: Identifies QR codes on banking sites and sends QR information to the C2 (supports QR-swap workflows).
    • When QR auto-detection is enabled by the C2 via the AutoQRToggle (0x64) command, the client scans all connected monitors every 3 seconds using a heuristic pixel-contrast and clustering algorithm to locate QR-code-shaped regions on screen. Upon detection, it captures the full monitor as a JPEG, computes the QR's bounding box coordinates, and transmits them to the C2 via the QRCodeDetected (0x65) packet, including the screenshot, region coordinates (X/Y/W/H), monitor offset, and a deduplication hash.
    • In QR-swap workflows, the C2 performs the actual QR decoding server-side and can then respond with a ShowQROverlay (0x66) command containing a threat actor-supplied QR image, which the client renders as a borderless TopMost window positioned at the exact pixel coordinates of the original QR, effectively swapping the legitimate banking QR with the threat actor's, so the victim unknowingly scans and authorizes a fraudulent transaction. The overlay persists until dismissed via HideQROverlay (0x67), and failed-decode regions are blacklisted for 30–60 seconds to avoid redundant transmissions.
  • Keylogger streaming: Continuously uploads the victim’s keystrokes to the C2.

SmartRAT is managed from a web-based C2 panel as shown in the figure below.

SmartRAT C2 panel.

Figure 6: SmartRAT C2 panel.

Based on verbose explanatory comments and frequent emoticons, the panel’s page source suggests the use of AI tools during development. More importantly, the panel contained critical authentication weaknesses that exposed its C2 functionality, consistent with code deployed without adequate security review. Further inspection revealed that the panel’s “authentication” logic relied only on the presence of two localStorage values (authToken and currentUser) to hide the login overlay. There was no server-side validation of these values before granting access to the panel UI.

<body>
 <!-- Script inline para evitar flash da tela de login -->
 <script>
   if (localStorage.getItem('authToken') && localStorage.getItem('currentUser')) 
{
           document.write('<style>#loginOverlay{display:none!important}</style>');
       }
 </script>
 <!-- 🔐 TELA DE LOGIN -->
 <div class="login-overlay" id="loginOverlay">
   <div class="login-container">
     <div class="login-logo">
       <img src="images/logo-samurai.jpg" alt="Logo">
       <h1>MyGood PRO</h1>
       <p>Sistema de Acesso Remoto</p>


Because the check is performed entirely client-side, a user could bypass the login screen by setting arbitrary values for authToken and currentUser in the browser’s localStorage. The figure below shows the panel, including the sidebar populated with threat actor-controlled values.

SmartRAT C2 panel administration page.

Figure 7: SmartRAT C2 panel administration page.