Secure preferences chrome что это

Вложения

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что этоCollectionLog-2019.11.13-19.02.zip (69.8 Кб, 7 просмотров)
Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что этоSecure Preferences.docx (21.0 Кб, 6 просмотров)

Secure Preferences в Chrome
Постоянно выскакивает реклама в браузере в новой вкладке, AdwCleaner постоянно находит один и тот.

Реклама в Chrome файл Secure Preferences
В браузере самовольно открывается реклама в новом окне, AdwCleaner находит 2 файла Secure.

Реклама в Chrome файл Secure Preferences
Здравствуйте, мучаюсь с такой проблемой: AdwCleaner находит файл Secure Preferences, который после.

Вирус 2inf.net в secure preferences
Добрый день, прошу помочь. Вирус себя почти не проявляет, только как возможное торможение.

Подготовьте и прикрепите лог сканирования AdwCleaner.

К сети подключаетесь через роутер? Если да, только одно устройство или есть другие?

Вложения

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что этоAdwCleaner[S00].txt (1.4 Кб, 1 просмотров)
Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что этоAdwCleaner_Debug.log (13.7 Кб, 0 просмотров)

Решение

Скачайте Farbar Recovery Scan Tool (или с зеркала) и сохраните на Рабочем столе.

Примечание: необходимо выбрать версию, совместимую с Вашей операционной системой. Если Вы не уверены, какая версия подойдет для Вашей системы, скачайте обе и попробуйте запустить. Только одна из них запустится на Вашей системе.
Запустите программу. Когда программа запустится, нажмите Yes для соглашения с предупреждением.

Источник

Вирус Secure Preferences, установка расширения от Yandex

Эти 7 файлов он находит каждый раз после перезагрузки(удаляет и опять по новой).
После перезагрузки ПК опять и опять устанавливаются (Yandex советник маркет и поиск) в гугл хром и стандартный.

Пробовал удалять хром полностью с отключением синхронизации. Устал бороться.

Вирус 2inf.net в secure preferences
Добрый день, прошу помочь. Вирус себя почти не проявляет, только как возможное торможение.

Secure Preferences в Chrome
Постоянно выскакивает реклама в браузере в новой вкладке, AdwCleaner постоянно находит один и тот.

Реклама в Chrome файл Secure Preferences
Здравствуйте, мучаюсь с такой проблемой: AdwCleaner находит файл Secure Preferences, который после.

Реклама в Chrome файл Secure Preferences
В браузере самовольно открывается реклама в новом окне, AdwCleaner находит 2 файла Secure.

Тема не закрывается.

Я в очередной раз перезагрузил ПК и просканировал через MB, опять нашёл этот один файл

Думаю, удалю в ручную его. В итоге после того как удалил, синхронизация хром отключилась на Profile 1, захожу в хром и у меня сразу устанавливаются 2 расширения (Яндекс маркет советник и поиск) как раньше. Но в этот раз синхронизация была выключена. Проблема где-то сидит до сих пор, просто не даёт пока о себе знать.

Ситуация решена частично. Раньше была ещё реклама + поисковые системы в хроме менялись, сейчас осталось только 2 расширения.

Источник

Google Chrome и Secure Preferences

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Авторское форматирование было задвинуто подальше, так как у меня личная неприязнь к такому стилю. Код выглядит довольно простым, осталось понять, что вообще подается на вход. Чтобы не скачивать весь исходный код Chromium и не собирать его, поступим следующим образом: поставим официальный Chrome, скачаем один лишь файл pref_hash_calculator.cc и укажем в Visual Studio путь к отладочным символам для Google Chrome:

Все готово к исследованию. Запускаем браузер, атачимся к процессу, ждем, пока прогрузятся отладочные символы (можно в настройках указать загрузку символов только для модуля chrome.dll, этого будет достаточно), открываем файл pref_hash_calculator.cc в MSVC и ставим брейкпоинт на методе Calculate. Теперь нам необходимо совершить какое-нибудь действие, которое приведет к вычислению хэша, например, установить произвольное расширение из Chrome Web Store. Устанавливаем и попадем на наш брейкопинт.

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Мы видим значения seed_ (перевел в hex для удобства):

