AI Agent Abuse: Τοπικά AI CLI Εργαλεία & MCP (Claude/Gemini/Warp)

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Επισκόπηση

Τοπικές διεπαφές γραμμής εντολών AI (AI CLIs) όπως Claude Code, Gemini CLI, Warp και παρόμοια εργαλεία συχνά συνοδεύονται από ισχυρά ενσωματωμένα: ανάγνωση/εγγραφή στο filesystem, εκτέλεση shell και εξερχόμενη δικτυακή πρόσβαση. Πολλά λειτουργούν ως MCP clients (Model Context Protocol), επιτρέποντας στο model να καλεί εξωτερικά εργαλεία μέσω STDIO ή HTTP. Επειδή το LLM σχεδιάζει αλυσίδες εργαλείων μη‑ντετερμινιστικά, τα ίδια prompts μπορούν να οδηγήσουν σε διαφορετικές συμπεριφορές διεργασιών, αρχείων και δικτύου ανάμεσα σε εκτελέσεις και hosts.

Key mechanics seen in common AI CLIs:

  • Typically implemented in Node/TypeScript with a thin wrapper launching the model and exposing tools.
  • Multiple modes: interactive chat, plan/execute, and single‑prompt run.
  • MCP client support with STDIO and HTTP transports, enabling both local and remote capability extension.

Abuse impact: A single prompt can inventory and exfiltrate credentials, modify local files, and silently extend capability by connecting to remote MCP servers (visibility gap if those servers are third‑party).


Πλάνο Αντιπάλου – Prompt‑Driven Secrets Inventory

Task the agent to quickly triage and stage credentials/secrets for exfiltration while staying quiet:

  • Scope: recursively enumerate under $HOME and application/wallet dirs; avoid noisy/pseudo paths (/proc, /sys, /dev).
  • Performance/stealth: cap recursion depth; avoid sudo/priv‑escalation; summarise results.
  • Targets: ~/.ssh, ~/.aws, cloud CLI creds, .env, *.key, id_rsa, keystore.json, browser storage (LocalStorage/IndexedDB profiles), crypto‑wallet data.
  • Output: write a concise list to /tmp/inventory.txt; if the file exists, create a timestamped backup before overwrite.

Example operator prompt to an AI CLI:

You can read/write local files and run shell commands.
Recursively scan my $HOME and common app/wallet dirs to find potential secrets.
Skip /proc, /sys, /dev; do not use sudo; limit recursion depth to 3.
Match files/dirs like: id_rsa, *.key, keystore.json, .env, ~/.ssh, ~/.aws,
Chrome/Firefox/Brave profile storage (LocalStorage/IndexedDB) and any cloud creds.
Summarize full paths you find into /tmp/inventory.txt.
If /tmp/inventory.txt already exists, back it up to /tmp/inventory.txt.bak-<epoch> first.
Return a short summary only; no file contents.

Επέκταση Δυνατοτήτων μέσω MCP (STDIO και HTTP)

Τα AI CLIs συχνά λειτουργούν ως MCP clients για πρόσβαση σε επιπλέον εργαλεία:

  • STDIO transport (local tools): ο client δημιουργεί μια αλυσίδα βοηθητικών διεργασιών για να τρέξει έναν tool server. Τυπική ακολουθία: node → <ai-cli> → uv → python → file_write. Παράδειγμα που παρατηρήθηκε: uv run --with fastmcp fastmcp run ./server.py το οποίο εκκινεί python3.13 και εκτελεί τοπικές λειτουργίες αρχείων εκ μέρους του agent.
  • HTTP transport (remote tools): ο client ανοίγει εξερχόμενες TCP συνδέσεις (π.χ. θύρα 8000) προς έναν απομακρυσμένο MCP server, ο οποίος εκτελεί την ζητούμενη ενέργεια (π.χ. write /home/user/demo_http). Στο endpoint θα δείτε μόνο τη δικτυακή δραστηριότητα του client· οι server‑side αλλαγές αρχείων συμβαίνουν εκτός host.

Σημειώσεις:

  • Τα MCP tools περιγράφονται στο model και μπορεί να επιλεχθούν αυτομάτως κατά το planning. Η συμπεριφορά διαφέρει μεταξύ εκτελέσεων.
  • Οι remote MCP servers αυξάνουν το blast radius και μειώνουν την host‑side visibility.

Τοπικά Artifacts και Logs (Forensics)

  • Gemini CLI session logs: ~/.gemini/tmp/<uuid>/logs.json
  • Συνηθισμένα πεδία που εμφανίζονται: sessionId, type, message, timestamp.
  • Παράδειγμα message: “@.bashrc what is in this file?” (captured user/agent intent).
  • Claude Code history: ~/.claude/history.jsonl
  • JSONL εγγραφές με πεδία όπως display, timestamp, project.

Pentesting απομακρυσμένων MCP servers

Οι remote MCP servers εκθέτουν ένα JSON‑RPC 2.0 API που παρέχει LLM‑centric δυνατότητες (Prompts, Resources, Tools). Κληρονομούν κλασικές ευπάθειες web API ενώ προσθέτουν async transports (SSE/streamable HTTP) και per‑session semantics.

