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

[SOURCE] Extract/Parse Mailbase from .SQL file DBS.

GridsNetwork

ripper
КИДАЛА
Регистрация
30.03.2023
Сообщения
426
Реакции
128
Гарант сделки
2
Пожалуйста, обратите внимание, что пользователь заблокирован
Result Format: EMAIL:PASSWORD

source:​
Python:
 import os
import re
import datetime
import threading
from queue import Queue
import colorama
from colorama import Fore, Style

try:
    import colorama
    from colorama import Fore, Style
    colorama.init(autoreset=True)
except ImportError:
    def colored(text, color):
        return text

def extract_emails_passwords(text):
    emails = re.findall(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,7} ',text)
    
    bcrypt_2a_hashes = re.findall(r'\$2a\$\d{2}\$[./A-Za-z0-9]{53}', text)
    bcrypt_2y_hashes = re.findall(r'\$2y\$\d{2}\$[./A-Za-z0-9]{53}', text)
    md5_hashes = re.findall(r'[0-9a-fA-F]{32}', text)
    sha1_hashes = re.findall(r'[0-9a-fA-F]{40}', text)
    
    passwords = bcrypt_2a_hashes + bcrypt_2y_hashes + md5_hashes + sha1_hashes
    return emails, passwords

def process_sql_file(file_path):
    with open(file_path, 'r', encoding='utf-8', errors='ignore') as file:
        content = file.read()
        emails, passwords = extract_emails_passwords(content)
        return emails, passwords

def process_files(file_queue, result_list):
    while not file_queue.empty():
        file_path = file_queue.get()
        try:
            emails, passwords = process_sql_file(file_path)
            result_list.extend([(email, password) for email in emails for password in passwords])
        except Exception as e:
            print(colored(f"Error processing {file_path}: {e}", "red"))
        finally:
            file_queue.task_done()

if __name__ == "__main__":
    print(Fore.BLUE + Style.BRIGHT + r"""

  █████████ ██████ █████ ███████████ ████████ █ █████ █████
 ███░░░░░███ ███░░░░███ ░░███ ░░███░░░░░███ ███░░░░░███ ░░███ ░░███
░███ ░░░ ███ ░░███ ░███ ░███ ░███ ░███ ░███ ░░ ███ ███ 
░░█████████ ░███ ░███ ░███ ░██████████ ░███ ████████ ░░██ ███   
 ░░░░░░░░███░███ ██░███ ░███ ░███░░░░░███ ░█ ██░░░░░███ ░ ░███   
 ███ ░███░░███ ░░████ ░███ █ ░███ ░███ ░███ ░█ ██ ░███   
░░█████████ ░░░██████░██ ███████████ █████ █████ █████ █ ████ █████   
 ░░░░░░░░░ ░░░░░░ ░░ ░░░░░░░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░░░░ ░░ ░░░   
            SQL MAILBASE Extractor v1.1 - GridsNetwork

    """ + Style.RESET_ALL)

    sql_file = input("Enter the path to the SQL file: ")

    if not os.path.isfile(sql_file) or not sql_file.endswith('.sql'):
        print(Fore.YELLOW + "Invalid SQL file provided." + Style.RESET_ALL)
        exit()

    num_threads = 20
    file_queue = queue()
    result_list = []

    file_queue.put(sql_file)

    for _ in range(num_threads):
        worker = threading.Thread(target=process_files, args=(file_queue, result_list))
        worker.daemon = True
        worker.start()

    file_queue.join()

    current_datetime = datetime.datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
    output_file_path = f"output_{current_datetime}.txt"

    with open(output_file_path, 'w', encoding='utf-8') as file:
        for email, password in result_list:
            file.write(f"{email}:{password}\n")

    print(Fore.CYAN + f"Extracting mailbase completed. Results saved in {output_file_path}" + Style.RESET_ALL)
 


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