В борьбе с яйцеголовыми
Master-lame-master
Xakep, номер #059, стр. 059-066-4
После того как хакер грамотно составил систему скриптов своего бэкдора, он незаметно прописывает строчку "source /path/to/backdoor.tcl" в файл "scripts/alltools.tcl" (тогда бэкдор загружается по умолчанию). Теперь его сценарий будет выполняться при каждом рестарте бота. Осталось только потестить бэкдор. Наш новый ботовод отдал эггдропу следующую команду: "df root 31338". В результате чего получена рутовая консоль на 31338 порту. После выхода из нее порт автоматически закрывается. Это очень удобно и безопасно, т.к. нет никаких следов в таблице процессов.
Make clean
Как видишь, взломщик добился своего. Он порутал систему. На это был потрачен всего час. Осталось выполнить косметические изменения - почистить логи. Для этого хакер удаляет скачанный ptrace-эксплоит, а также строку из /etc/inetd.conf (не забыв рехешнуть процесс). Далее происходит чистка /var/log/messages и остальных системных журналов.
В завершение наш герой набирает команду "botnet do -user evil", удаляет хэндл mutant и восстанавливает линк с ботнетом, думая о том, как на следующий день отвязаться от назойливого ботмастера ;). Теперь хакер стал владельцем ботнета, плюс шелла с довольно неплохим каналом.
Линковка бота
Слинковать двух ботов между собой - дело нехитрое, но не все знают, как это осуществить. Я расскажу, как линкуются два бота, находящихся на разных серверах. Пусть у них будут ники xakep и lamer. Заходим на партилайн к lamer и командуем:
.+bot xakep *!*xakep@*.xakep.ru
Затем укажем адрес и порт, с которым будет осуществляться соединение:
.chaddr xakep www.xakep.ru:3333
И напоследок изменим флаги бота:
.chaddr xakep +gs (флаги дают возможность пересылать юзерфайл).
Проделываем аналогичную операцию на втором боте. Если все сделано верно - можно линковать:
.link xakep
Теперь посмотри дерево ботов. Оно должно состоять как минимум из двух ботов:
.bottree
Следует отметить, что для автоматической линковки нужно установить на боте флаг +h. С таким флагом эггдроп будет автоматически восстанавливать соединение при запуске.
Eggdrop без TCL
Известно, что для установки бота нужен TCL. А что делать, когда нет прав на корректную инсталляцию библиотек? В этом случае необходимо сконфигурить TCL с префиксом, ведущим в домашний каталог (например, /home/eggdrop/tcl). Затем надо выполнить две команды:
export TCLLIB=/home/eggdrop/tcl/lib
export TCLINC=/home/eggdrop/tcl/include,
Теперь можно запускать configure-скрипт бота, но перед стартом команды make объяви еще одну переменную:
export LD_LIBRARY_PATH=/home/eggdrop/tcl/lib.
После всех этих операций бот должен скомпилиться.
Что помогло хакеру при взломе?
1. Временами для определения сложности взлома сервиса возникает необходимость снифать трафик между сервером и клиентом. Этим не следует пренебрегать.
2. Находчивость и смекалка очень часто помогают найти выход из, казалось бы, неразрешимой ситуации. Пример тому - определение хакером отсутствия на боте статического владельца.