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
OreNPMGuard — Défense contre l'attaque de la chaîne d'approvisionnement Shai-Hulud | Kitploit
Outils/GitHubGitHub/rapticore/orenpmguard
Gestion des Indicateurs de Compromission (IOC)Scanners de VulnérabilitésAnalyse de CodeAnalyse de MalwareDevSecOpsRenseignement sur les MenacesSécurité de la Chaîne LogistiqueApprentissage et ÉducationRéponse aux Incidents
GitHubrapticore/orenpmguard

OreNPMGuard

Défense contre l'attaque de la chaîne d'approvisionnement Shai-Hulud

1344il y a 8 moisPas 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 →
Voir le dépôt
Partager

OreNPMGuard - Scanneur de Paquets Shai-Hulud

Version 2.0.0 - Détection Shai-Hulud 2.0 et Système de Prévention Amélioré

Un outil de sécurité pour détecter les paquets npm compromis lors des attaques de la chaîne d'approvisionnement Shai-Hulud (originale septembre 2025 et Shai-Hulud 2.0 novembre 2025). Analyse les fichiers package.json et package-lock.json pour détecter les versions installées exactes et les Indicateurs de Compromission (IoCs). Disponible en implémentations Python et Node.js avec une configuration YAML centralisée pour une maintenance facile.

Dernière mise à jour : 24 novembre 2025 - 738+ paquets compromis suivis avec 1 291 combinaisons uniques paquet@version. Détecte désormais les variantes d'attaque originales Shai-Hulud et Shai-Hulud 2.0.

Pour l'analyse multi-écosystème, voir ore-mal-pkg-inspector.

🔗 Projets Connexes

Pour l'analyse de paquets malveillants multi-écosystème (npm, PyPI, Maven, RubyGems, Go, Cargo), voir : ore-mal-pkg-inspector - Scanner complet de paquets malveillants avec renseignement dynamique sur les menaces.

OreNPMGuard se concentre spécifiquement sur la défense contre les attaques Shai-Hulud pour les paquets npm.

🚨 À propos des attaques Shai-Hulud

Shai-Hulud est un ver auto-réplicant qui a commencé à compromettre des paquets npm les 14-15 septembre 2025, représentant la première attaque auto-propagée réussie dans l'écosystème npm et l'une des attaques les plus graves de la chaîne d'approvisionnement JavaScript observées à ce jour. Nommé d'après les vers de sable géants de la série Dune de Frank Herbert, ce malware a évolué en plusieurs variantes.

Shai-Hulud original (septembre 2025)

L'attaque originale a infecté 200+ paquets npm (tels que suivis dans cet outil) avec plusieurs versions affectées par paquet.

Shai-Hulud 2.0 (novembre 2025) - NOUVEAU

Une nouvelle variante est apparue en novembre 2025 avec des changements significatifs :

  • 738+ paquets compromis avec 1 291 combinaisons uniques paquet@version
  • 25 000+ dépôts affectés à travers ~350 utilisateurs uniques
  • Nouvelle phase d'exécution : Utilise des scripts preinstall (pas seulement postinstall)
  • Nouveaux fichiers de charge utile : setup_bun.js et bun_environment.js (en plus de bundle.js)
  • Persistance renforcée : Crée des runners auto-hébergés nommés 'SHA1HULUD' et de nouveaux modèles de workflows GitHub
  • Ciblage multi-cloud : Récolte de credentials AWS, Azure et GCP
  • Escalade de privilèges Docker : Tente d'obtenir un accès root via des conteneurs privilégiés
  • Paquets téléversés entre le 21 et 23 novembre 2025

Référence : Wiz Research - Article de blog sur Shai-Hulud 2.0

🦠 Comment fonctionne l'attaque

Patient zéro : L'attaque a commencé avec le paquet rxnt-authentication publié le 14 septembre 2025 à 17:58:50 UTC par le compte npm compromis "techsupportrxnt".

