Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
agentic-ioc-scanner — Scanner IOC per strumenti di coding AI agentici — rileva Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 e DPRK PromptMink. | Kitploit
Strumenti/GitHubGitHub/dhawaldesai/agentic-ioc-scanner
Gestione degli Indicatori di Compromissione (IOC)Analisi StaticaScanner di VulnerabilitàAnalisi del CodiceAnalisi MalwareThreat IntelligenceSicurezza della Supply ChainPaper e RicercaApprendimento e Formazione

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Risposta agli Incidenti
Risorse Curate
GitHubdhawaldesai/agentic-ioc-scanner

agentic-ioc-scanner

Scanner IOC per strumenti di coding AI agentici — rileva Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 e DPRK PromptMink.

Vedi Repository
3 mesi faNon ancora revisionato

agentic-ioc-scanner

Scanner IOC per strumenti di coding AI agentici — rileva Mini Shai-Hulud, Gemini CLI RCE, Cursor CVE-2026-26268 e DPRK PromptMink.

Un kit di rilevamento per individuare la compromissione degli assistenti di coding AI agentici (Claude Code, Gemini CLI, Cursor) e delle dipendenze che introducono nei tuoi repository. Undici controlli tra iniezione di hook, configurazioni RCE, dipendenze malevole, backdoor nei git hook e manomissione dei workflow CI. La lista IOC è esternalizzata: aggiungere nuovi indicatori non richiede modifiche al codice.

Articolo di accompagnamento: When the Tool Fights Back.

Cosa include

1. Scanner IOC (scanner/ais.sh)

Undici controlli, ciascuno con un What: (scopo) e un Fix: (rimedio) inline stampati sotto l'intestazione della sezione, così il report è autoesplicativo. La lista IOC risiede in scanner/iocs.txt (versionata; si può sovrascrivere con IOC_FILE=/path/to/iocs.txt).

Utilizzo:

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

Output

  • I risultati vengono mostrati nel terminale (a colori) e salvati in un file di report in testo semplice (agentic-ioc-scan-YYYYMMDD-HHMMSS.log di default, ripulito dai codici ANSI tramite tee → sed).
  • Etichette di gravità: [CRITICAL] (intervenire subito), [WARNING] (probabilmente malevole — verificare), [REVIEW] (possibile uso legittimo — confermare), [OK] (pulito).
  • I risultati sui contenuti dei file includono il numero di riga in cui è stato trovato l'indicatore (formato path:line). Sezioni che riportano i numeri di riga: §1 hook, §2 firma Bun, §3 segnale di offuscamento, §5 chiave preinstall, §7 metacarattere Gemini, §8 riferimento git hook in AGENTS.md, §9 contenuti hook sospetti.
  • Il risultato §11 sul remote del worm riporta anche la riga .git/config incriminata e l'URL del remote corrispondente, così puoi andare direttamente alla voce da rimuovere.
  • La ridirezione di core.hooksPath (§9) riporta il percorso assoluto del .git/config del repository, così la riassegnazione è verificabile.

Esempio di output

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

Aggiornamento degli IOC

Modifica scanner/iocs.txt e aggiorna l'intestazione # version:. Il formato è TYPE|VALUE|NOTES. Tipi supportati:

Non è richiesta alcuna modifica al codice quando emergono nuovi IOC — lo scanner li legge all'avvio e stampa la versione caricata nel banner.

Dipendenze

