Что такое эксплойт

Что такое эксплойт

Эксплойт

Содержание

Классификация

В зависимости от метода получения доступа к уязвимому программному обеспечению, эксплойты подразделяются на удалённые (англ. remote ) и локальные (англ. local ).

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

Виды эксплойтов

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

Как выглядит эксплойт?

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

Актуальность

Информация, полученная в результате обнаружения уязвимости, может быть использована как для написания эксплойта, так и для устранения уязвимости. Поэтому в ней одинаково заинтересованы обе стороны — и взломщик, и производитель взламываемого программного обеспечения. Характер распространения этой информации определяет время, которое требуется разработчику до выпуска заплатки.

Связки

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

См. также

Примечания

Ссылки

Что такое эксплойт

Полезное

Смотреть что такое «Эксплойт» в других словарях:

эксплойт — сущ., кол во синонимов: 1 • программа (114) Словарь синонимов ASIS. В.Н. Тришин. 2013 … Словарь синонимов

Эксплойт (компьютерная безопасность) — Эксплойт (фр. exploit эксплуатировать) это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода, который, используя возможности, предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению… … Википедия

Эксплоит — Эксплойт (фр. exploit эксплуатировать) это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода, который, используя возможности, предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению… … Википедия

Системное программное обеспечение PlayStation Portable — Системное программное обеспечение PlayStation Portable это официальная обновляемая прошивка для PlayStation Portable. Обновления добавляют новые возможности и вносят исправления в безопасность для предотвращения запуска программ без… … Википедия

Переполнение буфера — У этого термина существуют и другие значения, см. Переполнение. Переполнение буфера (Buffer Overflow) явление, возникающее, когда компьютерная программа записывает данные за пределами выделенного в памяти буфера. Переполнение буфера обычно… … Википедия

San Andreas Multiplayer — Разработчик The SA MP team Дата выпуска 10 мая 2006 Версия 0.3e (8 мая 2012[1]) Жанр Модификация Платформы … Википедия

SA-MP — San Andreas Multiplayer Разработчик The SA:MP team Издатель The SA:MP team Дата выпуска 0.2X: 20 ноября 2008 Платформы IBM PC: Windows Версия … Википедия

Patapon 2: Don Chaka — Разработчики Japan Studio, Pyramid Издатель Sony Computer Entertainment Дата выпуска … Википедия

Ньюфаундленд остров у берегов Северной Америки — (Newfoundland) остров у северо восточных берегов Северной Америки, к В от залива Св. Лаврентия, старейшая в Новом Свете колония Англии, занимает пространство в 110670 кв. км и, вместе с Антикости и берегом Лабрадора, образует одну… … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

Ньюфаундленд (о-в) — (Newfoundland) остров на сев. вост. берегу Америки, к В от зал. Св. Лаврентия, старейшая в Новом Свете колония Англии, занимает пространство в 110670 кв. км и, вместе с Антикости и берегом Лабрадора, образует одну. административную единицу, под… … Энциклопедический словарь Ф.А. Брокгауза и И.А. Ефрона

Источник

В статье описывается сущность, принцип применения и роль эксплойта во взломе системы. Рассмотрен вопрос где эксплойт взять, есть ли смысл его скачивать или покупать, и почему подтверждённый эксплойт может не сработать.

«Официальное» определение можно прочитать в компьютерных энциклопедиях. Мне нравится такое: «В зависимости от назначения — программа, кусок кода или скрипт, которые позволяют получить выгоду от использования существующей уязвимости в программном обеспечении для чего угодно, что программно управляется». В каком-то смысле молоток против смартфона тоже является техническим эксплойтом, действующим с примитивной целью — уничтожить устройство. Сладкие конфеты против зубной эмали действуют также. На заре времён, взлом «банковского» кода осуществлялся исключительно из спортивного интереса, у английского глагола exploit была «гордая» подоплёка. Результатом успешного взлома гордились, что возвышало хакера на лестнице профессионализма в области тестирования веб-приложений. На сегодняшний момент подходящего однословного глагола-аналога на русском для английского exploit так и не появилось.

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

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

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

Немного об уязвимостях.

Модули Метаса, содержащие эксплойты, и направлены на уязвимости. У пентестеров принято формализовывать методы, по которым эти уязвимости группируются. Таким образом был создан постоянно расширяющийся словарь Common Vulnerabilities and Exposures (CVE) — Общепринятых Уязвимостей и Обнаружений. Так что запоминайте: с аббревиатурой CVE вы не раз столкнётесь. Его цель: немецкие и китайские хакеры должны быть уверены, что говорят об одной и той же дыре в безопасности. И все они видят такие уязвимости в формате:

CVE — ГОД_ВЫПУСКА — ПРИСВОЕННЫЙ_ИДЕНТИФИКАТОР

CVE 2008-4250

Если вы хотите прямо сейчас взглянуть на полный список бюллетеня, прошу сюда:

На самом деле уязвимостей, которые способны раскрыть секреты хозяина, гораздо больше, чем официальный список этого бюллетеня. Да, чтобы попасть в этот словарь, уязвимости нужно место «заслужить». И конкретной организации, которая официально этим занимается, конечно нет. Всё зависит от того, на что будет направлен будущий эксплойт — уязвимости без эксплойта не существует. Но в любом случае почти все дороги ведут на Exploit Database и указанный выше ресурс.

Отдельной строкой идут проблемы безопасности для продуктов от Майкрософт. Они формируются отдельным списком под названием Бюллетень Безопасности Майкрософт. Их уязвимости принято группировать таким макаром:

MSYY-XXX

где, YY — год обнаружения, ХХХ — присвоенный ID.

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

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

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

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

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

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

Что такое эксплойт

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

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

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

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

Что такое эксплойт

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

Что такое эксплойт

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

База данных эксплойтов. Пару секунд на теорию.

Если вы сейчас сидите в Кали, она, база, у вас под рукой. Нужно лишь соединение с сетью и запущенный msfconsole (он же набор инструментов Metasploit). Постоянно пополняемая база эксплойтов, которые вы можете увидеть прямо сейчас, запустив консоль msfconsole и набрав команду show exploits, отобразит список эксплойтов:

Что такое эксплойт

Отображение на экране списка вам пока ничего не скажет. Они представлены в алфавитном порядке с датой публикации, присвоенным рангом по применению и надёжности работы, а также коротким пояснением на что нацелен.

Своеобразным зеркалом базы является знаменитый ресурс

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

Неплохой ресурс, на котором можно найти интересное, это:

Многоязычный ресурс, который предлагает не только общеизвестные (читай — давно прикрытые) эксплойты, но и собственные варианты участников. За деньги. Посетите и ознакомьтесь: русский язык там тоже поддерживается.

Продолжаем. Ищем подходящий эксплойт.

Metasploit напрямую связан с базой данных эксплойтов, так что шаги, которые вы увидите, можно не запоминать: Метас тем и хорош, что шаги его автоматизированы (что, впрочем, не всегда хорошо). Статья про эксплойт, и мы будем использовать только его, т.е. вручную. Найдём, скачаем, загрузим. Зачем вручную? Об этом в абзаце Проблемы эксплойта.

Как найти интересующий эксплойт?

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

Вместо этого вы можете набрать в открытой сессии Метаса команду на манер:

Метас отобразит только те эксплойты, которые работают в ОС Windows. Далее, если интересуют эксплойты браузеров в ОС Windows, разбавьте команду именем. Смотрите:

Что такое эксплойт

Кроме того, в Кали Линукс доступен прямой поиск эксплойтов прямо из терминала без запущенной сессии Метаса. Наберите команду на поиск эксплойта в формате:

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

Продолжим…

Итак, службу знаем, тип ОС видим. Так в базе данных и набираем: Search-кнопка после ввода запроса:

windows rpc

Пройдём перед поиском верификацию на робота и знакомимся с результатами:

Что такое эксплойт

Вот и наш. Щёлкаем по ссылке, переходим по следующей ссылке Download, и он на нашем компьютере в Загрузках в виде файла 66.с.

Что такое эксплойт

ПОВТОРЮСЬ. Всё, что проделано выше, можно проделать быстрее. В запущенном Метасе наберите команду на поиск эксплойта из вашей Кали:

Что такое эксплойт