Делаем тестовый прогон и узнаем, что seed_ содержится в ресурсе с ID 609, который скорее всего тоже меняется.

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Теперь нам необходимо получить device_id. Откуда его берет Chrome? Не буду вас утомлять отладчиком, просто скажу, что нас интересует функция GetMachineId из файла machine_id.cc. Приведу ее исходный код на всякий случай:

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Мы видим, что path содержит путь к настройкам расширения в Secure Preferences:

Подытожим логику вычисления:

В качестве hmac используется HMAC SHA256, это видно по коду. Приведу пример простого скрипта, который парсит расширения из файла Secure Preferences и вычисляет hmac для каждого из них, а также super_mac. Алгоритм вычисления прост:

Запустим скрипт, указав в качестве аргументов device_id, seed и путь к файлу Secure Preferences:

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Как мы видим, скрипт успешно отработал и корректно вычислил HMAC’и.

Скрипты из статьи и проект для MSVC 2013, вычисляющий device_id: скачать

Google Chrome и Secure Preferences: 69 комментариев

Подскажи как они тут допёрли что менять и где
https://rdot.org/forum/showthread.php?t=2875
Там же исходники xull.dll не получить.
На перл хочется написать такой скрипт для новой версии фф

Почему не получить? FireFox внезапно стал браузером с закрытым исходным кодом?

Я скачал исходники, там нет этой библиотеки

Т.е. нет пути типа: toolkit/library/moz.build?
И в файле moz.build ни единого упоминания слова xul?

A lil bit offtop, but who wants use Chrome, Opera(nu) & Vivaldi, etc with WebRTC, that cannot be disabled.

А как на счёт других полей?
Что они кодируют для startup url, например?

А как на счет самому проделать подобные действия с отладчиком и посмотреть?

@Kaimi,
да не вопрос, просто компиляция ещё часов 10 возьмёт.
А вообще спасибо за статью.

Зачем компилировать? Я же писал, что достаточно отладочные символы подключить и интересующие одиночные файлы скачать

Сейчас увидел, спасибо.

Кстати, для Яндекс-браузера device_id не нужен. Сообщение формируется extension_path + extensio_setting. А в качестве key можно передать 0x00

Privet Kaimi, iskal infu nas4iot faila Secure Preferences i natknulsia na tvoi sait(o4eni interesnii kstati, molodez), doljen skazati cho ti edinstvenii isto4nik takoi poleznoi informazii (poleznoi dlia griaznih del pravda :D).
Ia doljen sdelati installer kotorii v konze dobavliaet stranizu nashei kompanii v startup_pages v chrome. Vsio kak po maslu no na samom glavnom:

c:\Users\operatore 3\AppData\Local\Google\Chrome\User Data\Default>hmac.pl 837552B31736B91B48643763FE6E1F494FC1D936AE09173C3D E748F336D85EA5F9DCDF25D8F347A65B4CDF667600F02DF6724A2AF18A212D26B788A25086910CF3A90313696871F3DC05823730C91DF8BA5C4FD9C884B505A8
«Secure Preferences»

values on reference is experimental at C:\Users\operatore 3\AppData\Local\Google\Chrome\User Data\Default\hmac.pl line 91.
Can’t use an undefined value as a HASH reference at C:\Users\operatore 3\AppData\Local\Google\Chrome\User Data\Default\hmac.pl line 36.

K sojalenii ia v Perle ne 4eshu, i ia eshio doljen perevesti eto vsio na C#. Smojesh proveriti po4emu tvoi script u menia ne rabotaet (Ia kru4u ego na Perl 5.22.0 Strawberry)? a esli esti jelanie i vremia to podmodifizirovati ego 4tob kak parametri polu4al: «device_id, seed, key, value» e vidoval hmac dlia «value» i novii super-mac (vsio na stdout). Potom ia ego sobiru v exe, sunu v installer i budu parsiti ego stdout kogda nado.

Ogromnoe spasibo za takuiu infu, i sait krasava 🙂

Izvini, script rabotaet otli4no, prosto ia emu podoval osobii file «Secure preferences», neznaiu po4emu no na moiom pk tam nahoditsia tolko super-mac i vesit 105byte, daje s novoi ustanovkoi, a na drugih pk 30-50kb i oni rabotaiut na tvoiom scripte.

