Управление RAT Ms-Rem Хакер, номер #079, стр. 079-108-1 (Ms-Rem@yandex.ru, http://ms-rem.narod.ru) Методы управления троянами и особенности их реализации При разработке RAT (Remote Administration Tool) хакеру очень важно грамотно реализовать систему управления трояном, от которой будет зависеть эффективность использования ресурсов удаленного компьютера, время жизни программы, а также безопасность самого хакера. Эта статья поведает о том, какие методы управления существуют в природе, как и при каких обстоятельствах лучше применять их, а также покажет, как правильно претворить в жизнь эти методы на твоем любимом Delphi, пользуясь исключительно API. [c чего начинается RAT?] Для начала разработчику следует определиться с назначением своего трояна. Будет ли это простая программа удаленного администрирования, IRC-бот, кейлоггер, PassSender или, быть может, сетевой червь. Для каждого вида RAT будут подходить свои методы управления. Взять, к примеру, классический «администраторский» троян. Он должен уметь открывать шелл, предоставлять возможность скачивать\закачивать файлы и делать скриншоты. Всякие приколы вроде открытия CD или проигрывания звуков в нем не нужны - это все игрушки. Хотя, как это ни забавно, если RAT делается на продажу, то такие приблуды можно и реализовать. Из всего вышесказанного следует, что подобный троян должен быть интерактивным и немедленно реагировать на инструкции хозяина. Лучшим решением в данном случае будет открытие на протрояненной машине порта для последующего приема через него команд. Однако в программах иного рода, к примеру в кейлоггерах, отправляющих хакеру все набранное на клавиатуре жертвы, или утилитах, извлекающих из компьютера пароли, такой метод уже будет не очень удобен. Если использовать его и здесь, то для простого получения результатов работы RAT придется подключаться ко всем зараженным клиентам по отдельности, что, несомненно – морока. Я уже даже не упоминаю о том, что применение подобного метода плохо скажется на безопасности хакера, так как человек, обнаруживший трояна, может запросто дождаться подключения недоброжелателя и вычислить его IP. Поэтому в таких случаях обычно используют управление по FTP или мылу. Например, заводятся два почтовых ящика: с первого RAT забирает команды для исполнения, а на второй отсылает результаты своей работы. Это весьма удобная система, но ее недостаток в том, что в любой момент могут закрыть и FTP, и мыло, используемые для управления RAT, после чего хакер потеряет всю сеть протрояненных машин. Чтобы не попасть в такую ситуацию, имеет смысл совместить этот способ управления с еще несколькими: например, предусмотреть обновление списка почтовых ящиков через IRC. С паразитами дело обстоит намного сложнее. Допустим, хакер захотел создать червя, который, помимо распространения в Сети, будет нести «полезные» функции по управлению зараженным компьютером. Он, конечно, может использовать для управления червяком FTP или мыло, но толку от этого будет немного. Время реакции сети зараженных машин будет довольно большим (что не очень хорошо для любителей DDoS-атак), все источники получения команд быстро закроют и, конечно же, ребята из управления «К» в таком случае тоже не будут сидеть сложа руки. Поэтому по-хорошему система управления ботнетом должна быть максимально децентрализована и построена так, чтобы затруднить обнаружение того, кто отдает команды, а также иметь малое время отклика. Увы, очень трудно создать протокол управления, отвечающий одновременно всем этим требованиям, поэтому разработчику приходится приносить определенные жертвы, исходя из основного предназначения RAT. |