Эксплойт

Связки (набор эксплойтов, exploit kit)

Связки эксплойтов представляют собой пакет эксплойтов сразу под несколько программ (версий) и/или под разные уязвимости в них. В последних версиях связок производится выбор эксплойта именно под конкретную программу пользователя.

В большинстве случаев эксплойт-киты применяются для атак, использующих уязвимости браузеров или их дополнений (частыми целями, к примеру, являются Java, Flash и PDF).

Также существуют наборы локальных эксплойтов для поднятия привилегий в атакованной системе. Фактически подобные наборы тоже являются связками, но в хакерской среде таковыми не считаются и не называются.

Сравнение средств защитыMitigation comparison

Средства защиты, доступные в EMET, по умолчанию включены в Windows 10 (начиная с версии 1709) и Windows Server (начиная с версии 1803) в разделе Защита от эксплойтов.The mitigations available in EMET are included natively in Windows 10 (starting with version 1709) and Windows Server (starting with version 1803), under Exploit protection.

В таблице в этом разделе сравниваются доступность и наличие поддержки собственных средств защиты EMET и защиты от эксплойтов.The table in this section indicates the availability and support of native mitigations between EMET and exploit protection.

РешениеMitigation Доступно при защите от эксплойтовAvailable under exploit protection Доступно в EMETAvailable in EMET
Защита от произвольного кода (ACG)Arbitrary code guard (ACG) Даyes ДаyesВ виде проверки защиты памятиAs «Memory Protection Check»
Блокировка удаленных образовBlock remote images Даyes ДаyesВ виде проверки загрузки библиотекиAs «Load Library Check»
Блокировка ненадежных шрифтовBlock untrusted fonts Даyes Даyes
Предотвращение выполнения данных (DEP)Data Execution Prevention (DEP) Даyes Даyes
Фильтрация адресов экспорта (EAF)Export address filtering (EAF) Даyes Даyes
Принудительное смешивание образов (обязательный ASLR)Force randomization for images (Mandatory ASLR) Даyes Даyes
Защита страницы NULLNullPage Security Mitigation ДаyesИзначально входит в состав Windows 10Included natively in Windows 10Дополнительные сведения см. в разделе See for more information Даyes
Случайное перераспределение памяти (ASLR снизу вверх)Randomize memory allocations (Bottom-Up ASLR) Даyes Даyes
Имитация выполнения (SimExec)Simulate execution (SimExec) Даyes Даyes
Проверка вызовов API (CallerCheck)Validate API invocation (CallerCheck) Даyes Даyes
Проверка цепочек исключений (SEHOP)Validate exception chains (SEHOP) Даyes Даyes
Проверка целостности стека (StackPivot)Validate stack integrity (StackPivot) Даyes Даyes
Доверенные сертификаты (настраиваемое закрепление сертификатов)Certificate trust (configurable certificate pinning) Windows 10 обеспечивает закрепление сертификатов для предприятийWindows 10 provides enterprise certificate pinning Даyes
Распределение путем распыления кучиHeap spray allocation Неэффективно против новых браузерных эксплойтов; более современные средства защиты действуют эффективнееIneffective against newer browser-based exploits; newer mitigations provide better protectionДополнительные сведения см. в разделе See for more information Даyes
Блокировка образов низкой целостностиBlock low integrity images Даyes Нетno
Защита целостности кодаCode integrity guard Даyes Нетno
Отключение точек расширенияDisable extension points Даyes Нетno
Отключение системных вызовов Win32kDisable Win32k system calls Даyes Нетno
Запрет дочерних процессовDo not allow child processes Даyes Нетno
Фильтрация адресов импорта (IAF)Import address filtering (IAF) Даyes Нетno
Проверка использования дескриптораValidate handle usage Даyes Нетno
Проверка целостности кучиValidate heap integrity Даyes Нетno
Проверка целостности зависимостей образаValidate image dependency integrity Даyes Нетno

Примечание

Средства защиты от расширенных эксплойтов на основе ROP, доступные в EMET, заменены в Windows 10 на ACG; при этом остальные расширенные параметры EMET включаются по умолчанию при включении средств защиты от атак на основе ROP для процесса.The Advanced ROP mitigations that are available in EMET are superseded by ACG in Windows 10, which other EMET advanced settings are enabled by default, as part of enabling the anti-ROP mitigations for a process. Дополнительные сведения об использовании существующих технологий EMET в Windows 10 см. в разделе .See the for more information on how Windows 10 employs existing EMET technology.