Однако ситуация, когда подходящего эксплойта в базе Метаса может и не найтись — не редкость. Так что, когда вы познакомитесь с работой эксплойтов поближе, можно себе позволить посвятить больше времени на поиск и компоновку нужного эксплойта. И в нашем случае мы подготовим скачанный эксплойт к инжектированию вручную. В терминале преобразуем его в бинарный файл (я предварительно перетащил 66.с из Загрузок в Рабочий стол):

Что такое эксплойт

И запихиваю бинарник эксплойта прямиком в жертву XP:

Что такое эксплойт

Система отозвалась. По-научному это называется Успешным результатом компрометации системы. Фактически этот компьютер уже в руках хакера. Хакер видит его, словно бы сидит за компьютером — он может управлять системой с помощью команд консоли. А теперь посмотрим, как используется эксплойт под управлением Метаса. Порты жертвы мы уже «прозвонили»с помощью Nmap. И как вы заметили, в числе прочих открыт ещё и 445 под управлением службы Microsoft-ds. В окне Metasploit выберем подходящий эксплойт:

exploit/windows/smb/ms08_067_netapi

Возьмём его на вооружение:

Проверим, что нужно для его успешной реализации командой:

Строка с адресом удалённого хоста RHOST пуста. Заполним её IP адресом жертвы:

Что такое эксплойт

Что такое эксплойт

Компьютер владельцу уже не принадлежит.

Проблемы эксплойта или абзац для любителей «на всё готовое».

Эта часть статьи заслуживает отдельной темы. Но пока отведу ей лишь абзац. Что подстерегает пентестера на пути применения эксплойта? Объясняю на пальцах (да простят профессионалы):

Пока всё. Итак длинно получилось. Успехов нам всем.

Источник

Взлёты и падения рынка эксплойтов

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

О терминологии

Прежде чем продолжать рассказ, обозначим, что под уязвимостью мы понимаем недостаток, слабость или ошибку в программном или аппаратном обеспечении. Если эта уязвимость ещё не была раскрыта публично или была раскрыта, но до сих пор не исправлена, мы называем её уязвимостью нулевого дня (0-day). Как только уязвимость становится публичной и для неё выпускается исправление, она переходит в разряд известных уязвимостей (N-day).

Эксплойт — это специальным образом написанный код, который позволяет использовать 0-day- или N-day-уязвимость для проникновения в систему, извлечения данных и/или даёт другие возможности её несанкционированного использования.

Что изменилось на рынке эксплойтов

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

Снижение прибыли от торговли эксплойтами также можно связать с ростом выплат по программам Bug Bounty — охоту за багами — объявили практически все известные вендоры.

Что такое эксплойтВыплаты Microsoft по программам Bug Bounty. Источник: Microsoft Security Response Center

Например, Microsoft за 2019 год выплатила 13,7 млн долларов США исследователям, обнаружившим уязвимости. Самая большая выплата составила 200 тыс. долларов США — её получил эксперт, обнаруживший уязвимость в Hyper-V.

Возможность легально получить крупное вознаграждение приводит к частичной декриминализации рынка эксплойтов и делает его более скудным и переменчивым.

Ещё одна причина перемен — появление нового горячего товара, access-as-a-service, т. е. «доступ как услуга». Торговля доступом к системам оказывается более прибыльной, чем торговля N-day-эксплойтами, поскольку продавцы требуют за доступ более высокие цены, чем за полуфабрикат — эксплойт, которым ещё нужно суметь правильно воспользоваться. С точки зрения результата доступ как услуга имеет все преимущества эксплойта, но вся черновая и сложная техническая работа уже проделана за покупателя.

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

Как показывает наше исследование, наибольшим спросом пользуются эксплойты для продуктов Microsoft — их разыскивают 47% покупателей. При этом 61% всех объявлений о продаже эксплойтов также посвящены уязвимостям в продуктах Microsoft.

Типичная цена, которую пользователи форумов готовы заплатить за запрошенные эксплойты N-day, составляла 2 тыс. долларов США. Эксплойты 0-day оценивались намного дороже — в 10 тыс. долларов США. Однако встречаются и значительно более бюджетные предложения — например, N-day-эксплойты для JavaScript за 40 долларов США или для Microsoft Word за 100 долларов США. Иногда мы встречали на англоязычных форумах бесплатные эксплойты. Стоит отметить, что цены на русскоязычных подпольных форумах обычно выше, чем на англоязычных.

Жизненный цикл эксплойта

Типичный жизненный цикл эксплойта 0-day-уязвимости выглядит следующим образом:

Разработчик представляет доказательство концепции эксплойта (Proof of Concept, PoC) или создаёт рабочий эксплойт.

Продавцы предлагают эксплойт на киберпреступных торговых площадках.

Об уязвимости становится известно пострадавшему вендору.

Вендор выпускает исправление для уязвимости.

a. продолжают продавать эксплойт в течение как минимум двух лет по более низкой цене, часто объединяя его с другими эксплойтами для получения большей прибыли;
b. прекращают продажу эксплойта.

Что такое эксплойтТипичный жизненный цикл эксплойта. Источник (здесь и далее, если не указано иное): Trend Micro

Вот как выглядит жизненный цикл эксплойта для RCE-уязвимости CVE-2020-9054 в сетевых хранилищах Zyxel, который распространяется по крайней мере с февраля 2020 года. Эта уязвимость позволяет удалённо выполнить произвольный код (Remote Code Execution, RCE) в затронутых продуктах компании Zyxel.

Что такое эксплойтЖизненный цикл эксплойта для уязвимости CVE-2020-9054 в Zyxel NAS. Источник: Trend Micro

Всего за шесть месяцев эксплойт подешевел в десять раз — с 20 тыс. до 2 тыс. долларов США.

Разработчики эксплойтов

Деятельность разработчиков эксплойтов нельзя назвать простой. Изучая форумы, которые занимались продажей эксплойтов в течение нескольких лет, мы убедились, что новым продавцам довольно сложно войти в этот бизнес, потому что их обычно тщательно проверяют и всё равно относятся с недоверием. Например, на форуме Hack Forums мы обнаружили нового разработчика эксплойтов, который пытался продать сборку эксплойтов PDF нулевого дня за 950 долларов США в сентябре 2020 года. Продавец был подвергнут сомнению за то, что он пробыл на Hack Forums всего месяц. Кроме того, пользователи не поверили ему, поскольку настоящий эксплойт нулевого дня стоит от 5 000 до 10 000 долларов США. В настоящее время этот пользователь больше не зарегистрирован на Hack Forums.

Многие опытные продавцы зарабатывают свою репутацию годами. Для этого они не только продают эксплойты, но и покупают их.

Пользователи форумов часто обсуждают легальные программы вознаграждения за ошибки в положительном ключе. На некоторых англоязычных форумах мы встретили пользователей, размещающих руководства и советы о том, как отправлять эксплойты в программы вознаграждения за баги. Мы также видели утечку курса организации SANS Institute по программам Bug Bounty и ответственному раскрытию информации, который распространялся бесплатно.

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

Что такое эксплойтПост с критикой программ Bug Bounty. Источник: Trend Micro

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

Например, мы видели пользователя на Hack Forums, который предоставил скриншоты своих заявок на участие в программе Bug Bounty, предложил свои услуги по кодированию и искал потенциальных покупателей своих эксплойтов. Другой пример — пользователь на RaidForums, который решил продать свои эксплойты для использования киберпреступниками вместо того, чтобы отправить их в Bug Bounty:

Что такое эксплойтОбъявление о продаже эксплойтов на RaidForums. Источник: Trend Micro

Спрос и предложение

Мы изучили объявления о продаже эксплойтов, отсеяв предположительно мошеннические или опубликованные участниками с низкой репутацией. Мы также посмотрели, какие эксплойты пользуются спросом.

Что такое эксплойтСамые востребованные эксплойты на киберфорумах

Как уже было сказано выше, самыми востребованными (47%) оказались эксплойты для продуктов Microsoft. Эксплойты для устройств интернета вещей (IoT) искали лишь 5% покупателей, однако мы ожидаем, что с ростом количества подключённых устройств этот сегмент станет более прибыльным для злоумышленников, особенно с учётом того, что многие IoT-устройства с трудом поддаются исправлению, а на некоторых установка обновлений не предусмотрена в принципе.

