Персональный ICQ брутфорс

Xakep, номер #047, стр. 047-086-1

Научись грамотно кодить на Perl

Дмитрий Докучаев aka Forb (forb@ruhost.ru)

Ты не задумывался над вопросом, почему все твои продвинутые друзья сидят на красивом шестизначном уине, а у тебя паршивенькая восьмизначка, хотя в Инете ты появился гораздо раньше своих друзей. Понял, понял... ты и есть - продвинутый друг, сидящий на когда-то скарженной шестизначке 666666 =). Тогда почему бы тебе не посшибать их десятками и не раздарить подружкам (продать друзьям)? Реализовать это вполне возможно... а вот как - ты узнаешь, прочитав эту статью.

Теория

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

Идея брутфорса пришла ко мне после того, как я посетил сайт web.icq.com. Там находится logon страница для изменения деталей пользователя. Подсчитав параметры, которые должен передать серверу для нужного результата, я написал небольшой брутфорс. Результат скрипта превзошел все ожидания. Никаких лимитов на подключения (чего не скажешь о брутфорсах, которые заходят напрямую на ICQ сервер), а еще сервер не сбросит в оффлайн владельца уина, если он будет online.

Итак, суть алгоритма. Программа должна создать сокет и соединиться с сервером web.icq.com, послать параметры скрипту web-авторизации (собственно уин и предполагаемый пароль) и анализировать возврат сервера (смотри на скриншоте). Если сервер возвращает, что пароль верный, то прекращаем брутфорс данного уина и переходим к следующему. Если же пароль неверный - брать следующий и продолжать подбор. Соответственно, если требуется, программа должна выводить подробные комментарии взлома на консоль либо в debug file.

Итак, мы составили алгоритм! Теперь можно переходить к составлению работающей программы, реализующей данный алгоритм. Почему взят именно Perl? Я с удовольствием бы выбрал другой язык, например Delphi, но всем известно, что Perl по умолчанию поставляется на все Unix-платформы. Таким образом, скрипт может работать в background-режиме на твоем любимом шелле (либо, если такового не имеется, то на win-платформе Perl от ActiveState).

Кодинг

Итак, переходим к самой важной и ответственной части - кодингу, придерживаясь минимальных стандартов и правил программирования и заданного алгоритма. Поехали.

#!/usr/bin/perl

Объявим важные переменные, типа шаблона negative и positive, а также имя сервера.

use IO::Socket # Заюзаем поддержку сокетов

IO::Socket - наиболее простой модуль для создания сокетов в Perl. Он очень прост и удобен. Создание сокета ты увидишь в дальнейшем коде, прием и передачу данных через сокет можно организовать посредством переменной сокета (она присваивается новому сокету), например:

print $socket "Запрос информации\n"; # Передадим строку в Socket (Внимание! Символ "\n" - обязателен)

$answer=; # Принимаем ответ сокета в переменную $answer.

Затем отправим скрипт на проверку - существует ли файл с уинами и вордлистами. Если не существует - сообщение об ошибке.

Содержание  Вперед на стр. 047-086-2

