Навигация
Цитата

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

Эксплоит – это такая программа, которая написана с целью эксплуатации (использования) конкретной дыры (уязвимости) в конкретном приложении (ОС, обычная программа, веб-приложение). Эксплоит может быть написан практически на любом языке программирования, (наиболее частые: 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/d....9.2_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

Где можно найти информацию про эксплоиты (желательно на русском)?
Про эксплоиты можно почитать на порталах по безопасности
(www.securityfocus.com и т.д.) или на сайтах отечественных ][ак-групп.

Где найти и скачать эксплоиты?
Эксплоиты можно найти по следующим адресам:
www.securitylab.ru
www.insecure.org
www.hack.co.za
www.packetstormsecurity.org
www.securityfocus.com
www.ya.ru
www.gg.ru

Что такое SQL, PHP-инъекции, межсайтовый скриптинг – XSS атаки.

Немного об SQL and PHP injection (непосредственно имеющим отношение к эксплоитам).

Web-приложения, написанные на языках, использующих C/C++/Perl/PHP (точно на таких же языках пишутся эксплоиты) также могут быть уязвимы к таким традиционным атакам как XSS, могут быть произведены манипуляция кодом и содержимым SQL-инъекции и PHP-инъекции.

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

1. Межсайтовый скриптинг (XSS).
Принцип работы межсайтового скриптинга основан на внедрении злонамеренного кода в HTML-код страницы, что приводит к выполнению такого кода на машине «жертвы». Давайте рассмотрим эту уязвимость на примере сайтов использующих PHP .Если атакующий получит возможность вставить произвольный HTML-код, то он сможет управлять отображением веб-страницы с правами самого сайта.
Пример XSS атаки: «http://host/xxx.php?name=»

Если внедрить код в уязвимую страницу сайта или форума, то вполне реально получить содержимое «печенек» администратора.
Также, XSS представляет опасность, если произвольный код отображается на страницах с расширением shtml, т.е. сервер поддерживает технологию SSI (Server Side Includes). Это может привести к чтению или выполнению произвольных файлов на сервере.

2. SQL-инъекции.
SQL-инъекция относится к вставке метасимволов SQL вводимые пользователем данные, что приводит к изменению запроса в конечной базе данных. Как правило, злоумышленники для начала определяют уязвимость сайта к такой атаке (для этого посылается знак одинарной «кавычки»). Последствия выполнения такой атаки на уязвимом сайте могут находиться в пределах от появления детального сообщения об ошибке, что раскрывает злоумышленнику используемую на сайте технологию, до доступа к закрытым областям сайта или выполнения на сервере произвольных команд операционной системы.

Методы SQL-инъекции зависят от типа используемой базы данных. Например, SQL-инъекция на базе данных «Oracle» осуществляется в основном с помощью использования ключевого слово union, и она намного более трудна, чем на MS SQL-сервере, где можно выполнить множественные запросы, отделяя их символом точки с запятой. В заданной по умолчанию конфигурации MS SQL-сервер выполняется с привилегиями Local System и имеет расширенную процедуру «xp_shell», позволяющую выполнение команд операционной системы.

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

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

Что такое уязвимости в Web-приложениях и как их использовать, если они доступны?

Я выделю только десять, наиболее опасных «багов» (уязвимостей) в Web-приложениях.
На первом месте списка находится уязвимость, связанная с отсутствием проверки параметров в http-запросах. В результате, используя особые параметры, ][акер может получить доступ к ресурсам сервера через Web- приложение.

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

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

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

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

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

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

На девятом месте находятся уязвимости, связанные с отсутствием надлежащей защиты подсистем удаленного администрирования. И хотя наличие Web интерфейса удобно, поскольку позволяет администратору управлять системой с любого подключенного к cети компьютера, при отсутствии надежной защиты то же самое может делать и ][акер.

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

(С) ReanimatoR
//п.с статья полезная для начинающих.

Опубликовано:22.08.08, Просмотров:31642, Печать