By Reanimator.
Вопрос:Что такое эксплоит?
Ответ:Эксплоит – это такая программа, которая написана с целью эксплуатации (использования) конкретной дыры (уязвимости) в конкретном приложении (ОС, обычная программа, веб-приложение). Эксплоит может быть написан практически на любом языке программирования, (наиболее частые: C/C++, Perl, PHP, HTML+JavaScript) . Также, эксплоит может представлять из себя одиночный файл, который необходимо либо сразу запустить, либо предварительно скомпилировать. И еще, эксплоит может представлять из себя архив, чаще с расширениями .tar или .tar.gz, потому как большинство из них пишутся под UNIX системы. В этих архивах может лежать что угодно:
* те же .pl файлы
* скрипт или исходник на C, Java, etc
* просто описание "хитрого обращения"
* etc
Вопрос:Какие бывают виды эксплоитов?
Ответ:Эксплоиты бывают локальными (local) и удаленными (remote). Используя локальные эксплоиты, можно изменить привилегии, уже имея доступ к машине. Удаленные же эксплоиты позволяют получить некоторые привилегии на удаленной машине, а уже эти полученные привилегии можно расширять, используя локальные эксплоиты. Так, например, если мы имеем FreeBSD <=4.3 с запущенным telnetd (23 порт), используя удаленный эксплоит, приводящий к переполнению буфера, получаем привилегии того пользователя, от которого запущен процесс telnetd.
Вопрос:На какие классы делятся эксплоиты?
Ответ:Class'ные эксплоиты.
Некорректно говорить, что эксплоиты приводят к тому-то и тому-то. На самом деле, они просто переполняют буфер, а какие-либо действия выполняет Shell-код. Именно от содержания Shell-кода зависит то, что произойдет при успешном выполнении атаки: откроется порт, выполнится команда или сервер уйдет в «Даун».
DOS Shellcode Xploits.
Чаще всего, эти эксплоиты удаленного действия. Целью, которую преследует ][акер, натравливая такую штуку на уязвимый сервер, является выведение из строя («Даун») атакуемого сервиса или всей операционной системы (да-да, бывают такие случаи, когда повешенный демон забирает с собой всю ОС). С каждым днем происходит все больше таких атак. Почему? Потому что тем, кто заказывает эти атаки, не нужна информация с сервера. Цель таких атак, как правило, банальное лишение конкурента дееспособности. Согласись, атаковать уязвимый сервис, подверженный DOS-атаке, проще, чем натравливать целую армию компьютеров на произведение ICMP- и подобных ей атак, действующих не проработанным принципом, а количеством. Второй причиной является то, что иногда, для того чтобы насолить врагу, достаточно DOS-атаки, а не rm – rf, а уязвимостей, позволяющих произвести убойную атаку, гораздо больше, чем тех, которые позволяют получить доступ. Это происходит потому, что часто переполнить буфер бывает достаточно легко, а «впарить» shell-код так, чтобы он выполнился, как задумано, очень сложно, а порой даже нереально, так как в дырявой программе все-таки существует какая-то вредная проверка на «вшивость».
Вопрос:При компиляции исходника выдается ошибка (Не хватает библиотеки!), что делать?
Ответ:Вероятно, вы просто забыли установить какую нибудь библиотеку.
Посмотрите, какие библиотеки использует эксплоит (в исходнике) и проверьте, все ли они имеются в наличии. Как минимум должны быть библиотеки для работы с сетью.
Вопрос:При компиляции исходника выдается синтаксическая ошибка в исходнике, что не так?
Ответ:Ответов несколько. Возможно это не эксплоит, а фейк (если ты его
стрейдил). Возможна и другая ситуация, например в код вкралась
синтаксическая ошибка (при копировании ты чего-то не доглядел). Ну и
третий вариант - ошибка нарочно допущена автором эксплоита. Очень часто
эксплоиты защищают таким методом. Т.е. авторы слегка ломают эксплоит,
так, чтобы проффесионал, понимая суть происходящего, мог исправить код.
Таким образом, реализуется "защита от дурака".
Вопрос:Для чего нужен эксплоит?
Ответ:Эксплоиты используются в основном для того, чтобы:
1)получить доступ к системе;
2)поднять свои права в системе (наиболее характерно для *NIX)
3)за DoS'ить систему «до смерти» (отправить в полный даун)
4)получить пароли пользователей (взлом форумов, чатов, гостевых, и прочих веб-приложений)
Вопрос:Как пользоваться готовыми (скачанными с инета) эксплоитами?
Ответ:Эксплоиты, написанные на С/С++ нужно компилировать в исполняемые файлы (если они предоставлены в текстовом виде) и только потом запускать.
Для использования эксплоитов, написанных на Perl'е, PHP нужны интерпретаторы этих языков (компиляция не нужна).
Чтобы запускать эти эксплоиты нужно давать их на обработку интерпретатору (соответственно Perl интерпретатор и PHP интерпретатор
Вопрос:Как «писать» эксплоиты?
Ответ:Представим, что мы нашли баг на переполнение в каком-нибудь софте и просто горим желанием его использовать (а впоследствии сообщить о нем производителю), причем не как банальный DoS, а как способ получения доступа к машине с таким софтом. Для этого потребуется написать эксплоит под наш баг, который бы открывал командный shell (шелл) на каком-нибудь порту. Процесс написания эксплоита мы будем делить на три этапа, связанных с использованием разных инструментов. Первый этап – сбор данных об уязвимости: поиск функции, в которой происходит переполнение, запись адреса возврата этой функции, размера буфера и кучи других необходимых вещей. Для этих действий нам потребуются утилиты двух видов: отладчики и дизассемблеры. С помощью дизассемблеров очень легко ориентироваться в коде уязвимой программы, а отладчик (дебаггер) будет ключом к данным, возникающим в ходе работы приложения, – возможность просмотреть стек в момент переполнения меня всегда очень радовала.
Второй этап – написание shell-кода, голого куска программы, который бы открывал доступ к компьютеру жертвы. Это самая ответственная и сложная, на мой взгляд, часть процесса. Здесь нам понадобится ассемблер, ведь только с его помощью можно создать работающий, отвечающий всем хитрым требованиям код.
Третий этап – собственно написание эксплоита, программы, которая бы реализовала переполнение: засунула бы в буфер shell-код и сразу же им воспользовалась. Тут никак не обойтись без хорошего компилятора Си, на котором проще и удобнее написать вкусный код.
Вопрос:Где взять отладчики и дизассемблеры, которые нужны для «написания» эксплоита?
Ответ:«Soft-Ice» (отладчик). Скачать. http://www.numega.com.
«Ida Pro» (дизассемблер). Скачать. http://www.idapro.com.
Вопрос:Как компилировать эксплоиты написанные на С в Windows?
Ответ:Компилировать нужно с помощью компилятора, который можно скачать здесь http://prdownloads.sourceforge.net/dev- … setup.exe, или найти здесь http://www.bloodshed.net/dev/devcpp.html.
Вопрос:Как обрабатывать эксплоиты, написанные на Perl и PHP с помощью интерпретатора?
Ответ:Отдать на обработку интерпретаторам.
PHP интерпретатор-http://ru2.php.net/get/php-5.0.4-Win32.zip/from/this/mirror
Perl интерпретатор-http://downloads.activestate.com/ActivePerl/Windows/5.8/ActivePerl-5.8.6.811-MSWin32-x86-122208.msi
Вопрос:Где можно найти информацию про эксплоиты (желательно на русском)?
Ответ:Про эксплоиты можно почитать на порталах по безопасности
(wwwsecurityfocus.com и т.д.) или на сайтах отечественных ][ак-групп.
Вопрос:Где найти и скачать эксплоиты?
Ответ:Эксплоиты можно найти по следующим адресам:
wwwsecuritylab.ru
wwwinsecure.org
wwwhack.co.za
wwwpacketstormsecurity.org
wwwsecurityfocus.com
wwwya.ru
wwwgg.ru
Не много об SQL and PHP injection (непосредственно имеющим отношение к эксплоитам).
Вопрос:Что такое SQL, PHP-инъекции, межсайтовый скриптинг – XSS атаки.
Ответ:Web-приложения, написанные на языках, использующих C/C++/Perl/PHP (точно на таких же языках пишутся эксплоиты) также могут быть уязвимы к таким традиционным атакам как XSS, могут быть произведены манипуляция кодом и содержимым SQL-инъекции и PHP-инъекции.
Одной из главных причин возникновения таких уязвимостей является недостаточное знание безопасных методов программирования разработчиками web-приложений (о них я расскажу позже). В результате получается, что защита приложения не является основной целью разработки. Другая причина появления уязвимостей - это большая сложность свойственная онлайновым системам, что требует создание комплексных проектов и логики программирования. Итак, начнем…