Cette configuration permet d'éviter les avertissements Safe Browsing sur Mozilla Firefox lors des campagnes de phishing simulé. Elle utilise les Group Policy Objects dans Active Directory.
Contrairement à Chrome et Edge, Firefox n'applique pas la préférence urlclassifier.skipHostnames si distribuée via Registry/Preferences GPO (la préférence apparaît dans about:policies mais pas dans about:config sur Firefox 140+). La seule méthode fonctionnelle est d'écrire un fichier user.js directement dans le dossier du profil utilisateur, distribué via un script PowerShell en tant que Startup Script de la GPO.
Prérequis
- Active Directory Domain Services (AD DS) fonctionnel
- Identifiants de Domain Admin
- Mozilla Firefox installé sur les clients (version 102 ESR ou ultérieure)
- Accès à Group Policy Management Console (gpmc.msc)
- Possibilité d'activer l'exécution de scripts PowerShell via GPO
ℹ️ Remarque : Pour cette configuration, les modèles ADMX de Firefox ne sont pas nécessaires. La préférence urlclassifier.skipHostnames est gérée entièrement via un script PowerShell qui écrit le fichier user.js dans les profils utilisateur.
Étape 1 : Activer l'exécution des scripts PowerShell via GPO
Par défaut, Windows bloque l'exécution des scripts PowerShell non signés. Sans cette configuration, le script de whitelist ne s'exécutera pas.
- Ouvrir Group Policy Management Console (gpmc.msc)
- Créer ou modifier la GPO cible (voir Étape 2 pour la créer)
- Naviguer vers :
Computer Configuration → Policies → Administrative Templates
→ Windows Components → Windows PowerShell
- Ouvrir Turn on Script Execution → Sélectionner Enabled → Choisir
Allow all scripts→ OK - Revenir à :
Computer Configuration → Policies → Administrative Templates
→ System → Scripts
- Ouvrir Allow logon scripts when NetBIOS or WINS is disabled → Enabled → OK
Étape 2 : Créer et lier la GPO
- Ouvrir Group Policy Management Console (gpmc.msc)
- Naviguer vers l'unité d'organisation (OU) cible
- Cliquer avec le bouton droit sur l'OU → Create a GPO in this domain, and Link it here
- Entrer le nom :
Cyber Guru SafeBrowsing Whitelist - Firefox - Cliquer OK
Étape 3 : Créer le script PowerShell et le copier sur SYSVOL
Le script écrit le fichier user.js dans tous les profils Firefox de tous les utilisateurs du client. Il doit être stocké dans le dossier SYSVOL de la GPO (PAS dans un chemin local du contrôleur de domaine, sinon les clients ne pourront pas l'atteindre).
- Depuis la console GPMC, cliquer avec le bouton droit sur la GPO
Cyber Guru SafeBrowsing Whitelist - Firefox→ Edit - Naviguer vers :
Computer Configuration → Policies → Windows Settings → Scripts (Startup/Shutdown)
- Double-cliquer sur Startup → Cliquer sur l'onglet PowerShell Scripts → Cliquer sur Show Files...
- Le dossier SYSVOL de la GPO s'ouvrira (ex.
\\<domaine>\SysVol\<domaine>\Policies\{GUID}\Machine\Scripts\Startup\) - Dans ce dossier, créer un nouveau fichier nommé
CyberGuru_Firefox_SafeBrowsing.ps1avec le contenu suivant :
# CyberGuru_Firefox_SafeBrowsing.ps1
# Distribue user.js dans tous les profils Firefox de tous les utilisateurs
$logFile = "C:\Windows\Temp\CyberGuru_Firefox.log"
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
Add-Content -Path $logFile -Value "--- Exécution: $timestamp ---"
$domini = '10eurodisconto.com,admin-help.info,agenziaesattoriale.it,amazonn.cloud,amazonws.it,antifrodi.it,apple-cl0ud.com,bn-k.eu,bn-k.org,bolletta-digitale.it,bulanmisa.com,comunicazioni-sicure.it,courierxpress.eu,cyberguru.eu,cyberguru.it,dropcloud.it,er9.es,er9.eu,er9.it,faceb00k.it,fast-shipping.it,fotocloud.net,g0ogle.eu,go0gle.store,goolge-secure.com,human-resource.tech,icloud-secure.eu,iscrizionigratuite.it,lnkedin.eu,macrosotf.com,mastercardz.com,netfliix.org,newsupdate.cloud,oultook.cloud,pagamenti-f24.it,remote-otp.com,security-service.cloud,securetracking.online,spotfy.org,telecomunicazioniitaliane.it,tribunaleroma.eu,urgente.eu,w0rld.info'
$userJsContent = 'user_pref("urlclassifier.skipHostnames", "' + $domini + '");'
Get-ChildItem "C:\Users" -Directory | ForEach-Object {
$profilesDir = Join-Path $_.FullName "AppData\Roaming\Mozilla\Firefox\Profiles"
if (Test-Path $profilesDir) {
Get-ChildItem $profilesDir -Directory -Filter "*.default*" | ForEach-Object {
$userJs = Join-Path $_.FullName "user.js"
try {
Set-Content -Path $userJs -Value $userJsContent -Force
Add-Content -Path $logFile -Value "OK: $userJs"
} catch {
Add-Content -Path $logFile -Value "ERREUR: $userJs - $_"
}
}
}
}
Add-Content -Path $logFile -Value "--- Fin ---"
- Revenir à la fenêtre Startup Properties → Cliquer sur Add... → Browse... → Sélectionner
CyberGuru_Firefox_SafeBrowsing.ps1dans le chemin\\<domaine>\SysVol\<domaine>\Policies\{GUID}\Machine\Scripts\Startup\que vous venez de créer. - Cliquer OK deux fois pour enregistrer
⚠️ IMPORTANT : Le fichier
.ps1doit se trouver dans le dossier SYSVOL ouvert par "Show Files...". S'il est référencé via un chemin local du contrôleur de domaine (ex.C:\Users\Administrator\Downloads\firefox.ps1), les clients ne pourront pas l'atteindre et le script ne s'exécutera pas.
Étape 4 : Vérification sur endpoint
- Sur un client Windows avec Firefox installé, appliquer la policy et redémarrer le PC (le Startup Script s'exécute uniquement au démarrage,
gpupdate /forcene le réexécute pas) :
gpupdate /force
shutdown /r /t 0
- Après le redémarrage, vérifier que le script a été exécuté en ouvrant :
C:\Windows\Temp\CyberGuru_Firefox.log
Des lignes OK: C:\Users\<utilisateur>\AppData\Roaming\Mozilla\Firefox\Profiles\<profil>.default-release\user.js doivent apparaître
- Ouvrir Firefox et naviguer vers :
about:config
Rechercher urlclassifier.skipHostnames — elle doit contenir la liste des 43 domaines Cyber Guru.
- Naviguer vers un domaine whitelisté (ex.
dropcloud.it) → aucun avertissement Safe Browsing rouge.
Dépannage
urlclassifier.skipHostnames apparaît dans about:policies mais PAS dans about:config :
- La méthode Registry/Preferences GPO ne fonctionne pas sur Firefox 140+. Utiliser obligatoirement le script PowerShell avec
user.js(Étape 3) - Vérifier que le fichier
user.jsexiste dans le profil en cours d'utilisation (vérifier lequel est actif viaabout:profiles) - Fermer complètement Firefox (y compris depuis le Gestionnaire des tâches) et le rouvrir
Le script PowerShell ne s'exécute pas (log absent) :
- Vérifier que le fichier
.ps1a été copié dans le dossier SYSVOL de la GPO (pas dans les chemins locaux du contrôleur de domaine). Rouvrir "Show Files..." pour vérifier - Vérifier que la Execution Policy a été activée via GPO (Étape 1)
-
gpupdate /forcerecharge les policies mais ne réexécute pas les Startup Scripts : un redémarrage complet du client est nécessaire - Exécuter
gpresult /h report.htmlsur le client pour confirmer que la GPO est appliquée
Le script s'exécute mais user.js n'est pas écrit :
- Le script s'exécute en tant que SYSTEM :
$env:APPDATApointe vers le profil système, pas vers les utilisateurs. Le script fourni (Étape 3) analyse correctementC:\Users\pour chaque profil - Vérifier les permissions sur les dossiers utilisateur (normalement SYSTEM a un accès complet)
Les avertissements Safe Browsing sont toujours présents sur les sous-domaines :
-
urlclassifier.skipHostnamesnécessite une correspondance exacte du domaine. Ajouter les sous-domaines spécifiques à la liste (ex.ciao.dropcloud.it)
user.js existe mais est ignoré :
- Vérifier que Firefox a été complètement fermé avant l'ouverture. Le fichier
user.jsn'est lu qu'au démarrage - Vérifier que le profil modifié est effectivement celui en cours d'utilisation (
about:profiles→ "This is the profile in use")