Izviniaiusi, po4ital script paru raz i vsio ponial, Perl menia pugal a v konze konzov vsio o4eni prosto, u menia on ne rabotal potomu4to ia imel levii «Secure Preferences» file, tam tolko super-mac nohoditsia, a ostalnie mac v «Preferences».

Иллюстрация напомнила о комиксе Fisheye Placebo. Красивый комикс. Рекомендую.

Скрипт, запущенный в версиях Perl под Windows (ActivePerl 5.20.? x64, Strawberry 5.22.0 x32) каждый раз возвращают разные MAC для расширений: как собственно посчитанные, так и ref (

SuperMac всегда считается верно

Другое дело список расширений каждый раз в произвольном порядке выдается, но это ни на что не влияет.

> Другое дело список расширений каждый раз в произвольном порядке выдается, но это ни на что не влияет.
Ааа, точно, в произвольном порядке.

Среда:
Window 10 x64
perl v5.22.1 built for MSWin32-x86-multi-thread-64int
Binary build 2201 [299574] provided by ActiveState http://www.ActiveState.com
Built Dec 24 2015 12:36:28

Подобные ошибки perl выдает если переменные не инициализированы в режиме strict, однако они инициализированы! не понимаю в чем причина.
В perl я новичок, установил только ради Вашего скрипта

Помогите устранить указанные ошибки компиляции, пожалуйста 🙂

pastebin.com, по фрагментам я не угадаю, что не так

спасибо. заработало. я запускал и редактировал разные файлы 🙁
Существует ли один скрипт, выполняющий все этапы вычисления hmac включая определение входных параметров?

Kaimi, большое спасибо за пост, очень познавательно. Есть вопрос..я в MSVC 2012 Ultimate указал путь к серверу с отладочными символами и при подключении к процессу chrome.exe, идет их подгрузка, но когда я открываю файл pref_hash_calculator.cc и ставлю бряк, появляется мессага о том, что символы для данного элемента не подгружены и остановки не будет?.

Может символы не подгрузились (можно посмотреть в логе студии), также не вижу pref_hash_calculator в исходниках по старому пути (видимо куда-то перенесли), может не к тому процессу хрома подключился, может еще что-то.

How to calculate HMAC «startup_urls»:?

key = seed_
message = device_id + ‘[ «http://www.google.es/»]’
HMAC (message, key)

This method does not work for me.
Greetings.

Install Visual Studio, attach debugger to the Chrome process, change startup url, observe how is it being hashed.

я нашел исходники здесь https://chromium.googlesource.com/chromium/chromium/+/trunk/chrome/browser/prefs, увидел зависимости и решил использовать стороннюю библиотеку. из того что нашел понравилось это http://create.stephan-brumme.com/hash-library/.

А чё с 51 хромом еще работает фишка?

Hello,
When I try to get the HMAC from your example in C++ or Python I have the same hash, but is different than yours. What is wrong? (Please see below)

import hmac
import hashlib
import base64
import binascii

device_id = «7CD6D9C7354E9165A3A4CBE097021669F4C026E7AA578B0CA9»;
key = «e748f336d85ea5f9dcdf25d8f347a65b4cdf667600f02df6724a2af18a212d26b788a25086910cf3a90313696871f3dc05823730c91df8ba5c4fd9c884b505a8»;
content = ‘<"ack_external":true,"app_launcher_ordinal":"zs","creation_flags":137,"from_bookmark":false,"from_webstore":true,"initial_keybindings_set":true,"install_time":"13074357069686027","lastpingday":"13074332401422358","location":1,"manifest":<"api_console_project_id":"889782162350","app":<"launch":<"local_path":"main.html">>,»container»:»GOOGLE_DRIVE»,»current_locale»:»en_US»,»default_locale»:»en_US»,»description»:»Create and edit presentations «,»icons»:<"128":"icon_128.png","16":"icon_16.png">,»key»:»MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLOGW2Hoztw8m2z6SmCjm7y4Oe2o6aRqO+niYKCXhZab572by7acqFIFF0On3e3a967SwNijsTx2n+7Mt3KqWzEKtnwUZqzHYSsdZZK64vWIHIduawP0EICWRMf2RGIBEdDC6I1zErtcDiSrJWeRlnb0DHWXDXlt1YseM7RiON9wIDAQAB»,»manifest_version»:2,»name»:»Google Slides»,»offline_enabled»:true,»update_url»:»https://clients2.google.com/service/update2/crx»,»version»:»0.9″>,»page_ordinal»:»n»,»path»:»aapocclcgogkmnckokdopfmhonfmgoek\\0.9_0″,»state»:1,»was_installed_by_default»:true,»was_installed_by_oem»:false>’
path = «extensions.settings.aapocclcgogkmnckokdopfmhonfmgoek»;
msg = device_id + path + content;

dig = hmac.new(binascii.unhexlify(key), msg=msg, digestmod=hashlib.sha256).digest()
hmac_res = base64.b64encode(dig).decode() # py3k-mode
print binascii.hexlify(dig)

You can debug Chrome to ensure that you pass correct data to the digest

It’s not about Chrome, it’s all hardcoded right now with the values of your example. The fact is that my HMAC method doesn’t return the same hash as you, so I’m wondering where my mistake is.
I’m trying to validating the algorithm before actually working on real data.

It is about Chrome. Your data probably is not normalized, there’re a few things like empty objects, quotes. By debugging Chrome you can view correct representation of data that is passed to HMAC

I understand your statement, however I’m just playing with the data (already normalized) you’ve put in your demonstration. The blocking point is the very last part, where we calculate the HMAC. I’m sure there’s something, non-obvious, missing in the explanations.

Ok, I will answer to myself. I have been able to get the correct value on Python, by fixing several things:
— Json needs to be parsed/dumped as string (validation)
— Json needs to PRESERVE keys order
— I had an error in Json string, \\ needs to be \

Here’s the correct Python:

import hmac
import hashlib
import base64
import binascii
import json
from collections import OrderedDict

device_id = «7CD6D9C7354E9165A3A4CBE097021669F4C026E7AA578B0CA9»
key = «e748f336d85ea5f9dcdf25d8f347a65b4cdf667600f02df6724a2af18a212d26b788a25086910cf3a90313696871f3dc05823730c91df8ba5c4fd9c884b505a8»
content = ‘<"ack_external":true,"app_launcher_ordinal":"zs","creation_flags":137,"from_bookmark":false,"from_webstore":true,"initial_keybindings_set":true,"install_time":"13074357069686027","lastpingday":"13074332401422358","location":1,"manifest":<"api_console_project_id":"889782162350","app":<"launch":<"local_path":"main.html">>,»container»:»GOOGLE_DRIVE»,»current_locale»:»en_US»,»default_locale»:»en_US»,»description»:»Create and edit presentations «,»icons»:<"128":"icon_128.png","16":"icon_16.png">,»key»:»MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDLOGW2Hoztw8m2z6SmCjm7y4Oe2o6aRqO+niYKCXhZab572by7acqFIFF0On3e3a967SwNijsTx2n+7Mt3KqWzEKtnwUZqzHYSsdZZK64vWIHIduawP0EICWRMf2RGIBEdDC6I1zErtcDiSrJWeRlnb0DHWXDXlt1YseM7RiON9wIDAQAB»,»manifest_version»:2,»name»:»Google Slides»,»offline_enabled»:true,»update_url»:»https://clients2.google.com/service/update2/crx»,»version»:»0.9″>,»page_ordinal»:»n»,»path»:»aapocclcgogkmnckokdopfmhonfmgoek\\\\0.9_0″,»state»:1,»was_installed_by_default»:true,»was_installed_by_oem»:false>’
path = «extensions.settings.aapocclcgogkmnckokdopfmhonfmgoek»

try:
content_json = json.loads(content, object_pairs_hook=OrderedDict)
except Exception, e:
print ‘Invalid json: %s’ % e
exit(1)

content_str = json.dumps(content_json, separators=(‘,’, ‘:’))
msg = device_id + path + content_str

dig = hmac.new(binascii.unhexlify(key), msg=msg, digestmod=hashlib.sha256).digest()
hmac_res = base64.b64encode(dig).decode() # py3k-mode
print content_str + ‘\n’
print binascii.hexlify(dig)

Спасибо за интересную и очень полезную работу.
проблему с кодом:
Experimental values on scalar is now forbidden at hmac.pl line 91.
я решил так:
if(scalar values %<$ref-><$key>> == 0)

I am using the latest version of Chrome (58.0.3029.81) and this code/technique about is not longer working.

Is anybody experiencing the same? If so, any ideas on how to fix it?

I can confirm, that script is no longer providing correct results. You can use a debugger to figure out what was changed in order to make it work again

Hi Kaimi, How are you doing?
I’m looking for a good C++ dev. to :

Hello,
Generally my code is working, though there was a minor change in logic: device_id value is now equivalent to User SID (without group id part). You can get it using wmic useraccount get name,sid or using WinAPI function LookupAccountName

Example:
>wmic useraccount get name,sid

Administrator S-1-5-21-1180699209-877415012-3182924384-500
Guest S-1-5-21-1180699209-877415012-3182924384-501
HomeGroupUser$ S-1-5-21-1180699209-877415012-3182924384-1002
Tim S-1-5-21-1180699209-877415012-3182924384-1004
UpdatusUser S-1-5-21-1180699209-877415012-3182924384-1007

Hi Kaimi, How are you?

What about Opera 51? Now new secure string in Preferences perf_counters.ext_load_metric What is the calculation algorithm for the new secure string? I tried to use a debugger to figure out the calculation algorithm but did not find out! Please help, you’re a genius!

1. Attach to Chromium
2. set breakpoint around digest function
3. notice how it looks in assembly
4. search similar instructions sequences in opera dll
5. set breakpoints for such places
6. observe stack and registers

This way you’ll likely find, what is current hmac composition

Kaimi, в новой опере другой алгоритм вычисления хеша совсем не тот что в хроме, отладка по аналогии с хромом здесь не применима, Kaimi, пожалуйста посмотри, что используется для вычисления хеша?

Берешь отладчик, ловишь открытие файла Secure Preferences, трассируешь до получения необходимого результата

Hi Kaimi.
can you refresh articles for google chrome version 70+?

Hello,
Probably, not sure when exactly

Can you please contact me at : [email protected]
I have several technical questions 😉

I haven’t looked into current Chrome, though there was a comment regarding ‘device_id’, look into it, probably still works

Здравствуйте! А как приатачиться к процессу, как загрузить символы? Выдет ошибку Не удается присоединиться к процессу. Операция недопустима в текущем состоянии. А что на счет Яндекс.Браузера?

Убедиться, что студия запущена от администратора или попробовать запустить браузер из самой студии.
Про Яндекс не знаю, не смотрел

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

Как поставить брекпониты на функции CreateFileA и другие WinAPI?

Источник

Secure preferences chrome что это

Do more on the web, with a fast and secure browser!

Download Opera browser with:

Только это и помогло. Больше ничего.

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Но это еще не все сюрпризы.

Видимо так исправили аж с мая текущего года начиная с версии 78.0.4066.0 opera-developer (DNA-93270 Extension updates should bypass VPN)
https://blogs.opera.com/desktop/2021/05/opera-78-0-4066-0-developer-update/#comment-253453

Подсказали решение на одном форуме: «Заходите в браузере Опера по ссылке: https://addons.opera.com/ru/extensions/details/opera-vpn/ и нажимаете на зеленую кнопку «Включить в Опера». Работает до закрытия браузера, при открытии снова придется нажимать «Включить в Опера». Для удобства этот адрес сразу в закладки.

Спасибо за способ, на opera portable кнопка vpn вообще не пропадает теперь, даже после перезапуска браузера

Искусство в массы! Бесплатно и в большом количестве!
Долой самодержавие!

ВОЗВРАТ КНОПКИ VPN В OPERA.

Новые настройки (дополненные):

Найти файл Secure Preferences

Может значение пустым оставить «»?

В файле Preferences изменить строку «settings_page»: <"vpn_disclaimer_enabled":false>на «settings_page»:

Такого даже в профиле не нашел.

@bnm66 Это в портативной версии параметры blacklisted_locations и last_established_location находятся в файле Preferences, а в обычной версии они в Secure Preferences и Secure Preferences.backup.

Искусство в массы! Бесплатно и в большом количестве!
Долой самодержавие!

формально ли? я с андройда пишу. Для версии для телефона решения до сих пор не нашел.

Вопрос к знатокам. В какой мере Турбо режим является аналогом ВПН? Задача чтобы два и более устройства имеющих общий доступ в интернет для проверяющего сервиса таковыми не являлись.

Ай-пи как я увидел подменяется и при использовании vpn и при турбо режиме. Но будет ли этого достаточно?

@vagrant84
Хех! А что не так очевидно? Достаточно просто для десктопов и лэптопов. Если опероделы отнеслись более жестко и ответственно, не халтуря, то вшили бы особый код в бинарник и хрена с два.
Для ведроидов речи тут нет пока что.
Думаю, скоро об этом прознают недовольные люди и придется оперной команде вообще его убрать и будет только аддон.

В хабро-ссылке в комментах есть другая
https://github.com/Snawoot/opera-proxy
Есть тут те кто использует это?

Всё, теперь точно приехали?
Файлик отредактирован, но зато сам впн не коннектится

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

@poyr Такое и раньше случалось.
У меня коннектится (версия 77.0.4054.90).

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

еще вчера все работало, сейчас вот такое
Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

@tadpole Сделала по инструкции. ВПН стал ООООЧЕНЬ медленно пахать! Просто черепаха ползет, даже обычные бесплатные впшки летают!
Раньше ТАКОГО НЕ БЫЛО.
Опера была быстрейшим впном.

Источник

Google Chrome: How to Bypass Secure Preferences

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Google Chrome protects its user preferences using a hashing (HMAC SHA256) mechanism. However, there’s a way to bypass it and it’s quite used by malware in the wild.

We will first study the way Chrome protects its user settings (Secure Preferences), then we will see how it can be defeated by rewriting the needed hashes. In the end, we will study a malware that uses that technique and we will see how RogueKiller Anti-malware can defeat it using that technique as well.

Secure Preferences

Each user profile (located in %localappdata%/Google/Chrome/User Data/ProfileName) has a bunch of configuration files for storing bookmarks, history, and preferences. Among those files, two of them (Preferences, Secure Preferences) are storing the user settings like homepage, search engine, etc…

Secure Preferences implements (as its name suggests) some securing mechanism to ensure no malware comes to modify the file manually. This is achieved by hashing some of the json nodes with a custom hashing protocol, based on HMAC SHA256, each time a setting is modified by Google Chrome.

At startup, Chrome then verifies all the hashes and if something doesn’t match it asks for a restore.

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

This is how (an infected) Secure Preferences file looks like:

We can see a few interesting fields regarding startup urls and homepage (highlighted). For each field, we have a corresponding entry in the “protection.macs” node. If some program modifies (manually) one of the settings above it will need to update the corresponding hash in the macs, as well as the “super_mac” entry.

Custom HMAC

The custom HMAC hash is fortunately documented from the Chromium sources. With a little bit of reverse, guesses and code reading, we’ve been able to reproduce the algorithm:

The HMAC SHA256 is a hashing mechanism that produces a SHA256 from a key (or seed) and a message. Let’s see how to obtain them:

HMAC Seed

The seed is unique to a machine where Chrome is installed (or per Chrome version?). It’s stored in Chrome’s installation path (C:\Program Files (x86)\Google\Chrome\Application\ChromeVersion\resources.pak). This format is quite known now, and well explained here.

All you need to do is to look for the first resource with a length of 64.

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

HMAC Message

To build the message, we first need to get a Machine ID (unique identifier per machine). We can follow the logic once again in the Chromium sources, but basically it looks like this:

Obtain machine SID
Obtain volume ID
Create machine ID

The machine ID can then be obtained with the following pseudo-code (please note everything is performed as binary operations):

Obtain the message

The message can be obtained using the following pseudo-code:

Please note that the Json content needs to be modified a little bit by removing the empty arrays and objects, and that the “ Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

In the Wild

Some malware are using that trick to bypass Chrome protection and install themselves in the user settings.

This the case of the adware Trotux/Elex, which replaces the homepage, startup urls and the search engine. The infected secure preferences given as example comes from this malware.

Secure preferences chrome что это. Смотреть фото Secure preferences chrome что это. Смотреть картинку Secure preferences chrome что это. Картинка про Secure preferences chrome что это. Фото Secure preferences chrome что это

Detection and Removal

Starting with version 12.8.0, RogueKiller is able to detect infectious Chrome settings, and remove them. It’s also able to update the protection.macs settings so that the cleanup will be totally transparent for the Chrome browser, and it won’t restore the infected setup.

It’s really important, because any setting restored without updating the HMAC hashes will result in a restoration of the infectious state by the Chrome browser iteself.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *