Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ats-esi-unix-recvport — Apache Traffic Server 10.2.0 - Alta - Remota - SSRF - ESI unix recvport | Kitploit
Herramientas/GitHubGitHub/abraxas/ats-esi-unix-recvport
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebLabs y Práctica
GitHubabraxas/ats-esi-unix-recvport

ats-esi-unix-recvport

Apache Traffic Server 10.2.0 - Alta - Remota - SSRF - ESI unix recvport

Ver Repositorio
hace 14 díasAú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

Abraxas Labs - ats-esi-unix-recvport

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  ats-esi-unix-recvport

ats-esi-unix-recvport

Clase: SSRF Alcance: Remoto

Apache Traffic Server 10.2.0 (b1df7334) - Apache Software Foundation

El PluginVC de FetchSM de ESI informa el puerto de destino 0. El remapeo trata el puerto 0 como UDS y reescribe el esquema del include a http+unix para que coincida con las reglas map_with_recv_port http+unix:// destinadas únicamente a los listeners UDS. Un esi:include de aspecto público de http://www.example.com/secret pasa entonces a acceder al origen del socket unix. El GET /secret por TCP permanece en el mapa TCP. El CONTROL sin el mapa de puerto de recepción unix inserta en línea el origen TCP (sin testigo). El esquema de include http+unix en sí mismo es BAD_SCHEME en el validador de julio de 2026.

El típico esi.so más un map no alcanza esto. Requiere ESI más al menos una línea map_with_recv_port http+unix://. Por defecto remap_required: 1 y number_of_redirections: 0.

Esto no es CVE-2026-58178 (literales privados, file://, comentarios anidados, límite de profundidad cerrado).

IDaún sin CVE
ClaseSSRF
AlcanceRemoto (HTTP no autenticado a un vhost ESI)
CWECWE-918
CVSSAlto: 8.6 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
ProductoApache Traffic Server
Afectado10.2.0 (b1df7334b39a878971c376da849e8da4984918b6) ESI más map_with_recv_port http+unix
Autenticaciónninguna. Plugin ESI. Mapa unix de puerto de recepción.
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:18750 / 18751. Imagen ats-10.2.0-lab:local.

Fijé la etiqueta 10.2.0, commit b1df7334b39a878971c376da849e8da4984918b6. Imagen compilada desde el código fuente.

Qué puede hacer un atacante

HTTP no autenticado a un vhost ESI cuyo remapeo tenga map_with_recv_port http+unix://. Incluir un src que el atacante pueda influir (origen comprometido, ESI almacenado o $(HTTP_HEADER{...})).

MétodoSumideroPrivilegio
GET /page no autenticado con include ESI http://www.example.com/secretEl puerto de destino 0 de FetchSM coincide con map_with_recv_port http+unix://www.example.com/ (RemapProcessor.cc:87-114, PluginVC.h:274-278)Reconocimiento / SSRF (probado en laboratorio): el cuerpo del cliente insertó en línea ATS-ESI-UNIX-RECVPORT-WITNESS desde el origen UDS.
Igualescritura de primer orden / shellIntegridad: ninguna. Sin escritura de primer orden. Sin shell.
CONTROL GET /page sin mapa de puerto de recepción unixInclude del origen TCPCerrado (probado en laboratorio): inserta en línea TCP-ORIGIN-OK, sin testigo.
Cliente TCP GET /secret en el vhost pocMapa TCPCerrado (probado en laboratorio): TCP-ORIGIN-OK, sin testigo.

Probado en laboratorio vs inferido: control sin testigo, página poc con testigo, /secret por TCP de poc sin testigo: laboratorio. Influir en src mediante ESI almacenado o expansión de encabezados es el modelo de confianza documentado de ESI, no se vuelve a probar aquí. El include del laboratorio es un http://www.example.com/secret estático en /page.

Requiere: plugin ESI más map_with_recv_port http+unix. Por defecto remap_required: 1. number_of_redirections: 0.

Superficie adyacente que permanece cerrada

SuperficieLaboratorio
CONTROL sin mapa de puerto de recepción unixcontrol-no-witness=yes, inserta en línea TCP-ORIGIN-OK
Cliente TCP GET /secretpoc-tcp-secret-no-witness=yes
Esquema de inclusión http+unixvalidador BAD_SCHEME
file://, literales privados, comentarios anidados, límite de profundidadCVE-2026-58178 cerrado
Lista de denegación de nombres de host sin DNSdocumentado; inoperante con remap_required: 1
Fallo de remap_required: 1404
number_of_redirections: 0Seguimiento de Location desactivado

Cómo lo encontré

PluginVCCore pone a cero passive_addr_struct. PluginHttpConnectInternal establece solo active_addr (el cliente original). El HttpSM de FetchSM se ejecuta sobre el PluginVC pasivo. attach_client_session copia netvc->get_local_addr() en client_info.dst_addr. La dirección local pasiva es la estructura puesta a cero. host_order_port() es 0.

Búsqueda de remap (RemapProcessor.cc:87-114): el puerto 0 significa UDS. El esquema se reescribe de http a http+unix para que coincida map_with_recv_port http+unix://. La prueba unitaria test_RemapRules.cc:237-240 lo documenta.

El validador de julio rechaza el esquema de inclusión http+unix. No rechaza una inclusión http:// cuyo salto de remap interno se convirtió en unix porque el puerto de destino era 0.

Falsos caminos: tratar el típico esi.so + un map como este remanente (CONTROL demuestra que no lo es); registrar la lista de denegación de nombres de host sin DNS (documentado, inoperante con remap_required=1); afirmar que file:// sigue funcionando; esperar que el TCP /secret siga el mapa unix.

Teatro: una reverse shell. El oráculo es un testigo insertado en línea desde el origen UDS, con el TCP /secret todavía en TCP.

Laboratorio

python3 ats-esi-unix-recvport-Abraxas-Labs.py

o

cd lab
./run.sh

Loopback poc 127.0.0.1:18750, control 127.0.0.1:18751. Proyecto de Compose ats-esi-unix-recvport. Imagen ats-10.2.0-lab:local. Testigo ATS-ESI-UNIX-RECVPORT-WITNESS. Última línea:

SUCCESS ats-esi-unix-recvport control-no-witness=yes poc-page-witness=yes poc-tcp-secret-no-witness=yes ATS-ESI-UNIX-RECVPORT-WITNESS

La solución

No tratar el puerto de destino 0 de FetchSM PluginVC como una coincidencia de puerto de recepción UDS. Mantener map_with_recv_port http+unix:// para los verdaderos listeners UDS. Las inclusiones ESI de http://host/ deben permanecer en el mapa TCP incluso cuando exista una regla de puerto de recepción http+unix para ese host.

Referencias

Descargar herramienta