Chaîne d'attaque (Shai-Hulud original) :

  1. Installation : Le paquet malveillant exécute un script postinstall lançant bundle.js (charge utile JavaScript de 3 Mo+)
  2. Récolte de credentials : Utilise TruffleHog pour rechercher des tokens GitHub/npm, des credentials AWS/GCP/Azure, des variables d'environnement et des clés cloud exposées via IMDS
  3. Exfiltration de données : Crée un dépôt public "Shai-Hulud" sous le compte GitHub de la victime avec les secrets volés dans data.json (double encodage base64)
  4. Persistance : Injecte un workflow GitHub Actions malveillant (.github/workflows/shai-hulud-workflow.yml) qui exfiltre les secrets du dépôt vers webhook[.]site
  5. Migration de dépôt : Force les dépôts organisationnels privés à devenir des dépôts personnels publics avec le suffixe "-migration" et la description "Shai-Hulud Migration"
  6. Propagation du ver : Utilise les tokens npm volés pour injecter un malware dans d'autres paquets maintenus par la victime, en incrémentant les numéros de version et en ajoutant des hooks postinstall

Chaîne d'attaque (Shai-Hulud 2.0 - novembre 2025) :

  1. Installation : Le paquet malveillant exécute un script preinstall lançant setup_bun.js ou bun_environment.js (nouveaux fichiers de charge utile)
  2. Création de fichiers de données : Crée les fichiers cloud.json, contents.json, environment.json et truffleSecrets.json
  3. Récolte de credentials : Ciblage multi-cloud (AWS, Azure, GCP) à l'aide des SDK officiels, récupération de credentials à partir de fichiers de configuration, variables d'environnement et IMDS
  4. Enregistrement de runner auto-hébergé : Enregistre la machine infectée en tant que runner auto-hébergé nommé 'SHA1HULUD'
  5. Injection de workflow GitHub :
    • Crée .github/workflows/discussion.yaml avec un runner auto-hébergé pour un accès backdoor
    • Crée .github/workflows/formatter_*.yml pour l'exfiltration de secrets (puis supprime le workflow pour cacher l'activité)
  6. Escalade de privilèges Docker : Tente d'obtenir un accès root via docker run --rm --privileged -v /:/host
  7. Déchargement de secrets cloud : Utilise des sessions authentifiées pour décharger les secrets d'AWS Secrets Manager, Google Secret Manager et Azure Key Vault
  8. Création de dépôts : Crée des dépôts avec "Shai-Hulud" dans la description pour l'exfiltration

🎯 Ce qui est volé

  • Credentials de développement : PATs GitHub (ghp_*, gho_*), tokens d'authentification npm
  • Credentials cloud : Clés d'accès et tokens AWS, GCP, Azure
  • Clés API : Credentials Atlassian, Datadog et autres services
  • Informations système : Variables d'environnement, détails de l'hôte, comptes utilisateurs
  • Code source : Dépôts privés rendus publics ou clonés

📊 Échelle d'impact

Shai-Hulud original (septembre 2025) :

  • 200+ paquets compromis dans cette base de données de suivi (y compris des paquets populaires comme @ctrl/tinycolor, ngx-bootstrap)
  • Plusieurs comptes GitHub compromis (le nombre exact varie selon les sources)
  • Dépôts publics créés avec le label "Shai-Hulud Migration"
  • Développeurs potentiellement affectés via les dépendances de paquets

Shai-Hulud 2.0 (novembre 2025) :

  • 738+ paquets compromis avec 1 291 combinaisons uniques paquet@version
  • 25 000+ dépôts affectés créés à travers ~350 utilisateurs uniques
  • 1 000+ nouveaux dépôts ajoutés toutes les 30 minutes pendant les premières heures de la campagne
  • Affecte des paquets de grands écosystèmes : Zapier, ENS Domains, PostHog, Postman, AsyncAPI, etc.
  • Vol de credentials multi-cloud (AWS, Azure, GCP)
  • Tentatives d'escalade de privilèges Docker

