Большое количество задач, связанных со взломом, требуют автоматизированной обработки данных, но программировать для этого вовсе не обязательно. В этой статье я расскажу тебе, как пользоваться мощнейшим инструментом — программой ZennoPoster. В первую очередь она предназначена для SEO, но применений ей — великое множество.

 

Вступление

ZennoPoster — это на самом деле целый набор программ, куда входят среда визуальной разработки, не требующая знаний программирования, привычный программисту редактор кода на C# или PHP, а также диспетчер заданий, в котором крутятся разработанные тобой скрипты.

Вот неполный список того, что можно делать с помощью этого комплекса:

  • массовая регистрация аккаунтов в различных сервисах (с автоматическим решением капчи и вводом подтверждения кода из СМС);
  • парсинг контента любых сайтов;
  • выкачивание картинок и видео с преодолением ограничений;
  • отправка сообщений в группы соцсетей и на стены пользователей, в форумы и блоги;
  • размещение объявлений на сайтах типа avito.ru;
  • продвижение сообществ в соцсетях;
  • накрутка всего и вся: баннеров, голосований и так далее;
  • перебор логинов, паролей, кодов, ключевых фраз на любых сервисах, которые работают через HTTP.
В окне Project Maker последовательность действий визуализирована в виде блоков, соединенных стрелками
В окне Project Maker последовательность действий визуализирована в виде блоков, соединенных стрелками

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

INFO


ZennoPoster был разработан семь лет назад программистами из Нижнего Новгорода.

Если что-то нельзя реализовать стандартными средствами, ты всегда можешь написать кусок кода на C#, JS, PHP или подключить библиотечку, реализующую нужные функции. При этом «из коробки» работает поддержка прокси (есть даже встроенный многопоточный прокси-чекер), реализована интеграция как с сервисами прохождения капчи, так и со сторонним софтом, позволяющим разгадывать ее локально.

Из окна ZennoPoster можно контролировать расписание и ход выполнения проектов, подбор прокси и разгадывание капчи
Из окна ZennoPoster можно контролировать расписание и ход выполнения проектов, подбор прокси и разгадывание капчи
 

С чего начать

Думаю, ты уже воодушевлен и хочешь попробовать ZennoPoster в деле, так что не будем тянуть! Скачивай пробную версию с zennolab.com, устанавливай и запускай Project Maker. Это конструктор, с помощью которого ты сможешь сотворить все что угодно. Проще всего взять готовый проект и погонять его, на ходу разбираясь, как он сделан.

На официальном форуме есть раздел «Полезные статьи» — выбирай тему, которая тебе наиболее близка, и скачивай проект. Я рекомендую статью «Создаем чекер аккаунтов VK.com», там подробно описаны первые шаги и есть готовый пример (файл с расширением .xmlz), который можно сразу открыть в Project Maker и запустить.

Так может выглядеть проект для работы с соцсетью, аналогичный небезызвестному VKBot
Так может выглядеть проект для работы с соцсетью, аналогичный небезызвестному VKBot
 

ZennoPoster как хакерский инструмент

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

Подопытным в нашем эксперименте будет сайт smartresponder.ru — он позволяет доставлять почтовые рассылки до подписчиков. Доступ к аккаунтам авторов и к спискам получателей — лакомый кусочек для спамеров и мошенников всех мастей.

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

Общий план такой: соберем логины всех авторов рассылок, а потом воспроизведем попытку восстановить пароль, используя выбранный хозяином аккаунта способ восстановления. Проанализируем данные и решим, какие аккаунты наиболее уязвимы.

Заходим на smartresponder.ru и ищем адреса отправителей. Пройдем по ссылке «Каталог» и потом «Новые рассылки за сегодня». Там переходим на страничку любой рассылки и видим поле «Email-автоответчик рассылки». На скриншоте в этом поле находится адрес delivery023-xepsu@smartresponder.ru.

Страница информации о рассылке, из которой можно добыть логин ее автора
Страница информации о рассылке, из которой можно добыть логин ее автора

Все, что находится между знаками - и @, — логин пользователя, в нашем случае — xepsu. Если пройти по ссылкам «Войти -> Забыли пароль? -> Восстановить доступ по логину», то мы увидим секретный вопрос, например «Ваше прозвище в школе».

Мы соберем все логины и секретные вопросы. Чтобы сделать это вручную, пришлось бы потратить неделю или больше, а с ZennoPoster мы проанализируем четыре с половиной тысячи аккаунтов за пару часов (продолжительность зависит от того, сколько потоков потянут твой компьютер и интернет-канал).

Итак, приступим. В Project Maker создай новый проект. В окне проектов кликни правой клавишей мыши на белом поле и выбери «Добавить действие -> Таблицы -> Таблица». В нее мы будем сохранять результаты. Укажи имя results.

Добавить таблицу в проект можно в два клика
Добавить таблицу в проект можно в два клика

В нижней части окна проектов появится значок таблицы. Двойной клик по нему отобразит свойства. Укажи их, как на скриншоте. Поставь галочки «Загружать из файла», «Сохранять изменения таблицы в файл»; тип файла: «.csv, xls», путь: {-Project.Directory-}\deliveries.xls.

