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
agentic-ioc-scanner — Scanner d'IOC pour outils de codage IA agentique — détecte Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 et DPRK PromptMink. | Kitploit
Outils/GitHubGitHub/dhawaldesai/agentic-ioc-scanner
Gestion des Indicateurs de Compromission (IOC)Analyse StatiqueScanners de VulnérabilitésAnalyse de CodeAnalyse de MalwareRenseignement sur les MenacesSécurité de la Chaîne LogistiqueArticles et RechercheApprentissage et ÉducationRéponse aux IncidentsRessources Organisées
il y a 3 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 →
GitHub
dhawaldesai/agentic-ioc-scanner

agentic-ioc-scanner

Scanner d'IOC pour outils de codage IA agentique — détecte Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 et DPRK PromptMink.

Voir le dépôt
Partager

agentic-ioc-scanner

Scanner IOC pour les outils de codage IA agentiques — détecte Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 et DPRK PromptMink.

Un kit de détection pour les compromissions des assistants de codage IA agentiques (Claude Code, Gemini CLI, Cursor) et les dépendances qu'ils intègrent dans vos dépôts. Onze vérifications couvrant l'injection de hooks, les configurations RCE, les dépendances malveillantes, les backdoors de hooks git et la falsification de workflows CI. La liste des IOC est externalisée — l'ajout de nouveaux indicateurs ne nécessite aucune modification de code.

Article de blog associé : When the Tool Fights Back.

Ce qui est inclus

1. Scanner IOC (scanner/ais.sh)

Onze vérifications, chacune avec un What: (objectif) et un Fix: (remédiation) imprimés sous l'en-tête de section pour que le rapport soit explicite. La liste des IOC se trouve dans scanner/iocs.txt (versionnée ; remplacez par IOC_FILE=/chemin/vers/iocs.txt).

Utilisation :

root@kitploit:~
bash scanner/ais.sh
# Enter your project folder when prompted

# Custom IOC list:
IOC_FILE=./my-iocs.txt bash scanner/ais.sh

# Custom report path (default: ./agentic-ioc-scan-YYYYMMDD-HHMMSS.log):
REPORT_FILE=/var/log/agentic-scan.log bash scanner/ais.sh

Sortie

  • Les résultats sont affichés dans le terminal (colorisés) et dans un fichier de rapport en texte brut (agentic-ioc-scan-YYYYMMDD-HHMMSS.log par défaut, nettoyé des codes ANSI via tee → sed).
  • Étiquettes de gravité : [CRITICAL] (agir maintenant), [WARNING] (probablement malveillant — vérifier), [REVIEW] (utilisation légitime possible — confirmer), [OK] (propre).
  • Les résultats de contenu de fichier incluent le numéro de ligne où l'indicateur a été trouvé (format chemin:ligne). Sections qui affichent les numéros de ligne : §1 hook, §2 signature Bun, §3 signal d'obfuscation, §5 clé preinstall, §7 métacaractère Gemini, §8 référence de hook git dans AGENTS.md, §9 contenu suspect de hook.
  • Le résultat de §11 (ver distant) rapporte en plus la ligne .git/config incriminée ainsi que l'URL distante correspondante, afin que vous puissiez accéder directement à l'entrée à supprimer.
  • La redirection core.hooksPath (§9) rapporte le chemin absolu vers le .git/config du dépôt afin que la réaffectation soit vérifiable.

Exemple de résultat

root@kitploit:~
[CRITICAL] Repo points to known worm exfil name
           Repo:   /home/dev/projects/myrepo
           Config: /home/dev/projects/myrepo/.git/config:9
           URL:    https://github.com/dhawaldesai/A-Mini-Shai-Hulud-has-Appeared

[CRITICAL] Malicious hook: /home/dev/projects/myrepo/.claude/settings.json:3
[CRITICAL] Suspicious git post-checkout hook: /home/dev/projects/myrepo/.git/hooks/post-checkout:2

Mise à jour des IOC

Modifiez scanner/iocs.txt et incrémentez l'en-tête # version:. Le format est TYPE|VALEUR|NOTES. Types pris en charge :

Aucune modification de code n'est nécessaire lorsque de nouveaux IOC apparaissent — le scanner les lit au démarrage et affiche la version chargée dans la bannière.

Dépendances

Requis : bash, find, grep, awk, sed, git. Optionnel : jq (préféré pour §1 — utilise une heuristique grep en son absence), npm (requis pour la vérification §10 des paquets globaux ; la section est ignorée silencieusement si indisponible).

