Вертикаль власти eto'o Хакер, номер #080, стр. 080-124-7 [защищаем свой ботнет] Фактически защита ботнета сводиться к защите твоего сервера. Именно по этой причине не рекомендуется держать ботов на халявных хостингах, читать новостные ленты и проявлять профессионализм при администрировании сервера. Теперь расскажу о том, как можно замаскировать ботнет, чтобы его не было видно снаружи. Давай подумаем, как твой сервис могут запалить. Ну, скажем, какой-то крутой пользователь все-таки заметил работу вируса и разгадал, к какому узлу он подключается. Естественно, что он тут же наберет в адресной строке URL управляющего скрипта и будет ожидать увидеть там plaintext-команду. Но не тут-то было! В главном скрипте мы будем осуществлять проверку на корректность обращения к сценарию. Обрати внимание, все боты при вызове скрипта соблюдают одни и те же правила: передают 2 переменные через GET-запрос (id и extend), при этом не заполняют поле user-agent. По этим двум критериям можно легко отделить реальных ботов от левых посетителей, которые просто набрали в адресной строке URL управляющего скрипта. Вот как это выглядит примерно: if(!checktype($_GET[id], "id") or !checktype($_GET[extend], "extend")) { #тут содержимое страницы, которую надо показывать всем левакам echo "Добро пожаловать на сайт Петра Васильева. Мне 16 лет, учусь в десятом классе."; } else { # тут - работа с ботом. Вызов функций AddBot(), GetWork() и т.д. } Функция checktype здесь - просто блок кода, который проверяет передаваемую строку на соответствие нашим собственным типам «id» и «extend». Даже если чувак со стороны поймет, что страница, которую он видит - фэйк, то он никогда в жизни не вкурит, какие именно переменные и в каком формате нужно передать скрипту, чтобы он заработал с ним также, как работает с ботами. Однако все это ему не потребуется, если процесс передачи информации не будет никак защищен - стоит только отснифать plain-text запросы и ответы, как все станет понятно. По этой причине для яростных параноиков могу посоветовать использовать SSL-шифрование трафика :). INFO При передаче длинных запросов методом GET могут возникнуть серьезные проблемы - текст начнет обрубаться и передаваться некорректно. Следует понимать, что большие объемы данных нужно передавать POST'ом. WWW На сайте www.bantex.ru/html/whois_instal.htm ты найдешь whois-сервис с человеческим лицом: перловый скрипт самостоятельно определяет всю географическую информацию о хосте и выводит ее в виде красочного сообщения с флагом страны. CD На нашем диске ты не найдешь 100% доделанную, красивую, вылизанную и сверх функциональную систему для управления ботами. Такая штука стоит кучу денег, и, чтобы написать ее, нужно немало времени :). Поэтому на диске ты найдешь скелет системы с реализованной основной функциональностью, но без красивых иконок и вылизанного кода. |