Pin4eGgg~
30.11.2008, 14:21
Так как часто задаются вопросы типа "Что такое сплойт? Как его юзать?", выкладываю эту статью. Использованы материалы [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода который, используя возможности предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению привилегий или отказу в обслуживании компьютерной системы.
Существует несколько методов классификации уязвимостей. Наиболее общий — это то, каким образом эксплойт контактирует с уязвимым программным обеспечением. «Удалённый эксплойт» работает через сеть и использует уязвимость в защите без какого-либо предварительного доступа к уязвимой системе. «Локальный эксплойт» требует предварительный доступ к уязвимой системе и обычно повышает привилегии для лица, запускающего эксплойт над уровнем, который был предоставлен системным администратором. Эксплойт «подставного сервера» подвергает риску машину конечного пользователя в том случае, когда к нему был совершён доступ с помощью уязвимого клиентского приложения. Эксплойт против клиентского приложения может также требовать некоторого взаимодействия с пользователем уязвимого приложения и может быть использован в связке с методами социального инжиниринга, т.е. несанкционированного доступа к информации без использования технических средств.
Эксплойты могут также быть классифицированы по типу уязвимости, которую они атакуют. См. переполнение буфера, межсайтовый скриптинг, подделка межсайтовых запросов, SQL-инъекция.
Другая классификация по действию предпринятому против уязвимой системы: несанкционированный доступ к данным (копирование, удаление или модификация), выполнение кода, отказ в обслуживании.
Эксплойты могут быть разработаны для непосредственного обеспечения суперпользовательского уровня доступа к компьютерной системе. Однако, возможно использовать несколько эксплойтов — первый для получения удаленного доступа с невысоким уровнем, и повторно, для локального повышения привилегий до тех пор, пока не будет получен уровень доступа « 0-дневными эксплойтами» (англ. zero-day, 0-day exploits) и получение доступа к таким эксплойтам — первейшее желание неквалифицированных вредоносных хакеров, так называемых скрипт-кидди.
Теперь поподробнее...
Виды эксплоитов:
1. Эксплоит может представлять из себя одиночный файл, который необходимо либо сразу запустить либо предварительно компилировать.
2. Эксплоит быть архивом, чаще с расширениями .tar или .tar.gz, потому как обычно они пишутся для UNIX-систем. В архивах могут лежать:
те же .pl файлы
скрипт или исходник на C, Java, и.т.д.
просто описание
те же .pl файлы
и т.д.
Алгоритм действия
- Сканируем хост (жлучше сканировать nmap'ом)
- Смотрим открытые порты и что на этих портах висит
- Телнетимся на открытые порты и узнаем версии демонов
- Находим бажный демон
- Ищем сплойт
- Засылаем его на shell-аккаунт в лине
- Компилим сплойт
- Пускаем его
Поиск эксплоита
Допустим, что мы узнали, что какой-то демон бажный. Идём в bugtrack'и и находим эксплоит.
Ищем сплоит либо по версии демона либо по версии операционной системы.
shell-аккаунт:
Варианты:
У вас есть шелл (не рассматривается - переходите к следующему заголовку)
У вас нет шелла и вы хотите его поиметь
Что делать:
Можно использовать халявный шелл (с ограничениями функций)
У вас есть собственный UNIX
Компиляция
Предположим, вы нашли нужный эксплоит на Cи.Обычно сплойты пишутся как раз на С.
gcc file.c -o file - Скомпилировать код и получить при выходе binary-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) и не имеющая контрольного терминала.
Особо выделю следующий очень часто задаваемый вопрос: "Как запускать сплойт на пёрле? Когда я его запускаю, он у меня сразу вырубается!(".
Ответ: Скачиваем Active perl - интерпретатор языка Perl, открываем блокнот, пишем там "cmd", сохраняем в директорию C:\Perl\bin\ c расширением *.bat
Запускаем.
(c) beched
Эксплойт (англ. exploit — использовать) — это общий термин в сообществе компьютерной безопасности для обозначения фрагмента программного кода который, используя возможности предоставляемые ошибкой, отказом или уязвимостью, ведёт к повышению привилегий или отказу в обслуживании компьютерной системы.
Существует несколько методов классификации уязвимостей. Наиболее общий — это то, каким образом эксплойт контактирует с уязвимым программным обеспечением. «Удалённый эксплойт» работает через сеть и использует уязвимость в защите без какого-либо предварительного доступа к уязвимой системе. «Локальный эксплойт» требует предварительный доступ к уязвимой системе и обычно повышает привилегии для лица, запускающего эксплойт над уровнем, который был предоставлен системным администратором. Эксплойт «подставного сервера» подвергает риску машину конечного пользователя в том случае, когда к нему был совершён доступ с помощью уязвимого клиентского приложения. Эксплойт против клиентского приложения может также требовать некоторого взаимодействия с пользователем уязвимого приложения и может быть использован в связке с методами социального инжиниринга, т.е. несанкционированного доступа к информации без использования технических средств.
Эксплойты могут также быть классифицированы по типу уязвимости, которую они атакуют. См. переполнение буфера, межсайтовый скриптинг, подделка межсайтовых запросов, SQL-инъекция.
Другая классификация по действию предпринятому против уязвимой системы: несанкционированный доступ к данным (копирование, удаление или модификация), выполнение кода, отказ в обслуживании.
Эксплойты могут быть разработаны для непосредственного обеспечения суперпользовательского уровня доступа к компьютерной системе. Однако, возможно использовать несколько эксплойтов — первый для получения удаленного доступа с невысоким уровнем, и повторно, для локального повышения привилегий до тех пор, пока не будет получен уровень доступа « 0-дневными эксплойтами» (англ. zero-day, 0-day exploits) и получение доступа к таким эксплойтам — первейшее желание неквалифицированных вредоносных хакеров, так называемых скрипт-кидди.
Теперь поподробнее...
Виды эксплоитов:
1. Эксплоит может представлять из себя одиночный файл, который необходимо либо сразу запустить либо предварительно компилировать.
2. Эксплоит быть архивом, чаще с расширениями .tar или .tar.gz, потому как обычно они пишутся для UNIX-систем. В архивах могут лежать:
те же .pl файлы
скрипт или исходник на C, Java, и.т.д.
просто описание
те же .pl файлы
и т.д.
Алгоритм действия
- Сканируем хост (жлучше сканировать nmap'ом)
- Смотрим открытые порты и что на этих портах висит
- Телнетимся на открытые порты и узнаем версии демонов
- Находим бажный демон
- Ищем сплойт
- Засылаем его на shell-аккаунт в лине
- Компилим сплойт
- Пускаем его
Поиск эксплоита
Допустим, что мы узнали, что какой-то демон бажный. Идём в bugtrack'и и находим эксплоит.
Ищем сплоит либо по версии демона либо по версии операционной системы.
shell-аккаунт:
Варианты:
У вас есть шелл (не рассматривается - переходите к следующему заголовку)
У вас нет шелла и вы хотите его поиметь
Что делать:
Можно использовать халявный шелл (с ограничениями функций)
У вас есть собственный UNIX
Компиляция
Предположим, вы нашли нужный эксплоит на Cи.Обычно сплойты пишутся как раз на С.
gcc file.c -o file - Скомпилировать код и получить при выходе binary-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) и не имеющая контрольного терминала.
Особо выделю следующий очень часто задаваемый вопрос: "Как запускать сплойт на пёрле? Когда я его запускаю, он у меня сразу вырубается!(".
Ответ: Скачиваем Active perl - интерпретатор языка Perl, открываем блокнот, пишем там "cmd", сохраняем в директорию C:\Perl\bin\ c расширением *.bat
Запускаем.
(c) beched