Cap'Chat
research/writeups/writeup_002
← retour au bureau
Analyse PUP · Writeup #002

OneBrowser, EpiBrowser,
PulseBrowser et leurs semblables

Ces "navigateurs" qui s'installent sans que personne l'ait vraiment demandé, et qui ne repartent pas quand on essaie de les virer. Je les désinstalle régulièrement sur les postes clients, alors autant les comprendre vraiment.

PUP Browser Hijacker Chromium Fork Collecte de données Windows Tous publics Writeup #002
01_definitions.sh
×
C'est quoi exactement

La version courte

Un browser hijacker, c'est un logiciel qui s'empare de votre navigateur sans vraiment vous le demander. La page d'accueil change. Le moteur de recherche aussi. Des pubs apparaissent là où elles n'ont rien à faire. Et quand vous essayez de remettre les choses en ordre, ça revient.

OneBrowser, PulseBrowser, et leurs dizaines de variantes (Chromstera, Surf Browser, Lark Browser...) appartiennent à une sous-famille particulière : ce sont de vrais navigateurs fonctionnels, basés sur Chromium, le moteur open source derrière Google Chrome, mais modifiés pour servir les intérêts de leurs créateurs plutôt que les vôtres. C'est ce qui les rend efficaces : vous avez l'impression d'utiliser quelque chose de normal. Et techniquement, vous l'utilisez.

PUP vs malware : la nuance qui compte

On parle ici de PUP, soit Potentially Unwanted Program. La distinction avec un malware classique est à la fois juridique et technique :

PUP = techniquement "consenti"
malware = sans consentement
À garder en tête : Le fait qu'un logiciel soit "légalement" consenti ne signifie pas qu'il est inoffensif. Ces logiciels utilisent des techniques proches des malwares, comme une persistence agressive, une désinstallation qui ne désinstalle pas vraiment, ou une collecte de données discrète, mais se planquent derrière une façade de légitimité. C'est une arnaque juridiquement couverte, et c'est précisément là leur force.
02_business_model.sh
×
Qui fabrique ça et pourquoi

Les flux de revenus

SourceMécanismeNiveau
Injection publicitaireLe navigateur insère ses propres pubs ou remplace les existantes. Chaque clic rapporte à l'éditeur, pas au site.courant
Détournement de rechercheVotre moteur par défaut redirige via un ID affilié. Chaque recherche génère une commission.systématique
Collecte de donnéesHistorique, recherches, habitudes. Revendus à des data brokers ou utilisés pour du ciblage.préoccupant
Pay-per-installL'éditeur est payé pour chaque installation réussie par un tiers qui construit des audiences captives.moteur principal

Les acteurs derrière

Généralement des sociétés enregistrées légalement, souvent en Europe de l'Est, en Israël, ou en Asie du Sud-Est. Plusieurs familles partagent les mêmes réseaux de distribution, les mêmes certificats, parfois les mêmes IPs. Ce n'est pas le chaos, c'est une filière.

03_vecteurs_infection.sh
×
Comment ça arrive sur votre machine

C'est la partie que je trouve la plus intéressante. Comment est-ce que ce truc atterrit sur la machine de quelqu'un qui n'en voulait pas ?

VECTEUR 01, LE PLUS COURANT
Bundling

Vous téléchargez un convertisseur PDF, un utilitaire de compression, un vieux jeu abandonné. L'installateur est réel, le logiciel fonctionne. Mais une étape propose "en bonus" OneBrowser avec une case pré-cochée et "Suivant" bien visible, tandis que "Refuser" est grisé dans un coin. C'est légal. Et conçu précisément pour que vous passiez à côté.

VECTEUR 02
Faux sites de téléchargement

Des dizaines de sites copient les pages officielles de VLC, 7-Zip, WinRAR avec des URLs quasi identiques. Le logiciel s'installe vraiment, et le PUP en douce avec.

VECTEUR 03
Fausses mises à jour

Pop-up en plein milieu d'un site : "Votre navigateur est obsolète. Mettre à jour maintenant." Le fichier téléchargé n'est pas une mise à jour de Chrome.

VECTEUR 04
Publicité ciblée

Des pubs sur des sites légitimes présentent ces navigateurs comme "plus rapides", "plus privés", "plus sécurisés" que Chrome. Le marketing est propre. Les arguments sont invérifiables, et c'est justement le signal.