Получение нагрузки

Шелкод одного из эксплойто в— код vbs с бинарным кодом в строке, который выполняется в результате эксплуатации уязвимости CVE-2014-6332 в обработчике vbs IE. В результате в папку «%temp%/System32/ загружается файл shell32.dll.

Путь и имя загруженного файла похожи на адрес и имя стандартных библиотек Windows. Это позволяет, применив стандартную технику dll hijacking, не использовать функции run, start, open и т.д. и таким образом скрыть от антивируса запуск вредоносной .dll.

Использование dll hijacking shell32.dll

Эксплойт меняет переменную окружения sysdir и пытается подгрузить System.ShellApplication – тем самым стартует вредоносная .dll.

Запущенная .dll – это дропер, который загружает на компьютер жертвы и запускает скрипт «p.js».

Основная часть кода shell32.dll

Запускаемый скрипт p.js

Этот скрипт и является загрузчиком целевого вредоносного файла.

Что такое уязвимость?

Когда мы говорим об уязвимостях, то имеем в виду слабые места в программном коде. Уязвимости чаще всего встречаются в более старых ПО и до сих пор очень распространены. Злоумышленники легко находят их сканируя сеть. Уязвимости могут проникнуть в вашу систему, благодаря чему, злоумышленники смогут украсть ваши личные данные или вымогать деньги. Несмотря на то, что целевые атаки все же случаются, большинство кибер-атак — это случайные преступления. Поэтому помните, что киберпреступники всегда ищут уязвимые и слабые места.

Как минимизировать уязвимости?

Лучший способ уменьшить количество уязвимостей в системе — постоянно обновлять все программное обеспечение.

Автоматическое обновление: Настройте автоматическое обновления для всех программ и систем инфраструктуры

Не стоит полагаться на ручное обновление.

Антивирус: Вложите средства в антивирусную программу, которая будет регулярно сканировать ваши системы и сообщать о появлении новой уязвимости, чтобы вы могли исправить ее или принять другие меры предосторожности.

Custom Lua Environment

To get around some of the RLua limits, we added custom methods that we felt were needed to the Lua environment.

Unique Custom Functions
FireClickDetector(, distance)

Simulates a click on the specified ClickDetector instance. The specified distance in studs simulates how far your character was from the click.

Aliases: fireclickdector

OpenWebsite(url) Expects 1 string parameter which should be a website link. It then opens that link on the device’s default browser.
isRobloxFocused() Returns true if the Roblox window is the active window, otherwise false.
SetClipBoard(a1)

Writes first parameter’s data to the clipboard.

Aliases: setclipboard, ToClipBoard, toclipboard

GetClipBoard()

Returns content from the clipboard.

Aliases: getclipboard

Simulated Mouse Control
MouseMoveRel(int x, int y)

Moves mouse cursor x pixels left/right and y pixels up/down from the current position.

Aliases: mousemoverel, MouseMoveRelative, mousemoverelative

MouseScroll(int y)

Simulates mouse to scroll up/down by y pixels.

Aliases: mousescroll

MouseButton1Click()

Sends left button click signal.

MouseButton1Press()

Sends left mouse button down signal.

MouseButton1Release()

Sends left mouse button up signal.

MouseButton2Click()

Sends right button click signal.

MouseButton2Press()

Sends right mouse button down signal.

MouseButton2Release()

Sends right mouse button up signal.

WRDAPI Library
WRDAPI.ShowConsole() Displays the cmd.exe console
WRDAPI.HideConsole() Hides the cmd.exe console
WRDAPI.error(string text) Writes red text to the cmd.exe console
WRDAPI.warn(string text) Writes orange text to the cmd.exe console
WRDAPI.log(string text) Writes white text to the cmd.exe console
WRDAPI.InfoMsg(string text) Displays message box
WRDAPI.ErrorMsg(string text) Displays error message box

Drawing Library

Drawing Canvas

Drawing.new(string ClassName) Creates a new Drawing object based on the given class name and returns it.
Drawing.clear() Clears the Drawing canvas.