Лидером среди выставленных на продажу эксплойтов также являются продукты Microsoft: Microsoft Office, Microsoft Windows, Internet Explorer и Microsoft Remote Desktop Protocol (RDP) имели совокупную долю рынка 61%.

Что такое эксплойтПредлагаемые к продаже эксплойты

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

для Microsoft RDP — 200 долларов США,

для WinRAR — 200 долларов США;

для Cisco — 1000 долларов США.

На англоязычных форумах цены были ещё ниже: некоторые эксплойты для Microsoft Word и Excel стоили всего 35 долларов США.

В отличие от англоязычных форумов, где чаще всего рекламировались эксплойты для Microsoft Office и Adobe Acrobat Reader, разнообразие эксплойтов на русскоязычных форумах было значительно выше. Наибольшей популярностью пользовались «тихие» эксплойты, предназначенные для скрытного запуска в фоновом режиме при открытии файла, содержащего эксплойт, и автоматической установки вредоносного ПО без ведома жертвы. В идеале они совершенно необнаружимы во время выполнения и для антивирусных программ.

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

Что такое эксплойтСравнение спроса и предложения на эксплойты для продуктов Microsoft

Cпрос на эксплойты и их доступность для покупки высоки, пока они относительно новые. Чуть меньше половины эксплойтов, которые ищут пользователи киберфорумов, и чуть больше половины проданных ими были предназначены для уязвимостей, которые были раскрыты в 2019 и 2020 годах. Большинство эксплойтов N-day, рекламируемых на англоязычных форумах, относятся к 2017 или 2018 годах, а те, что рекламируются на русскоязычных форумах, в основном годичной давности.

Что такое эксплойтРаспределение по годам эксплойтов, которые ищут пользователи киберфорумов

Устаревший не значит бесполезный

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

Например, варианты оригинальной программы WannaCry ransomware распространены и сегодня. WannaCry опирается на EternalBlue, эксплойт для CVE-2017-0144. Компания Microsoft выпустила исправление для этой уязвимости в бюллетене безопасности MS17-010 примерно за два месяца до первой вспышки эпидемии вымогательского ПО в мае 2017 года. Учитывая, что уязвимость была исправлена, вспышка не должна была затронуть много устройств. Однако по различным причинам многие организации не применили патч до сих пор.

Как отмечается в ежегодном отчёте Trend Micro по кибербезопасности, WannaCry был самым обнаруженным семейством вредоносных программ в 2020 году. А согласно данным Shodan, по состоянию на июнь 2021 года в сети всё ещё присутствует более 650 тыс. устройств, уязвимых к WannaCry.

Уязвимости по подписке

Доходность подписной модели оценили не только вендоры ПО, но и киберпреступники, которые предлагают подписку на свежие эксплойты за ежемесячную плату в размере от 60 до 2000 долларов США.

Что такое эксплойтПрайс-лист на эксплойт-подписку

Один из таких продавцов предлагал месячную подписку на сборщик эксплойтов по цене от 60 долларов США. Сервис предлагал несколько категорий эксплойтов, включая эксплойты для Microsoft Word, Microsoft Excel и JavaScript, и гарантировал, что эксплойты являются «FUD» (Full UnDetectable — полностью необнаруживаемыми) и будут обновляться еженедельно. Подписчик мог выбрать, какие эксплойты использовать для файла, который он хотел бы использовать в качестве полезной нагрузки.

Что такое эксплойтЭксплойт билдер — конструктор вредоносного ПО по подписке

Другой продавец предлагал за 1150 долларов США в месяц конструктор вредоносного ПО, включающий эксплойты для CVE-2017-11882, CVE-2017-8570 и CVE-2018-0802, с аналогичными гарантиями необнаружения во время выполнения и ежемесячными обновлениями.

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

Выводы и рекомендации

Одной из тенденций, которая может определить будущее рынка эксплойтов, является рост распространённости модели «доступ как услуга», в рамках которой «абоненты» получают нелегальный доступ к корпоративным сетям через RDP. Это даёт клиентам такие преимущества, как простота использования и прозрачность, а поставщикам — возможность требовать за лучший сервис более высокие цены, чем за эксплойты N-day. Помимо этого, поставщики доступа как услуги не подвергаются таким проверкам со стороны потенциальных покупателей, как продавцы эксплойтов.

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

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

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

Источник

Что такое эксплойты и почему их все так боятся?

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

Что такое эксплойт

Что такое эксплойт

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

Что такое эксплойт?

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

Например, у вас есть браузер, и есть уязвимость в нем, которая позволяет исполнить «произвольный код», то есть установить и запустить некую вредоносную программу на вашей системе без вашего ведома или спровоцировать какое-либо иное не ожидаемое вами поведение системы. Чаще всего первым шагом злоумышленников становится повышение привилегий, позволяющее делать в атакуемой системе все, что в голову взбредет.

Microsoft закрыла уязвимость нулевого дня в Windows и аж 41 дырку в Internet Explorer, но бреши еще остались: http://t.co/RzSNpPd3oH

Браузеры наряду с Flash, Java и Microsoft Office являются одними из самых подверженных атакам категорий программного обеспечения. Из-за их повсеместности их активно исследуют как эксперты по безопасности, так и хакеры, а разработчики браузеров вынуждены регулярно выпускать патчи для исправления уязвимостей. Лучше всего эти патчи устанавливать сразу, но, к сожалению, так происходит далеко не всегда — ведь при этом придется закрывать все вкладки.

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

Как происходит заражение

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

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

Почему фишинг получил такое распространение и как от него уберечься: http://t.co/sezy73TbSb

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

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

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

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

Эксплойты ходят стаями

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

Перечислим несколько наиболее известных наборов эксплойтов, или, как еще их называют, эксплойт-китов:

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

Nuclear Pack — поражает жертв эксплойтами Java и Adobe PDF, а также подсаживает Caphaw — печально известный банковский троян. Подробнее читайте здесь.

Blackhole Kit — наиболее распространенная веб-угроза в 2012 году, нацеленная на уязвимости в старых версиях браузеров Firefox, Chrome, Internet Explorer и Safari, а также многих популярных плагинов, таких как Adobe Flash, Adobe Acrobat и Java. После того как жертву заманили или перенаправили на страницу подсадки, запутанный JavaScript определяет содержимое машины жертвы и загружает те эксплойты, для которых данный компьютер уязвим.

Blackhole, в отличие от большинства других эксплойт-китов, даже удостоился отдельной статьи в «Википедии», хотя после ареста вышеупомянутого Paunch сам набор практически вышел в тираж.

Вывод

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

Что такое эксплойты и почему их все так боятся?

Подобный метод используется в Kaspersky Internet Security и других продуктах «Лаборатории Касперского» — соответствующая часть наших защитных решений называется «Автоматическая защита от эксплойтов» (или AEP — Automatic Exploit Prevention). Характерное поведение эксплойтов помогает предотвратить заражение даже в случае эксплуатации ранее неизвестной уязвимости нулевого дня.

Более подробную информацию о технологии Automatic Exploit Prevention можно найти здесь.

Источник

Что такое эксплойт?

Как появляются уязвимости в программах и зачем их эксплуатируют хакеры.

Что такое эксплойт

Что такое эксплойт

Что такое эксплойт

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

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

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

Уязвимости вездесущи. Я устанавливаю патчи и обновления на весь софт, который использую. Правда, прямо сейчас я пишу эту статью в подверженном уязвимостям Microsoft Word на узявимой версии Windows и с многочисленными открытыми вкладками в браузере, который тоже полон уязвимостей. Вопрос лишь в том, нашел ли эти уязвимости кто-нибудь и научился ли и использовать их.

Когда вы думаете об этом в компьютерном контексте, то слова «уязвимость» и «эксплуатировать» не являются термином, а используются в широком смысле. Довольно сложно простым языком объяснить суть этих уязвимостей и принципы и способы их нахождения и использования. Впрочем, один простой пример есть. В фишинговых атаках уязвимостью является человеческая доверчивость, а эксплойтом – убедительно написанное письмо-подделка в вашем почтовом ящике.