2. Scanner de version de paquets affectés (scanner/pkg_version_check.sh)

Compagnon du scanner IOC. Lit un CSV de paires package,version affectées (par ex. le flux IOC Mini Shai-Hulud dans ~/Downloads/Mini Shai-Hulud - Sheet1.csv — 633 paires paquet/version npm) et vérifie si elles apparaissent dans :

  1. Un répertoire de projet local fourni par l'utilisateur — analyse package.json, package-lock.json, yarn.lock, pnpm-lock.yaml et les node_modules/<pkg>/package.json installés. Les manifestes PyPI (requirements.txt, poetry.lock, Pipfile.lock) sont également vérifiés lorsque le CSV contient des noms non scopés.
  2. Les dépôts GitHub de l'utilisateur — via l'interface CLI gh : recherche de code dans les types de fichiers de verrouillage, puis validation de version exacte via l'API SBOM du graphe de dépendances (/repos/{owner}/{repo}/dependency-graph/sbom).

Modèle de gravité : correspondance exacte pkg@version dans un fichier de verrouillage, node_modules/ ou SBOM → [CRITICAL]. Spécificateur de plage (^1.2.3, ~1.2.3, >=…) pouvant inclure la version affectée → [REVIEW]. Correspondance de nom de paquet sans confirmation de version → [REVIEW]. La sortie est dirigée vers le terminal et vers ./shai-hulud-pkg-scan-YYYYMMDD-HHMMSS.log (nettoyé des codes ANSI), avec un résumé de répartition des gravités à la fin.

Utilisation :

root@kitploit:~
# Interactive — prompts for project directory
bash scanner/pkg_version_check.sh

# Fully scripted (env-var overrides)
PROJECT_DIR=/path/to/project \
  IOC_CSV="$HOME/Downloads/Mini Shai-Hulud - Sheet1.csv" \
  REPORT_FILE=/var/log/pkg-scan.log \
  bash scanner/pkg_version_check.sh --skip-node-modules

Format CSV : colonne1 = nom du paquet (noms scopés comme @scope/pkg pris en charge), colonne2 = version affectée exacte. Une ligne d'en-tête est automatiquement détectée et ignorée. Remplacez le chemin avec IOC_CSV=....

Dépendances : bash, find, grep, awk, sed. Optionnel : jq (améliore la précision de l'analyse de node_modules/<pkg>/package.json), gh (requis pour la phase GitHub — la phase est ignorée avec un message clair si absent ou non authentifié).

Limitations connues :

  • La recherche de code GitHub ignore les fichiers de verrouillage >384 Ko et n'indexe que les branches par défaut — le chemin SBOM est la vérification faisant autorité.
  • La phase GitHub est limitée par le taux de requêtes (10 requêtes/min authentifiées) ; limitée à environ 5 paquets toutes les 7 secondes, donc un CSV complet de 633 lignes prend environ 22 minutes contre GitHub. Exécutez d'abord les analyses locales, la phase GitHub séparément.
  • L'analyse des fichiers de verrouillage est basée sur grep, non entièrement analysée — un formatage profondément imbriqué ou inhabituel peut produire des faux négatifs. La suite la plus utile est l'analyse de fichiers de verrouillage basée sur jq.
  • L'API SBOM nécessite que le graphe de dépendances du dépôt soit activé et indexé ; les dépôts sans cela se rabattent sur [REVIEW].

3. Politique de sécurité Claude Code (claude-code-policy/)

Couche de prévention pour Claude Code, complétant la couche de détection ci-dessus.

  • Bloque l'exécution des hooks au niveau du projet (allowManagedHooksOnly)
  • Bloque les écritures dans .claude/settings.json
  • Bloque l'exécution de motifs de dropper connus
  • Bloque les commandes curl, wget et bun de l'utilisation d'outils par l'agent

Installation :

root@kitploit:~
# Copy managed settings (cannot be overridden by projects)
cp claude-code-policy/managed-settings.json ~/.claude/managed-settings.json

# Copy the PreToolUse hook
mkdir -p ~/.claude/hooks
cp claude-code-policy/hooks/block_shai_hulud.py ~/.claude/hooks/
chmod +x ~/.claude/hooks/block_shai_hulud.py

Feuille de route / lacunes connues

  • Analyse globale PyPI équivalente à §10 (actuellement seul npm ls -g est câblé).
  • Hook pre-receive côté serveur pour rejeter les pushs ajoutant des fichiers .claude/settings.json, .vscode/tasks.json ou .gemini/ provenant d'auteurs non autorisés.
  • Intégration optionnelle avec la protection push GitHub / Advanced Security.

Références

  • Quand l'outil riposte — analyse associée
  • Sophos : Attaque par chaîne d'approvisionnement Mini Shai-Hulud sur les paquets npm SAP
  • Mend.io : Shai-Hulud frappe SAP — un ver de chaîne d'approvisionnement arme Claude Code
  • Wiz : Chaîne d'approvisionnement Mini Shai-Hulud sur npm SAP
  • Novee Security : Avis Google Gemini CLI RCE — CVSS 10.0
  • The Hacker News : Google corrige la RCE CI/CD CVSS 10 de Gemini CLI (couvre aussi Cursor CVE-2026-26268)
  • ReversingLabs : PromptMink — malware nord-coréen inséré dans une base de code via Claude
  • Endor Labs : Mini Shai-Hulud revient — 42 paquets npm malveillants avec de faux badges Sigstore dans une attaque de l'écosystème @antv

Contribution

Les issues et PRs sont les bienvenus — en particulier pour les nouvelles soumissions d'IOC (ajouter à scanner/iocs.txt et incrémenter l'en-tête de version), des racines d'analyse supplémentaires spécifiques à une plateforme et des motifs de détection pour les outils agentiques adjacents (Continue, Cody, Codex CLI, Aider).