Drawing Classes

Base — All Drawing classes inherit these properties and functions.

  • bool Visible
  • int ZIndex
  • void Remove()

Line

  • Vector2 From
  • Vector2 To
  • Color3 Color
  • float Thickness
  • float Transparency

Text

  • string Text
  • Vector2 Position
  • float Size
  • Color3 Color
  • bool Center
  • bool Outline
  • float Transparency
  • Vector2 TextBounds

Square

  • Vector2 Position
  • Vector2 Size
  • Color3 Color
  • float Thickness
  • bool Filled
  • float Transparency

Circle

  • Vector2 Position
  • float Radius
  • Color3 Color
  • float Thickness
  • bool Filled
  • float Transparency
  • int NumSides

Triangle

  • Vector2 PointA
  • Vector2 PointB
  • Vector2 PointC
  • Color3 Color
  • float Thickness
  • bool Filled
  • float Transparency
Remade RLua Functions
loadstring(string script) Works like the normal Lua loadstring function, but was remade in the API to run prechecks.
HttpGet(string url)

Fetches text from the given URL. game:HttpGet() wraps this so there is URL bypass.

Aliases: httpget

Noncategorized
WrapGlobal(string script) Expects 1 string parameter. Add your own method to the custom Lua environment
getrawmetatable()
setrawmetatable()
getreg()
getrenv()
getgenv()
setreadonly()
isreadonly()
Installed Libraries
Lua BitOp «bit lib» More information: http://bitop.luajit.org/

Продать или купить в интернете

Покупать и продавать через интернет удобно. Но при этом — опасно.

Вы разместили объявление на популярном сайте? Не спешите радоваться, если вам позвонит покупатель, готовый немедленно приобрести ваш товар. Он сообщит, что хочет прямо сейчас перевести на вашу карту необходимую сумму. Всё, что от вас требуется — это реквизиты и несколько кодов, которые придут на ваш телефон. Псевдопокупатель исчезнет сразу же, как вы отправите ему кодовое слово или пароль, пришедшие по смс. Такая история закончится обнулением счёта вашей карточки.

Чтобы обезопасить себя от мошенничества с банковскими картами, помните:

  • Нельзя сообщать посторонним людям секретную информацию, размещённую на обороте вашей дебетовой или кредитной карты.
  • Для совершения операции по оплате достаточно фамилии, имени и отчества держателя карты, а также номера карты.
  • Если у вас возникает хотя бы малейшее сомнение в добросовестности продавца или покупателя, требуйте личной встречи и не передавайте деньги заранее.

Загрузка эксплойтов

Стандартный способ осуществления drive-by атаки – размещение на веб-странице ссылки на страницу с эксплойт-паком (лендинг), подгружающим пользователю нужный эксплойт. С точки зрения защитного ПО данная схема демаскирует все компоненты эксплойт-пака, поскольку они просто подгружаются на странице, в результате эксплойты и сам плагин-детект присутствуют в трафике. Чтобы атака осталась незамеченной, злоумышленникам приходится отдельно маскировать все компоненты.

Разберем как это работает на конкретном примере эксплойт-пака Neutrino.

Вот как выглядит упакованный Flash-объект:

Упакованный Flash-объект (эксплойт-пак)

И вот как он выглядит без обфускации

Flash-объект (эксплойт-пак) без обфускации

Упаковка должна защитить вредоносный объект от детекта. Автоматически большинством распространенных деобфускаторов такой Flash-объект не вскрывается. Например, SWF Decompiler подвисает и выдает ошибку.

Последствия применения одного из стандартных деобфускаторов к Flash-объекту эксплойт-пака Neutrino

При этом Flash-объект записывается на страницу в браузере пользователя с параметром allowscriptaccess = «always», позволяющим модифицировать страницу, даже если сам объект подгружен с другого домена. С одной стороны, не очень безопасно давать Flash доступ на модификацию страницы, так как назначение Flash-объектов зачастую не требует таких возможностей, и это наводит на подозрение. В то же время это вполне легальная опция, и очень много Flash-контента грузится именно так. Благодаря этой опции вредоносный Flash-объект из своих бинарных данных просто дописывает на страницу эксплойты.

