• Codeby web-security - Курс "Тестирование Веб-Приложений на проникновение с нуля" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, Активный фаззинг, Уязвимости, Пост-эксплуатация, Инструментальные средства, Social Engeneering и многое другое. Подробнее ...

  • Мобильный клиент нашего форума для Android гаджетов доступен в Google Play Market по этой ссылке. Клиент можно скачать с нашего форума по этой ссылке. Последняя версия МК в нашем телеграм канале вот здесь. Мобильный клиент для IOS находится в itunes по этой ссылке

Статья Пишем скрипт для брута хэшей

DOOmsdAi

Active member
24.12.2017
35
31
#1
Приветствую тебя #username# ! В этой не большой статье мы напишем инструмент для брута md5 хэшей на python. Надеюсь у вас есть опыт программирования на данном языке, если же нет настоятельно рекомендую посмотреть эту лекцию в которой собраны те навыки с которыми мы столкнемся сегодня. Заранее предупреждаю что здесь не будут рассматриваться темы ООП, многопоточности и других на первый взгляд сложных терминов.

Для начала немного теории:
- Что такое md5 и хэш: md5 это алгоритм хеширования. Под хешированием понимают преобразование входных данных по определенному алгоритму в битовую строку определенной длины. При этом полученный в ходе вычислений результат представлен в шестнадцатеричной системе исчисления. Она называется хешем.

Как будет работать алгоритм:
Мы будем брать одно значения из словаря, преобразовывать его в хэш, сравнивать его с пользовательским вводом, если эти значения совпадают, сигналим пользователю и выходим из программы.

Список нужных нам инструментов:
- интерпретатор python 3.
- текстовый редактор / IDE
- словарь паролей
- модуль hashlib

Сорцы и словарь

Стартуем:
Для начала импортируем нужный нам модуль:
Python:
import hashlib
Затем описываем главную функцию где будет описан полный функционал скрипта:
Python:
def md5_brut(hash, pwfile):
    try:
        descript = open(pwfile, "r", encoding='utf-8', errors='ignore')
    except:
        print("Словарь не существует или файл не найден!")
        exit()
       
    for password in descript:
        fileemd5 = hashlib.md5(password.encode().strip()).hexdigest()
                   
        if (hash == fileemd5):
            print("\n Бинго. \n Пароль => %s" % password)
            break
        else:
            pass
Главная функция принимает два аргумента, hash (хэш для брута) и pwfile (путь до словаря). Затем с помощью конструкции try-except и переменной descript мы открываем файл только для чтения . В финальной стадии функции мы читаем файл построчно и благодаря функции md5() преобразуем значения из файла в хэш, параллельно сравнивая данные веденные пользователем со зашифрованными значениями из файла. Если if выдает True сигналим и выходим.

Final:
Python:
hash = input("-> Введите хешь: ")
pwfile = input("-> Введите путь до словаря: ")
md5_brut(hash, pwfile)
Вызываем функцию md5_brut с хэшом и местом положением словаря в качестве параметров.

Проверяем:

Снимок экрана от 2018-02-16 22-40-17.png
Ну вот в принципе и всё, прошу сильно не материть ибо это моя первая статья, по этому готов выслушать любую критику в свой адрес.
Всем спасибо, все свободны)

Полезные ссылки:
Для просмотра контента необходимо: Войти или зарегистрироваться

https://ru.wikipedia.org/wiki/MD5
 

DOOmsdAi

Active member
24.12.2017
35
31
#3
Про многопоточность не слышал ?
Не вижу смысла добавлять 5-6 лишних строк кода и тем самым засорять без того простой алгоритм. Проход по словарю rockyou.txt составляет 22-25 секунд и это без потоков, такой результат лично мне импонирует. Тем более эта статья предназначено для людей слабо знакомыми с питоном и разъяснение синхронизации среди потоков была бы плохой идеей. Снимок экрана от 2018-02-17 14-40-11.png
 

HtOnion

Grey Team
06.11.2017
582
937
#4
Не вижу смысла добавлять 5-6 лишних строк кода и тем самым засорять без того простой алгоритм. Проход по словарю rockyou.txt составляет 22-25 секунд и это без потоков, такой результат лично мне импонирует. Тем более эта статья предназначено для людей слабо знакомыми с питоном и разъяснение синхронизации среди потоков была бы плохой идеей.
а сколько у тебя паролей в rockyou.txt?
 

sm0ke

Member
30.11.2017
15
40
#6
Я бы использовал
Для просмотра контента необходимо: Войти или зарегистрироваться
для возможности просто нажимать клавишу вверх в консоли и менять только хэш, а не вводить все время и хэш и путь до словаря, для такого маленького скрипта, проще бы было вшить путь в сам скрипт и вводить только хэш.
 
Вверх Снизу