Многих людей интересует вопрос: «Что же такое эксплоит»? В этой статье я постараюсь дать максимально развернутый ответ на него.
Виды эксплоитов
- Эксплоит может представлять из себя одиночный файл, который необходимо либо сразу запустить либо предварительно компилировать.
- Эксплоит может представлять из себя архив, чаще с расширениями .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) и не имеющая контрольного терминала. Резидентка, короче.