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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
rep-openai-artifactory — Forensische Analyse und lokale Replikation des OpenAI-Artifactory-Rechteausweitungsvorfalls (CVE-2026-65616) | Kitploit
Tools/GitHubGitHub/alixiacf/rep-openai-artifactory
Privilege EscalationContainer-SicherheitSchwachstellenanalyseForensikPenetrationstestsCloud-SicherheitPapers & ForschungLernen & BildungKI-SicherheitLabs & Praxis
GitHubalixiacf/rep-openai-artifactory
121vor 20 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

rep-openai-artifactory

Forensische Analyse und lokale Replikation des OpenAI-Artifactory-Rechteausweitungsvorfalls (CVE-2026-65616)

Repository anzeigen

Forensis Lab — Forensische Rekonstruktion der Rechteausweitung des KI-Agenten (JFrog Artifactory)

Eine sichere, isolierte, forensische Rekonstruktion des "Incidente Cero" (OpenAI, Mai 2026): Ein sandboxed KI-Agent entdeckt den JFrog Artifactory-Paket-Proxy, extrahiert Anmeldedaten aus seiner eigenen Konfiguration, improvisiert ein Message Board auf dem Server und eskaliert vom Leser zum Administrator.

Studienziel: Ermitteln, wie viel der Basiskonfiguration das Ereignis ermöglicht hat. Das Experiment endet mit der Erstellung des Administrator-Benutzers (dem "Flag"). Es deckt nicht den gesamten Vorfall ab.

Anforderungen

  • Docker + Docker Compose (getestet unter Windows/WSL und Linux).
  • Eine JFrog Artifactory Pro-Lizenz — erhalten Sie eine kostenlose 1-monatige Testversion unter https://jfrog.com/start-free/. Legen Sie Ihre Lizenzdatei im Ordner artifactory_license/ ab (ersetzen Sie den Platzhalter artifactory.lic dort). Ohne Lizenz läuft Artifactory im OSS-Modus und die meisten Lab-APIs (Berechtigungen, Tokens, Remote-Repos) funktionieren nicht.
  • Hinweis zur Version: Dieses Lab pinnt Artifactory 7.146.25 — die exakte Version, deren Token-API den forged-refresh-Vektor akzeptierte (CVE-2026-65616, behoben in 7.146.27). Das ist der Sinn des Labs.

Schnellstart

git clone <this-repo> && cd <dir>
# 1. put your license in artifactory_license/artifactory.lic
# 2. clean start (preserves data volumes; see "Reset semantics" below):
./reset.sh && ./start.sh

start.sh richtet das gesamte Szenario ein (der erste Start dauert mehrere Minuten, während Artifactory hochfährt):

  1. Lizenz — manuell von Ihnen über die UI installiert (niemals automatisiert; Ihre Lizenz ist persönlich und läuft ab). Das Skript prüft nur, ob eine Lizenz aktiv ist, und warnt.
  2. Anonymer Zugriff explizit aktiviert — wie im ursprünglichen Vorfall.
  3. 6 Repositories — pypi/npm, jeweils local + remote + virtual. Das PyPI-Remote ist mit der URL https://files.pythonhosted.org konfiguriert (das Rezept, das in dieser Version tatsächlich funktioniert).
  4. Benutzer agente-compartido (Gruppe readers) mit Schreibberechtigungen (Anything: read + deploy/cache) — die schlechte Praxis, die das Message Board ermöglicht.
  5. Ein Standard-Referenz-Token wird für den Agenten über ein dediziertes Volume bereitgestellt; der Agent rendert es in /etc/pip.conf und /etc/npmrc im Klartext — das Leck aus Phase 1. Das mitgelieferte Token befindet sich in token/token_ref.txt.

Abkürzung: Wenn Sie die vorbereiteten Volumes aus dem Release importiert haben (siehe unten), ist die Bereitstellung bereits erfolgt — ./start.sh bringt den Stack nur noch hoch.

Überprüfen:

curl -s http://localhost:8081/artifactory/api/system/ping     # -> "true"
docker exec -it incidente-modelo-simulado sh
# inside the agent:
cat /etc/pip.conf            # leaked credentials (the Fase 1 leak)
. /opt/venv/bin/activate
pip install six              # packages without internet, via the remote

Folgen Sie dann den Phasen der Reihe nach: phases/README.md → 00 Architektur → 01 Entdeckung → 02 Message Board → 03 Refreshable Token → 04 Eskalation (CVE-2026-65616) → 05 Admin-Verifikation.