Таким образом, вредоносного контента нет ни в трафике, ни на странице, передаваемой браузеру. Все скрыто за хорошим упаковщиком, а эксплойты появляются по ходу обработки страницы браузером.

Спам и фишинг

Ваш электронный ящик напоминает мусорную корзину, в которую сваливают всё подряд? Значит, вы давно попали в базы спамеров. В потоке спама невозможно разобраться. Кроме того, просматривать вложения, прикрепленные к таким письмам, опасно, многие из них содержат вредоносный код.

Во время фишинговых атак на вашу почту приходит рассылка от ресурсов, маскирующихся под популярные сервисы (например, банковские). Мошенники от имени знакомых вам компаний запрашивают конфиденциальную информацию (номера и пин-коды кредитных карт, пароли от почты, сервисов, предоставляющих государственные услуги). Текст письма обычно провокационный и призывает пользователя к мгновенному ответу. Даже если информация кажется вам надёжной, лучше всего позвонить в официальную службу поддержки организации, от имени которой пришло письмо.

Чтобы избежать спама и фишинговых атак:

  • Старайтесь не оставлять адрес почты на сайтах общего доступа (соцсети, форумы, в комментариях).
  • Используйте несколько почтовых ящиков для разных целей.
  • Никогда не отвечайте на спам. После вашего отказа от рассылки письма могут пойти с новой силой.

Откуда появляется эксплойт? Любители конкретики – пропускайте часть.

Где известна уязвимость, там, вероятно, может появиться и эксплойт. Уязвимость же можно толковать также по-разному. Википедия, как мне кажется, даёт немного неверное определение. Уязвимость – это не всегда ошибка или недостаток. Ахиллесова пята есть у любого механизма. Ну нельзя назвать ошибкой тот факт, что двигатель работает от топлива. Ведь, если он будет работать на воздухе, это также сразу станет его недостатком. Как и металл, из которого он собран; человек, который им управляет… Недостатки есть у всего, и профессионалам они также видны во всём.

Самое простое объяснение такой мысли – “взаимоотношения” человека и вируса. Биологического. В нашем организме всё продумано до мелочей, однако, столкнувшись с микрокодом извне, он выходит из строя на время или навсегда. Уязвимость – это просто неспособность механизма (в том числе и программного) адекватно реагировать на некое действие со стороны, сохраняя при этом заложенные в него (механизм) характеристики и функционал. И эксплойт называется эксплойтом только если позволяет получить от уязвимости выгоду

Не сочтите за белетристику, это важно понять сразу

Взлом Windows: ищем эксплойт

В Кали запускаем оболочку Метасплойт.

msfconsole

Отыщем подходящий эксплойт для жертвенной Windows XP. Это можно будет сделать из метасплойта командой

search

Консоль вернёт весь список уязвимостей, и я упрощаю задачу, просматривая бюллетень безопасности Microsoft, отсеивая ненужные:

search ms exploit/windows/

Для поиска уязвимости можно воспользоваться и сканером Nessus. Специальное окно программы в красивом виде представит те же уязвимости с красочным описанием критичности уязвимости. Но пока без него.

Нам нужна вот эта (критическая уязвимость, известная аж с 2008 года и являющаяся одной из самых популярных и позволяющая хакеру исполнить произвольный код с правами System):

exploit/windows/smb/ms08_067_netapi

Применим её:

use exploit/windows/smb/ms08_067_netapi

Но сначала посмотрим, что нужно для его исполнения. Это делает команда

show options

и против каких систем применяется:

show targets

Подбираемся к жертве. Она в списке за номером 29 (русская локализация Windows XP SP2). Её и выбираем (я укажу чуть позже – вы увидите команду при установке удалённого IP):

set target 29

Результаты команды show options показали, что для того, чтобы взлом Windows XP прошёл успешно, хакеру понадобится указать номер порта своей системы (LPORT), порт (RPORT) и IP жертвы. Как видите по рисунку Выбор эксплойта , не указан только IP адрес жертвы – RHOST. Опускаем пока пункт, откуда хакер может узнать адрес удалённой машины. Однако, если вы знакомы со статьёй Тёмная комета в Windows, вы можете составить некое представление и об этом.

Но продолжим. Запустим гостевую Windows XP и срисуем IP подопытной командой из консоли cmd

