DataLife Engine > Безопасность > Эксплойты
Эксплойты24 октября 2007. Разместил: podpole |
Эксплойт (англ. 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 Запускаем. |