Реальность такова, что уязвимости существовали и будут существовать всегда. Идеального в мире ничего нет. Поэтому необходима мощная защита, чтобы не стать слабой жертвой хищного охотника. Например, желательно установить сильный антивирус, избегать публичных Wi-Fi, не открывать вложения в неизвестной электронной почте, и, самое главное, будьте внимательны и осторожны в Сети.

Источник

Эксплойты (Exploits)

Эксплойты (exploits) являются подвидом вредоносных программ. Термин связан с английским глаголом «to exploit», означающим «эксплуатировать, применять в своих интересах». Впрочем, эксплойт — это не обязательно отдельное приложение (исполняемый файл): он может иметь вид небольшого фрагмента вредоносного кода или набора команд, выполняемых в определенном порядке. Используя уязвимость в какой-либо системной или прикладной программе, эксплойт производит на устройстве жертвы несанкционированное действие. Как правило, оно позволяет повысить привилегии в целевой системе или выполнить произвольный код.

Что такое эксплойт

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

Классификация эксплойтов

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

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

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

Объект воздействия

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

Источник угрозы

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

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

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

Анализ риска

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

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

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

Источник

что такое эксплойт?

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

•Ваша домашняя страница, страница поиска или избранное были изменены.
•Настройки интернета были изменены.
•Блокируется доступ к некоторым функциям браузера.
•Переадресация при неверном вводе URL-адреса (например, при вводе неверного адреса Вы попадаете на другой сайт).

Это Сервера експлойт
Вот эксплойт
.
abnzzkpp.syt*.net
abtkslxy.syt*.net
ajijaohoo.syt*.net
ancezvwzvn.syt*.net
azrrfxcab.syt*.net
bnfjqksp.syt*.net
bvakjbktwg.syt*.net
Для проверки доменных имен и IP-адресов на их наличие в блек-листах разных антивирусов используется сервис scan4you.net, пользователь связки может указать и другой сервис проверки.

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

Кусочек обфусцированного кода Sweet Orange EK

Источник

Эксплойт

Это вредоносный код, который использует уязвимости в системе безопасности программного обеспечения для распространения киберугроз.

Что такое эксплойт?

Стандартное определение характеризует «эксплойт» как программу или код, который использует недостатки в системе безопасности конкретного приложения для заражения устройства.

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

Используя определенную уязвимость, данный инструмент предоставляет злоумышленникам необходимые разрешения для запуска вредоносных компонентов и заражения системы.

Что такое эксплойт

Особенности распространения

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

Также они позволяют получить доступ к программам и в дальнейшем заражать устройство пользователя через уязвимость в системе безопасности.

За последние годы наиболее активными были угрозы, которые используют уязвимости в продуктах Java, в программном обеспечении Adobe, а также операционной системе Windows.

Известные примеры

В последнее время эксплойты используются во многих известных кибератаках. Примером является масштабная атака вируса WannaCryptor (или WannaCry), которая стала крупнейшей цифровой угрозой в мире за последние годы. Стоит отметить, что во время этой атаки использовался эксплойт EternalBlue, который был якобы похищен группой киберпреступников в Агентстве национальной безопасности (NSA). EternalBlue был нацелен на уязвимость реализации протокола SMB в неактуальной версии Microsoft.

Кроме этого, EternalBlue также был инструментом во время известной атаки Diskcoder.C (Petya, NotPetya и ExPetya).

Узнать больше

Особой популярностью среди киберпреступников пользуются «0-дневные» уязвимости. Примером их применения является последняя кампания группы киберпреступников Buhtrap, которая начала использовать эксплойт с целью получения доступа для запуска своих вредоносных программ и осуществления шпионской деятельности в Восточной Европе и Центральной Азии.

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

Кроме этого, эксплойт использовался в атаках группы киберпреступников PowerPool. Вредоносный код был нацелен на уязвимость в Windows, а именно ALPC Local Privilege Escalation.

Источник

Наборы эксплойтов и эксплойтов

Эксплойты используют уязвимости в программном обеспечении. Уязвимость — это как дыра в программном обеспечении, которое может использовать вредоносное ПО для получения на устройство. Вредоносные программы используют эти уязвимости, чтобы обойти защитные меры безопасности компьютера, чтобы заразить устройство.

Работа наборов эксплойтов и эксплойтов

Эксплойты часто являются первой частью более масштабной атаки. Хакеры сканируют устаревшие системы, содержащие критически важные уязвимости, которые они затем используют, развертывая целевые вредоносные программы. Эксплойты часто включают код оболочки, который является небольшой полезной нагрузкой вредоносных программ, используемых для загрузки дополнительных вредоносных программ из управляемых злоумышленниками сетей. Shellcode позволяет хакерам заражать устройства и проникать в организации.

Наборы эксплойтов — это более комплексные средства, содержащие коллекцию эксплойтов. Эти наборы сканируют устройства для различных типов уязвимостей программного обеспечения и, если они обнаружены, развертывают дополнительные вредоносные программы для дальнейшего заражения устройства. Наборы могут использовать эксплойты, нацеленные на различные программы, в том числе Adobe Flash Player, Adobe Reader, Internet Explorer, Oracle Java и Sun Java.

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

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

Что такое эксплойт

Рис. 1. Пример работы с наборами

Несколько заметных угроз, в том числе Wannacry, используют уязвимость CVE-2017-0144 для запуска вредоносных программ.

Примеры наборов эксплойтов:

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

Как мы именуем эксплойтов

Мы классифицировать эксплойты в нашей энциклопедии вредоносных программ по целевой «платформе». Например, Exploit:Java/CVE-2013-1489. A — это эксплойт, нацеленный на уязвимость в Java.

Проект под названием «Общие уязвимости и воздействия (CVE)» используется многими поставщиками программного обеспечения безопасности. Проект предоставляет каждой уязвимости уникальный номер, например CVE-2016-0778. В части «2016» указывается год обнаружения уязвимости. The «0778» is a unique ID for this specific vulnerability.

Дополнительные тексты можно прочитать на веб-сайте CVE.

Защита от эксплойтов

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

Источник

Что такое уязвимости и эксплойты: что нужно знать?

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

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

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

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

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

Что такое эксплойт?

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

Как защититься от эксплойтов?

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

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

На видео:Exploit.RTF.CVE-2012-0158: самый опасный в мире вирус или почему так важно обновлять свой софт

Источник

Эксплойты, зеродеи, их опасность и её профилактика.

Интернет, конечно, штука интересная и мега-полезная. Но обратная сторона его открытости и неконтролируемости – зоопарк всякой гадости, нечисти и подлости, поджидающей пользователей не только на сомнительных «порно-варезных» ресурсах, но и вполне себе легитимных «бело-пушистых» сайтах. Действительно, уже много лет как Интернет прочно и безальтернативно оккупировал место в списке главных источников кибер-заразы: по нашим данным в 2012г. на 33% пользователей хотя бы раз совершалась атака через веб.

Если копнуть глубже в состав этой сетевой «гадости, нечисти и подлости», то всплывает три основных группы угроз. По данным нашей облачной системы KSN (видео, подробности) угрозы эти распределяются следующим образом:

Что такое эксплойт

В этом «пирожке» больше всего привлекают с первого взгляда малозаметные 10% атак через т.н. эксплойты (на самом деле их доля будет побольше, т.к. зачастую многие трояны тоже питают слабость к использованию этих угроз). Довольно специфическое явление для непрофессионалов и реальная головная боль для секюрити-специалистов. Кто в курсе – можно сразу сюда. Остальным – ниже микро-ликбез.

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

Какие программы чаще всего атакуют эксплойты? Наша статистика за 2011г.:

Что такое эксплойт

Самая неприятная разновидность эксплойтов – т.н. зеродеи (эксплойт «нулевого дня», 0-day exploit). Обычно сначала находят уязвимость, потом разработчик срочно латает её специальной «заплаткой» («патч», patch), а уже потом подтягивается кибер-андерграунд, делает эксплойт и пытается атаковать пользователей, которые не успели установить «заплатку». Точнее это сценарий, по которому мы бы хотели, чтобы развивались события. На самом деле иногда случается, что эксплойт появляется вместе с информацией об уязвимости или разработчик (например, Apple в случае с Flashback) тянет с выпуском «заплатки» и, в итоге, эксплойт опережает её появление. Эксплойт, для которого нет «заплатки» и называется зеродеем.

