Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
crx-scouter — 🕵️‍♂️ 🔎 🕸️ Я знаю, ты установил эти расширения Chrome ниже. | Kitploit
Инструменты/GitHubGitHub/neargle/crx-scouter
OSINT (Разведка открытых источников)Сбор информацииВеб-безопасность
GitHubneargle/crx-scouter

crx-scouter

🕵️‍♂️ 🔎 🕸️ Я знаю, ты установил эти расширения Chrome ниже.

РепозиторийСайт
214 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Логотип VueЛоготип Vue

[中文文档]

crx-scouter.js может незаметно определять, какие расширения Chrome вы используете, и выяснять, является ли человек перед браузером крутым хакером или программистом высокого уровня 🐱. Его можно использовать для ловушек (honeypots), идентификации человек-машина, контрмер блокировки рекламы, предварительных проверок для эксплуатации расширений и т. д.

Принцип работы crx-scouter.js основан на эксперименте, который я провёл с evi1m0 в 2017 году. Google, похоже, пытается решить эту проблему, но безуспешно. Подробности можно найти в документе о принципах работы.

Демо: https://blog.neargle.com/crx-scouter/.

КАК ИСПОЛЬЗОВАТЬ

Определить указанное расширение

root@kitploit:~
const { check_one } = await import('./scouter/scouter')
check_one("aapbdbdomjkkjkaonfhkkikfgjllcleb", console.log)

Вывод console.log будет примерно таким:

root@kitploit:~
{
    "extid": "aapbdbdomjkkjkaonfhkkikfgjllcleb",
    "url": "https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb",
    "name": "Google Translate"
}

Конечно, есть и функция check_all_crx(callback), которая поддерживает обнаружение всех расширений по отпечаткам. ✨ Онлайн-демо определения основано на этой функции, и результат выглядит следующим образом:

image

Почему

Почему это возможно?

Разработчики расширений Chrome должны знать, что в пакете с суффиксом crx файл конфигурации manifest.json содержит важную информацию о расширении. Файл с суффиксом crx можно напрямую распаковать с помощью unzip. Пример manifest.json выглядит так:

root@kitploit:~
{
  "background": {
    "scripts": [ "background.js" ]
  },
  "content_scripts": [ {
    "all_frames": true,
    "js": [ "content.js" ],
    "matches": [ "http://*/*", "https://*/*", "ftp://*/*", "file:///*" ],
    "run_at": "document_end"
  } ],
  "description": "Validates and makes JSON documents easy to read. Open source.",
  "homepage_url": "https://github.com/teocci/JSONView-for-Chrome",
  "icons": {
    "128": "assets/images/jsonview128.png",
    "16": "assets/images/jsonview16.png",
    "48": "assets/images/jsonview48.png"
  },
  "key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApA/pG/flimvWWAeUelHGaQ+IJajQm01JkfK0EYOJPyfsdTkHLwD3Aw16N3zuFkmwz09DcGDT+ehww7GSpW7RpbX5kHrovsqyHXtwt+a2Sp8bYFFdpRPj3+HG6366kNkwttDHMtsDkwuKaBtrQofQe5Ud9mKu9h1FDPwc2Qql9vNtvOqKFhV+EOD0vD2QlliB6sKCteu4nYBlFEkh6pYWRaXdAYSKYdE1SYIuQzE3dk11+KCaAC1T6GffL3sia8n5brVX7Qd+XtXyBzuM54w5e3STwK7uLMhLGDIzHoTcldzWUUflfwuI86VQIFBxPbvXJKqFFFno+ZHs/S+Ra2SPmQIDAQAB",
  "manifest_version": 2,
  "minimum_chrome_version": "21",
  "name": "JSON Viewer",
  "permissions": [ "clipboardWrite", "http://*/", "contextMenus", "https://*/", "ftp://*/" ],
  "short_name": "JSONViewer",
  "update_url": "https://clients2.google.com/service/update2/crx",
  "version": "0.7.0",
  "web_accessible_resources": [ "assets/options.html", "assets/csseditor.html", "assets/css/jsonview.css", "assets/css/jsonview-core.css", "assets/css/content_error.css", "assets/images/options.png", "assets/images/close_icon.gif", "assets/images/error.gif" ]
}

Если пользователю нужно получить доступ к ресурсам расширения на веб-странице, он должен объявить СПИСОК в web_accessible_resources, возьмём json-view в качестве примера:

root@kitploit:~
"web_accessible_resources": [ "assets/options.html", "assets/csseditor.html", "assets/css/jsonview.css", "assets/css/jsonview-core.css", "assets/css/content_error.css", "assets/images/options.png", "assets/images/close_icon.gif", "assets/images/error.gif" ]

Формат URL для доступа к этим ресурсам выглядит следующим образом:

chrome-extension://' + extension id + /assets/options.html

Я разработал краулер для получения манифестов приложений расширений во всём Google Store, категории выглядят так: 'ext/10-blogging', 'ext/15-by-google', 'ext/12-shopping', 'ext/11-web-development', 'ext/1-communication', 'ext/7-productivity', 'ext/38-search-tools', 'ext/13-sports', 'ext/22-accessibility', 'ext/6-news', 'ext/14-fun', 'ext/28-photos' и так далее.

Затем мы получаем отпечатки всех расширений, которые включают web_accessible_resources.

Новое в 2022

Пять лет спустя Chrome всё же обновил функцию безопасности, чтобы обойти эту проблему. А именно, в web_accessible_resources добавлена функция белого списка matches, и только URL-адреса из белого списка могут получить доступ к web_accessible_resources, предотвращая обнаружение по отпечаткам на фронтенде.

Но... из 110 000 расширений, которые я сканировал в этом году, только 286 плагинов добавили белый список matches для web_accessible_resources; и большинство из них настроены с бесполезным белым списком *://*/* и другими явно обходимыми белыми списками.

Это показывает, насколько бесполезна функция безопасности, которую никто не использует или используют неправильно.

Благодарности

  • @evi1m0
  • @phith0n
  • @Nikaple
Скачать инструмент