Запись вида {-Project.Directory-}\deliveries.xls указывает на то, что файл должен быть сохранен в той же папке, что и сам проект
Запись вида {-Project.Directory-}\deliveries.xls указывает на то, что файл должен быть сохранен в той же папке, что и сам проект

Теперь включи режим записи, нажав на панели кнопок кнопку с характерным красным кружочком, или воспользуйся шоткатом . В этом режиме почти все, что ты делаешь, сохраняется в проект в виде отдельных блоков-действий.

Прямо в окне Project Maker еще раз зайдем в «Каталог» и отобразим страницу какой-нибудь рассылки. URL страницы с информацией об авторе рассылки имеет следующий вид:

https://smartresponder.ru/l_ru/catalog/delivery.html?delId=43

В панели переменных кликни на + и добавь переменную с именем paramDelId — в ней мы будем хранить счетчик ID авторов рассылки во время перебора.

Выключи режим записи (Ctrl + R) и выдели последний записанный блок. В панели «Свойства действия» ты увидишь URL — замени в нем число на макрос нашей переменной.

https://smartresponder.ru/l_ru/catalog/delivery.html?delId={-Variable.paramDelId-}

Теперь добавим еще несколько действий, кликая правой клавишей рядом с нашей диаграммой, и проект готов!

Будем перебирать страницы, увеличивая значение счетчика. «Добавить действие», «Данные -> Обработка переменных». В свойствах действия: «Увеличить счетчик», «Значение: 1», «Записать в переменную: paramDelId».

С загруженной страницы будем выдирать данные логина с помощью регулярного выражения:

  • Добавить действие
  • Данные -> Обработка данных
  • В свойствах действия: {-Page.Text-}, Regex
  • Значение Regex: (?<=рассылки:).*(?=@smartresponder\.ru)
  • В поле «Положить результат в переменную» выбери «Новая...» и задай имя authorLogin

INFO


В Project Maker есть встроенный конструктор регулярных выражений, который поможет формулировать регэкспы для вытаскивания нужных кусочков текста.

Теперь добавим блок сохранения полученных данных в таблицу:

  • Добавить действие
  • Данные
  • Таблицы
  • Операции над таблицей
  • В свойствах действия: таблица results
  • Добавить строку https://smartresponder.ru/l_ru/catalog/delivery.html?delId={-Variable.paramDelId-}{-String.Tab-}{-Variable.authorLogin-}
После создания блоков действий остается только протянуть стрелочки, как на изображении
После создания блоков действий остается только протянуть стрелочки, как на изображении

Расставь стрелочки, сохрани файл проекта, и все будет готово для сбора данных. Убедись, что не нажата кнопка «Отложенная отрисовка» (Ctrl + D). Этот режим нужен, чтобы увидеть, как выполняется проект: граница у блоков на диаграмме будет по очереди становиться жирной.

Нажми F10, чтобы выполнять проект пошагово, или F11, чтобы просто запустить его. Когда счетчик дойдет до 4500, выполнение проекта можно остановить. Результатом будет таблица логинов.

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

INFO


Кстати, ребята из ZennoLab делают еще пару полезных программ: Zenno Proxy Checker и CapMonster 2. Последняя умеет разгадывать почти любые современные капчи без обращения в интернет.
 

Находим уязвимые аккаунты

Из таблички, в которую мы сохранили логины, скопируй колонку логинов на отдельный лист. Чтобы избавиться от пустых строк, отсортируй по имени и удали дубли, сохрани результат в файл logins.txt.

Создадим в Project Maker еще один небольшой проект, который будет заходить на страничку восстановления пароля и узнавать секретный вопрос.

В окне проектов на белом поле кликни правой клавишей мыши и выбери:

  • Добавить действие
  • Списки
  • Список
  • Оставь имя «Список 1». Из него мы будем брать логины с удалением
  • Двойной клик по значку списка, укажи путь к файлу: {-Project.Directory-}\logins.txt. Ты также можешь просто указывать обычный путь, но такая специальная запись позволяет использовать относительный путь и переносить проект в другие папки — возможно, на других компьютерах
Добавляем список в проект
Добавляем список в проект

Теперь еще добавим таблицу:

  • Добавить действие
  • Таблицы
  • Таблица. В нее мы будем сохранять секретные вопросы. Можно оставить название «Таблица 1»

Как и в прошлом примере, в нижней части окна проектов появится значок таблицы. Двойной клик по нему отобразит свойства. Укажи их, как на скриншоте: поставь галочки.

  • Загружать из файла
  • Сохранять изменения таблицы в файл
  • Типа файла: .csv, xls
  • Путь: {-Project.Directory-}\smartresponder_secret_phrases.xls

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

 

Описание действий

Поначалу действия могут показаться нудными и не до конца понятными, но, немного освоившись, ты будешь без особого напряга клепать проекты пачками и экономить кучу времени. Так что вперед, к финишной прямой!