А вот интересные данные по географии источников веб-атак, большинство из которых как раз и используют эксплойты:

Что такое эксплойт

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

Два самых распространённых метода атаки через эксплойты:

В общем, 10% эксплойтов в статистике сетевых угроз на самом деле представляют собой никак не меньшую угрозу, чем 83% троянов. К примеру, самый распространённый на данный момент эксплойт-кит Blackhole по статистике пробивает до 30% систем (в зависимости от трафика, установленного софта и системы защиты). Да никакому трояну такого не снилось!

Что такое эксплойт

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

Что такое эксплойт

А теперь немного инсайда, так сказать по секрету всему свету – спойлер одной очень вкусной фичи грядущей версии KIS/KAV. С релизом новой версии нашего Endpoint Security в 1кв. следующего года она также будет доступной и корпоративным заказчикам. Как вы догадались, фича эта тоже имеет отношение к защите против эксплойтов. Точнее – против неизвестных эксплойтов, т.е. тех самых зеродеев!

Вообще, мне часто задают вопрос – а как вообще можно защититься от того, что неизвестно? Ну, во-первых, мы тут не в носу ковыряем. У нас около тысячи человек в R&D по всему миру только и делает, что моделирует угрозы, исследует тенденции и всячески думает о завтрашнем дне вашего компьютера. У нас один из самых продвинутых многоуровневых арсеналов для борьбы с будущими угрозами – эмулятор, эвристика, HIPS,поведенческие блокираторы, репутационные облачные сервисы, вайтлистинг, application control, целый спектр проактивных технологий… А во-вторых, «неизвестное» в компьютерной вирусологии не так иррационально как в реальной жизни.

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

Итак, что же будет такого вкусного для защиты против неизвестных эксплойтов в KIS/KAV 2013?

А вот что: мы существенно «прокачаем» модуль мониторинга активности программ System Watcher за счёт новой технологии Automatic Exploit Prevention (AEP, «Автоматическая защита от экслойтов»). Её суть понятна, но реализация требует подробностей.

На самом деле AEP – «зонтичный бренд» для целого спектра анти-эксплойтовых фичей. Во-первых, мы добавили в базу данных специальные шаблоны поведения эксплойтов. System Watcher использует эти шаблоны для контроля над действиями приложений (например, браузеров), выявления подозрительной активности и её блокировки. Во-вторых, система отслеживает источники файлов и противодействует drive-by загрузкам. В дополнение к этому мы интегрируемся с сервисом Attachment Execution Service (AES) и отличаем файлы, созданные с и без ведома пользователя. В-третьих, для наиболее критичных программ и дополнительных модулей (например, плагинов для браузеров) мы будем принудительно использовать технологию ASLR, которая каждый раз случайным образом изменяет структуру адресного пространства атакуемой программы. В результате, даже если эксплойт «пробьёт» уязвимость, он не сможет запустить вредоносный код на выполнение, поскольку не будет знать его точного местонахождения!

Что такое эксплойт

Сейчас AEP проходит тестовые испытания и показывает впечатляющие результаты. Мы прогнали через неё целую кучу эксплойтов для Flash Player, QuickTime, Adobe Reader, Java и других программ – 100% результат детекта! Особенно порадовал успешный детект эксплойта для недавно нашумевшей уязвимости в Windows Media Player — эксплойт позволял заражать компьютер через специально созданный MIDI-файл и работал на всех версиях Windows, начиная с XP. И, что важно, благодаря AEP мы ловим 100% эксплойтов эксплойт-кита Blackhole, при том, что средний показатель среди десятки лучших антивирусов мира – около 94% (sic!).

Ну и в заключение ещё к вопросу о профилактике – в дополнение к описанной выше технологии.
Как говорится, на антивирус надейся, да сам не плошай. И тут как нельзя кстати правило — «мой руки перед едой». Вероятность получить атаку малварой или эксплойтом на порядок выше на всяких сомнительных сайтах. Подумайте несколько раз, прежде чем зайти на какой-нибудь «порно-варезный» ресурс – стоит ли овчинка выделки? Ну и конечно, одно из главных правил компьютерной гигиены – ни в коем случае не открывать подозрительных аттачей!

Источник

Эксплойт. Виды эксплойтов.

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

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

Например, у вас есть браузер, и есть уязвимость в нем, которая позволяет исполнить «произвольный код», то есть установить и запустить некую вредоносную программу на вашей системе без вашего ведома или спровоцировать какое-либо иное не ожидаемое вами поведение системы.

Эксплойт может распространяться в виде исходных текстов, исполняемых модулей или словесного описания использования уязвимости. Он может быть написан на любом языке программирования (наиболее часто использующиеся: C/C++, Perl, Python, PHP, HTML+JavaScript).

Как происходит заражение

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

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

Виды эксплойтов

Примеры нескольких наиболее известных наборов эксплойтов:

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

Blackhole Kit — наиболее распространенная веб-угроза в 2012 году, нацеленная на уязвимости в старых версиях браузеров Firefox, Chrome, Internet Explorer и Safari, а также многих популярных плагинов, таких как Adobe Flash, Adobe Acrobat и Java. После того как жертву заманили или перенаправили на страницу подсадки, запутанный JavaScript определяет содержимое машины жертвы и загружает те эксплойты, для которых данный компьютер уязвим.

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

Источник

Nota Bene

Евгений Касперский о приятном, интересном и наболевшем

Эксплойты, зеродеи, их опасность и её профилактика.

Интернет, конечно, штука интересная и мега-полезная. Но обратная сторона его открытости и неконтролируемости – зоопарк всякой гадости, нечисти и подлости, поджидающей пользователей не только на сомнительных «порно-варезных» ресурсах, но и вполне себе легитимных «бело-пушистых» сайтах. Действительно, уже много лет как Интернет прочно и безальтернативно оккупировал место в списке главных источников кибер-заразы: по нашим данным в 2012г. на 33% пользователей хотя бы раз совершалась атака через веб.

Если копнуть глубже в состав этой сетевой «гадости, нечисти и подлости», то всплывает три основных группы угроз. По данным нашей облачной системы KSN (видео, подробности) угрозы эти распределяются следующим образом:

Что такое эксплойт

В этом «пирожке» больше всего привлекают с первого взгляда малозаметные 10% атак через т.н. эксплойты (на самом деле их доля будет побольше, т.к. зачастую многие трояны тоже питают слабость к использованию этих угроз). Довольно специфическое явление для непрофессионалов и реальная головная боль для секюрити-специалистов. Кто в курсе – можно сразу сюда. Остальным – ниже микро-ликбез.

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

Какие программы чаще всего атакуют эксплойты? Наша статистика за 2011г.:

Что такое эксплойт

Самая неприятная разновидность эксплойтов – т.н. зеродеи (эксплойт «нулевого дня», 0-day exploit). Обычно сначала находят уязвимость, потом разработчик срочно латает её специальной «заплаткой» («патч», patch), а уже потом подтягивается кибер-андерграунд, делает эксплойт и пытается атаковать пользователей, которые не успели установить «заплатку». Точнее это сценарий, по которому мы бы хотели, чтобы развивались события. На самом деле иногда случается, что эксплойт появляется вместе с информацией об уязвимости или разработчик (например, Apple в случае с Flashback) тянет с выпуском «заплатки» и, в итоге, эксплойт опережает её появление. Эксплойт, для которого нет «заплатки» и называется зеродеем.

А вот интересные данные по географии источников веб-атак, большинство из которых как раз и используют эксплойты:

Что такое эксплойт

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

Что такое эксплойт

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

Что такое эксплойт

А теперь немного инсайда, так сказать по секрету всему свету – спойлер одной очень вкусной фичи грядущей версии KIS/KAV. С релизом новой версии нашего Endpoint Security в 1кв. следующего года она также будет доступной и корпоративным заказчикам. Как вы догадались, фича эта тоже имеет отношение к защите против эксплойтов. Точнее – против неизвестных эксплойтов, т.е. тех самых зеродеев!

