Інтерактивне перенаправлення на набір експлойтів

    Набори експлойтів використовуються зловмисниками для автоматичної установки шкідливого коду на комп'ютер користувача. Для того, щоб користувач опинився на самій «веб-сторінці посадки» (landing page), яка підбере потрібний тип експлойта, відповідного оточенню браузера користувача, він повинен бути на неї перенаправлений. Це перенаправлення може здійснюватися з легітимних веб-сайтів, які були скомпрометовані шкідливим вмістом (JavaScript або IFrame).
 
 
 
Таким чином, звичайний сценарій використання набору експлойтів зловмисниками полягає в компрометації легітимного веб-ресурсу, з якого користувач перенаправляється на шкідливий вміст. На цьому тижні ми зіткнулися з цікавим варіантом того, яким чином здійснюється перенаправлення користувача на сторінку одного з наборів експлойтів. На скомпрометованої веб-сторінці ми виявили шкідливий код, який вміє взаємодіяти з користувачем, відображаючи йому підроблене повідомлення про роботу браузера.
 
 
Рис. Підроблене повідомлення, що генерується шкідливим кодом.
 
Код, який відповідає за взаємодію з користувачем через таке повідомлення, виконаний у вигляді впровадженої у веб-сторінку HTML-форми. Вікно відображається тільки в тому випадку, коли користувач переглядає сторінку в браузері Internet Explorer. Ми також звернули увагу на те, що ця форма відправляє на сервер деякі дані в POST-запиті.
 
 
Рис. Запроваджене у веб-сторінку шкідливий вміст.
 
Незалежно від того, який варіант відповіді (Cancel або OK) вибере користувач, він буде перенаправлено на сторінку набору експлойтів Angler exploit kit. Для виконання перенаправлення, через форму буде відправлений вказаний на скріншоті POST-запит, який поверне невеликий фрагмент HTML і JavaScript коду. За допомогою цього коду і буде виконано перенаправлення на кінцевий URL-адресу.
 
 
Рис. URL-адресу проміжної веб-сторінки.
 
 
Рис. Повна ланцюжок перенаправлень і кінцевої експлуатації.
 
Тепер повернемося до даних, які відправляються в POST-запиті. Видно, що вони закодовані у форматі Base64. Нижче дана їх розшифровка.
 
Оригінальна рядок.
 
ua_base64 =
«TlP7Vt89hmr1vjdAW8YqmDT/sGFiyxROsPBX45R6HxinEeZC + YGrgEA0mmA3NDEJUYzgWm29EKShU2QPqxBXzVNMJvpfJN3Q
cVGGehPCNNXOlxo0JE94z0RTBgCq0VubolrWHmAexV14 + cqx6qILC6z1EZDl4JFYd32wrMZrhNinl47lzpnvXwPluNsmh0CA »
 
Розкодована рядок.
 
base64.b64decode (ua_base64) =
"\xb6S\xfbV\xdf=\x86j\xf5\xbe7@[\xc6*\x984\xff\xb0ab\xcb\x14N\xb0\xf0W\xe3\x94z\x1f\x18\xa7\x11\xe6B\xf9\x81\xab\x80@4\x9a`741\
tQ\x8c\xe0Zm\xbd\x10\xa4\xa1Sd\x0f\xab\x10W\xcdSL&\xfa_$\xdd\xd0qQ\x86z\x13\xc24\xd5\xce\x97\x1a4$Ox\xcfDS\x06\x00\xaa\xd1[
\x9b\xa2Z\xd6\x1e`\x1e\xc5]x\xf9\xca\xb1\xea\xa2\x0b\x0b\xac\xf5\x11\x90\xe5\xe0\x91Xw}\xb0\xac\xc6k\x84\xd8\xa7\x97\x8e\xe5\xce\x99
\ Xef_ \ x03 \ xe5 \ xb8 \ xdb & \ x87 @ \ x80 "
 
За назвою параметра «ua» можна здогадатися, що ці дані представляють собою зашифровану рядок User-Agent використовуваного користувачем браузера. У нашому прикладі вона виглядає так.
 
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;. NET CLR 2.0.50727;. NET CLR 3.0.04506.648;. NET4.0C;. NET4.0E; BOIE8; ENUSMSCOM).
 
Можна припустити, що зазначені в HTML-коді форми параметри (див. скріншот вище) зашифровані через XOR з використанням однієї і тієї ж рядки (keystream). Для цього можна застосувати операцію XOR до декодувати через base64 рядку, яка містить User-Agent c keystream у вигляді вже відомої нам рядки User-Agent (перекладеної в нижній регістр). Вийшло значення ми можемо використовувати як keystream для розшифровки параметра furl (див. скріншот вище). В результаті цієї операції ми отримаємо оригінальний URL веб-сторінки набору експлойтів. Для цього можна використовувати нижче вказаному код на Python.
 
 
import base64
def xor (message, key):
 decrypted = ""
 for i in range (0, len (message)):
 decrypted + = chr (ord (message [i]) ^ ord (key [i% len (key)]))
return (decrypted)
 
ua = "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0;. NET CLR 2.0.50727;. NET CLR 3.0.04506.648;. NET4.0C;. NET4.0E; BOIE8; ENUSMSCOM)"
ua_plaintext = ua.lower ()
ua_base64 = “tlP7Vt89hmr1vjdAW8YqmDT/sGFiyxROsPBX45R6HxinEeZC+YGrgEA0mmA3NDEJUYzgWm29EKShU2QPqxBXzVNMJvpfJN3QcVGGehPCNNXOlxo0JE94z0RTBgCq0VubolrWHmAexV14+cqx6qILC6z1EZDl4JFYd32wrMZrhNinl47lzpnvXwPluNsmh0CA”
furl_base64 = "s0j1T4l + yCai5DANXd0gmz38sX5pwRVb/vhQpcU9Qlj8G6tQ5Nc ="
keystream = xor (base64.b64decode (ua_base64), ua_plaintext)
print "Decrypted furl:"
print (xor (base64.b64decode (furl_base64), keystream))
 
$ Python angler-dexor.py
 
Розшифрований параметр furl:
hxxp :/ / cct7m.xenybuvifd.net/4genk1met8
 
Використовувана зловмисниками практика інтерактивності (взаємодія з користувачем), при здійсненні операції перенаправлення, призначена для того, щоб уникнути виявлення кінцевого URL корисного навантаження з боку систем автоматичного аналізу.
 
Шкідливий код, який встановлюється на комп'ютер за допомогою цього набору експлойтів, виявляється антивірусними продуктами ESET як Win32/PSW.Papras.CX .
    
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.