Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
galah — Galah: Ein LLM-gestützter Web-Honeypot. | Kitploit
Tools/GitHubGitHub/0x4d31/galah
WebsicherheitBedrohungsanalyseEinbruchserkennungIncident Response
GitHub0x4d31/galah

galah

Galah: Ein LLM-gestützter Web-Honeypot.

Repository anzeigen
6586616vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

TL;DR: Galah (/ɡəˈlɑː/ – ausgesprochen ‘guh-laa’) ist ein LLM-betriebener Web-Honeypot, der verschiedene Anwendungen nachahmen und dynamisch auf beliebige HTTP-Anfragen reagieren kann. Galah unterstützt große LLM-Anbieter, darunter OpenAI, GoogleAI, GCPs Vertex AI, Anthropic, Cohere und Ollama.

Im Gegensatz zu traditionellen Web-Honeypots, die manuell bestimmte Webanwendungen oder Schwachstellen emulieren, generiert Galah dynamisch relevante Antworten – einschließlich HTTP-Headern und Body-Inhalten – auf jede HTTP-Anfrage. Die vom LLM generierten Antworten werden für einen konfigurierbaren Zeitraum zwischengespeichert, um wiederholte Generierung für identische Anfragen zu vermeiden und API-Kosten zu senken. Der Cache ist portspezifisch, sodass für einen bestimmten Port generierte Antworten nicht für dieselbe Anfrage auf einem anderen Port wiederverwendet werden.

Galah kann optional eingehende HTTP-Anfragen gegen einen Satz von Suricata-Regeln prüfen, die auf verschiedene HTTP-Puffer wie Methode, URI, Header, Cookies und Anforderungstext abgleichen (die aktuelle Implementierung unterstützt nicht alle Suricata-Schlüsselwörter, und die PCRE-Verarbeitung ist eingeschränkt). Um die Regelabstimmung zu aktivieren und zu konfigurieren, siehe Suricata HTTP Rule Matching.

Die Prompt-Konfiguration ist bei diesem Honeypot entscheidend. Sie können den Prompt in der Konfigurationsdatei aktualisieren, aber es ist wichtig, den Abschnitt beizubehalten, der das LLM anweist, Antworten im angegebenen JSON-Format zu erzeugen.

Hinweis: Galah wurde als unterhaltsames Wochenendprojekt entwickelt, um die Fähigkeiten von LLMs bei der Erstellung von HTTP-Nachrichten zu erkunden. Der Honeypot kann durch verschiedene Methoden identifiziert werden, wie z. B. Netzwerk-Fingerprinting-Techniken, verlängerte Antwortzeiten je nach LLM-Anbieter und -Modell sowie unübliche Antworten. Um sich vor Denial-of-Wallet-Angriffen zu schützen, legen Sie unbedingt Nutzungslimits für Ihre LLM-API fest.

Erste Schritte

Lokale Bereitstellung

  • Stellen Sie sicher, dass Go Version 1.22+ installiert ist.
  • Erstellen Sie je nach Ihrem LLM-Anbieter einen API-Schlüssel (z. B. von hier für OpenAI und hier für GoogleAI Studio) oder richten Sie Authentifizierungsanmeldeinformationen ein (z. B. Standardanwendungsanmeldeinformationen für GCPs Vertex AI).
  • Wenn Sie HTTPS-Ports bedienen möchten, generieren Sie TLS-Zertifikate.
  • Klonen Sie das Repository und installieren Sie die Abhängigkeiten.
  • Aktualisieren Sie bei Bedarf die Datei config.yaml.
  • Erstellen Sie die Go-Binärdatei und führen Sie sie aus!
git clone [email protected]:0x4D31/galah.git
cd galah
go mod download
mkdir bin
go build -o bin/galah ./cmd/galah
./bin/galah --help

 ██████   █████  ██       █████  ██   ██ 
██       ██   ██ ██      ██   ██ ██   ██ 
██   ███ ███████ ██      ███████ ███████ 
██    ██ ██   ██ ██      ██   ██ ██   ██ 
 ██████  ██   ██ ███████ ██   ██ ██   ██ 
  llm-based web honeypot | version 1.1.1
         author: Adel "0x4D31" Ka

