Symptômes · 10 min · publié le 12 mai 2024 · mis à jour le 16 septembre 2024

Votre site force un téléchargement chez les visiteurs

Un fichier exe ou apk est servi depuis un dossier public, parfois seulement à certains pays. Votre site force un téléchargement chez les visiteurs : c’est l’un des motifs de blacklist les plus rapides. Coupez le fichier tout de suite, puis cherchez comment il a été déposé. Chaque hit est un visiteur qui récupère un binaire.

Réponse directe

Un fichier exe ou apk est servi depuis un dossier public, parfois seulement à certains pays. C'est l'un des motifs de blacklist les plus rapides.

site force téléchargement download malware wordpress apk exe hébergé

Pourquoi c’est plus grave qu’une home moche

Un défacement est laid. Un téléchargement forcé (exe, apk, parfois js packagé, iso, scr) fait de votre domaine un CDN de malware. Safe Browsing, les antivirus, les hébergeurs : listes rapides. L’horloge 2 démarre tôt. Les clients n’appellent pas pour une page bizarre : leur PC « télécharge tout seul », leur téléphone propose « installer.apk ».

C’est une des trois exceptions où l’on isole tout de suite, comme le phishing. Faut-il couper. Le fichier d’abord, l’entrée ensuite, la copie si possible en parallèle (zippez le binaire pour le constat, hors web, ne l’exécutez pas).

« Download malware WordPress », « apk exe hébergé » : les scanners d’abus cherchent précisément ces extensions dans `public_html`. Un `update.exe` à la racine, c’est le jackpot de leur signature.

  • Isoler / retirer le binaire du web (minutes).
  • Ne pas l’ouvrir sur votre PC.
  • Ticket hébergeur avec le path.
Un « Télécharger notre catalogue.pdf » légitime n’est pas cet article. L’extension et le Content-Disposition `attachment` sur un `.exe` tranchent.

Reconnaître un download forcé (et pas un PDF métier)

Le navigateur ouvre la barre de téléchargement sans clic, ou un clic home déclenche `setup.exe`. Capture : nom de fichier, URL (parfois `/wp-content/uploads/2026/08/a.exe`, parfois un PHP `download.php?f=`). Onglet réseau : `Content-Type: application/octet-stream`, `Content-Disposition: attachment`.

Un APK Android, un `.exe` Windows, un `.dmg` : aucun de ces formats n’a rien à faire sur une vitrine. Un `.js` servi en attachment peut être un loader. Un `.html` qui push un blob : encore un JS.

Certains scripts n’envoient le binaire qu’une fois (cookie). Le second chargement « va bien ». Croyez la première capture. Privée.

Geo, mobile, referer : vous ne le voyez pas

Pays (IP), UA mobile, referer Google : encore. Votre bureau FR desktop tapé à la main : 200 home. Un visiteur BE en 4G depuis Google : apk. Tests : VPN, téléphone, SERP, curl avec headers. Chez vous vs eux.

Les campagnes « drive-by download » ciblent les pays où le taux d’installation est bon. Vous n’êtes pas le marché. Vos visiteurs si.

Ne concluez pas « on n’a pas d’exe » parce que `find` à la racine est vide. Un PHP stream le binaire depuis `/tmp` ou depuis une URL tierce (vous êtes le relais). Le réseau montre l’URL chez vous, le fichier peut être ailleurs. Cherchez le PHP qui `readfile` / `curl` / `Location` vers un `.apk`.

Trouver le fichier et l’URL qui le sert

Gestionnaire : trier par date, chercher `*.exe`, `*.apk`, `*.scr`, `*.dll`, `*.bat`. Uploads, racine, `tmp`, `cache`, dossiers à nom aléatoire. Logs accès : hits `.apk`, 200 lourds. Email d’abus : path déjà cité. Malware détecté.

htaccess : `AddType` bizarre, rewrite vers le PHP de download. Un `download.php` à la racine que vous n’avez pas posé.

Médias WP : un « PDF » dont le MIME est exe. Ouvrez les fichiers récents, pas seulement l’extension affichée dans l’admin (l’admin ment si le fichier a été uploadé hors UI).

Couper : fichier, MIME, PHP qui stream

Retirer ou 403 le path, bloquer les extensions au niveau Apache/Nginx (`exe`, `apk` non servis). Isoler le PHP de stream. Flush. Tester le canal qui échouait : plus de download. Si un second path existe (`a.exe`, `b.exe`), les jumeaux.

Ne « désactivez pas tout PHP » sur le vhost : vous tuez le CMS. Ciblez uploads + les extensions binaires. Règle `php_admin_flag engine off` dans `uploads` : bon durcissement, après ou tout de suite si vous savez la poser sans casser les images (les images n’ont pas besoin de PHP).

Maintenance globale seulement si vous ne trouvez pas le path et que ça download encore. Quelques heures max, ticket en parallèle.

Hébergeur et Safe Browsing : le même soir

Ticket : path, « binary served, removed, do not wipe, rescan # ». Motif fréquent de suspension. Constat trouvé / retiré / corrigé. N’attendez pas lundi.

Safe Browsing « logiciels indésirables » : réexamen après zéro 200 sur les URL binaires, y compris les variantes. Un `a.exe` retiré, `a2.exe` encore là = refus. Réexamen.

Antivirus tiers : plus lents. Horloge 2 jusqu’à 7 j. Ne relancez pas Google toutes les heures.

Ce que le binaire dit de l’entrée

Quelqu’un a pu écrire dans le document root : FTP, admin médias, faille d’upload, voisin. Le binaire n’est pas l’entrée, c’est le stock. Fermez l’écriture. Users, clés, extension d’upload (formulaire, builders). Backdoor : un PHP qui re-télécharge l’apk à H+6.

Ne reversez pas l’exe pour « comprendre ». Hash + path suffisent au constat. L’exécuter « sur une VM pour voir » n’est pas nécessaire au titulaire d’une vitrine. Danger, temps perdu.

Si le stream vient d’un tiers : votre PHP est un proxy. Retirer le proxy, signaler l’URL tierce dans le constat. Votre domaine reste le flaggé.

Après : uploads, .htaccess, et plus jamais de PHP là

Interdire PHP dans les dossiers médias. Lister les crons qui `wget` un apk. Secrets. Autres vhosts (un `old/` qui sert encore l’exe). Surveillance 7 j : nouveaux binaires, `site:` `filetype:apk`.

Les clients qui ont téléchargé : leur dire de ne pas ouvrir, de supprimer le fichier, de scanner leur poste (leur antivirus, pas un lien que vous envoyez). Comm’ : ici, un risque réel pour ceux de la fenêtre. PSP/banque si le binaire était un stealer — souvent vous ne le saurez pas ; restez factuel (« un fichier a pu se télécharger, ne l’ouvrez pas »).

Créer un dossier si le path se recréé ou si la blacklist est déjà là. Chaque 200 sur un exe recule l’horloge 2.

Questions fréquentes

Un .zip de thème premium à la racine, c’est pareil ?

+
Ce n’est pas un drive-by, mais un zip public est une fuite (parfois déjà infecté). Retirez-le du web. Ce n’est pas le même motif abuse qu’un exe servi en attachment automatique.

Le navigateur bloque le download. On est bons ?

+
Chrome SmartScreen peut bloquer et quand même vous flagger. Retirez le fichier. Ne comptez pas sur le navigateur du client.

On vend vraiment une appli Android. Comment distinguer ?

+
Votre APK légitime a une URL connue, un clic volontaire, un certificat signé, pas un push conditionnel pays. Si un second APK inconnu apparaît, isolez-le. Ne mélangez pas les deux dans le même dossier ouvert en listing.

Imunify a déjà mis l’exe en quarantine.

+
Bien. Constatez l’entrée, cherchez les jumeaux, répondez au ticket. Leur quarantine n’interdit pas un PHP de re-download.

Faut-il formater les PC des salariés ?

+
S’ils ont ouvert l’exe, oui un soin de poste (pas votre CMS). S’ils ont seulement vu la barre puis annulé, moins critique. Ne formatez pas le serveur pour ça — isolez le fichier.
À lire ensuite
Faut-il couper le site Email malware détecté Blacklist Google Phishing hébergé Site qui redirige Premiers gestes