# Kit del curso 11 · Taller OSINT: casos prácticos resueltos

## Qué es

La carpeta de trabajo del taller, con la estructura que pide la lección (`~/taller-osint/caso1` a `caso5`): el correo del Caso 1, la imagen y el script del Caso 2, la consulta y los dos scripts de sol del Caso 3, `kev.js` del Caso 5 y un `cuaderno.csv` vacío con la cabecera de la ficha. Todo es ficticio y sintético; `generar_foto_practica.py` reconstruye la imagen.

Ficheros: `caso1/factura-iban.eml` (588 bytes), `caso2/foto-practica.jpg` (9.3 KB), `caso2/generar_foto_practica.py` (1.7 KB), `caso2/leer_exif.py` (189 bytes), `caso3/q2.overpassql` (159 bytes), `caso3/sol.py` (654 bytes), `caso3/sol_noaa.py` (2.6 KB), `caso5/kev.js` (224 bytes), `cuaderno.csv` (54 bytes).

Todo es ficticio: empresas, personas, dominios `.example`/`example.com` y direcciones de documentación (RFC 5737). No hay datos reales ni personales.

## Requisitos

Git Bash, Linux o macOS (las terminales usan `<( )`), Node.js, `curl` y Python 3 con `pip install pillow astral` (en Windows, además `pip install tzdata`).

## Cómo usarlo

Descomprime el kit y cópialo a `~/taller-osint` (`cp -r 11-taller-casos-osint ~/taller-osint`); crea la carpeta que falta con `mkdir -p ~/taller-osint/caso4`. Entra en la carpeta de cada caso y pega las órdenes. Para el Caso 5, descarga antes el catálogo (no se reparte, pesa 1,7 MB): `curl -sS -o kev.json https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json`.

## Qué terminales cubre

Con ficheros de este kit:

| Terminal (diapositiva) | Ficheros del kit | Qué usa y qué variará |
|---|---|---|
| Terminal: hash y cabeceras del correo («Caso 1: un correo pide cambiar el IBAN») | `caso1/factura-iban.eml` | El correo ficticio del caso y `sha256sum`. **Qué variará:** El hash: la diapositiva avisa de que será otro si cambia un solo byte; el de este kit empieza por `c25338b0` |
| Terminal: leer los metadatos de la foto («Caso 2: una foto que circula como de ayer») | `caso2/foto-practica.jpg`, `caso2/leer_exif.py` | La imagen sintética del caso y el script de 3 líneas (Pillow). **Qué variará:** Nada (salida idéntica, incluido `ExifOffset : 140`) |
| Terminal: fuentes junto a un campanario («Caso 3: dónde y cuándo se hizo la foto») | `caso3/q2.overpassql` | El fichero de consulta y la API pública de Overpass. **Qué variará:** Los identificadores si cambia OpenStreetMap; con un error 429 espera unos 30 s |
| Terminal: elevación del sol y longitud de la sombra («Caso 3: la hora que cuentan las sombras») | `caso3/sol.py`, `caso3/sol_noaa.py` | `sol.py` (necesita `pip install astral`); `sol_noaa.py` es la segunda herramienta, sin dependencias. **Qué variará:** Nada. Aviso: `sol.py` no se pudo ejecutar donde se preparó el kit (no había `astral`); `sol_noaa.py` sí, y da exactamente la tabla de la diapositiva |
| Terminal: filtrar el KEV y consultar el EPSS («Caso 5: qué vulnerabilidades entran en tu inventario») | `caso5/kev.js` | `kev.js` y el `kev.json` que descargas tú (1,7 MB, no se reparte); API de EPSS. **Qué variará:** La lista y los valores de EPSS cambian con el catálogo |

Otras terminales del curso, que **no necesitan ficheros** del kit:

| Terminal (diapositiva) | Qué usa | Qué variará |
|---|---|---|
| Terminal: comparar dominios y leer un RDAP («Caso 1: un dominio que casi es el tuyo») | Nada del kit: `cmp`, `node` y RDAP de Verisign sobre `example.com` (necesita Bash con sustitución de procesos: Git Bash o Linux) | Las fechas del RDAP |
| Terminal: la advertencia de la API de la BDNS («Caso 4: leer cada fuente y sus condiciones») | API pública de la BDNS (`pageSize=1`) y `node -p` | El texto de la advertencia si la BDNS lo cambia. La diapositiva parte las líneas largas para que quepan |
| Terminal: etiquetas TLP de un feed MISP («Caso 5: priorizar con EPSS y leer un feed MISP») | Descarga el manifiesto del feed OSINT de CIRCL | Los recuentos |

## Avisos

- El `.eml` original del autor no se guardó: el de este kit tiene el mismo formato (11 líneas) y la salida de la terminal coincide salvo el hash.
- `sol.py` usa `astral`, que no estaba instalado donde se preparó el kit, así que no se ejecutó. `sol_noaa.py` (el algoritmo de NOAA, sin dependencias) da exactamente la misma tabla que la diapositiva, que es el contraste que pide la lección.
- Las terminales con red (RDAP, Overpass, BDNS, KEV, EPSS, MISP) muestran datos del 10-10-2026: los tuyos variarán.
- Verificación: las órdenes de cada terminal reproducible se ejecutaron el 10 y 11-10-2026 en Ubuntu 26.04 (WSL2), Git Bash y Windows PowerShell 5.1, y la salida coincide con la diapositiva salvo lo indicado en «Qué variará». Las terminales marcadas «sin verificar», «verificada en parte» o «no reproducible» se indican aparte, con su motivo.