Usage: galah --provider PROVIDER --model MODEL [--server-url SERVER-URL] [--temperature TEMPERATURE] [--api-key API-KEY] [--cloud-location CLOUD-LOCATION] [--cloud-project CLOUD-PROJECT] [--interface INTERFACE] [--config-file CONFIG-FILE] [--rules-config-file RULES-CONFIG-FILE] [--event-log-file EVENT-LOG-FILE] [--cache-db-file CACHE-DB-FILE] [--cache-duration CACHE-DURATION] [--log-level LOG-LEVEL] [--suricata-enabled] [--suricata-rules-dir SURICATA-RULES-DIR]

Options:
  --provider PROVIDER, -p PROVIDER
                         LLM provider (openai, googleai, gcp-vertex, anthropic, cohere, ollama) [env: LLM_PROVIDER]
  --model MODEL, -m MODEL
                         LLM model (e.g. gpt-3.5-turbo-1106, gemini-1.5-pro-preview-0409) [env: LLM_MODEL]
  --server-url SERVER-URL, -u SERVER-URL
                         LLM Server URL (required for Ollama) [env: LLM_SERVER_URL]
  --temperature TEMPERATURE, -t TEMPERATURE
                         LLM sampling temperature (0-2). Higher values make the output more random [default: 1, env: LLM_TEMPERATURE]
  --api-key API-KEY, -k API-KEY
                         LLM API Key [env: LLM_API_KEY]
  --cloud-location CLOUD-LOCATION
                         LLM cloud location region (required for GCP's Vertex AI) [env: LLM_CLOUD_LOCATION]
  --cloud-project CLOUD-PROJECT
                         LLM cloud project ID (required for GCP's Vertex AI) [env: LLM_CLOUD_PROJECT]
  --interface INTERFACE, -i INTERFACE
                         interface to serve on
  --config-file CONFIG-FILE, -c CONFIG-FILE
                         Path to config file [default: config/config.yaml]
  --rules-config-file RULES-CONFIG-FILE, -r RULES-CONFIG-FILE
                         Path to rules config file (rule engine disabled if omitted)
  --event-log-file EVENT-LOG-FILE, -o EVENT-LOG-FILE
                         Path to event log file [default: event_log.json]
  --cache-db-file CACHE-DB-FILE, -f CACHE-DB-FILE
                         Path to database file for response caching [default: cache.db]
  --cache-duration CACHE-DURATION, -d CACHE-DURATION
                         Cache duration for generated responses (in hours). Use 0 to disable caching, and -1 for unlimited caching (no expiration). [default: 24]
  --log-level LOG-LEVEL, -l LOG-LEVEL
                         Log level (debug, info, error, fatal) [default: info]
  --suricata-enabled     Enable Suricata HTTP rule checking (default: false)
  --suricata-rules-dir SURICATA-RULES-DIR
                         Directory containing Suricata .rules files to check HTTP requests against
  --help, -h             display this help and exit

In Docker ausführen

  • Stellen Sie sicher, dass Docker CE oder EE lokal installiert ist.
  • Klonen Sie das Repository und erstellen Sie das Docker-Image.
  • Sie können ein lokales Verzeichnis in den Container einbinden, um die Protokolle zu speichern.
  • Führen Sie den Docker-Container aus.
% git clone [email protected]:0x4D31/galah.git
% cd galah
% mkdir logs
% export LLM_API_KEY=your-api-key
% docker build -t galah-image .
% docker run -d --name galah-container -p 8080:8080 -v $(pwd)/logs:/galah/logs -e LLM_API_KEY galah-image -o logs/galah.json -p openai -m gpt-3.5-turbo-1106

Beispielverwendung

./galah -p openai -m gpt-4.1-mini --suricata-enabled --suricata-rules-dir rules

Test:

curl --http1.1 --path-as-is -X POST \
  -H 'SOAPAction: "http://purenetworks.com/HNAP1/GetGuestNetworkSettings"' \
  -H 'Content-Type: text/xml' \
  --data '<GetGuestNetworkSettings xmlns="http://purenetworks.com/HNAP1/">' \
  http://127.0.0.1:8888/HNAP1/ -v
Note: Unnecessary use of -X or --request, POST is already inferred.
*   Trying 127.0.0.1:8888...
* Connected to 127.0.0.1 (127.0.0.1) port 8888
> POST /HNAP1/ HTTP/1.1
> Host: 127.0.0.1:8888
> User-Agent: curl/8.7.1
> Accept: */*
> SOAPAction: "http://purenetworks.com/HNAP1/GetGuestNetworkSettings"
> Content-Type: text/xml
> Content-Length: 64
> 
* upload completely sent off: 64 bytes
Tool herunterladen