Vol de credentials vérifié (à partir d'environ 20 000 dépôts analysés) :

  • 775 tokens d'accès GitHub compromis
  • 373 credentials AWS exposés
  • 300 credentials GCP exposés
  • 115 credentials Azure exposés

⚠️ Avertissement d'exfiltration entre victimes

CRITIQUE : Wiz Research a confirmé que l'exfiltration entre victimes a lieu. Cela signifie :

  • Les secrets volés d'une victime peuvent être publiés dans des dépôts appartenant à une victime différente et non liée
  • Si vous trouvez des données suspectes dans vos dépôts GitHub, elles peuvent appartenir à un autre utilisateur compromis
  • Vos données peuvent avoir été exfiltrées vers des dépôts que vous ne possédez pas
  • Cela complique l'attribution et la réponse aux incidents

Implication pour l'enquête : Lors de l'examen des données exfiltrées dans vos dépôts, vérifiez si les données appartiennent réellement à votre organisation ou à une autre victime.

🔗 Lien avec les attaques précédentes

Cette attaque est directement liée au compromis s1ngularity/Nx d'août 2025, où le vol initial de tokens GitHub a permis l'attaque plus large de la chaîne d'approvisionnement. De nombreuses premières victimes de Shai-Hulud étaient des victimes connues de l'attaque s1ngularity. Les chercheurs en sécurité notent également l'intégration de contenu généré par IA dans la campagne, avec une confiance modérée qu'un LLM a été utilisé pour générer le script bash malveillant.

📅 Chronologie de l'attaque

Campagne Shai-Hulud originale :

  • 26 août 2025 : Compromis s1ngularity/Nx (attaque précurseur)
  • 14 septembre 2025 17h58 UTC : Premier paquet malveillant rxnt-authentication publié (« Patient zéro »)
  • 15 septembre 2025 : Attaque détectée et signalée par des chercheurs en sécurité
  • 15-16 septembre 2025 : Le ver se propage rapidement dans l'écosystème npm
  • 16 septembre 2025 : Plus de 180 paquets confirmés compromis
  • 17 septembre 2025 : Efforts de surveillance et de nettoyage en cours
  • 18 septembre 2025 : Version v1.2.0 avec 200 paquets suivis et outils de prévention améliorés

Campagne Shai-Hulud 2.0 :

  • 21-23 novembre 2025 : Paquets malveillants téléversés dans le registre npm
  • 24 novembre 2025 : Attaque détectée et signalée par Wiz Research et Aikido
  • 24 novembre 2025 : Version v2.0.0 avec plus de 738 paquets suivis et capacités de détection Shai-Hulud 2.0
  • En cours : GitHub continue de supprimer les dépôts créés par l'attaquant ; l'attaquant continue de créer de nouveaux dépôts

Démarrage rapide

Prérequis

  • Scanneur Python : Nécessite PyYAML (pip install pyyaml)
  • Scanneur Node.js : Nécessite js-yaml (npm install js-yaml)

Scanneur Python

root@kitploit:~
# Make executable
chmod +x shai_hulud_scanner.py

# Scan single package.json
python3 shai_hulud_scanner.py ./package.json

# Scan package-lock.json for exact versions
python3 shai_hulud_scanner.py ./package-lock.json

# Scan entire project directory
python3 shai_hulud_scanner.py ./my-project

# Scan current directory
python3 shai_hulud_scanner.py .

Scanneur Node.js

root@kitploit:~
# Install dependencies first
npm install

# Make executable
chmod +x shai_hulud_scanner.js

# Scan single package.json
node shai_hulud_scanner.js ./package.json

# Scan package-lock.json for exact versions
node shai_hulud_scanner.js ./package-lock.json

# Scan entire project directory
node shai_hulud_scanner.js ./my-project

# Scan current directory
node shai_hulud_scanner.js .

Ce que fait le scanneur

✅ Détection de correspondance exacte : Identifie les paquets avec des versions correspondant exactement aux versions compromises connues

⚠️ Détection de risque potentiel : Signale les paquets avec le même nom mais des versions différentes (peuvent encore être à risque)

🔍 Prise en charge de deux fichiers : Analyse à la fois package.json (dépendances déclarées) et package-lock.json (versions installées exactes)

📦 Couverture complète : L'analyse de package-lock.json inclut les dépendances imbriquées et les paquets transitifs

🔄 Analyse récursive : Analyse automatiquement tous les sous-répertoires en ignorant node_modules

📋 Rapport détaillé : Affiche les noms des paquets, versions, sections de dépendances et versions affectées

🔎 Détection d'IoC : Identifie les Indicateurs de Compromission pour Shai-Hulud original et Shai-Hulud 2.0 :

  • Shai-Hulud original : hooks "postinstall": "node bundle.js", fichiers bundle.js, shai-hulud-workflow.yml
  • Shai-Hulud 2.0 : hooks "preinstall", setup_bun.js, bun_environment.js, workflows discussion.yaml, formatter_*.yml
  • Commun : Références aux points d'exfiltration webhook.site, motifs de runner SHA1HULUD, escalade de privilèges Docker

Exemples de sortie

🚨 Critique (Paquets compromis trouvés) :

root@kitploit:~
🚨 CRITICAL: Found 2 CONFIRMED compromised packages:
   • @ctrl/deluge v7.2.2 in dependencies
     Affected versions: 7.2.2, 7.2.1
   • ngx-bootstrap v19.0.3 in devDependencies
     Affected versions: 18.1.4, 19.0.3, 20.0.4, 20.0.5, 20.0.6, 19.0.4, 20.0.3

⚠️ Avertissement (Version non correspondante) :

root@kitploit:~
⚠️ WARNING: Found 1 packages with different versions:
   • @ctrl/deluge v7.2.0 in dependencies
     Known affected versions: 7.2.2, 7.2.1

✅ Propre :

root@kitploit:~
✅ No affected packages found

Si des paquets compromis sont trouvés

ACTIONS IMMÉDIATES :

  1. Arrêtez tout travail de développement sur les projets affectés
  2. Supprimez les paquets compromis : npm uninstall <package-name>
  3. Videz le cache npm : npm cache clean --force
  4. Supprimez node_modules : rm -rf node_modules

ROTATION DES CREDENTIALS :

  1. Tokens d'accès personnels GitHub
  2. Tokens d'authentification npm
  3. Clés SSH
  4. Clés API (AWS, Atlassian, Datadog, etc.)

ENQUÊTE :

  1. Vérifiez GitHub pour des dépôts publics nommés "Shai-Hulud" ou avec "Shai-Hulud" dans la description
  2. Cherchez des dépôts avec le suffixe "-migration" (Shai-Hulud original)
  3. Examinez les journaux d'audit GitHub pour les créations non autorisées de dépôts
  4. Vérifiez les branches nommées shai-hulud
  5. Recherchez des IoC (Indicateurs de Compromission) :
    • Shai-Hulud original :
      • Recherchez "postinstall": "node bundle.js" dans les fichiers package.json
      • Cherchez des fichiers bundle.js (taille de 3 Mo+, contient une charge utile malveillante)
      • Examinez les fichiers .github/workflows/shai-hulud-workflow.yml
    • Shai-Hulud 2.0 :
      • Recherchez les hooks "preinstall" dans les fichiers package.json
      • Cherchez les fichiers de charge utile setup_bun.js et bun_environment.js
      • Vérifiez les fichiers de données : cloud.json, contents.json, environment.json, truffleSecrets.json
      • Examinez les fichiers .github/workflows/discussion.yaml (avec runner auto-hébergé)
      • Examinez les fichiers .github/workflows/formatter_*.yml
      • Recherchez le nom de runner 'SHA1HULUD' dans les workflows
      • Cherchez les commandes d'escalade de privilèges Docker (docker run --rm --privileged -v /:/host)
    • Commun :
      • Vérifiez les références à webhook.site dans le code ou les journaux réseau
      • Examinez les enregistrements de runners auto-hébergés
      • Vérifiez les credentials des fournisseurs cloud et l'accès au gestionnaire de secrets

Configuration

Les données des paquets sont centralisées dans affected_packages.yaml. Pour ajouter de nouveaux paquets compromis :

  1. Modifiez affected_packages.yaml
  2. Ajoutez des entrées au format :
    root@kitploit:~
    - name: "package-name"
      versions: ["1.0.0", "1.0.1"]
    
  3. Les scanneurs Python et JavaScript utiliseront automatiquement les données mises à jour

Cette approche centralisée élimine le besoin de mettre à jour plusieurs fichiers lorsque de nouvelles menaces sont découvertes.

Options de déploiement

Pour les équipes de sécurité

root@kitploit:~
# Create central scanning script
curl -O https://your-domain.com/shai_hulud_scanner.py
chmod +x shai_hulud_scanner.py

# Mass scan multiple projects
for dir in /projects/*/; do
    echo "Scanning $dir"
    python3 shai_hulud_scanner.py "$dir"
done

Intégration CI/CD

root@kitploit:~
# GitHub Actions example
- name: Scan for Shai-Hulud packages
  run: |
    curl -O https://your-domain.com/shai_hulud_scanner.js
    npm install js-yaml
    node shai_hulud_scanner.js .
    if [ $? -ne 0 ]; then
      echo "SECURITY ALERT: Compromised packages detected!"
      exit 1
    fi

Déploiement entreprise

root@kitploit:~
# Add to security toolkit
cp shai_hulud_scanner.py /usr/local/bin/
cp shai_hulud_scanner.js /usr/local/bin/
cp affected_packages.yaml /usr/local/bin/

# Create alias for easy access
echo 'alias scan-shai="python3 /usr/local/bin/shai_hulud_scanner.py"' >> ~/.bashrc

Notes techniques

  • Plateformes cibles : Linux, macOS et Windows (Shai-Hulud 2.0 ajoute la prise en charge de Windows)
  • Taille de la charge utile : Bundle JavaScript minifié de 3 Mo+ (original), nouvelles charges utiles dans Shai-Hulud 2.0
  • Auto-propagation : Premier ver auto-réplicant réussi dans l'écosystème npm
  • Phases d'exécution : L'original utilise postinstall, Shai-Hulud 2.0 utilise preinstall (augmente l'exposition dans les environnements de construction)
  • Dépendances : Python nécessite PyYAML, Node.js nécessite js-yaml
  • Sûr : Opérations en lecture seule, aucune modification de vos fichiers
  • Rapide : Optimisé pour l'analyse rapide de grandes bases de code
  • Précis : Basé sur les listes officielles d'IoC des chercheurs en sécurité (Wiz Research, Aikido)
  • Composants générés par IA : Les chercheurs en sécurité évaluent avec une confiance modérée qu'un LLM a été utilisé pour générer des parties du script bash malveillant
  • Mécanismes de persistance :
    • Original : Workflows GitHub Actions, branches malveillantes et migrations de dépôts
    • Shai-Hulud 2.0 : Runners auto-hébergés, workflows basés sur les discussions, workflows de formattage
  • Intégration cloud :
    • Original : Cible les environnements AWS et GCP à l'aide des bibliothèques SDK et des points de terminaison IMDS
    • Shai-Hulud 2.0 : Ciblage multi-cloud (AWS, Azure, GCP) avec SDK officiels, déchargement du gestionnaire de secrets

Indicateurs de Compromission (IoC)

Shai-Hulud original (septembre 2025) :

  • Hook postinstall malveillant : "postinstall": "node bundle.js" dans package.json
  • Fichier de charge utile : bundle.js (généralement JavaScript minifié de 3 Mo+)
  • Point d'exfiltration : Références aux domaines webhook.site
  • Workflow GitHub : .github/workflows/shai-hulud-workflow.yml pour la persistance
  • Nommage des dépôts : Dépôts avec suffixes "Shai-Hulud" ou "-migration"
  • Indicateurs de branches : Branches nommées shai-hulud contenant des commits malveillants

Shai-Hulud 2.0 (novembre 2025) :

  • Hook preinstall malveillant : "preinstall": "node setup_bun.js" ou "preinstall": "node bun_environment.js" dans package.json
  • Nouveaux fichiers de charge utile : setup_bun.js, bun_environment.js (en plus de bundle.js)
  • Fichiers de données : cloud.json, contents.json, environment.json, truffleSecrets.json
  • Workflows GitHub :
    • .github/workflows/discussion.yaml (avec runs-on: self-hosted et RUNNER_TRACKING_ID: 0)
    • .github/workflows/formatter_*.yml (correspondance de motifs, utilisé pour l'exfiltration de secrets)
  • Runner auto-hébergé : Runner nommé 'SHA1HULUD' enregistré sur les machines infectées
  • Escalade de privilèges Docker : Commandes comme docker run --rm --privileged -v /:/host
  • Descriptions de dépôts : Dépôts avec "Shai-Hulud" dans la description
  • Ciblage multi-cloud : Tentatives d'accès à AWS Secrets Manager, Google Secret Manager, Azure Key Vault
  • Point d'exfiltration : Références aux domaines webhook.site (identique à l'original)

Commun aux deux variantes :

  • Point d'exfiltration : Références aux domaines webhook.site
  • Nommage des dépôts : Dépôts avec "Shai-Hulud" dans le nom ou la description

📚 Documentation

  • Notes de version v1.2.0 - Journal des modifications complet et nouvelles fonctionnalités
  • Évaluation de sécurité - Analyse de sécurité complète
  • Guide de prévention - Plus de 490 lignes d'instructions d'intégration
  • Workflow GitHub Actions - Protection CI/CD automatisée

🛡️ Nouveautés de la v2.0.0

Détection Shai-Hulud 2.0

  • Détection des hooks preinstall : Détecte les scripts preinstall (phase d'exécution de Shai-Hulud 2.0)
  • Détection des nouveaux fichiers de charge utile : Recherche setup_bun.js et bun_environment.js
  • Détection des fichiers de données : Identifie cloud.json, contents.json, environment.json, truffleSecrets.json
  • Analyse des workflows GitHub : Détecte les motifs de workflow discussion.yaml et formatter_*.yml
  • Détection des runners auto-hébergés : Identifie les enregistrements de runner 'SHA1HULUD'
  • Détection d'escalade de privilèges Docker : Recherche les modèles d'exécution de conteneurs privilégiés
  • Compatibilité ascendante : Continue de détecter les indicateurs de Shai-Hulud original (septembre 2025)

Base de données de paquets étendue

  • 738+ paquets compromis suivis (contre 200 auparavant)
  • 1 291 combinaisons uniques paquet@version dans la base de données
  • 25 000+ dépôts affectés identifiés
  • ~350 utilisateurs uniques compromis

Suite de prévention améliorée (depuis la v1.2.0)

  • Configurations multi-formats : JSON, YAML, CSV pour différents cas d'utilisation
  • Intégration GitHub Actions : Workflow de blocage CI/CD automatisé
  • Script de blocage autonome : prevention/block-shai-hulud.sh
  • Outils de synchronisation de paquets : Mises à jour automatisées du renseignement sur les menaces

Capacités de détection améliorées

  • Analyse d'IoC pour les variantes originales et Shai-Hulud 2.0
  • Catégorisation de sévérité (Critique/Élevée/Moyenne) avec identification de variante
  • Renseignement sur les menaces amélioré avec compteurs de téléchargements et vecteurs d'attaque
  • Détection de credentials multi-cloud : Modèles de ciblage AWS, Azure, GCP

Support

Pour les problèmes ou questions :

  • Équipe de sécurité : [email protected]
  • Développement : [email protected]
Télécharger l’outil