Proxy de interceptacion HTTP/HTTPS liviano y siempre activo (mitmproxy) para capturar todo el trafico de un navegador con rotacion temporal de capturas, alternativa ligera a ZAP/Burp.
service
web-proxy
mitmproxy
proxy
capture
cybersecurity
chromium
phosphor
accent
shield-check
#7c3aed
start_mitm_capture_bash_cybersecurity
query_mitm_flows_bash_cybersecurity
rotate_capture_flows_py_cybersecurity
launch_chromium_proxy_bash_browser
port_kill_bash_infra
web_proxy
apps/web_proxy
port
health_endpoint
health_timeout_s
systemd_unit
systemd_scope
restart_policy
runtime
pc_targets
is_local_only
8080
null
3
web_proxy.service
user
always
systemd-user
home-wsl
true
id
cmd
timeout_s
syntax
bash -n web_proxy
10
id
cmd
expect_stdout_contains
timeout_s
help
./web_proxy help
proxy de interceptacion
10
id
cmd
expect_stdout_contains
timeout_s
capture_roundtrip
bash tests/e2e_capture.sh
CAPTURE_OK
40
web_proxy
Proxy de interceptacion HTTP/HTTPS liviano y siempre activo, pensado como
alternativa ligera a OWASP ZAP y Burp Suite. Construido sobre mitmproxy
(footprint de decenas de MB frente a la JVM de ZAP/Burp) y compuesto a partir
de funciones del registry fn_registry.
Que hace
Levanta un proxy local (mitmdump headless) que registra todo el trafico
HTTP/HTTPS que pasa por el.
Rota las capturas en archivos .mitm por ventanas de tiempo configurables
(default 20 minutos), de modo que puedas consultar el trafico de cada tramo
por separado.
Corre siempre activo como servicio systemd --user con Restart=always,
o de forma manual con start/stop.
Lanza un Chromium proxeado en un perfil aislado para no contaminar tu
navegacion normal.
Permite consultar las capturas guardadas: volcado filtrado, exportacion a
HAR, o inspeccion visual en mitmweb.
Ejemplo
cd apps/web_proxy
# Servicio siempre activo en el puerto 8080, capturas en ~/captures, rotando cada 20 min
./web_proxy install-service --port 8080 --out ~/captures --rotate-min 20# Confiar en el CA de mitmproxy para que HTTPS no rompa
./web_proxy ca
# Navegar con todo el trafico capturado (Chromium en perfil aislado)
./web_proxy browser --url https://example.com
# Consultar la ultima ventana de captura
./web_proxy query "~m POST"# solo peticiones POST
./web_proxy query "~c 500" --all # respuestas 5xx en todas las capturas
./web_proxy har ~/captures/sesion.har
# Inspeccion visual en el navegador
./web_proxy inspect
# Estado y logs
./web_proxy status
./web_proxy logs
Cuando quieras registrar de forma continua y liviana todo lo que hace un
navegador (debug de APIs, auditoria de trafico, inspeccion de requests de una
SPA) sin arrancar la maquinaria pesada de ZAP o Burp, y poder volver a consultar
sesiones pasadas troceadas por ventanas de tiempo.
Como consultar las capturas
Las capturas son archivos .mitm en el directorio de salida (~/captures por
defecto), con nombre traffic-YYYYmmdd-HHMMSS.mitm, uno por ventana de rotacion.
Forma
Comando
Volcado filtrado (CLI)
./web_proxy query "~m POST"
Volcado de todas las ventanas
./web_proxy query "~u /api" --all
Exportar a HAR
./web_proxy har salida.har
Inspeccion visual (UI web)
./web_proxy inspect [archivo.mitm]
Directo con mitmproxy
mitmproxy -r ~/captures/traffic-*.mitm
Sintaxis de filtros de mitmproxy: ~u URL, ~d dominio, ~m metodo, ~c
codigo de estado, ~bq/~bs cuerpo de peticion/respuesta. Combinables con
& (y), | (o), ! (no).
Gotchas
HTTPS: requiere confiar en el CA de mitmproxy. Ejecuta ./web_proxy ca
para las instrucciones. El navegador que lanza ./web_proxy browser usa
--ignore-certificate-errors si no instalas el CA, lo cual es comodo pero
menos seguro (vale para uso local de captura, no para navegacion sensible).
Durabilidad: el addon de rotacion hace flush() tras cada flujo, asi que
las capturas sobreviven a un kill -9 o un corte abrupto del proceso.
Rotacion por trafico: la rotacion ocurre al recibir un flujo; si no hay
trafico durante la ventana, el archivo no rota hasta el siguiente request.
Persistencia tras logout: el servicio systemd --user para al cerrar
sesion salvo que actives linger con ./web_proxy install-service --linger.
Conflicto de puerto: start y el servicio no pueden coexistir en el mismo
puerto. install-service para el proxy manual automaticamente antes de
arrancar el servicio.
Stop fiable: el stop mata por PID guardado en el pidfile (no depende de
lsof/port_kill, que en este entorno no siempre detecta el listener a
tiempo).
Arquitectura
Orquesta funciones del registry (no reimplementa logica reutilizable):
Funcion del registry
Rol
start_mitm_capture_bash_cybersecurity
Arranca mitmdump headless con rotacion
rotate_capture_flows_py_cybersecurity
Addon de mitmproxy que trocea las capturas
query_mitm_flows_bash_cybersecurity
Consulta capturas guardadas (volcado / HAR)
launch_chromium_proxy_bash_browser
Lanza Chromium proxeado en perfil aislado
port_kill_bash_infra
Limpieza de puertos ocupados
El CLI web_proxy aporta solo la logica especifica de la app: gestion del
pidfile, configuracion persistente, generacion del unit systemd --user y la
interfaz de subcomandos.