Вообще, мне часто задают вопрос – а как вообще можно защититься от того, что неизвестно? Ну, во-первых, мы тут не в носу ковыряем. У нас около тысячи человек в R&D по всему миру только и делает, что моделирует угрозы, исследует тенденции и всячески думает о завтрашнем дне вашего компьютера. У нас один из самых продвинутых многоуровневых арсеналов для борьбы с будущими угрозами – эмулятор, эвристика, HIPS,поведенческие блокираторы, репутационные облачные сервисы, вайтлистинг, application control, целый спектр проактивных технологий… А во-вторых, «неизвестное» в компьютерной вирусологии не так иррационально как в реальной жизни.

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

Итак, что же будет такого вкусного для защиты против неизвестных эксплойтов в KIS/KAV 2013?

А вот что: мы существенно «прокачаем» модуль мониторинга активности программ System Watcher за счёт новой технологии Automatic Exploit Prevention (AEP). Её суть понятна, но реализация требует подробностей.

На самом деле AEP – «зонтичный бренд» для целого спектра анти-эксплойтовых фичей. Во-первых, мы добавили в базу данных специальные шаблоны поведения эксплойтов. System Watcher использует эти шаблоны для контроля над действиями приложений (например, браузеров), выявления подозрительной активности и её блокировки. Во-вторых, система отслеживает источники файлов и противодействует drive-by загрузкам. В дополнение к этому мы интегрируемся с сервисом Attachment Execution Service (AES) и отличаем файлы, созданные с и без ведома пользователя. В-третьих, для наиболее критичных программ и дополнительных модулей (например, плагинов для браузеров) мы будем принудительно использовать технологию ASLR, которая каждый раз случайным образом изменяет структуру адресного пространства атакуемой программы. В результате, даже если эксплойт «пробьёт» уязвимость, он не сможет запустить вредоносный код на выполнение, поскольку не будет знать его точного местонахождения!

Что такое эксплойт

Источник

Введение в эксплоитинг и реверсинг с использованием IDA FREE и других бесплатных инструментов. Глава 2

В первой части мы установили несколько инструментов, которые будут полезны для нас для прохождения этого курса. Их особенность в том, что они все бесплатны. Мы не будем использовать какой-либо платный инструмент, а из тех, у которых есть платная версия, таких как IDA или PYCHARM, мы будем использовать версию FREE или COMMUNITY.

Давайте посмотрим на некоторые концепции, прежде чем мы приступим к упражнениям.

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

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

Вопрос заключается в том, чтобы знать разницу между БАГОМ и УЯЗВИМОСТЬЮ, поэтому давайте посмотрим, что такое УЯЗВИМОСТЬ.

Что такое УЯЗВИМОСТЬ?

УЯЗВИМОСТЬ — это определенный тип бага в программе, который позволяет, используя ее, нарушать безопасность компьютерной системы.

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

Другими словами, уязвимость — это определенный тип бага, подмножество между ними.

Что такое эксплойт

Конечно, существует много типов уязвимостей. Мы собираемся сосредоточиться на изучении и эксплуатации уязвимостей в WINDOWS.

Что такое ЭКСПЛОИТ?

ЭКСПЛОИТ — это компьютерная программа, которая пытается использовать некоторую уязвимость другой программы. Конечной целью эксплойта может быть злонамеренной, например, как уничтожение или отключение атакуемой системы, хотя обычно речь идет о нарушении мер безопасности, чтобы получить доступ к информации несанкционированным способом и использовать ее в своих собственных интересах или в качестве источника других атак на третьи стороны.

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

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

Вначале у нас не будут активированы средства защиты системы, но постепенно мы будем активировать их, чтобы узнать, как мы можем справиться с ними и в каких ситуациях.

Что такое БУФЕР?

БУФЕР — это пространство памяти определенного размера, зарезервированное для хранения данных и управления ими.

Базовым примером является 20-ти литровая банка, которая у меня есть для хранения содержимого. Она может быть меньше или равна 20 литрам, что является максимальным размером. Если вы хотите хранить больше в одном резервуаре, вы должны найти способ увеличить размер буфера, иначе при попытке сохранить, например, 40 литров в 20-литровую банку, она переполнится.

Что такое ПЕРЕПОЛНЕНИЕ БУФЕРА?

ПЕРЕПОЛНЕНИЕ БУФЕРА происходит, когда компьютерная программа превышает объем памяти, зарезервированный для нее, записывая данные в непрерывный блок памяти.

По правде говоря, переполнение буфера происходит в приложении, когда оно не имеет необходимых проверок безопасности в своем программном коде, таких как измерение объема данных, которые будут скопированы в буфер и которые не превышает размер буфера.

Наиболее распространенные типы переполнений буфера — переполнения буфера стека и переполнения буфера кучи.

Здесь мы видим определение переполнения буфера, и в нашем предыдущем примере, если я попытаюсь налить 40 литров в 20-ти литровый бак, он переполнится, как мы поняли. Это переполнение, которое производит переполнение буфера, т.е. переполнение моего бака, когда превышается его максимальная емкость.

Теперь объясним разницу между стеком и кучей.

Что такое СТЕК?

СТЕК используется для хранения локальных переменных функции, которые необходимы только до тех пор, пока выполняется функция. В большинстве языков программирования важно, чтобы мы знали во время компиляции, насколько велика переменная, если мы хотим сохранить ее в стеке.

Что такое КУЧА?

КУЧА используется для резервирования динамической памяти, срок полезного использования которой заранее неизвестен, но ожидается, что он продлится некоторое время. Если мы не знаем её размер или он определяется во время выполнения, размер должен быть рассчитан и зарезервирован в куче.

Куча также используется для объектов, которые различаются по размеру, потому что мы не знаем во время компиляции, как долго они будут использоваться.

В нашей компании я работаю уже более 13 лет как автор эксплойтов, и первое, что мы делаем со всеми нанимаемыми людьми, даже делали со мной, когда я присоединялся, — это попытаться разгадать стеки и кучи знаменитого ГЕРАРДО РИЧАРТЕ. Это один из основателей CORE SECURITY и гуру анализа эксплойтов.

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

Давайте посмотрим на исходный код для задачи STACK1.

Мы видим папку с упражнениями, а внутри находится исходный код STACK1, называемый STACK1_VS_2017.CPP.

Мы попытаемся понять этот код и посмотреть, где может возникнуть переполнение буфера, и будет ли оно переполнением буфера в стеке или в куче.

Вызов функции MessageBoxA был добавлен в исходный код STACK1, чтобы показать нам небольшое сообщение, побуждающее нас к его решению. Это просто дополнение, которое ни на что не влияет. Это стандартный вызов указанной функции WINDOWS, которую мы не будем здесь анализировать.

Мы знаем, что внутри функции, если есть локальные переменные, вы должны зарезервировать для них место.

Таким образом, мы остались с этим исходным кодом, созданным ГЕРАРДО РИЧАРТЕ.

Мы видим красным цветом первую часть программы, где резервируется место для локальных переменных. В этом случае есть две локальные переменные, COOKIE и BUF.

Вы можете увидеть в таблице типы данных. Там же там находятся и другие типы переменных.

Код будет скомпилирован в 32 бита.

Мы видим, что переменная COOKIE будет типа INT, поэтому для этой переменной будет зарезервировано 4 байта памяти.

Что такое эксплойт

В случае переменной BUF мы видим, что это массив или цепочка символов (размер символа = 1 байт).

Что такое эксплойт

Т.е. это будет массив из 80 символов, т.е. его длина будет 80×1 = 80 байт.

Тот, кто не знает, что такое массив, может почитать про него здесь:

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

Что такое эксплойт

В первом примере это массив целых чисел, т.е. он будет равен 100 байт, а поскольку каждое целое занимает 4 байта, длина массива будет равна 100 x 4 = 400 байт.

Во втором примере FLOAT занимает 4 байта, поэтому это будет массив из 5 FLOAT, поэтому его длина будет 5 x 4 = 20 байт.

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

Возвращаясь к нашему упражнению:

Это массив символов длиной 80 x 1 = 80 байт, т.е. это похоже на нашу 20-ти литровую банку. Если мы попытаемся сохранить более 80 байт, банка переполнится.

Теперь давайте посмотрим, где используется буфер BUF.

Что такое эксплойт

Мы видим, что буфер используется в двух местах, отмеченных красными стрелками.

В первой инструкции есть функция PRINTF, которая используется для отображения сообщения в консоли, которое будет строкой в кавычках.

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

Что такое эксплойт