Règle de base : Toujours choisir l'installation "personnalisée" ou "avancée", jamais "rapide" ou "recommandée". Décocher systématiquement tout ce qui est coché par défaut.
04_analyse.sh
×
Ce qu'on observe sous le capot

À l'installation

Ce qui est généralement observé sur cette famille :

Installation dans %APPDATA%, pas besoin de droits admin
Clé Run dans le registre ou tâche planifiée
Extension navigateur, survit indépendamment

Le trafic réseau

sakina@capchat:~$ wireshark --capture --interface eth0
// comportements documentés sur familles similaires :
WARN contact serveurs telemetrie → avant ouverture du premier onglet
WARN historique navigation → transmission à intervalles réguliers
WARN CDN publicitaires non standards → inconnus des listes de filtrage

Persistence, ou pourquoi ça revient tout seul

01
Désinstallation partielle
Le Panneau de configuration supprime le binaire principal. Rarement le reste.
02
Tâche planifiée de surveillance
Surveille l'absence du logiciel et peut le réinstaller automatiquement après désinstallation.
03
Extension navigateur orpheline
Survit indépendamment du navigateur principal. Continue de collecter même si le PUP est "supprimé".

Exfiltration : qu'est-ce qui part vraiment ?

C'est la question centrale, et la réponse honnête : ça varie énormément selon le produit et la version.

Télémétrie d'usage → dans les CGU, "consenti"
Historique de navigation → zone grise
Recherches avant validation → problématique
Navigation privée → inacceptable
Injection pages bancaires → criminel
Le vrai risque : c'est pas le film catastrophe. Pas de keylogger qui vole vos mots de passe en direct. Mais des semaines d'historique, des habitudes cartographiées, des profils revendus à des gens que vous ne connaîtrez jamais. C'est plus insidieux qu'un malware classique, et légal en plus.
05_methodologie.sh
×
Protocole d'analyse

VM Windows 10 isolée, tout le trafic passe par un proxy d'interception. Snapshot avant infection, pour un retour à l'état propre entre chaque test.

Outils

OutilUsage
Sysinternals AutorunsPersistence : clés Run, tâches planifiées, extensions
Process MonitorFichiers et registre touchés en temps réel
Process ExplorerArbre des processus, DLLs chargées
WiresharkTrafic réseau brut
Burp Suite CommunityInterception et déchiffrement HTTPS
PEStudioAnalyse statique : imports, strings, certificats
Detect-It-EasyIdentification packers / obfuscateurs
x64dbgDésassemblage sur les parties intéressantes
any.runSandbox en ligne, pour une première passe comportementale

Protocole

# pré-infection
[ ] snapshot VM
[ ] export Autoruns, pour établir un état de référence
[ ] Procmon + Wireshark en capture
# installation
[ ] documenter chaque étape (screenshots)
[ ] noter l'heure exacte de chaque action
# post-install, avant lancement
[ ] export Procmon, pour le diff de l'installation
[ ] Autoruns, pour le diff avec le référentiel
[ ] exploration manuelle %APPDATA% %LOCALAPPDATA% %TEMP%
# runtime
[ ] lancer navigateur
[ ] attendre 5 min sans interaction, pour observer le trafic de base
[ ] faire une recherche, visiter des sites, noter les deltas
# analyse statique
[ ] PEStudio, pour le certificat, les imports, les strings en clair
[ ] DLLs chargées via Process Explorer
06_remediation.sh
×
Se débarrasser proprement
Pourquoi la désinstallation normale ne suffit pas : Le Panneau de configuration supprime le binaire principal. Rarement le reste. La tâche planifiée est encore là. L'extension dans vos navigateurs aussi. Dans certains cas, un service survit et réinstalle le logiciel au prochain redémarrage.
01
Désinstallation standard
Panneau de configuration → Programmes → Désinstaller. Nécessaire mais insuffisant.
02
Autoruns (Sysinternals)
Chercher le nom dans toutes les catégories. Supprimer toutes les entrées trouvées.
03
Tâches planifiées
Win+R → taskschd.msc → Bibliothèque. Supprimer toute tâche liée.
04
Registre
Win+R → regedit → Ctrl+F sur le nom du logiciel dans HKCU\Software, HKLM\Software et toutes les clés Run.
05
Dossiers résiduels
Vérifier et supprimer manuellement dans %APPDATA%, %LOCALAPPDATA%, %PROGRAMFILES%, %TEMP%.
06
Extensions navigateur
Dans chaque navigateur : Paramètres → Extensions → supprimer tout ce qui est inconnu.
07
Navigateur par défaut
Paramètres Windows → Applications → Applications par défaut → remettre votre navigateur.
08
Vérification finale
Redémarrer. Attendre 5 minutes. Vérifier que le processus ne s'est pas relancé (Gestionnaire des tâches → Détails).

