На заметку Fuck_Chrome_C (1 Viewer)

Кто просматривает этот контент: "Тема" (Всего пользователей: 0; Гостей: 1)


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Ссылка на гит:https://github.com/XShar/Fuck_Chrome_C

Всем привет.

Как многим малварьщикам известно, в хроме поменяли шифрование паролей, из-за этого все старые стилеры пошли по бороде, хе-хе.

Вообще защита такая себе, в кратце как там реализовано сейчас:

Chromium изменил механизм шифрования и использует AES-256-GCM.

Данный проект расшифровывает пароли с помощью функций BCrypt (Это API винды). Не нужно никаких файлов DLL.

Новый механизм Chrome заключается в следующем:

Сначала генерируются 32-байтовые случайные данные. Затем он шифрует их с помощью функции Windows DPAPI («CryptProtectData»).

В этот зашифрованный ключ вначале вставляется подпись «DPAPI» для идентификации.

Наконец, этот ключ кодируется с использованием Base64 и сохраняется в файле «Local State» в папке «User Data».

Теперь, чтобы сохранить пароль для входа на сайт, Chrome шифрует его, используя алгоритм AES-256-GCM с указанным выше главным ключом и 12-байтовыми случайными данными.

Наконец, он вставляет подпись «v10» в зашифрованный пароль и сохраняет ее в указанном выше файле «Login Data».

Также в конец зашифрованного пароля добавляется 16 байт аудентификационного тега.

Итого зашифрованный пароль выглядит так:

<V10:3 байта> <NONCE:12 байт> <Сам шифрованный пароль> <Аудентификационный тег:16 байт>

В общем расшифровать все это можно при помощи API "BCryptDecrypt".

Как, посмотрите код проекта, вообще хотел переделать по лучше, но похоже руки не скоро дойдут...)))

Полезно для любителей писать стилеры, программы восстановления паролей и тестирования защиты.

Благодарности:
Благодарю @Jefferson, за предоставления каркаса.

Также есть реализация на C#:
https://github.com/omerfademir/Chrome-Password-Recovery
 
Последнее редактирование:

Jefferson

Уважаемый пользователь
Форумчанин
Регистрация
09.06.2019
Сообщения
52
Репутация
30
Так же не забываем, что префикс может быть не только "v10", но и "v11".
 

astro7

Житель форума
Форумчанин
Регистрация
13.05.2019
Сообщения
1
Telegram
sqlite3_prepare_v2 error!
error code 33

There is an issue on this line
A.if (sqlite3_prepare_v2 (db, "SELECT origin_url, username_value, password_value FROM logins", -1, & stmt, 0)! = SQLITE_OK)
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
33: Процесс не может получить доступ к файлу, так как часть этого файла заблокирована другим процессом.

Отключите антивирусы на момент теста, запуститите из под администратора.

Есть собранная версия:https://github.com/XShar/Fuck_Chrome_C/tree/master/Release

Вообще у меня на 10 нормально работает, проверял на гугл-хром.

Да, работает-ли эта версия:https://github.com/omerfademir/Chrome-Password-Recovery

1586499885547.png
 

Jefferson

Уважаемый пользователь
Форумчанин
Регистрация
09.06.2019
Сообщения
52
Репутация
30
sqlite3_prepare_v2 error!
error code 33

There is an issue on this line
A.if (sqlite3_prepare_v2 (db, "SELECT origin_url, username_value, password_value FROM logins", -1, & stmt, 0)! = SQLITE_OK)
Закрой браузер.
Нужно было сделать копирование бд и работать уже с ней, забыл что-то. Одновременно с бд может взаимодействовать только 1 клиент
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Закрой браузер.
Нужно было сделать копирование бд и работать уже с ней, забыл что-то. Одновременно с бд может взаимодействовать только 1 клиент
Можно кстати скопировать базу во временную папку и работать с ней.

Но это в финальном стилере, если кто будет делать, также там sqlite3.c, занимает 5МБ. Его-бы по возможности подсократить, тут-же нужно только чтение из базы, запись, какие-то оптимизации может можно убрать.

Короче то-что здесь, это просто каркас, как можно расшифровать, так-то для полноценного стилера, даже просто браузеров на основе движка Chromium дофига дел...:(
 

_pCdj_

Пользователь
Первый уровень
Регистрация
22.05.2020
Сообщения
7
Всем привет. В чём мб сбой ? при сборке debug x86 проект собирается компилиться ,запускается консоль - но выводить ошибку в консоль sqlite3_prepare_v2 error! 2 . При сборке release x86 проект собирается компилиться ,запускается консоль в консоли появляются данные логины пассы и с т.д но консоль сразу закрывается . windows 10 x64 / проект собираю в visual studio 2019 .
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Судя по ошибке почему-то не может найти файл базы.

Вообще в данном релизе есть критичные ошибки переполнения памяти, честно нет времени и желания фиксить, т.к. это просто демонстрация концепта и должен-быть переписан для продакшена, напишу тут ошибки:

1)Переполнение памяти, при получении ключа, нужно увеличить буфер до 8Кб:
Найти:
C:
char decryptedKey[32];
И увеличить:
Код:
char decryptedKey[8192];
2)Кроме "v10" нужно проверять еще "v11":
Код:
 if ((char)password[0] == 'v' && (char)password[1] == '1' && (char)password[2] == '0' || (char)password[2] == '1' ) {

}
3)Переполнение буфера в функции GetNonce:

Найти и удалить строчку:
Код:
GetNonce(decryptedKey, decKeySize, nonce);
4)Нет проверки на nullptr и выходы из цикла по брейку нужны, иначе могут-быть падения:
C:
        char* url = (char*)sqlite3_column_text(stmt, 0);
        char* username = (char*)sqlite3_column_text(stmt, 1);
        char* password = (char*)sqlite3_column_text(stmt, 2);
        if (url == nullptr) || (username == nullptr) || (password == nullptr) {
        break;
        }
 

X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
5 825
Репутация
15 073
Jabber
Telegram
Вообще этот код от "Бориса хренскомпилишь".

Поэтому неругайтесь сильно, хе-хе...Dmeh-Smeh-Smeh!!!


 
Верх