Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
crx-scouter — 🕵️‍♂️ 🔎 🕸️ Je sais que tu as installé ces extensions Chrome ci-dessous. | Kitploit
Outils/GitHubGitHub/neargle/crx-scouter
OSINT (Renseignement de Sources Ouvertes)Collecte d'InformationsSécurité Web
GitHubneargle/crx-scouter

crx-scouter

🕵️‍♂️ 🔎 🕸️ Je sais que tu as installé ces extensions Chrome ci-dessous.

Voir le dépôtSite web
21il y a 4 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Vue logoVue logo

[Documentation en chinois]

crx-scouter.js peut détecter discrètement quelles extensions Chrome nous utilisons, et peut détecter si la personne devant le navigateur est un hacker génial ou un programmeur haut de gamme 🐱. Il peut être utilisé pour les honeypots, l'identification homme-machine, les contre-mesures contre le blocage des publicités, les vérifications préalables pour les exploits d'extensions, etc.

Le principe de crx-scouter.js est basé sur une expérience que j'ai réalisée avec evi1m0 en 2017. Google semble vouloir résoudre ce problème, mais sans grand succès. Les détails se trouvent dans le document sur le principe.

Démo : https://blog.neargle.com/crx-scouter/.

COMMENT UTILISER

Détecter une extension spécifique

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

La sortie de console.log ressemble à ceci :

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

Bien sûr, il existe aussi une fonction check_all_crx(callback) qui permet de détecter toutes les extensions dans les empreintes digitales. La ✨ Démo de détection en ligne est basée sur cette fonction, et l'effet est le suivant :

image

Pourquoi

Pourquoi pouvons-nous faire cela ?

Les développeurs d'extensions Chrome devraient savoir que dans le paquet avec le suffixe crx, le fichier de configuration manifest.json fournit des informations importantes sur l'extension. Le fichier avec suffixe crx peut être décompressé directement avec unzip. Exemple de manifest.json ci-dessous :

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" ]
}

Si l'utilisateur a besoin d'accéder aux ressources de l'extension dans la page web, il doit déclarer la LISTE dans web_accessible_resources, prenons json-view comme exemple :

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" ]

Le format d'URL pour accéder à ces ressources est le suivant :

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

J'ai développé un crawler pour obtenir les manifestes des applications d'extensions dans tout le Google Store, catégories comme suit : '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' et ainsi de suite.

Ensuite, nous obtenons toutes les empreintes digitales des extensions qui incluent web_accessible_resources.

Nouveau en 2022

Cinq ans plus tard, Chrome a encore mis à jour une fonctionnalité de sécurité pour contourner ce problème. À savoir, web_accessible_resources ajoute une fonctionnalité de sécurité de liste blanche matches, et seules les URL figurant dans la liste blanche peuvent accéder à web_accessible_resources, évitant ainsi la détection des empreintes digitales côté front-end.

Mais... sur les 110 000 extensions que j'ai crawlées cette année, seuls 286 plugins ont ajouté la liste blanche matches de web_accessible_resources ; et la plupart d'entre eux sont configurés avec des listes blanches inutiles *://*/* et d'autres listes blanches clairement contournables.

Cela montre à quel point une fonctionnalité de sécurité est impuissante lorsque personne ne l'utilise ou l'utilise de manière incorrecte.

Remerciements

  • @evi1m0
  • @phith0n
  • @Nikaple
Télécharger l’outil