В этом случае у нас два формата %X, поэтому, если я обращаюсь к таблице формата PRINTF:

Что такое эксплойт

Мы видим, что функция возьмет эти целые числа (INT) и вставит их в выходную строку с основанием системы счисления 16, т.е. в шестнадцатеричном формате. 08 указывает на то, что если число содержит менее 8 цифр, функция заполнит его пробелами.

Вывод для «buf: %31x”,&buf будет таким

Мы видим, что в этом примере заполняются пробелами перед числом. Есть несколько модификаторов, чтобы показать вывод.

Все возможные случаи перечислены здесь:

Наш же случай такой:

Что такое эксплойт

Что такое эксплойт

Мы видим, что результат не усекается, он заполняется пробелами только в том случае, если длина аргумента для вставки меньше значения перед X.

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

Мы знаем, что переменная имеет адрес памяти и значение, которое может быть сохранено. Это похоже на нашу 20-литровую банку. Она имеет свое содержание или значение, т.е. литры, хранящиеся внутри, но также если у меня есть гараж, полный подобных банок мне нужен какой-то способ определить, где находится та банка, которую я хочу, среди всех тех, что у меня есть.

На это указывает символ &. Он возвращает адрес или местоположение банки, а не ее содержимое или значение.

Определение АМПЕРСАНДА

АМПЕРСАНД используется для указания адреса памяти переменной, в которой будут храниться данные.

Поэтому, если я запущу исполняемый файл в консоли, я увижу, например, что при выполнении функции PRINTF она напечатает:

Что такое эксплойт

На ваших ПК адреса могут меняться, но поскольку нижний адрес обоих адресов совпадает с адресом BUF, мы видим, что они расположены таким образом:

Что такое эксплойт

Адрес BUF меньше адреса COOKIE, поэтому он будет увеличиваться.

А что нам говорят эти адреса переменных? (В моем случае &BUF=0x19FED4 и &COOKIE=0x19FF24)

Что такое эксплойт

Оба представлены в шестнадцатеричном формате. Помните, что это был формат %X? Поэтому я поставил 0x вперед, чтобы отличать десятичные числа, которые мы будем представлять без каких-либо дополнений.

Если в консоли PYTHON или в PYCHARM я сделаю вычитание:

Что такое эксплойт

Мы получим результат 80 байт, так как переменная COOKIE, предположительно, начинается именно там, где заканчивается буфер BUF, поэтому разница дает нам размер буфера.

Часто, когда мы делаем такой тип переменных основанных на исходного кода, может случиться так, что компилятор даст нам больший размер, чем тот, который зарезервирован в исходном коде. Компилятор гарантирует, что он зарезервирует не менее 80 байт, т.е. он может зарезервировать больше, а не меньше.

Дело в том, что мы уже знаем кое-что о коде, размере переменных и их расположении благодаря тому, что у него есть функция PRINTF.

Теперь давайте посмотрим на другое место, где используется буфер BUF, поскольку сейчас программе печатает только его адрес, но не использует его для сохранения в нем данных.

Здесь, на красной строчке, GET — это функция для ввода данных с клавиатуры. Данные будут вводиться пока я не нажму клавишу ВВОД.

Программа не может ограничить объем данных, вводимых пользователем, и также нет способа проверить эти данные. Все, что вводится до нажатия клавиши ВВОД, скопируется в буфер BUF.

В этом есть проблема. Мы сказали, что BUF может хранить только 80 байт максимум, поэтому, если мы введем больше, мы создадим переполнение буфера, и здесь приведены все условия для этого, потому что, если пользователь записывает более 80 байтов, то переполнит наш бак и жидкость закапает вниз.

Что такое эксплойт

Дело в том, что под BUF находится переменная COOKIE, так что переполнение будет перезаписывать и заполнять ее значением, которое вы сможете контролировать.

Например, если тот, кто печатает, пишет 80*A и 4*B, 80*A заполнят BUF, а 4*B заполнят COOKIE, и, как мы знаем, когда кто-то печатает символ в консоли, на низком уровне сохраниться значение ASCII.

Что такое эксплойт

Поскольку COOKIE будет заполнена четырьмя буквами B, которые эквивалентны значению 0x42, мы можем гарантировать, что значение COOKIE будет 0x42424242, т.е. на моем компьютере адрес COOKIE 0x19FF24 будет иметь 0x42424242 в качестве содержимого.

Что такое эксплойт

Дело в том, что мы уже видели, как переполнить и контролировать значение COOKIE.

Для выполнения упражнения вы должны распечатать „you win“. Для этого COOKIE должен быть равен значению 0x41424344, и если бы не было переполнения, это было бы невозможным, так как значение COOKIE никогда не изменялось с самого начала программы. Мы не сможем напечатать „you win“, и для этого мы используем переполнение буфера, в котором говорится, что это может заставить программу выполнить какое-то действие, отличное от того, что было запрограммировано.

В этом случае вы никогда не сможете напечатать “you win”, только переполнение позволит вам это сделать.

Другими словами, вместо того, чтобы передать, например, 80*A и 4*B, для печати „you win“, вы должны передать 80*A, а затем буквы DCBA, поскольку это приведет к тому, что в COOKIE сохранятся значения ASCII.

Формат, в котором хранятся данные является LITTLE ENDIAN. Другими словами, данные в памяти хранятся в обратном порядке, если говорить просто.

Что такое эксплойт

И если сохраняется последовательность 0x41424344, система сохранит её в памяти как:

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

Мы можем запустить исполняемый файл в консоли.

Что такое эксплойт

И курсор будет мигать, так как функция GET просит меня ввести входные данные. Осторожно наберите 80 символов A и затем DCBA.

В консоли PYTHON или PYCHARM я могу напечатать строку, скопировать ее без кавычек и вставить ее в консоль, чтобы не печатать её как сумасшедший, а затем нажать клавишу ENTER, чтобы ввести ее.

Что такое эксплойт

Что такое эксплойт

Мы видим, что мы получили „you win“.

Мы можем увидеть это в отладчике. Для этого мы будем использовать X64DBG.

Что такое эксплойт

Я выбираю 32-х битную версию.

Что такое эксплойт

Что такое эксплойт

Если мы остановимся на библиотеке NTDLL.DLL, мы снова нажмем RUN с помощью F9.

Мы видим, что отладчик останавливается на первой инструкции модуля STACK1, которая называется ENTRY POINT или первой инструкции, выполняемой модулем.

Что такое эксплойт

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

Что такое эксплойт

Мы выбрали только поиск в текущем регионе. Мы знаем, что строки будут в этой же секции.

Что такое эксплойт

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

Что такое эксплойт

Теперь видно намного больше. Мы видим вызов функции MessageBoxA, PRINTF, GETS и сравнение со значением 0x41424344.

Кроме того, мы добавляем плагин для декомпиляции SNOWMAN. Мы можем попытаться увидеть, как он декомпилирует код, т.е. как он пытается получить исходный код или что-то максимально похожее из скомпилированного файла.

Что такое эксплойт

Что такое эксплойт

Мы видим, что это не идеально, но это лучше чем то, что было.

Я собираюсь поставить BP в начале функции и нажимать F9, пока отладчик не остановится.

Что такое эксплойт

Для тех, кто не знает, что такое аргумент функции.

Что такое эксплойт

В нашем случае основная функция имеет аргументы, но они не используются внутри функции.

Здесь мы видим, что аргументов два, и они передаются через стек, когда исполняемый файл скомпилирован в 32 бита.

Непосредственно перед вызовом функции, аргументы будут сохранены в стеке.

Когда мы остановимся в начале функции, первое значение в стеке будет равно RETURN ADDRESS, т.е., куда функция вернется после завершения выполнения функции, и ниже этого значения будут аргументы этой функции.

Если я щелкну правой кнопкой мыши по RETURN ADDRESS и выберу FOLLOW DWORD IN DISASSEMBLER, я увижу, куда отладчик должен вернуться после завершения функции.

Что такое эксплойт

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

Что такое эксплойт

Я помещу BP немного раньше и сделаю перезагрузку программы.

Что такое эксплойт

Отладчик остановится здесь.

Что такое эксплойт

Он собирается сохранить аргументы основной функции используя эти инструкции PUSH.

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