Licence

MIT

Télécharger l’outil
§VérificationMenace couverte
1Injection de hook SessionStart de Claude Code dans tout settings.json (basée sur jq, faible taux de faux positifs)Persistance Mini Shai-Hulud
2Signatures de dropper Bun-runtime dans setup.mjsÉtape d'installation de Mini Shai-Hulud
3Charges utiles obfusquées execution.js — taille plus signal d'obfuscation (monoligne, base64, eval(atob(, child_process)Voleur d'identifiants Mini Shai-Hulud
4Fichiers de verrouillage de malware dans $TMPDIR (noms issus de la liste IOC)Sentinelle Mini Shai-Hulud
5Scripts preinstall dans package.json faisant référence à des noms de fichiers dropperPoint d'entrée générique du ver de chaîne d'approvisionnement
6Commits rédigés par IA touchant .github/workflows/ (filtre par liste blanche d'emails)Falsification CI par identité d'agent IA compromise
7Fichiers de configuration .gemini/ avec motifs de métacaractères shellGemini CLI CVSS 10.0 RCE (avant v0.39.1)
8Configurations Cursor AGENTS.md et .cursor/ faisant référence à des hooks git / dépôts nusCursor CVE-2026-26268
9Hooks Git post-checkout / post-merge / post-rewrite / pre-commit contenant des primitives de récupération et exécution, plus core.hooksPath redirigé en dehors de la liste blanche autoriséePrimitive d'exécution CVE-2026-26268 + détournement générique de hooks
10Paquets node_modules installés globalement et localement recoupés avec la liste IOCEnsemble SAP CAP de Mini Shai-Hulud, DPRK PromptMink, futurs paquets malveillants
11Dépôts distants Git correspondant aux noms de dépôts d'exfiltration de ver connus (Shai-Hulud, A Mini Shai-Hulud has Appeared)Signal de compromission confirmée
  • Prise en compte des worktrees : lorsqu'un .git est un fichier (contenant gitdir: ...), le répertoire git réel est résolu avant l'inspection.
  • TypeUtilisé parExemple
    FILENAMEMotif §5 preinstallsetup.mjs
    LOCKFILEAnalyse §4 des fichiers de verrouillagetmp.987654321.lock
    NPMAnalyse §10 des paquets globaux et locaux@validate-sdk/v2
    PYPI§10 (vérification croisée lorsqu'un scanner PyPI est ajouté)lightning
    HOOKSTRINGCorrespondance §1 du contenu du hook (actuellement codé en ligne)SessionStart
    REPONAMECorrespondance §11 du dépôt distant gitA Mini Shai-Hulud has Appeared
    EMAILSUBSTRINGréservé pour la future correspondance IOC d'auteur de commit—
    CONFIGPATHliste de référence des chemins de configuration des outils agentiques.claude/settings.json