ipconfig

Её адрес 192.168.0.101. Это адрес и укажем в терминале метасплойт:

set RHOST 192.168.0.101

Проверим готовность к эксплойту ещё раз:

show options

Вернёмся к хакерам. Какие эксплойты бывают?

Условно их все можно раскидать по трём кучкам:

  • эксплойт сервиса
  • эксплойт клиента
  • эксплойт привилегий

Эксплойт сервиса атакует некую службу, которая, например, слушает сетевые соединения. Служба занимается тем, что собирает сетевые пакеты и ждёт, когда пользователь инициирует соединение с сетью (запускает браузер). А так может поступить и хакер, создав свои пакеты для этого сервиса и вызвать полноценный запуск службы, которая (без ведома пользователя) полезет в сеть.

Эксплойт привилегий. Его задача – добиться усиления уже имеющихся в системе прав. Например, получить права администратора из гостевой УЗ. А там и до SYSTEM недалеко… К примеру, в Windows XP есть такая уязвимость, когда нехитрыми движениями можно получить наивысшие права в системе. Причём уязвимость лежала на поверхности. Не поленитесь и взгляните на статью – объяснения станут излишними.

Lua C Parser in SendLuaCScript()

Documentation specific to the Lua C parser as used in the SendLuaCScript() function. This is an opinionated design specific to the WRD API. It is used to interact with the wrapped Lua C API. Learn more about Lua C here.

Example Call

Available Functions
getglobal <global> Example: getglobal game
getfield <index> <field> Example: getfield -1 Workspace
setfield <index> <field> Example: setfield -2 Position
pushvalue <index> Example: pushvalue -6
pushstring <string> Example: pushstring Hello world!
pushnumber <index> Example: pushnumber 100
pcall <nargs> <nresults> <errfunc> Example: pcall 1 0 0
call <nargs> <nresults> Example: call 1 0
emptystack

Example: emptystack

Alias for «settop 0»

settop <top> Example: settop 0
pushboolean <bool> Example: pushboolean false
gettop

Example: gettop

Print’s the top of the stack’s index to the WRD API console

pushnil Example: pushnil
next <index> Example: next -2
pop <number> Example: pop 5
insert <index> Example: insert -2
createtable <narr> <nrec> Example: createtable 0 3
settable <index> Example: settable -3
tonumber <index>

Example: tonumber -1

Prints the index’s number value to the WRD API console

tostring <index>

Example: tonumber -1

Prints the index’s string value to the WRD API console

touserdata <index>

Example: touserdata -2

Print’s the memory address of the index to the WRD API console

Процесс эксплойта и его роль в атаке на компьютер.

Постепенно мы подбираемся к принципу, как работает компрометация системы. Каждый из этих этапов – это очень сложный процесс, требующий многотомного руководства. Но схематично это можно отобразить так:

  • потенциально уязвимая система  сканируется на предмет открытых портов и запущенных сервисов
  • вычленяются точки, по которым можно нанести удар
  • на удалённый компьютер в эту или эти точки отправляется эксплойт известной уязвимости
  • к эксплойту приклеивается пэйлоуд (он позволит контролировать систему жертвы)
  • если эксплойт сработал (именно он первым и запускается) и система жертвы откликнулась, запускается пэйлоуд; по результатам исполнения кода пэйлоуда хакер получает доступ к компьютеру жертвы
  • остальные действия ограничены фантазией хакера (загрузка вирусов, удаление информации или её копирование и т.д.)

Как это выглядит воочию или как работать с эксплойтом?

Для примера используем ОС Кали Линукс в качестве хозяйской и Windows XP (эксплойт древний, начиная с уже с Windows XP SP2 он уже делает это менее охотно) в качестве гостевой в VirtualBox. Нам, конечно, известно, какие характеристики имеются у гостевой машины в сети (в нашем случае виртуальной), но пусть сканер Nmap сделает своё дело. Наведём “официальную справку” о жертве:

nmap -v -n 192.168.0.162

где 192.168.0.162 – ip адрес жертвы. Если вы знакомы с основными командами Nmap, то поняли, что флаги:

  • – v позволяет получить подробный отчёт об адресе
  • – n отключает реверсивные преобразования DNS