Κύριοι ρόλοι

  • Host: το LLM/agent frontend (Claude Desktop, Cursor, κ.λπ.).
  • Client: ο connector ανά server που χρησιμοποιεί ο Host (ένας client ανά server).
  • Server: ο MCP server (local ή remote) που εκθέτει Prompts/Resources/Tools.

AuthN/AuthZ

  • Το OAuth2 είναι κοινό: ένα IdP κάνει authentication, και ο MCP server λειτουργεί ως resource server.
  • Μετά το OAuth, ο server εκδίδει ένα authentication token που χρησιμοποιείται σε επόμενα MCP requests. Αυτό διαφέρει από το Mcp-Session-Id που αναγνωρίζει μια σύνδεση/session μετά το initialize.

Transports

  • Local: JSON‑RPC πάνω από STDIN/STDOUT.
  • Remote: Server‑Sent Events (SSE, ακόμα ευρέως ανεπτυγμένο) και streamable HTTP.

A) Session initialization

  • Αποκτήστε OAuth token αν απαιτείται (Authorization: Bearer …).
  • Ξεκινήστε ένα session και εκτελέστε το MCP handshake:
{"jsonrpc":"2.0","id":0,"method":"initialize","params":{"capabilities":{}}}
  • Διατήρησε το επιστρεφόμενο Mcp-Session-Id και συμπεριέλαβέ το σε επόμενα αιτήματα σύμφωνα με τους κανόνες μεταφοράς.

B) Απαρίθμησε δυνατότητες

  • Εργαλεία
{"jsonrpc":"2.0","id":10,"method":"tools/list"}
  • Πόροι
{"jsonrpc":"2.0","id":1,"method":"resources/list"}
  • Προτροπές
{"jsonrpc":"2.0","id":20,"method":"prompts/list"}

C) Έλεγχοι εκμεταλλευσιμότητας

  • Πόροι → LFI/SSRF
  • Ο διακομιστής θα πρέπει να επιτρέπει μόνο resources/read για τα URIs που ανακοίνωσε στο resources/list. Δοκιμάστε URIs εκτός του συνόλου για να εντοπίσετε τυχόν χαλαρή επιβολή:
{"jsonrpc":"2.0","id":2,"method":"resources/read","params":{"uri":"file:///etc/passwd"}}
{"jsonrpc":"2.0","id":3,"method":"resources/read","params":{"uri":"http://169.254.169.254/latest/meta-data/"}}
  • Η επιτυχία υποδηλώνει LFI/SSRF και πιθανό internal pivoting.
  • Πόροι → IDOR (multi‑tenant)
  • Αν ο διακομιστής είναι multi‑tenant, προσπάθησε να διαβάσεις απευθείας το resource URI άλλου χρήστη; η έλλειψη ελέγχων ανά χρήστη προκαλεί leak cross‑tenant data.
  • Εργαλεία → Code execution and dangerous sinks
  • Απαριθμήστε τα schemas των εργαλείων και fuzz παραμέτρους που επηρεάζουν command lines, subprocess calls, templating, deserializers ή file/network I/O:
{"jsonrpc":"2.0","id":11,"method":"tools/call","params":{"name":"TOOL_NAME","arguments":{"query":"; id"}}}
  • Αναζητήστε error echoes/stack traces στα αποτελέσματα για να βελτιώσετε τα payloads. Ανεξάρτητες δοκιμές ανέφεραν ευρείες command‑injection και σχετικές ευπάθειες στα MCP tools.
  • Prompts → Injection preconditions
  • Οι Prompts εκθέτουν κυρίως metadata· το prompt injection έχει σημασία μόνο αν μπορείτε να παραποιήσετε παραμέτρους του prompt (π.χ. μέσω compromised resources ή bugs στον client).

D) Εργαλεία για interception και fuzzing

  • MCP Inspector (Anthropic): Web UI/CLI που υποστηρίζει STDIO, SSE και streamable HTTP με OAuth. Ιδανικό για γρήγορο recon και χειροκίνητες κλήσεις εργαλείων.
  • HTTP–MCP Bridge (NCC Group): Γεφυρώνει MCP SSE προς HTTP/1.1 ώστε να μπορείτε να χρησιμοποιήσετε Burp/Caido.
  • Ξεκινήστε τη γέφυρα δείχνοντάς τη στον target MCP server (SSE transport).
  • Εκτελέστε χειροκίνητα το initialize handshake για να αποκτήσετε ένα έγκυρο Mcp-Session-Id (per README).
  • Proxy τα JSON‑RPC μηνύματα όπως tools/list, resources/list, resources/read, και tools/call μέσω Repeater/Intruder για replay και fuzzing.

Γρήγορο πλάνο δοκιμών

  • Authenticate (OAuth αν υπάρχει) → run initialize → enumerate (tools/list, resources/list, prompts/list) → επαληθεύστε την resource URI allow‑list και την per‑user authorization → fuzz τις εισόδους των εργαλείων σε πιθανά σημεία code‑execution και I/O sinks.

Επισημάνσεις επιπτώσεων

  • Έλλειψη επιβολής resource URI → LFI/SSRF, internal discovery και κλοπή δεδομένων.
  • Έλλειψη ελέγχων ανά‑χρήστη → IDOR και cross‑tenant exposure.
  • Ασφαλείς/ανασφαλείς υλοποιήσεις εργαλείων → command injection → server‑side RCE και data exfiltration.

Αναφορές

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Μάθετε & εξασκηθείτε στο Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks