Персональный 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. Затем отправим скрипт на проверку - существует ли файл с уинами и вордлистами. Если не существует - сообщение об ошибке. |


















































































