Будем вытаскивать логины из списка, привязанного к файлу:

  • Добавить действие
  • Списки -> Операция над списком
  • В свойствах действия: «Список 1 -> Получить строку -> Первую» — поставь галочку «Удалить строку после взятия». Это позволит не создавать цикл для перебора логинов, а просто вырезать их из списка по одному
  • В поле «Положить в переменную» кликни на пункт «Новая...» и назови ее login.

Для ускорения работы не будем использовать компонент браузера, как в прошлом проекте. Вместо этого просто сделаем запросы GET — они тратят меньше ресурсов, работают быстро и отлично распараллеливаются. «Добавить действие», «HTTP -> GET-запрос». Далее заполняем свойства действия:

Запись {-Variable.login-} позволяет подставить в запрос значение логина, только что взятого из файла:

  • Тип данных: application/x-www-form-urlencoded; charset=UTF-8
  • Загрузить: только содержимое
  • Положить в переменную -> Создать новую... -> result

На вкладке «Дополнительно» поставь галочку «Редирект» и выставь значение 5. Результат должен быть, как на скриншоте.

Так настраивается GET-запрос, который позволяет скачивать или отправлять информацию
Так настраивается GET-запрос, который позволяет скачивать или отправлять информацию

Поскольку ответ на GET-запрос придет в закодированном виде, раскодируем его с помощью вызова одного из методов .NET Framework. Ты увидишь, как просто делать вставки кода на С# или JavaScript:

  • Добавить действие
  • Свой код -> С# код
  • В свойствах действия: return System.Net.WebUtility.HtmlDecode(System.Text.RegularExpressions.Regex.Unescape(project.Variables["result"].Value.Replace(@"\\u", @"\u")));
  • В поле «Положить результат в переменную» выбери result

Теперь вытащим из раскодированного ответа текст вопроса. Для этого воспользуемся уже знакомой тебе операцией применения регулярного выражения:

  • Добавить действие
  • Данные -> Обработка данных
  • В свойствах действия: {-Variable.result-}, Regex
  • Значение Regex: (?<=question":").*?(?=")
  • В поле «Положить результат в переменную» выбери result

Пример с использованием GET и вставки кода на C# взят, чтобы показать возможности программы. В твоих первых проектах использование этих продвинутых фич необязательно.

Теперь добавим блок сохранения полученных данных в таблицу:

  • Добавить действие
  • Данные
  • Таблицы
  • Операции над таблицей
  • В свойствах действия: таблица «Таблица 1»
  • Добавить строку {-Variable.login-}{-String.Tab-}{-Variable.result-}

Наш мини-проект будет выглядеть примерно как на следующем скриншоте.

Всего несколько действий, и нужная инфа у нас в табличке!
Всего несколько действий, и нужная инфа у нас в табличке!

Этот проект берет один логин, делает запрос и получает один секретный вопрос. Чтобы перебрать их все, протяни стрелочку из последнего блока в первый. Тогда выполнение зациклится и остановится при опустошении файла логинов. Либо добавь этот проект в список проектов ZennoPoster и в поле «Сколько делать» укажи 4500.

 

Результат эксперимента

Прогнав первый проект, мы получим около 4500 логинов, из которых после удаления дублей останется 1760 уникальных логинов. Скормив их скрипту восстановления пароля по секретному вопросу, мы получим некоторую статистику:

  • около половины пользователей «секретный вопрос» вообще не использовали;
  • из остальных 875 юзеров 86 человек выбрали вопрос «Любимое блюдо», 35 — «Ваше прозвище в школе», ответ на которые можно элементарно подобрать по словарю;
  • 9 человек используют вопрос вроде «Пять последних цифр Вашей кредитной карты», тут количество вариантов ответов тоже строго ограниченно.

Встречаются и совсем абсурдные варианты:

  • «Цвет светофора, открывающий путь»;
  • «Столица Украины»;
  • «Месяц рождения детей».

Ответ на такие вопросы можно дать вообще без всякого перебора.

В принципе, с помощью ZennoPoster и списка дешевых прокси мы могли бы накидать еще один несложный проект и перебирать пароли по словарю или с помощью генератора, но я не буду об этом рассказывать или советовать это делать — это незаконно. ZennoPoster поможет тебе зарабатывать и более-менее легальными методами: написать бота и продавать лицензии на него; извлекать данные из открытых источников на заказ и продавать их; работать по CPA-партнеркам, наливая трафик и получая комиссию. Качай готовые проекты, изучай, допиливай под свои нужды. Удачной тебе автоматизации!

3 комментария

  1. Аватар

    LightWood

    15.10.2015 в 17:06

    ZennoPoster — функциональная вещь для автоматизации любого рода!

  2. Аватар

    lenko

    11.10.2019 в 12:23

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

  3. Аватар

    zx298789

    15.06.2020 в 08:59

    Отличная статья все сам настроил по ней Только когда запустил много потоков все стало ужасно тормозить. Все оказалось банально мой комп просто не тянул нагрузку арендовал выделены сервер с 40 потоками двумя процессорами и все полетело как по маслу. если кому интересно сервера арендовал на сайте gagi.ru полет нормальный. Благодарю автора за статью все просто потресающе расписано дохчево и понятно

Оставить мнение