Мы видим, какие открыты порты с запущенными через них службами. Посканируем систему ещё с целью более детальной информации на предмет операционной системы и версии службы. Команда примет вид (расположение флагов по команде произвольное):

nmap -T4 -A -v 192.168.0.162

Информации предостаточно. Выбираем место нанесения удара. Открыта целая куча портов, которые являются потенциальными лазейками в систему противника. Пусть это будет один из открытых портов 135 с запущенной службой mcrpc (она же Microsoft Windows RPC – ссистемная служба удаленного вызова процедур). Нам остаётся подобрать под конкретный процесс подходящий эксплойт.

Так что, всё пропало? Меня уже взламывали, и не раз?

Да, после всего, что написано, трудно поверить – но ВРЯД ЛИ. Несмотря на всю кажущуюся безотказность этого способа, ошибка STATUS_OBJECT_NAME_NOT_FOUND (Command=162 WordCount=0) не даст покоя хакеру. Дело не в установленном брандмауэре и даже не в антивирусной программе, которая, к сожалению для пользователя часто НИКАК не может помешать подобного рода атакам на этапе этого эксплойта. Ведь антивирус метерпретер не способен заблокировать: его действие, если не ошибаюсь, основано на условии, что начинается хоть малейшее обращение к железу.

Я не специалист, но мною пробовалось, огромное количество вариантов и по большей части на “живых” машинах. Что я точно уяснил по поводу проблемы – вопрос не в языковой локали Windows, не в принадлежности вашего процессора к NX или No-NX конфигурации. Причиной ошибки STATUS_OBJECT_NAME_NOT_FOUND (Command=162 WordCount=0) является сам эксплойт – он выводит из строя службы к которым обращается. Налицо проблемы с SMB-протоколом. Перезагрузка ОС со стороны жертвы  может решить проблему (И ЧТО НЕ ФАКТ), но это уже не серьёзно. Ждать, что жертва будет сидеть на непропатченной Windows не серьёзно также. “Вечно” открытый порт 445 не даёт никакой гарантии, что через него взломщик установит соединение. Повторюсь, ошибка появлялась на тех же машинах, что вчера с лёгкостью светили дырами. И никаких обновлений, никаких пакетов Internet Security и даже сторонних фаерволлов. Единственный факт, за который мне удавалось зацепиться – запуск Windows, запуск отключённого в предыдущем сеансе встроенного фаерволла и сразу его отключение. Но это – не нормальное поведение и смахивает на танцы с бубном.

У кого идеи – прошу в комменты.

Успехов нам всем

Анализ риска

Несмотря на старания специалистов, уязвимости есть практически во всех программах, а значит, для злоумышленников всегда есть лазейка для подготовки эксплойта. К моменту, когда разработчики выпустят патч (небольшую программу для исправления уязвимых файлов), вредоносная программа может нанести огромный урон. Под угрозу попадают все пользователи, включая самых осторожных и внимательных.

Последствия применения эксплойта могут быть самыми разными. Это зависит от задачи, которая ставилась перед вредоносными программами: от нарушения работы системы до потери крупных денежных сумм, секретной информации.

Обезопасить свое устройство от эксплойта можно, если пользоваться антивирусными программами от известных компаний, которые постоянно совершенствуют свои продукты. Снизят риски заражения регулярное обновление операционной системы и прикладных программ, отказ от переходов по подозрительным ссылкам, игнорирование спам-сообщений, внимательное отношение к финансовым операциям.

Просмотр событий защиты от эксплойтов в Центре безопасности МайкрософтReview exploit protection events in the Microsoft Security Center

Microsoft Defender для конечной точки формирует подробные отчеты о событиях и блокировках в рамках сценариев исследования оповещений.Defender for Endpoint provides detailed reporting into events and blocks as part of its alert investigation scenarios.

Вы можете запросить у Defender данные конечной точки, используя расширенный поиск.You can query Defender for Endpoint data by using Advanced hunting. Если вы используете режим аудита, вы можете воспользоваться расширенным поиском, чтобы узнать, как параметры защиты от эксплойтов могут повлиять на вашу среду.If you’re using audit mode, you can use advanced hunting to see how exploit protection settings could affect your environment.

Ниже приведен пример запроса:Here is an example query:

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий