Нова SMS фишинг кампания превръща рутинна проверка на плащане в сесия за измама на живо. Жертвите, които натиснат връзка, стигат до убедителни страници, изискващи данни за карта, пароли и еднократни кодове за потвърждение (OTP), докато престъпниците виждат информацията в момента на нейното въвеждане.
Операцията използва спешни съобщения, представящи се за официални услуги и твърдящи, че трябва да се плати такса, да се потвърди доставка или да се потвърди профил. Съкратените връзки пренасочват получателите към временни фишинг сайтове, където измамата може да премине от лични данни към банкова информация и еднократни кодове (OTP).
Анализаторите от Group-IB идентифицираха фишинг комплекта JWR и свързаха активността с кластер от оператори, който проследяват под името Outsider в рамките на по-широката екосистема Smishing Triad.
От Group-IB заявяват в доклад, споделен с Cyber Security News (CSN), че кампанията комбинира еднократна инфраструктура с операторска конзола на живо, което позволява на измамниците да адаптират страницата, докато жертвата остава онлайн.
Въздействието надхвърля конвенционалната страница за кражба на пароли. Комплектът може да събира информация за самоличността, данни за платежни карти, банкови идентификационни данни и кодове за потвърждение, предоставяйки материал за превземане на профили и неоторизирани плащания. Ротиращите му домейни също правят обикновените списъци за блокиране по-малко надеждни.
Смишинг хакерите могат да следят всяко натискане на клавиш
Комплектът JWR превръща фалшивата страница за плащане в двупосочен канал. Неговият код изпраща актуализирани данни от формата всеки път, когато наблюдавано поле се промени, което означава, че номерата на карти, кодовете за сигурност и еднократните кодове (OTP) могат да достигнат до екипа от измамници, преди жертвата да натисне бутона за изпращане.
Това отразява рисковете от рамки за фишинг, базирани на WebSocket, където фалшивите форми се превръщат в конзоли за измама на живо. Постоянната WebSocket връзка пренася инструкции между фишинг страницата и панела на престъпниците.

Ако тя се провали, комплектът преминава към повторни уеб заявки на всеки две секунди. Трафикът е обвит в AES-256-CTR криптиране, но всяко съобщение съдържа своя ключ за криптиране, скривайки данните предимно от случайна проверка.
Операторите могат да направляват посетителя през до 32 именувани страници или промени в страницата. След получаване на номер на карта, те могат да поискат SMS код, PIN, друга карта след фалшив отказ или стъпка за потвърждение чрез QR код.
Кампанията използва познати тактики за натиск. Фалшивите известия за пътни такси, такси за колет и предупреждения за доставка карат един твърдян малък дълг да изглежда спешен.
Подобни тактики за доставяне на смишинг чрез имитация на познати марки показват защо потребителите трябва да третират неочакваните връзки за плащане като ненадеждни, дори когато съобщението изглежда изпипано или споменава позната услуга.
Енжин за измами за многократна употреба
Изследователите описват JWR като фишинг комплект за многократна употреба, а не като фиксиран уебсайт. Едни и същи основни кодове могат да стоят зад различни дизайни на марки, докато операторите бързо ротират кратки връзки и домейни.
Комплектът съдържа и маркери за интеграция с WordPress и Shopify, разширявайки риска отвъд самостоятелните фишинг страници до компрометирани или злонамерени уеб компоненти.
Тази повторна употреба дава на защитниците начин да разпознават бъдещи кампании. Докладът подчертава повтарящи се ключове за съхранение, имена на страници, модели на крайни точки и отличителен WebSocket токен, които остават, когато логотипа, целевата държава или хостинг услугата се променят.
Екипите по сигурност могат да следят за тези черти, да разследват необичайни криптирани връзки в браузъра и да започнат работа по сваляне на съдържанието, когато се появят съвпадащи страници.