Outils en complément

Malwarebytes Free + AdwCleaner (Malwarebytes), ce dernier étant spécialisé adware/PUP et gratuit. Bon filet de sécurité après le nettoyage manuel.
06b_cas_reel.sh
×
Cas de terrain, intervention du 09/07/2026

Confirmation empirique sur un poste réel, en dehors de tout environnement de test. Intervention à distance sur une machine où EpiBrowser était installé depuis une durée indéterminée, avec les symptômes attendus : navigateur imposé, aucune sortie propre disponible.

Premier constat : aucun UninstallString dans les clés Uninstall de HKLM/HKCU. Ce qui était supposé en section 01 se confirme ici : il n'y a jamais eu d'intention de fournir une désinstallation fonctionnelle.

La persistance retrouvée

Trois tâches planifiées coexistaient sur la machine :

EpiBrowser-S-1-5-21-[SID]
EpiBrowserStartup-S-1-5-21-[SID]
sys_component_health_[GUID], un nom délibérément générique

La troisième est la plus intéressante : son nom ne mentionne ni "Epi" ni "Browser". Il imite la nomenclature d'une tâche système de supervision, exactement le genre d'entrée qu'on laisse passer en parcourant une liste de 200 tâches planifiées sans s'attarder.

La chaîne d'exécution

01
Tâche planifiée déclenche cmd.exe
Point d'entrée discret, rien d'alarmant en apparence dans un premier survol.
02
cmd.exe lance node.exe
Runtime Node.js officiel, avec une signature OpenJS Foundation (chaîne DigiCert) valide, binaire non altéré.
03
node.exe exécute un script temporaire
Situé dans %LOCALAPPDATA%\TEMP\[GUID]or.js. Absent au moment de l'analyse, soit par auto-suppression après exécution, soit par régénération à la volée à chaque déclenchement.
Pourquoi c'est efficace : aucune des trois étapes n'est intrinsèquement suspecte pour un antivirus basé sur les signatures. cmd.exe et node.exe sont des binaires légitimes et signés. Tout le comportement problématique tient dans un script JS volatil, jamais capturé sur ce poste au moment du contrôle.

IOC confirmés sur ce cas

TypeValeur
Dossier applicatif%LOCALAPPDATA%\EPISoftware\
Sous-dossier%LOCALAPPDATA%\EPISoftware\EpiBrowser\
Tâche planifiéeEpiBrowser-S-1-5-21-[SID]
Tâche planifiéeEpiBrowserStartup-S-1-5-21-[SID]
Tâche planifiée (masquée)sys_component_health_[GUID]
Binaire abusé (légitime)%APPDATA%\Programs\nodejs\node.exe
Script volatil%LOCALAPPDATA%\TEMP\[GUID]or.js

Remédiation appliquée

PS> Get-ItemProperty HKLM/HKCU Uninstall
aucun UninstallString
PS> Remove-Item "...\EPISoftware" -Recurse -Force
fichiers applicatifs supprimés
PS> Get-ScheduledTask | Where-Object {...EPISoftware|EpiBrowser|node.exe...}
3 tâches identifiées
> schtasks /Delete /TN "..." /F ×3
suppression réussie, aucune persistance résiduelle au contrôle final
Le runtime Node.js lui-même n'a pas été supprimé : sa signature est valide et son usage légitime en dehors de ce détournement. Sa suppression relève d'un choix au cas par cas plutôt que d'une règle automatique de remédiation.
07_conclusions.sh
×
Ce qu'on peut dire à ce stade

Ces logiciels ne sont pas des accidents. Ils sont conçus, financés, distribués par des gens qui savent exactement ce qu'ils font. La case cochée par défaut dans l'installateur, c'est pas un oubli, c'est le produit.

Les règles de base pour s'en prémunir

# prévention : les non-négociables
télécharger uniquement depuis les sites officiels
installation "personnalisée" ou "avancée", jamais "rapide"
décocher systématiquement tout ce qui est coché par défaut
uBlock Origin dans votre navigateur ← bloque aussi les faux sites de téléchargement