feat(cybersecurity): auto-commit con 10 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -23,6 +23,7 @@ Indice de grupos de capacidades del registry. Cada grupo agrupa >=3 funciones qu
|
||||
| [nlp](nlp.md) | 33 | Extraccion NLP: PDFs, OCR, chunking, GLiNER/GLiREL, dedup, agregacion de entities/relations |
|
||||
| [docker](docker.md) | 38 | Operar Docker desde Go/Bash: build/run/stop, compose, networks, volumes, logs, deploys |
|
||||
| [android](android.md) | 37 | Toolbelt Android desde WSL2: adb, emuladores AVD, APK build/install, Capacitor, logcat |
|
||||
| [web-proxy](web-proxy.md) | 4 | Captura de trafico HTTP/HTTPS liviana (mitmproxy): proxy con rotacion, navegador proxeado, consulta de capturas. Alternativa ligera a ZAP/Burp |
|
||||
| [metabase](metabase.md) | 106 | Operar Metabase via API REST: auth, cards, dashboards, collections, snippets, permissions |
|
||||
| [doctor](doctor.md) | 11 | Diagnostico read-only del registry: artefactos, servicios, drift, funciones huerfanas |
|
||||
| [notebook](notebook.md) | 5 | Operar Jupyter Lab colaborativo (discover/read/exec/write/kernel) |
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
# Web Proxy — Captura de trafico HTTP/HTTPS liviana (mitmproxy)
|
||||
|
||||
Tag: `web-proxy`. Grupo de funciones para levantar un proxy de interceptacion ligero sobre `mitmproxy`, capturar todo el trafico de un navegador con rotacion temporal, y consultar las capturas guardadas. Alternativa liviana a OWASP ZAP / Burp Suite. Lo consume `apps/web_proxy` (CLI + servicio systemd --user). Crece a medida que se añaden formas de captura (WebSocket dumps, replay) o de consulta (filtros prearmados, export a otros formatos).
|
||||
|
||||
Filtro MCP: `mcp__registry__fn_search query="" tag="web-proxy"`.
|
||||
|
||||
## Funciones del grupo
|
||||
|
||||
| ID | Firma corta | Que hace |
|
||||
|---|---|---|
|
||||
| [start_mitm_capture_bash_cybersecurity](../../bash/functions/cybersecurity/start_mitm_capture.md) | `start_mitm_capture [--port N] [--out DIR] [--rotate-min N]` | Arranca `mitmdump` headless en background como proxy de interceptacion, con rotacion de capturas via el addon del registry. Sobrevive al cierre de la shell (setsid). Emite JSON con PID y puerto. |
|
||||
| [rotate_capture_flows_py_cybersecurity](../../python/functions/cybersecurity/rotate_capture_flows.md) | `mitmdump -s rotate_capture_flows.py --set rotate_min=N --set capture_dir=DIR` | Addon de mitmproxy que trocea las capturas en archivos `traffic-YYYYmmdd-HHMMSS.mitm` por ventanas de tiempo. Hace `flush()` por flujo, asi que la captura sobrevive a un `kill -9`. |
|
||||
| [query_mitm_flows_bash_cybersecurity](../../bash/functions/cybersecurity/query_mitm_flows.md) | `query_mitm_flows <file_or_glob> [--filter EXPR] [--har OUT]` | Consulta capturas `.mitm` guardadas: vuelca los flujos que matchean un filtro de mitmproxy, o exporta a HAR. Acepta globs de varios archivos. |
|
||||
| [launch_chromium_proxy_bash_browser](../../bash/functions/browser/launch_chromium_proxy.md) | `launch_chromium_proxy [--proxy URL] [--profile DIR] [--url URL]` | Lanza Chromium apuntando al proxy con un perfil aislado, sin contaminar la sesion normal. Maneja el CA del proxy o cae a `--ignore-certificate-errors`. |
|
||||
|
||||
Complementa: `port_kill_bash_infra` (limpieza de puertos ocupados).
|
||||
|
||||
## Ejemplo canonico end-to-end
|
||||
|
||||
Levantar el proxy, traficar a traves de el, y consultar lo capturado. Todo en bash, usando las funciones del registry directamente:
|
||||
|
||||
```bash
|
||||
export FN_REGISTRY_ROOT="$HOME/fn_registry"
|
||||
cd "$FN_REGISTRY_ROOT"
|
||||
|
||||
# 1. Arrancar el proxy en el puerto 8080, rotando cada 20 min
|
||||
JSON=$(bash bash/functions/cybersecurity/start_mitm_capture.sh \
|
||||
--port 8080 --out ~/captures --rotate-min 20)
|
||||
PID=$(echo "$JSON" | python3 -c 'import sys,json;print(json.load(sys.stdin)["pid"])')
|
||||
|
||||
# 2. Lanzar un navegador proxeado en perfil aislado
|
||||
bash bash/functions/browser/launch_chromium_proxy.sh \
|
||||
--proxy http://127.0.0.1:8080 --url https://example.com
|
||||
|
||||
# ... navegar; mitmproxy registra todo en ~/captures/traffic-*.mitm ...
|
||||
|
||||
# 3. Consultar la ultima captura: solo peticiones POST
|
||||
LAST=$(ls -t ~/captures/traffic-*.mitm | head -1)
|
||||
bash bash/functions/cybersecurity/query_mitm_flows.sh "$LAST" --filter "~m POST"
|
||||
|
||||
# 4. Exportar todo a HAR
|
||||
bash bash/functions/cybersecurity/query_mitm_flows.sh ~/captures/traffic-*.mitm --har ~/sesion.har
|
||||
|
||||
# 5. Parar el proxy
|
||||
kill -TERM "$PID"
|
||||
```
|
||||
|
||||
Para uso real, la app `apps/web_proxy` envuelve esto en un CLI con subcomandos
|
||||
(`start`, `stop`, `status`, `browser`, `query`, `inspect`, `install-service`) y
|
||||
gestiona el ciclo de vida como servicio `systemd --user` siempre activo.
|
||||
|
||||
## Fronteras
|
||||
|
||||
- **No es un escaner de vulnerabilidades**. Captura y consulta trafico; no hace
|
||||
fuzzing, spidering ni deteccion de vulns como ZAP/Burp. Para eso, exporta a
|
||||
HAR y procesa con otra herramienta.
|
||||
- **No modifica trafico** (todavia). Los addons del grupo solo observan/graban.
|
||||
Un addon de reescritura (estilo Burp Repeater/Intruder) seria una funcion
|
||||
nueva del grupo, no una ampliacion de las actuales.
|
||||
- **HTTPS requiere confiar en el CA** de mitmproxy en el cliente. La captura de
|
||||
trafico cifrado sin el CA instalado solo funciona con
|
||||
`--ignore-certificate-errors` en el navegador proxeado.
|
||||
- **Persistencia del servicio**: `systemd --user` para al cerrar sesion salvo
|
||||
linger. La gestion del servicio vive en la app, no en estas funciones.
|
||||
|
||||
## Prerequisitos
|
||||
|
||||
- `mitmproxy >= 10` instalado: `uv tool install mitmproxy` (da `mitmdump`,
|
||||
`mitmproxy`, `mitmweb` en `~/.local/bin`).
|
||||
- `chromium` (o `google-chrome`) en PATH para `launch_chromium_proxy`.
|
||||
- `python3` para parsear el JSON de arranque y exportar/inspeccionar HAR.
|
||||
Reference in New Issue
Block a user