За отделните хора най-безопасният отговор е да избягват връзки в неочаквани текстови съобщения и вместо това да отварят официалното приложение или да въвеждат познатия уеб адрес. Никога не споделяйте данни за плащане или код, получен чрез SMS, през връзка в текстово съобщение.
Хората, които са въвели информация, трябва незабавно да се свържат с банката си, да променят повторно използваните пароли и да прегледат скорошната си активност. Заплахата също така променя начина, по който се доставят примамките.
Престъпните групи все повече използват канали извън обикновените SMS-и, както илюстрира разширяването на фишинга през RCS и iMessage, за да заобиколят филтрите и да направят съобщенията да изглеждат по-достоверни. Това прави директната проверка чрез доверен канал по-важна от съденето за съобщението само по неговата формулировка.
Организациите трябва да наблюдават за нови фишинг страници, които съвпадат със сигнатурите на имената на файловете на комплекта, да следят за злоупотреба с техните марки, свързана с SMS, и да поддържат бързи процедури за докладване и премахване.
Комбинирането на тези мерки с осведомеността на персонала и проверките на транзакциите може да стесни прозореца, в който оператор на живо може да превърне откраднатите данни във финансови загуби в голям мащаб днес.
Индикатори за компрометиране (IoCs):-
| Тип | Индикатор | Описание |
|---|---|---|
| Codebase family string | trsb.top | Низ, цитиран вътре в JWR работника и използван за идентифициране на тази линия от версии |
| Local storage keys | JwrCvvForm, JwrCustomCvvForm, JWRCID, JwrIpInfo, JwrSubmittedCardNumbers, JwrSelectedPaymentMethod, JwrControlInstruction, JwrExtraJSON, JwrAjaxUrl, JwrNonce, JWRIFRAMEACTIVE, jwrisThankPage, JwrIsShopify, JwrIsWordPress, JwrCustomEmailorPhone | Повторно използвани маркери за локално съхранение от страна на клиента на JWR |
| Session identifier pattern | JWRCVV-[0-9]{13}-[a-z0-9]{1,13}-[a-z0-9]{1,13} | Формат на идентификатора за жертва |
| DOM IDs and classes | jwrGlobalErrorPopup, jwrErrorAnimationStyle, jwrErrorSlideIn, paypalLoadingdiv, paymentError1, paymentError2, paypalCardError1, paypalCardError2, loginVerifyError, codeVerifyError | Статични отпечатъци на страници и интерфейси на JWR |
| HTML page names | cpay.html, dsmsbank.html, ipayalselectverify.html, hpaypallogin.html | Набор от фишинг страници, отличаващ фишинг фамилията |
| Other observed page names | aindex.html, alogin.html, ashop.html, bpassword.html, binfo.html, bqrverify.html, dsms.html, dsmslogin.html, d2fa.html, dverify.html, dthank.html, eemail.html, fpin.html, gapp.html, gloginapp.html, hbanklogin1.html, hbanklogin2.html, hbanklogin3.html, hloading.html, ipaypalselectverify.html, jpaypalverify.html, kpaypalcard.html, lpaypalpin.html, mpaypalapp.html, zthank.html | Файлове, използвани в цялата фуния за събиране на компрометирани идентификационни данни на JWR |
| JavaScript files | main.js, ws-worker.js, check.js | Клиентски пакет, WebSocket работник и модул за проверка на въвеждането |
| Input-ID convention | *-cardnumber, *-expiry, *-cvv, *-cardholder, *-smscode, *-emailcode, *-pincode, paypaypwd, *-paypayaccount, *-button | Модел за наименование на входа и контролите, използван в страниците на JWR |
| URL path prefix | apiopen | Повторящ се префикс на крайна точка за командване и управление (C2) на JWR |
| C2 endpoint | apiopenaddClick | Сигнален маяк за пристигане на жертвата |
| C2 endpoint | apiopengetSyncSettings | Извлича конфигурация, контролирана от атакуващия |
| C2 endpoint | apiopenaddCvv | Основна крайна точка за екстфилтрация на идентификационни данни и данни за карти |
| C2 endpoint | apiopenthefinalinterface | Крайна точка за известие за завършване на фунията |
| C2 endpoint | apiopenupdateStatus | Крайна точка за актуализиране на статуса от оператора |
| C2 endpoint | apiopengetPendingInstruction | HTTP long-poll крайна точка за инструкции от атакуващия |
| C2 endpoint | apiopenbinLookup | Крайна точка за проверка на BIN на карта в реално време |
| WebSocket path | webSocketQT/JWRCID/khkjsahfjkwhakjlsdwdddddd88 | Двупосочен път за командване и управление в реално време |
| WebSocket token | khkjsahfjkwhakjlsdwdddddd88 | Суфикс на токен за достъп на JWR с висока степен на увереност, твърдо кодиран в кода |
| HTTP traffic pattern | Content-Type: application/octet-stream with 48-byte header and 16-byte aligned ciphertext | AES-256-CTR обвивка на съобщенията, използвана от комплекта |
| Long-poll pattern | apiopengetPendingInstruction every 2 seconds | HTTP алтернатива, когато WebSocket каналът е недостъпен |
| Geolocation service sequence | ipinfo.io, ipapi.co, ip-api.com, httpbin.org/ip | Ротация на четири доставчика за IP геолокация |
| Plugin and platform markers | JwrIsShopify, JwrIsWordPress, wcgatewaycompleteorder, ?cartdata | Маркери, свързани с пътищата за интеграция на Shopify и WordPress |
| Detection rule string | alert tls $HOME_NET any -> $EXTERNAL_NET any (msg:"JWR phishing kit: WebSocket access token in URL"; content:"webSocketQT"; http_uri; content:"khkjsahfjkwhakjlsdwdddddd88"; http_uri; classtype:trojan-activity; sid:99000001; rev:1;) | Правило за лов във формат Suricata за токена за достъп до JWR WebSocket |
| YARA rule strings | apiopenaddCvv, apiopengetPendingInstruction, webSocketQT, JWRCVV-, belongtotemplate, khkjsahfjkwhakjlsdwdddddd88, ipayalselectverify.html | Низове за откриване на основния пакет на JWR с условие за съвпадение на четири или повече низа |
| Validator strings | personnummer, fodselsnummer, codicefiscale, germanid | Отличителна комбинация на библиотеката AutoValidator |
| Code-level marker | WorkerCrypto.encrypt | Рутина за AES-CTR криптиране на JWR, използваща 32-байтов случаен ключ и 16-байтов IV |
| Code-level marker | instructionConfig | Карта с команди на оператора, съдържаща 32 наименувани инструкции |
Забележка: IP адресите и домейните са нарочно обезопасени (напр. [.]), за да се предотврати случайно разрешаване на имена или създаване на хипервръзки. Възстановете ги в оригинален вид само в рамките на контролирани платформи за разузнаване на заплахи като MISP, VirusTotal или вашата SIEM система.