Выпуски журнала "Xakep"
Журнал Хакер. Содержание номера #001Журнал Хакер. Содержание номера #002Журнал Хакер. Содержание номера #003Журнал Хакер. Содержание номера #004Журнал Хакер. Содержание номера #005Журнал Хакер. Содержание номера #006Журнал Хакер. Содержание номера #007Журнал Хакер. Содержание номера #008Журнал Хакер. Содержание номера #009Журнал Хакер. Содержание номера #010Журнал Хакер. Содержание номера #011Журнал Хакер. Содержание номера #012Журнал Хакер. Содержание номера #013Журнал Хакер. Содержание номера #014Журнал Хакер. Содержание номера #015Журнал Хакер. Содержание номера #016Журнал Хакер. Содержание номера #017Журнал Хакер. Содержание номера #018Журнал Хакер. Содержание номера #019Журнал Хакер. Содержание номера #020Журнал Хакер. Содержание номера #021Журнал Хакер. Содержание номера #022Журнал Хакер. Содержание номера #023Журнал Хакер. Содержание номера #024Журнал Хакер. Содержание номера #025Журнал Хакер. Содержание номера #026Журнал Хакер. Содержание номера #027Журнал Хакер. Содержание номера #028Журнал Хакер. Содержание номера #029Журнал Хакер. Содержание номера #030Журнал Хакер. Содержание номера #031Журнал Хакер. Содержание номера #032Журнал Хакер. Содержание номера #033Журнал Хакер. Содержание номера #034Журнал Хакер. Содержание номера #035Журнал Хакер. Содержание номера #036Журнал Хакер. Содержание номера #037Журнал Хакер. Содержание номера #038Журнал Хакер. Содержание номера #039Журнал Хакер. Содержание номера #040Журнал Хакер. Содержание номера #041Журнал Хакер. Содержание номера #042Журнал Хакер. Содержание номера #043Журнал Хакер. Содержание номера #044Журнал Хакер. Содержание номера #045Журнал Хакер. Содержание номера #046Журнал Хакер. Содержание номера #047Журнал Хакер. Содержание номера #048Журнал Хакер. Содержание номера #049Журнал Хакер. Содержание номера #050Журнал Хакер. Содержание номера #051Журнал Хакер. Содержание номера #052Журнал Хакер. Содержание номера #053Журнал Хакер. Содержание номера #054Журнал Хакер. Содержание номера #055Журнал Хакер. Содержание номера #056Журнал Хакер. Содержание номера #057Журнал Хакер. Содержание номера #058Журнал Хакер. Содержание номера #059Журнал Хакер. Содержание номера #060Журнал Хакер. Содержание номера #061Журнал Хакер. Содержание номера #062Журнал Хакер. Содержание номера #063Журнал Хакер. Содержание номера #064Журнал Хакер. Содержание номера #065Журнал Хакер. Содержание номера #066Журнал Хакер. Содержание номера #067Журнал Хакер. Содержание номера #068Журнал Хакер. Содержание номера #069Журнал Хакер. Содержание номера #070Журнал Хакер. Содержание номера #071Журнал Хакер. Содержание номера #072Журнал Хакер. Содержание номера #073Журнал Хакер. Содержание номера #074Журнал Хакер. Содержание номера #075Журнал Хакер. Содержание номера #076Журнал Хакер. Содержание номера #077Журнал Хакер. Содержание номера #078Журнал Хакер. Содержание номера #079Журнал Хакер. Содержание номера #080Журнал Хакер. Содержание номера #081Журнал Хакер. Содержание номера #082Журнал Хакер. Содержание номера #083Журнал Хакер. Содержание номера #084Журнал Хакер. Содержание номера #085Журнал Хакер. Содержание номера #086Журнал Хакер. Содержание номера #087Журнал Хакер. Содержание номера #088Журнал Хакер. Содержание номера #089Журнал Хакер. Содержание номера #090Журнал Хакер. Содержание номера #091Журнал Хакер. Содержание номера #092Журнал Хакер. Содержание номера #093Журнал Хакер. Содержание номера #094Журнал Хакер. Содержание номера #095Журнал Хакер. Содержание номера #096Журнал Хакер. Содержание номера #097Журнал Хакер. Содержание номера #098Журнал Хакер. Содержание номера #099Журнал Хакер. Содержание номера #100Журнал Хакер. Содержание номера #101Журнал Хакер. Содержание номера #102Журнал Хакер. Содержание номера #103Журнал Хакер. Содержание номера #104Журнал Хакер. Содержание номера #105Журнал Хакер. Содержание номера #106Журнал Хакер. Содержание номера #107Журнал Хакер. Содержание номера #108Журнал Хакер. Содержание номера #109Журнал Хакер. Содержание номера #110Журнал Хакер. Содержание номера #111Журнал Хакер. Содержание номера #112Журнал Хакер. Содержание номера #113Журнал Хакер. Содержание номера #114