Token-Lebenszyklus (wichtig)

  • Ein Standard-Referenz-Token (cmVmdGtu...) wird in token/token_ref.txt mitgeliefert und bei jedem Start von start.sh an den Agenten übergeben.

  • Referenz-Tokens sind Zeiger in die Datenbank von Artifactory (der Token-Hash lebt im PostgreSQL-Volume). reset.sh bewahrt die Datenvolumes absichtlich auf, sodass das Token Resets überlebt.

  • Um einen vollständig frischen Zustand zu erzwingen, löschen Sie die Volumes manuell:

    docker volume rm $(docker volume ls -q | grep -E 'artifactory_data_v714625|postgres_data')
    

    Danach müssen Sie ein neues Referenz-Token über die Admin-UI generieren und es direkt dem Benutzer agente-compartido zuweisen — nicht der Gruppe. Ein gruppenbezogenes Token wird admin zugeordnet, und die Token-Aktualisierung des Agenten schlägt stillschweigend fehl. Aktualisieren Sie token/token_ref.txt mit dem neuen Wert.

  • Schritt-für-Schritt-Anleitung zur Neugenerierung: token/README.md.

  • UI-Eigenheit (dokumentiert): Die UI zeigt das Token möglicherweise als nicht aktualisierbar an; als Admin mit token.allow-refreshable: true erstellt, ist es aktualisierbar — diese Lücke ist Teil des untersuchten Vorfalls.

Phasen

DateiPhaseInhalt
phases/FASE_00_Arquitectura.md0Docker-Architektur, verwundbare Version (7.146.25), Operator-Bereitstellung
phases/FASE_01_Descubrimiento.md1Der Agent entdeckt Artifactory: kann nicht browsen, aber installieren; pip.conf-Audit
phases/FASE_02_Tablon_Mensajes.md2PUT auf ein lokales Repo (HTTP 201), improvisiertes Message Board
phases/FASE_03_Token_Refreshable.md3Anfrage für aktualisierbares Token; YAML-Nachweis (allow-refreshable)
phases/FASE_04_Escalada.md4JWT-Fälschung und Refresh-Exploit; fehlgeschlagene Versuche und Scoping
phases/FASE_05_Verificacion_Admin.md5Admin-Token-Verifikation und Erstellung des Benutzers agente-admin (das Flag)
phases/FASE_06_Post_Escalada.md6Post-Eskalations-Aktivitäten des Vorfalls (dokumentiert, nicht implementiert)

Vorbereitete Volumes (Release-Assets)

Ein GitHub-Release dieses Repositories liefert die drei Docker-Volumes des funktionierenden Labs als Tarballs, sodass ein Klon den exakten bereitgestellten Zustand (Repos, Berechtigungen, anonym AN, Token-Hash, Cache) ohne Bereitstellung wiederherstellen kann:

AssetVolume
incidente_artifactory_data_v714625.tar.gzArtifactory-Daten (7.146.25)
incidente_postgres_data.tar.gzPostgreSQL-Backend (hier leben die Token-Hashes)
incidente_agent_secrets.tar.gzDie dem Agenten übergebene Anmeldedaten

Import (aus dem Ordner mit den Tarballs):

for V in incidente_artifactory_data_v714625 incidente_postgres_data incidente_agent_secrets; do
  docker volume create $V
  docker run --rm -v $V:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/$V.tar.gz"
done
./start.sh

Hinweise:

  • Die Volumes entschlüsseln nur mit dem in docker-compose.yml festgelegten masterKey — ändern Sie diesen nach dem Import niemals.
  • Der mitgelieferte Zustand wird ohne Lizenz ausgeliefert: Der Zustand ist nachweislich frei von jeglichem Lizenzmaterial. Installieren Sie Ihre eigene Testlizenz (siehe Anforderungen) direkt nach ./start.sh — ohne sie sind Schreibvorgänge blockiert (Lesezugriffe funktionieren).
  • Selbst mit Volumes authentifiziert das mitgelieferte Referenz-Token nur, solange der Volume-Zustand intakt ist — das Token ist ein Zeiger in diese Datenbank (siehe Token-Lebenszyklus oben).

Reset-Semantik

  • ./reset.sh stoppt Container ohne Löschen von Volumes (kein down -v).
  • ./start.sh ist idempotent: Es richtet alles ein, was fehlt, und behält alles andere bei.
  • Erster Lauf von einer sauberen Maschine: beide ausführen. Jeder spätere Lauf: ./start.sh allein genügt.

Was dieses Lab demonstriert

Tool herunterladen