![]() |
Делаем простой ротатор эксплоитов (или Metasploit Framework часть 6)
Ротатор эксплоитов (или Metasploit Framework часть 6) Предисловие. Статья расщитана не на новичков, а на тех кто уже знаком с пакетом разработки эксплоитов на практике. Остальным рекомендую почитать первые части. Заинтересованным рекомендую ознакомиться с официальным мануалом релиза 3.0 (вышел 27 марта 2007 года), перевод которого осуществил n0ne и выложил у себя на сайте Почитать пользовательский мануал по MSF 3.0, за что ему огромный респект! Что такое Ротатор? Ну наверно многие слышали, видели объявления, "продаю связку эсплоитов, пробив столько-то процентов, цена 1000$". Ну вот, например. Что же это за зверь? Опишу своими словами. Связка сплоитов - набор эксплоитов, которые эксплуатируют те или иные уязвимости в приложениях, сервисах и т. п. Причём по определённому алгоритму, ну типа не пробил один сплоит, пробуем следующий... и т.д. Вообщем, я подумал, что ввиду большого количества паблик эксплоитов для браузеров (в основной массе IE) пора написать простенький ротатор по типу той интелектуальной связки эксплоитов, и доводить его до ума, совершенствуя алгоритм ротации. Возьмём многие идеи автора, запостившего объявление о продаже своей связки на вооружение и попробуем сэкономить 500$-1000$. (Ведь сплоиты то есть в паблике! - за что платить? За двиг ротатора? За скрипты сбора статистики пробива браузеров? Попробуем всё сделать своими руками, и так с... 1. Подготовка. а). Определимся с типом жертвы: Жертва у нас будет популярные браузеры IE - в первую очередь (как самый дырявый браузер), в меньшей степени Opera и FireFox (имеющих мало паблик уязвимостей). б). Нам потребуется: - ПО Metasploit Framework 3.0 (релиз) скачать можно тут: http://metasploit.com/ - Минимальные знания html и javascript; - Все три популярных браузера (для тестирования); - Редактор html c подсветкой синтаксиса (пойдёт и визуальный). - Прямые руки и светлая голова. 2. Типа начинаем кодить. Определяемся с алгоритмом ротации и языком на котором будем писать: - Ну во первых откажемся от PHP и Perl, так как возможность их использования, как правило отсутствует на бесплатных хостингах, а вешать ротатор в iframe мы будем именно на них. А так же ввиду того, что мы не ахти какие кодеры на PHP и Perl (не обладаем достаточными знаниями). Поэтому остаётся javascript, исполняемый в браузере клиента. И так алгоритм: - Определяем тип нашего клиента (тип браузера) юзверя посетившего нашу страничку. Сделаем это с помощью javascript, велосипед изобретать не будем, а возьмём готовый код, например отсюда: http://www.xakep.ru/magazine/xa/080/048/2.asp Код:
<script language="javascript">Код:
<script language="javascript">- Хорошо бы достать версию OC, не уверен что это можно сделать с помощью javascript поэтому придётся лезть в документацию или Гугл. Я полез в Гугл (в javascript я чайник, так что не бейте сильно) 5 секунд и ответ найден: Можно определить и ОС, ниже приведён код функции определения версии ОС на javascript: Код:
<SCRIPT language=JavaScript>Код:
<BODY>За основу возьмём код, любезно предоставленный _Nikolas_ для ротации сайтов в iframe и подправим его немного под себя. Будем использовать, его как точку опоры. Кстати он после небольшой переделки подойдёт для автоматической ротации вредоносных страниц, содержащих эксплоиты. Код:
<html>Код:
<html>Например: страница Netscape.html, содержимое: Код:
<html>Поэтому просто исправляем код под наши нужды: Код:
<script type="text/javascript">Код:
<SCRIPT language=JavaScript>Код:
<html>Конечно мы потом уберём весь вывод на экран, сделаем фрейм невидимым (нулевого размера) и попробуем закодировать html, чтоб явно не палился... А также используем полученные глобальные переменные (OpSys, cpu) и для определения оптимального алгоритма ротации страниц с эксплоитами, чтоб сразу не свалить браузер в даун, а попытаться исполнить начинку (полезный груз, шеллкод) сначала более надёжными сплоитами (работающими в большинстве случаев). P.S. Статья не окончена - будет продолжение. Принимаю замечания и исправления, а так же ваши варианты оптимизированного кода на Javascript и html |
Ну в качестве образовательного примера вполне сойдет и ява, только код желательно закодировать и подцеплять отдельно <sript src=...>, так менее палевно чем пихать в исходники страницы...
|
И так, вчера мы немного определились с алгоритмом, однако забыли про переменную CPU (которая принимает значения - архитектура процессора). Поэтому первое ветвление должно быть именно в зависимости от её значения. По сути нам надо написать функцию EXPLOIT(CPU,brouser,OS) на выходе которой мы получим соответствующую страницу с ротацией эксплоитов для конкретного клиента. Поэтому немного перепишем наш код с учётом этого, а также для более легкого последующего апдейта нашего ротатора эксплоитов. Для начала определимся с диапазоном значений переменных:
CPU=[0,1]я думаю для популярных архитектур хватит двух вариантов (x86 и PowerPC). brouser=[0,1,2,3,4,5,6,7] для типов броузеров наверно 8 вариантов достаточно.(под broyser отвели 3 бита) OS=[0,1,2,3,4,5,7,6,7,8,9,10,11,12,13,14,15] - типы операционной системы, имхо 16 возможных вариантов хватит. Не будем парится с трёхмерными массивами, а приведём входящие переменные к одной rotation=128*CPU+16*brouser+OS, таким образом входящая переменная rotation будет принимать значения [0-255] и её размерность составит 1 байт (я не имею ввиду фактическую длину). То есть, так скажем, интелектуальность нашего ротатора составит 256 возможных интелектуальных наборов эксплоитов (ситуаций). (в нашем случае 256 компроментирующих браузер страниц). Перепишем наш код с учётом выше приведённого алгоритма. Ещё модернизируем функцию test_brouser(p), так, чтоб по вхдящему параметру p=2 выдавала нам версию браузера (пригодится для алгоритма ротации). Код:
<html>... продолжение скоро. P.S. У кого есть хороший javascript для определения Операционной системы, работающий во всех браузерах, прошу выложить тут. UP: Ну раз нет, придётся дорабатывать тот что есть. Ошибается только Mozzila FireFox немного изменим функцию определения ОС: Код:
<!-- функция определения ОС (переменная name_os - Название, code_os - Присвоенный код, в зависимости от параметра выдаёт name_os или code_os) --> Кстать, вот код с javascript, который выводит всю инфу в красивую формочку: Код:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//3.2">P.S. Код "Заготовки Ротатора" обновлён (в этом сообщении) с учётом последних изменений... Ладно, вообщем с "функицей" EXPLOIT(rotation) мы будем считать частично справились. Никто не мешает нам улучшать её потом. Теперь можно переходить собственно к компроментирующим страницам, которые у нас будут выводится в IFRAME. ... продолжение следует... |
Вот нашёл старенькую статью Algola по схожей теме, кому интересно можете почитать: http://old.antichat.ru/activex/
|
3. Отбор эксплоитов.
3. Отбор эксплоитов. Запускаем пакет MSF 3.0 (релиз). Идём в Web-интерфейс, запускаем консоль (она у нас прямо в web-странице). Смотрим какие есть эксплоиты. Цитата:
Цитата:
Цитата:
- В основном для Microsoft Internet Explorer хотя и не только: сплоиты на переполнение имеют меньшую надёжность и могут убить браузер, поэтому они будут последними в адгоритме ротации. Посмотрев инфу по каждому сплоиту, я отобрал следующие (Инфа в таком виде: ---название MSF---Название аналога в связке"eCore Exploit Pack v1.2"---Описание---Цель---Код ситуации---": 0. windows/browser/ani_loadimage_chunksize - (аналог: Windows .ani File Parsing Buffer Overflow). 0day сплоит (нет в релизе, есть в обновлении MSF 3.0, на данный момент ещё не рабочий). Сплоит эксплуатирует уязвимость переполнение буфера в LoadAniIcon () функции библиотеки UER32.dll. Баг вызван через браузер Интернет Эксплорер (6 и 7), использущий директиву загрузки стиля КУРСОРА злонамеренного .ANI файла. Internet Explorer будет ловить любые исключения, которые происходят, в то время как неправильный курсор загружен, эксплоит будет терпеть неудачу, если выбрана неправильная цель. Этот модуль будет обновлен в ближайшем будущем, чтобы исполнить fingerprinting на стороне клиента и брутфорс (грубая сила). Эта уязвимость была обнаруженна Александром Сотировым Determina и была открыта вновь, McAfee. Цели: Цитата:
1. windows/browser/ms06_001_wmf_setabortproc - (аналог: WMF [модифицированный]). Сплоит никогда не роняет броузер IE, так как использует уязвимость не в нём, а в системной библиотеке. В общем сам сплоит и начинка содержатся в скачиваемом автоматически файле-картинке. Цель: "Windows XP/2003/Vista Automatic" - удобен тем, что пробивает все версии виндов <=Windows-XP-SP2 (не пропатченные естественно). Код ситуации, переменная rotation=3 2. windows/browser/ms06_057_webview_setslice - (аналог: WebViewFolderIcon (setSlice) Buffer Overflow Exploit). Cплоит эксплуатирует уязвимость в WebViewFolderIcon ActiveX control, включённый в Windows 2000, Windows XP, and Windows 2003. И так цель: "Windows XP SP0-SP2 / IE 6.0SP1 English" Неплохой сплоит, правда вешает IE. Код ситуации, переменная rotation=3 3. windows/browser/ms06_055_vml_method - (аналог: VML Remote Buffer Overflow Exploit). Cплоит экспуатирует уязвимость в Microsoft Internet Explorer используя переполнение буфера in the VML коде процесса (VGX.dll). Протестирован на Windows 2000 SP4, Windows XP SP0, and Windows XP SP2. Цель: "Windows NT 4.0 -> Windows 2003 SP1" Код ситуации, переменная rotation=3 4. windows/browser/ie_createobject - (аналог: Mdac (RDS, MS06-014) [модифицированный, невидимый]). Cплоит экспуатирует уязвимость in Internet Explorer, нарушая режим эксплуатации уязвимых объектов ActiveX. Обратим внимание на цели: Цитата:
5. windows/browser/ms03_020_ie_objecttype - (аналог: отсутсвует). Старенький сплоит, эксплуатирует уязвимость в Internet Explorer, возникающую при обработке атрибута ТИП ОБЪЕКТА. Цель: "Windows NT/XP/2003 Automatic". Код ситуации, переменная rotation=3 6. windows/browser/winamp_playlist_unc - (аналог: отсутствует). Сплоит эксплуатирует уязвимость в Winamp- универсальном проигрывателе. Это возможно, когда аудио путь к файлу, внутри плейлиста, состоит из UNC-пути с длинным именем. Сплоит поставляет плейлист через браузер. Проверен на Winamp 5.11 и 5.12. В общем может повести, если жертва пользуется стареньким винамоп, подсунув ему специальный плейлист, можно получить полный контроль над машиной. Цель Winamp <= 5.12. Код ситуации 3, 19, 25 (актуально для всех браузеров). 7. windows/browser/realplayer_smil - (аналог: отсутствует). Сплоит эксплуатирует переполнение стека в RealNetworks RealPlayer 10 и 8. Созданый URL связывается со злонамеренным SMIL файлом, удалённый нападавший может переполнить буфер и выполнить произвольный код. Когда пользуютесь этот модулем, убедитесь, что установили URIPATH с расширением '.smil'. Этот модуль был проверен с RealPlayer 10 сборки 6.0.12.883 и RealPlayer 8 сборки 6.0.9.584. В общем может повезти, если жертва пользуется уязвимым RealPlayer`ом, подсунув ему специальный файлик с расширение '.smil'. В случае удачи - получаем контроль над машиной. Цель "дырявые RealPlayer 8,10". Код ситуации 3, 19, 25 (актуально для всех браузеров). 8. windows/browser/xmplay_asx - (аналог: отсутствует). Сплоит эксплуатирует переполнение стека в XMPlay 3.3.0.4. Уязвимость вызвана из-за граничной ошибки в пределах синтаксического анализа из playlists содержащего чрезмерно длинное имя файла. Сплоит использует ASX формат файла. В общем ситуауия, аналогичная дыре в WinAmp. Цели: "Windows 2000 Pro English SP4, Windows XP Pro SP2 English". Код ситуации, переменная rotation=3 9. windows/browser/ms06_013_createtextrange - (аналог: отсутствует). Сплоит эксплуатирует уязвимость выполнения кода в Microsoft Internet Explorer. И IE6 и IE7 (2 Beta) уязвимы. Это будет повреждёние памяти, в некотором смысле, которое, при некоторых обстоятельствах, может привести к неправильному/испорченному указателю таблицы. EIP укажет к очень отдаленному, несуществующему местоположению памяти. Этот сплоит - результат объединения трех различных представлений эксплуатации и надежно проверен против Windows XP SP2. Эта уязвимость была независимо найдена многими сторонами. Метод разбрызгивания динамической памяти, используемый этим сплоитом, найден изначально Skylined`ом.. В общем, на практике этот сплоит при эксплуатации начнинает пожирать память (до 1 Гб.) Так как памяти может нехватить - используется файл подкачки и из-за этого скорость его работы довольно медленная, кроме того может просто уронить IE. Цель: "Microsoft Internet Explorer. И IE6 и IE7 (2 Beta)". Код ситуации 3. 10. windows/browser/ie_iscomponentinstalled - (аналог: отсутствует). Тоже старенький сплоит, эксплуатирует переполнение стека в Internet Explorer. Эта ошибка{дефект} была исправлена в Windows 2000 SP4 и Windows XP SP1. Т. е. их он не пробивает. цель "Непатченная Windows XP SP0 with Internet Explorer 6.0" - не густо :-(. Код ситуации 3 11. windows/browser/mcafee_mcsubmgr_vsprintfСплоит эксплуатирует ошибку в McAfee Подписаном Менеджере элемента управления ActiveX. Из-за опасного использования vsprintf, возможно вызвать переполнение стека, передав большую строку к одной из COM-подпрограмм, такой как IsAppExpired. Эта уязвимость была обнаруженна Карлом Линн`ом. В общем, может повезти в том случае, если этот ActiveX элемент установлен. Цель: "Windows XP SP0/SP1". Код ситуации 3 12. windows/browser/mirc_irc_url - (аналог: отсутствует). Сплоит эксплуатирует переполнение стека в mIRC 6.1. Предоставляя чрезмерно длинный и специально обработанный URL к 'irc' протоколу, атакующий может перезаписать буфер и перехватить управление в выполняемой прогамме. В общем, если стоит этот клиент - Ирка 6.1, то может повезти. Цель: "Windows 2000 Pro English All, Windows XP Pro SP0/SP1 English с установленно Иркой 6.1". Код ситуации 3. 13.windows/browser/aim_goaway - (аналог: отсутствует). Сплоит эксплуатирует недостаток в обработке AOL Instant Messenger'ом 'goaway' в обработчике URI. Атакующий может выполнить произвольный код, предоставив чрезмерно большой буфер, как параметр сообщения. Этот баг, как известно, затрагивает AOL Instant Messenger 5.5. Цель: "Windows NT/2000/XP/2003 Automatic". Код ситуации 3 14.windows/browser/apple_itunes_playlist- (аналог: отсутствует). Сплоит эксплуатирует переполнение стека в Apple ITunes 4.7 сборки 4.7.0.42. Созданый URL линк связывается со злонамеренным PLS-файлом и удаленный атакующий может переполнить буфер и выполнить произвольный код. Когда используете этот модуль, убедитесь, что установили переменную URIPATH с расширением '.pls '. И снова переполнение в проигрывателе, анологично WinApm. В общем повезёт, если установлен бажный Apple ITunes 4.7. Цель: "Windows 2000 Pro English SP4, Windows XP Pro English SP2". Код ситуации 3. 15.windows/browser/apple_quicktime_rtsp- (аналог: отсутствует). Сплоит эксплуатирует переполнение буфера в Apple QuickTime 7.1.3. Этот модуль был вдохновлен MOAB-01-01-2007. В общем может повезти, если установлен Apple QuickTime 7.1.3. Цель: "Apple QuickTime Player 7.1.3". Код ситуации наверно 3, хотя может и не только. (не знаю уязвима ли программа под MAC). Проанализируем для Mozilla FireFox: Цитата:
2.multi/browser/mozilla_compareto - (аналог: отсутствует). Сплоит эксплуатирует уязвимость выполнения кода в Mozilla Suite, Mozilla Firefox, и приложения Mozilla Thunderbird. Этот модуль контролирует порт Aviv Raff's HTML PoC. Цель: "Firefox < 1.0.5 Windows". Код ситуации 35. 3.multi/browser/mozilla_navigatorjava - (аналог: отсутствует). Сплоит эксплуатирует уязвимость выполнения кода в Mozilla Suite, Mozilla Firefox, и приложения Mozilla Thunderbird. Успешная эксплуатация уязвимости возможна, если Java-плагин установлен. Обратим внимание на цели: Цитата:
... обновлено, добавлен сплоит под №0, продолжаю анализ сплоитов (19 шт. уже не мало, но это не всё)... |
Было бы просто отлично(хотя и так супер), если бы автор описал нам новейшую уязвимость Ani курсорчиков под винды. Я думаю, что большинство виндовых машин уязвимы, а значит эта уязвимость архиактуальна.
|
Что-то не понял, а где часть 5?
|
Цитата:
|
Цитата:
P.S. Надоело описывать одно и тоже. n0ne сделает перевод мана для разработчиков, кроме того выйдет рабочий сплоит the ANI vulnerability on Vista (skape), если уже не вышел, вот тогда можно будет и пятую часть написать. ;) |
Сделал update релиза MSF 3.0 появился в списочке этот сплоит!
windows/browser/ani_loadimage_chunksize - завтра буду тестить, Добавлю в анализ и потом в свой ротатор, так как очень актуален, как заметил Alexsize. Вот инфа: Цитата:
Цитата:
|
| Время: 13:19 |