Это не очень сложно. Первый аргумент ARGC — это INT, который указывает число параметров консоли, используемых при выполнении программы, включая путь к исполняемому файлу, а ARGV — это массив указателей на строки.

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

Что такое эксплойт

Что такое эксплойт

Здесь отладчик останавливается когда собирается сохранить аргументы, используя инструкцию PUSH. Первый аргумент, который сохраняется, является самым дальним, и последний, что вы сохраняете, будет первым аргументом функции.

Я трассирую и каждая инструкция PUSH сохраняет аргументы.

Что такое эксплойт

Здесь я могу видеть аргументы функции. Выше приведен первый аргумент ARGC. Он равен 3, так как он отмечает количество аргументов, которые передаются на консоль.

Что такое эксплойт

Здесь это 3 аргумента.

Теперь мы нажимаем F7, чтобы сделать STEP INTO и войти в функцию.

Здесь мы видим, что при входе в CALL отладчик сохраняет АДРЕС ВОЗВРАТА в стек.

Что такое эксплойт

Итак, как мы уже говорили при входе в функцию, первое, что будет в сохранено в стеке это RETURN ADDRESS (в 32-битной компиляции), а ниже будут аргументы функции, сначала первый аргумент, а затем последовательно остальные.

Что такое эксплойт

Второй аргумент, как мы видели, это массив указателей. Здесь мы видим в памяти, что есть три указателя на три строки, которые передаются в качестве аргументов.

Что такое эксплойт

Здесь мы остановились в начале функции, чуть ниже у нас находится АДРЕСА ВОЗВРАТА и АРГУМЕНТЫ.

Мы уточняем, что файл скомпилирован в 32-бита, потому что в 64-битной версии аргументы передаются другим способом. Мы увидим это позже.

Затем функция начинает выполняться. Первая вещь — это так называемое ПРОЛОГ, в котором хранится значение EBP функции, которая вызвала нашу.

Что такое эксплойт

Это приведет к сохранению значения EBP чуть выше адреса возврата.

Что такое эксплойт

Если я выполню инструкцию с помощью F7.

Я вижу, что значение EBP GUARDADO находится в стеке над адресом возврата.

Что такое эксплойт

Следующая инструкция в ПРОЛОГЕ:

Она устанавливает значение EBP для текущей функции, который был сохранен и был родительской функцией, которая вызывает нашу (В этом случае моей основной функцией является функция основанная на EBP, в других случаях она может отличаться, и мы увидим их позже)

Помещая в EBP текущее значение ESP, мы добиваемся того, что мы создаем фрейм для нашей текущей функции.

Что такое эксплойт

Теперь, поскольку это функция основана на EBP или EBP BASED, внутри функции будет сохранено значение EBP, и оно будет принято в качестве эталонного, а ESP будет меняться.

Что такое эксплойт

Это значение EBP берется как базовое.

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

Мы можем видеть в списке несколько переменных, которые упоминаются как EBP-4 или EBP-54, относящиеся к значению EBP, которое он принимает в данный момент.

Можно сказать, что как только EBP примет свое значение после ПРОЛОГА, он будет похож на водосток, поэтому аргументы всегда будут идти в этом направлении, поэтому EBP + XXX ссылается на аргументы (сохраненный EBP и АДРЕС ВОЗВРАТА также находится ниже, но не будет иметь ссылок в коде), в то время как переменные, как мы увидим, будут выше этого адреса, поэтому ссылка на EBP-XXX относится к некоторой локальной переменной.

Таким образом в функциях ОСНОВАННЫХ НА EBP:

EBP + XXXX = аргументы переданные функции
EBP — XXXX = локальные переменные функции

После ПРОЛОГА будет некоторый способ зарезервировать пространство для переменных. В нашем случае это делается путем перемещения ESP вверх, чтобы оставшееся пространство внизу было зарезервировано для суммы всех длин переменных а, иногда, немного больше на всякий случай, который зависит от компилятора.

00401043 | 83EC 54 | SUB ESP,54

Мы видим, что ESP расположен над EBP, который останется ссылкой, и что 0x54, переведенное в десятичное число, равно 84, что является суммой длины BUF и COOKIE. Помните, что они были 80 и 4 соответственно.

Что такое эксплойт

Что такое эксплойт

Что такое эксплойт

При выполнении создается пространство для переменных BUF и COOKIE размером 84 байта. Вы можете щелкнуть первый столбец в направлении горизонта, и посмотреть значение EBP и найти это значение в стеке. Очевидно, теперь оно будет ниже.

Что такое эксплойт

Я делаю двойной щелчок здесь.

Что такое эксплойт

Таким образом, мы будем иметь значения относительно EBP также в стеке.

Что такое эксплойт

Если я трассирую, мы видим, что от места, где ESP был расположен для резервирования переменных, он всегда будет двигаться вверх, потому что он должен учитывать пространство, выделенное для переменных. При выполнении 4 PUSH для MessageBoxA отладчик помещает переменные выше зарезервированного пространства и увеличвает ESP.

Что такое эксплойт

Если я смотрю на стек, я вижу 4 зеленых аргумента, которые я добавляю над зарезервированным пространством, помеченным красным.

Что такое эксплойт

При входе в функцию MessageBoxA АДРЕС ВОЗВРАТА этой функции сохраняется в стеке.

Что такое эксплойт

Здесь это адрес возврата MessageBoxA. Когда я добираюсь до RET этой функции путем трассировки с помощью F8, и я исполняю MessageBoxA.

Что такое эксплойт

Мы видим, что отладчик вернется обратно чуть ниже вызова MessageBoxA.

Что такое эксплойт

И те значения PUSH, которые вы передали для функции MessageBoxA и АДРЕС ВОЗВРАТА этой функции, уже использовались, и ESP снова находится чуть выше зарезервированной области, как до вызова любой функции. То же самое произойдет с вызовом функции PRINTF.

После того, как вы пройдете функцию PRINTF, будут напечатаны адреса BUF и COOKIE.

Что такое эксплойт

Адрес BUF на моей машине будет 0x19FED4, а адрес COOKIE — 0x19FF24.

Здесь программа читает адрес BUF, чтобы передать его функции GETS и заполнить BUF. Мы можем проверить, совпадает ли адрес с тем, что показывает консоль 0x19FED4.

Что такое эксплойт

Что такое эксплойт

Что такое эксплойт

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

Что такое эксплойт

Что такое эксплойт

Вот они. Более того, ниже ничего не отображается, поскольку там нет данных.

Когда я вызову функцию GETS с помощью F8, мне нужно будет перейти к консоли, набрать и нажать клавишу ВВОД, чтобы заполнить буфер BUF и переписать COOKIE.

Что такое эксплойт

Мы видим, что переменная COOKIE была по адресу 19FF24 на моей машине.

Здесь программа сравнивает COOKIE с 0x41424344.

Что такое эксплойт

Мы видим, что EBP-4 говорит, что это COOKIE, в дополнение к адресу, если мы установим ГОРИЗОНТ на значение EBP, как и раньше.

Что такое эксплойт

Я делаю двойной щелчок здесь.

Что такое эксплойт

Мы видим, что программа не будет переходить и покажет нам you win!

Что такое эксплойт

Что такое эксплойт

Так мы вручную достигаем цели, которая говорит you win.

Мы динамически проанализировали STACK1, используя X64DBG, который является отладчиком и не позволяет нам анализировать программу без запуска. Для этого мы должны использовать другие инструменты, такие как IDA PRO, GHIDRA или RADARE.

Я могу сделать модель скрипта для эксплуатации упражнения из PYTHON.

В случае с PYTHON 3, я должен поставить круглые скобки в функции PRINT и быть осторожным при добавлении строк, которые должны быть байтами (поместите b перед строками в PYTHON 2).

Я проверяю, что путь правильный и когда я запускаю файл.

Что такое эксплойт

Хорошо. У нас уже есть модель скрипта для PYTHON 3 для эксплуатации STACK1. В следующей части мы продолжим статический анализ в IDA, RADARE и GHIDRA.

Что такое эксплойт
Обратите внимание, что помимо задачи STACK1 есть ещё версии 2, 3 и 4. Вы можете попытаться решить их. Они очень простые и похожи на STACK1, так что не скучайте.

В следующей части мы увидим IDA FREE, RADARE и GHIDRA.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *