special

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Что такое эксплоит и с чем его едят?

Многих людей интересует вопрос: «Что же такое эксплоит»?
В этой статье я постараюсь дать максимально развернутый ответ на него. Итак:

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



Дата створення/оновлення: 25.05.2018