PXkod - Программирование и Безопасность в сети...

Объявление

Друзья:


Уважаемые гости! Пожалуйста регистрируйтесь.
Внимание! Некоторые форумы/разделы открываются только после регистрации.



>Правила форума<

>Набор модераторов!<

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Новичкам о эксплоитах

Сообщений 1 страница 3 из 3

1

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

0

2

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_cmdshell», позволяющую выполнение команд операционной системы.

3. PHP-инъекции.

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

Ну что ж, подведем итог…
Подводя итог, нужно отметить, что независимо от конфигурации сервера, распределения прав невозможно полностью обезопасить себя от реализации подобного рода уязвимостей. Самым оптимальным решением является фильтрация переданных пользователем данных. Это и должны учитывать программисты при написании скриптов, при использовании данных методов решения задач.
Вопрос:Что такое уязвимости в Web-приложениях и как их использовать, если они доступны?
Ответ:Я выделю только десять, наиболее опасных «багов» (уязвимостей) в Web-приложениях.
На первом месте списка находится уязвимость, связанная с отсутствием проверки параметров в http-запросах. В результате, используя особые параметры, ][акер может получить доступ к ресурсам сервера через Web- приложение.
На втором месте находится несоблюдение политик управления доступом к ресурсам. Это позволяет злоумышленнику использовать закрытые ресурсы или получать доступ к учетным записям других пользователей.
На третьей позиции рейтинга значится несоблюдение правил управления учетными записями и пользовательскими сессиями. Эта уязвимость связана, прежде всего, с отсутствием надежной защиты опознавательных мандатов пользователя и идентификаторов сессий, таких как файлы cookie. Это позволяет ][акерам перехватывать данные других пользователей и пользоваться системой от их имени.
На четвертой позиции находятся уязвимости, связанные с XSS ошибками, которые могут использоваться для получения доступа к кукисам (печенькам) пользователя или нападений против Web приложения.
Под пятым пунктом упоминаются ошибки переполнения буфера, имеющиеся во многих программных продуктах - от скриптов и драйверов до операционных систем и серверного ПО. Отсутствие проверки некоторых параметров может приводить к переполнению буфера, а ][акер при этом захватывает управление компьютером. Сообщения об обнаружении ошибок переполнения появляются чрезвычайно часто.
На шестой позиции находятся дыры, связанные с отсутствием надлежащего контроля за параметрами, передаваемыми компьютерами при доступе к внешним ресурсам. Если ][акер сумеет ввести в эти параметры свои команды, последствия могут быть самыми печальными.
Далее я хочу отметить уязвимости, связанные с неправильной реализацией обработки ошибок в программном обеспечении. В некоторых случаях при возникновении ошибок ][акер может получить информацию о системе или даже доступ к ней.
На восьмой позиции находится неудачное использование криптографии. Я хочу отметить, что часто инструменты для шифрования информации имеют собственные дыры, из-за чего применение сильной криптографии теряет всякий смысл.
На девятом месте находятся уязвимости, связанные с отсутствием надлежащей защиты подсистем удаленного администрирования. И хотя наличие Web интерфейса удобно, поскольку позволяет администратору управлять системой с любого подключенного к cети компьютера, при отсутствии надежной защиты то же самое может делать и ][акер.
Наконец, на десятом месте среди уязвимостей я хотел бы опубликовать неправильное конфигурирование серверного ПО, многие настройки которого серьезно влияют на безопасности системы.
Ну вот в принципе и все…
Special for DaMaGeLaB.ORG!!!
(с) By Reanimator. DaMaGeLaB.ORG.

0

3

вот еще нашел инфу про эксплоиты для новичков:

Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода который, используя возможности предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению привилегий или отказу в обслуживании компьютерной системы.
Существует несколько методов классификации уязвимостей. Наиболее общий — это то, каким образом эксплойт контактирует с уязвимым программным обеспечением. «Удалённый эксплойт» работает через сеть и использует уязвимость в защите без какого-либо предварительного доступа к уязвимой системе. «Локальный эксплойт» требует предварительный доступ к уязвимой системе и обычно повышает привилегии для лица, запускающего эксплойт над уровнем, который был предоставлен системным администратором. Эксплойт «подставного сервера» подвергает риску машину конечного пользователя в том случае, когда к нему был совершён доступ с помощью уязвимого клиентского приложения. Эксплойт против клиентского приложения может также требовать некоторого взаимодействия с пользователем уязвимого приложения и может быть использован в связке с методами социального инжиниринга, т.е. несанкционированного доступа к информации без использования технических средств.
Эксплойты могут также быть классифицированы по типу уязвимости, которую они атакуют. См. переполнение буфера, межсайтовый скриптинг, подделка межсайтовых запросов, SQL-инъекция.
Другая классификация по действию предпринятому против уязвимой системы: несанкционированный доступ к данным (копирование, удаление или модификация), выполнение кода, отказ в обслуживании.
Эксплойты могут быть разработаны для непосредственного обеспечения суперпользовательского уровня доступа к компьютерной системе. Однако, возможно использовать несколько эксплойтов — первый для получения удаленного доступа с невысоким уровнем, и повторно, для локального повышения привилегий до тех пор, пока не будет получен уровень доступа « 0-дневными эксплойтами» (англ. zero-day, 0-day exploits) и получение доступа к таким эксплойтам — первейшее желание неквалифицированных вредоносных хакеров, так называемых скрипт-кидди.

Теперь поподробнее...

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

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

- Эксплоит может представлять из себя архив, чаще с расширениями .tar или .tar.gz, потому как большинство из них пишутся под UNIX системы. В этих архивах может лежать что угодно:

* те же .pl файлы
* скрипт или исходник на C, Java? etc
* просто описание "хитрого обращения"
* etc

Алгоритм действия

* Сканируем хост (желательно сканировать с использованием nmap)
* Смотрим открытые порты и что на них висит
* Телнетимся на открытые порты и узнаем версии демонов
* Находим дырявый демон
* Ищем эксплоит
* Засылаем его на shell-account в лине
* Компилируем его
* Запускаем эксплоит

Поиск эксплоита

Предположим, что мы узнали, что какой-то демон дырявый. Срочно бежим в bugtrack's и архивы уязвимостей и находим эксплоит.

Ищем сплоит либо по версии демона либо по версии операционной системы.

shell-account

Варианты:

1. У вас есть шелл (не рассматривается - переходите к следующему заголовку)
2. У вас нет шелла и вы хотите его поиметь

Действия:

- Можно использовать халявный шелл (однако у них отключены многие нужные вещи)

3. У вас есть собственный UNIX (переходи к следующему заголовку)

Компиляция

Допустим, мы нашли нужный нам сплоит на C. Большинство эксплоитов пишутся именно на этом языке программирования.

gcc file.c -o file - Скомпилировать C код и получить при выходе бинарник file

Если у тебя архив, то раскрываем: tar -xvzf pack.tgz
cd [имя каталога]
./configure
make
make install

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

Запуск эксплоита

Если эксплоит на Perl, тогда для запуска используется команда

perl exploit.pl [parameters|flags]
Если эксплоит на C, то
$./sploit [parameters]

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

Проблеммы на халявных шеллах

На бесплатных шеллах часто встречаются следующие проблеммы:

- недостаточно прав
- не возможно подключить .h библиотеки (которые используют все эксплоиты)

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

Несколько пояснений:

1. Что такое shell?

Дословно shell переводится как "оболочка". Это программа, которая принимает команды юзера из командной строки, преобразует их в понятную для операционки форму и выводит ответ операционки в понятной для юзера форме . Другое название shell - командный интерпретатор. Вот несколько наиболее юзабельных shell'ов: bash, sh, csh, tcsh, psh. Отличаются они тем, что у каждой shell свой язык для написания скриптов (у родственных шеллов они почти одинаковые, как у bash и sh).

Еще они отличаются по функциональности: некоторые позволяют редактировать вид командной строки. Почти у каждого шелла есть свои встроенные переменные. Если не знаешь, какой у тебя шелл, вводи команду echo $SHELL. Если хочешь поменять свой дефолтовый шелл, вводи команду chsh.

2. Что такое демон (daemon)?

Демоном называется программа, работающая в фоновом режиме (background) и не имеющая контрольного терминала. Резидентка, короче :0).

Особо выделю следующий очень часто задаваемый вопрос: "Как запускать сплойт на пёрле? Когда я его запускаю, он у меня сразу вырубается!:((".
Ответ: Скачиваем Active perl - интерпретатор языка Perl, открываем блокнот, пишем там "cmd", сохраняем в директорию C:\Perl\bin\ c расширением *.bat
Запускаем.
©beched

0