Что нового

Script Cловарь для брутфорса Укртелеком (Python PassGen)

id2746 0

id2746

Advanced
17.12.2019
23
46
Один школоло попросил помочь достать словарь для брута WPA от Укртелеком.
Пожелание по маске: "UKR_XXXX. Все возможные комбинации от 0 до 9 "
Т.к. давно ничего не делал, решил вспомнить 0 level и помочь..
Помощь вылилась в очередной password generator))

Оставлю это здесь:
Python:
from random import shuffle
from time import sleep
import itertools

def neo_obkakalsya ():
    print('██╗██████╗ ██████╗ ███████╗██╗  ██╗ ██████╗ ')
    sleep (0.2)
    print('██║██╔══██╗╚════██╗╚════██║██║  ██║██╔════╝ ')
    sleep (0.2)
    print('██║██║  ██║ █████╔╝    ██╔╝███████║███████╗ ')
    sleep (0.2)
    print('██║██║  ██║██╔═══╝    ██╔╝ ╚════██║██╔═══██╗')
    sleep (0.2)
    print('██║██████╔╝███████╗   ██║       ██║╚██████╔╝')
    sleep (0.2)
    print('╚═╝╚═════╝ ╚══════╝   ╚═╝       ╚═╝ ╚═════╝ ')
    sleep (0.2)
    print('Wake up, Neo, you obosralsya!!!\n')
    sleep (1.5)

neo_obkakalsya ()

temp_file = []
end_file = []
simbols = '0123456789'

words = itertools.product(simbols, repeat = 4)

for i in words:
    words = (''.join(i))
    temp_file.append(words)

temp_file = set(temp_file)

for i in temp_file:
    i = 'UKR_' + i
    end_file.append(i)

print("Происходит магия...")
sleep (3)
def shuffle_func():
    shuffle_q = input('Перемешать списочег?\ny/n\n')
    shuffle_q = shuffle_q.lower()
    if shuffle_q == 'y':
        shuffle(end_file)
    elif shuffle_q == 'n':
        pass
    else:
        print('Enter Y or N')
        shuffle_func()
shuffle_func()

end_file = set(end_file)
end_file = '\n'.join(end_file)

def file_save():
    try:
        with open (input('Название и путь файла куда сохранить:\n'), 'w') as file:
            file.write(end_file)
            print('Успешно сохранено.')
    except:
        print('File save error')
        file_save()
file_save()
 

Вложения

F 0

foo

New Member
26.01.2021
6
5
В последнее время мне на глаза часто попадаются статьи, в которых упоминается некий искусственный интеллект.
Якобы этот ИИ уже настолько умный, что может писать код без участия программиста.
id2746, признайся: ты - машина ?

За два года написания генераторов паролей можно было выдать что-нибудь более продвинутое.
Но ты, словно морально устаревший робот.
Что ни генератор паролей, то списки, списки во множества, бездумное перемешивание.
Апофеозом этого устроумия является запись в файл.

Неужели нельзя проапгрейдить алгоритм написания кода :
  1. списки заменить генератором,
  2. каждую сгенерированную комбинацию не держать в памяти ЭВМ, а построчно записывать в файл.
 
F 0

foo

New Member
26.01.2021
6
5
Python:
#! /usr/bin/env python3
# -*-  coding: utf-8 -*-

# Import Module
try:
    from sys import version_info, platform         # Проверка версии Python - маленькая защита от дурака )
    import itertools
except ImportError as err:
    raise ImportError(err)

# Объявляем переменные
symbols = '0123456789'
chunk_1 = 'UKR_'                                   # первая строковая часть пароля
words = itertools.product(symbols, repeat = 4)     # создаём итератор, каждый объект которого представляет комбинацию четырёх символов строки symbols

# Main
def main():
    with open(input("Введите название файла: "), 'r+') as f:     # если файл существовал - удаляем, открываем файл в режиме дозаписи - 'r+',
        for i in words:                                          # создаём цикл перебора каждого итерируемого объекта word
            chunk_2 = (''.join(i))                               # вторая строковая часть пароля - это и есть объект итератора
            passwd = chunk_1 + chunk_2                           # пароль представляет собою сумму частей chunk_1 + chunk_2
            f.write(passwd + '\n')                               # как только пароль сгенерирован - записываем построчно в файл


if __name__ == "__main__":
    if version_info[0] < 3:
        print('[!] Пожалуйста, используйте Python 3')
        exit()
    main()

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

Гораздо полезнее добавить функцию, когда испробованный пароль после неудачного брутфорса удаляется из текстового файла. Чтобы после прерывания брута атака продолжалась не сначала, а с места прерывания. Но эта функция должна быть реализована не в генераторе паролей, а в скрипте для атаки грубой силой.
 
Последнее редактирование:
id2746 0

id2746

Advanced
17.12.2019
23
46
@id2746, признайся: ты - машина ?

За два года написания генераторов паролей можно было выдать что-нибудь более продвинутое.
Но ты, словно морально устаревший робот.
я не занимаюсь программированием, а изредка решаю какую-нибудь поставленную перед собой задачу.
За наставления спасибо!
 
id2746 0

id2746

Advanced
17.12.2019
23
46
Кст, всегда думал, что при записи списка в файл используется меньше памяти, чем для открытия и записи миллионов раз в файл новой строки (
 
F 0

foo

New Member
26.01.2021
6
5
Кст, всегда думал, что при записи списка в файл используется меньше памяти, чем для открытия и записи миллионов раз в файл новой строки (
Я имел ввиду оперативную память, а не флэш-память .
И вообще, речь идёт о ресурсах компьютера в целом.

Ты не думай.
Разве сложно замерить объём занимаемой приложением памяти ?
К тому-же ты создаёшь в своём скрипте не один список, а два, а также как минимум один раз переводишь список во множество.
 
Верх Низ