Richiesti: bash, find, grep, awk, sed, git. Opzionali: jq (preferito per §1 — in assenza usa l'euristica grep), npm (richiesto per il controllo dei pacchetti globali §10; la sezione viene saltata silenziosamente se non disponibile).

2. Scanner delle versioni dei pacchetti interessati (scanner/pkg_version_check.sh)

Complementare allo scanner IOC. Legge un CSV di coppie package,version interessate (ad es. il feed IOC di Mini Shai-Hulud in ~/Downloads/Mini Shai-Hulud - Sheet1.csv — 633 coppie npm pacchetto/versione) e verifica se compaiono in:

  1. Una directory di progetto locale fornita dall'utente — analizza package.json, package-lock.json, yarn.lock, pnpm-lock.yaml e il node_modules/<pkg>/package.json installato. Vengono controllati anche i manifest PyPI (requirements.txt, poetry.lock, Pipfile.lock) quando il CSV contiene nomi non scoped.
  2. I repository GitHub dell'utente — tramite CLI gh: ricerca nel codice tra i tipi di lockfile, quindi validazione esatta della versione tramite l'API SBOM del dependency graph (/repos/{owner}/{repo}/dependency-graph/sbom).

Modello di gravità: corrispondenza esatta pkg@version in un lockfile, in node_modules/ o nell'SBOM → [CRITICAL]. Specificatore di intervallo (^1.2.3, ~1.2.3, >=…) che potrebbe includere la versione interessata → [REVIEW]. Corrispondenza del nome del pacchetto senza conferma della versione → [REVIEW]. L'output viene mostrato nel terminale e salvato in ./shai-hulud-pkg-scan-YYYYMMDD-HHMMSS.log (senza codici ANSI), con un riepilogo per gravità alla fine.

Utilizzo:

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

Formato CSV: col1 = nome del pacchetto (supportati nomi scoped come @scope/pkg), col2 = versione interessata esatta. Una riga di intestazione viene rilevata automaticamente e saltata. Si può sovrascrivere il percorso con IOC_CSV=….

Dipendenze: bash, find, grep, awk, sed. Opzionali: jq (migliora la precisione del parsing di node_modules/<pkg>/package.json), gh (richiesto per la fase GitHub — la fase viene saltata con un messaggio chiaro se assente o non autenticato).

Limitazioni note:

  • La ricerca nel codice di GitHub non rileva lockfile >384KB e indicizza solo i branch predefiniti — il percorso SBOM è il controllo di riferimento.
  • La fase GitHub è soggetta ai limiti di rate (10 req/min autenticati); limitata a ~5 pacchetti ogni 7 secondi, quindi un CSV completo di 633 righe richiede ~22 minuti contro GitHub. Esegui prima le scansioni locali, la fase GitHub separatamente.
  • Il parsing dei lockfile è basato su grep, non è un parsing completo — formattazioni profondamente annidate o inusuali possono produrre falsi negativi. Il successivo intervento di maggior valore è il parsing dei lockfile basato su jq.
  • L'API SBOM richiede che il dependency graph del repository sia abilitato e indicizzato; i repository senza questa funzione ricadono su [REVIEW].

3. Policy di sicurezza di Claude Code (claude-code-policy/)

Livello di prevenzione per Claude Code, che completa il livello di rilevamento sopra descritto.

  • Blocca l'esecuzione degli hook a livello di progetto (allowManagedHooksOnly)
  • Blocca le scritture su .claude/settings.json
  • Blocca l'esecuzione di pattern noti di dropper
  • Blocca i comandi curl, wget e bun dall'uso degli strumenti dell'agente

Installazione:

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

Roadmap / lacune note

  • Scansione globale PyPI equivalente al §10 (attualmente è implementato solo npm ls -g).
  • Hook pre-receive lato server per rifiutare push che aggiungono file .claude/settings.json, .vscode/tasks.json o .gemini/ da autori non in allowlist.
  • Integrazione opzionale con la protezione push / Advanced Security di GitHub.

Riferimenti

  • When the Tool Fights Back — analisi di accompagnamento
  • Sophos: Mini Shai-Hulud supply chain attack on SAP npm packages
  • Mend.io: Shai-Hulud strikes SAP — supply chain worm weaponizes Claude Code
  • Wiz: Mini Shai-Hulud supply chain on SAP npm
  • Novee Security: Google Gemini CLI RCE — CVSS 10.0 advisory
  • The Hacker News: Google fixes CVSS 10 Gemini CLI CI/CD RCE (also covers Cursor CVE-2026-26268)
  • ReversingLabs: PromptMink — DPRK malware inserted into codebase via Claude
  • Endor Labs: Mini Shai-Hulud returns — 42 malicious npm packages with fake Sigstore badges in @antv ecosystem attack

Come contribuire

Issue e PR benvenuti — in particolare per nuove segnalazioni di IOC (aggiungere a scanner/iocs.txt e aggiornare l'intestazione della versione), ulteriori percorsi di scansione specifici per piattaforma e pattern di rilevamento per strumenti agentici affini (Continue, Cody, Codex CLI, Aider).

Licenza

MIT

Scarica lo strumento
§ControlloMinaccia coperta
1Iniezione dell'hook SessionStart di Claude Code in qualsiasi settings.json (basata su jq, basso FP)Persistenza di Mini Shai-Hulud
2Firme del dropper Bun in setup.mjsFase di installazione di Mini Shai-Hulud
3Payload execution.js offuscati — dimensione più segnale di offuscamento (su una sola riga, base64, eval(atob(, child_process)Furto di credenziali di Mini Shai-Hulud
4File di lock malware in $TMPDIR (nomi presi dalla lista IOC)Sentinella di Mini Shai-Hulud
5Script preinstall in package.json che fanno riferimento a nomi di file dropperPunto di ingresso generico di worm della supply chain
6Commit scritti da IA che toccano .github/workflows/ (filtro allowlist email)Manomissione CI tramite identità di agente IA compromesso
7File di configurazione .gemini/ con pattern di metacaratteri di shellGemini CLI CVSS 10.0 RCE (pre-v0.39.1)
8File AGENTS.md e configurazioni .cursor/ di Cursor che fanno riferimento a git hook / bare repoCursor CVE-2026-26268
9Hook Git post-checkout / post-merge / post-rewrite / pre-commit contenenti primitive fetch-and-execute, oltre a core.hooksPath reindirizzato fuori dall'allowlist sicuraPrimitiva exec di CVE-2026-26268 + hijacking generico di hook
10Pacchetti node_modules installati globalmente e localmente incrociati con la lista IOCSet SAP CAP di Mini Shai-Hulud, DPRK PromptMink, futuri pacchetti malevoli
11Remote Git corrispondenti a nomi noti di repository di esfiltrazione del worm (Shai-Hulud, A Mini Shai-Hulud has Appeared)Segnale di compromissione confermata
  • Consapevole dei worktree: quando .git è un file (contenente gitdir: …), la directory git reale viene risolta prima dell'ispezione.
  • TipoUsato daEsempio
    FILENAMEPattern preinstall §5setup.mjs
    LOCKFILEScansione file di lock §4tmp.987654321.lock
    NPMScansione pacchetti globali e locali §10@validate-sdk/v2
    PYPI§10 (incrociato quando verrà aggiunto uno scanner PyPI)lightning
    HOOKSTRINGCorrispondenza del contenuto hook §1 (attualmente codificato inline)SessionStart
    REPONAMECorrispondenza remote git §11A Mini Shai-Hulud has Appeared
    EMAILSUBSTRINGRiservato per futuri match IOC sull'autore del commit—
    CONFIGPATHElenco di riferimento dei percorsi di configurazione degli strumenti agentici.claude/settings.json