Guía rápida para detectar filtraciones relacionadas con una organización y gestionar la evidencia de forma segura. Utiliza solo fuentes legales, públicas o proporcionadas expresamente para la operación. No pruebes credenciales ni descargues o redistribuyas datasets ilícitos.
Flujo rápido
- Definir dominios, marcas, filiales y repositorios incluidos en el alcance.
- Consultar servicios de notificación de brechas y fuentes OSINT autorizadas.
- Buscar correos, dominios, tokens y fragmentos de código expuestos públicamente.
- Clasificar cada hallazgo sin autenticar ni verificar el secreto contra servicios.
- Minimizar y redactar la evidencia.
- Correlacionar fuente, fecha, contexto y posible vigencia.
- Escalar inmediatamente credenciales o claves aparentemente activas.
Tipo | Identificador redactado | Fuente | Fecha filtración | Fecha hallazgo | Contexto | Vigencia | Confianza | EstadoCredential leaks
Una exposición puede incluir contraseñas, hashes, cookies, claves API, tokens OAuth, claves privadas o cadenas de conexión.
Clasificación recomendada:
- Publicada: visible en una fuente pública legítima.
- Notificada: comunicada por un proveedor de brechas.
- Histórica: asociada a un incidente antiguo.
- Posiblemente activa: formato y contexto coherentes, sin validación técnica.
- Revocada por el propietario: confirmación recibida del equipo responsable.
- Falso positivo: ejemplo, placeholder o dato ajeno al objetivo.
No marcar una credencial como válida mediante login, API, SMTP, VPN o recuperación de contraseña.
Password dumps
Los dumps pueden contener contraseñas en claro, hashes y datos personales de múltiples víctimas.
Tratamiento seguro:
- No buscar ni descargar dumps de procedencia ilícita.
- Trabajar solo con datasets autorizados y almacenados en un entorno controlado.
- Filtrar por dominios del alcance sin imprimir contraseñas.
- Conservar únicamente identificadores redactados o hashes de correlación.
- Eliminar copias temporales conforme al plan de manejo de datos.
# Sobre un dataset entregado legalmente: contar coincidencias sin mostrar líneas
rg -i -c '@example\.com' authorized-dataset.txt
# Extraer solo emails, omitiendo cualquier campo posterior
rg -io '[A-Z0-9._%+-]+@example\.com' authorized-dataset.txt \
| tr '[:upper:]' '[:lower:]' | sort -u > affected-emails.txtEvitar comandos que vuelquen líneas completas porque pueden incluir contraseñas o datos ajenos al alcance.
Combos
Las combo lists suelen mezclar pares usuario:contraseña procedentes de varias filtraciones, reutilización o datos inventados.
No deben utilizarse para autenticación. Si el cliente entrega una lista para análisis:
- Aislarla y restringir permisos.
- Extraer únicamente cuentas del dominio autorizado.
- No conservar contraseñas en resultados.
- Deduplicar por email y fuente.
- Tratar la fecha y procedencia como no verificadas.
- Recomendar rotación, revocación de sesiones y revisión de MFA según el contexto.
La aparición en una combo no demuestra que la contraseña pertenezca al servicio corporativo ni que siga vigente.
Paste sites
Los paste sites pueden contener logs, configuraciones, código, listas de usuarios y secretos.
Búsquedas pasivas:
"example.com" (paste OR dump OR leak)
"@example.com" site:pastebin.com
"api.example.com" site:pastebin.com
"Example Corp" ("BEGIN PRIVATE KEY" OR "client_secret")Guardar URL, título, fecha, autor visible y un extracto redactado. No replicar el contenido completo ni acceder a enlaces que requieran credenciales o software no confiable.
Breach datasets
Priorizar servicios que proporcionan notificación o metadatos de brechas sin distribuir contraseñas.
Datos útiles:
- Nombre y dominio de la brecha.
- Fecha del incidente y fecha de publicación.
- Tipos de datos afectados.
- Número aproximado de cuentas.
- Estado de verificación de la fuente.
- Cuentas corporativas afectadas cuando el servicio lo permita legalmente.
Separar una brecha del proveedor corporativo de una cuenta de empleado expuesta en un servicio externo.
Emails comprometidos
Para cada email afectado registrar únicamente lo necesario:
Email | Empresa actual | Brecha | Fecha | Tipos de datos | Fuente | Confianza | Notificado | EstadoNormalizar mayúsculas, aliases y dominios históricos. Distinguir:
- Buzón corporativo actual.
- Cuenta histórica de un antiguo empleado.
- Alias genérico.
- Dirección inferida que no está confirmada.
- Cuenta corporativa usada en un servicio externo.
No comprobar si la cuenta existe mediante portales de autenticación.
API keys
Buscar claves en código público, JavaScript, documentación, colecciones Postman y contenido indexado.
# Nombres de variables y cabeceras
rg -n -i 'api[_-]?key|apikey|x-api-key|subscription[_-]?key' .
# Escaneo local con redacción
gitleaks dir . --redact --report-format json --report-path gitleaks.jsonUna API key puede ser un identificador público con restricciones. Clasificar proveedor, contexto y exposición sin invocar la API.
Tokens
rg -n -i 'access[_-]?token|refresh[_-]?token|auth[_-]?token|bearer|client[_-]?secret' .
# TruffleHog sin verificación activa
trufflehog filesystem . --no-verification --json > trufflehog.jsonNo decodificar ni publicar contenido sensible innecesario. En tokens estructurados, registrar solo tipo, emisor aparente y un fingerprint irreversible cuando sea suficiente.
# Fingerprint local para correlacionar sin conservar el valor en notas
printf '%s' 'REDACTED_SECRET_VALUE' | sha256sumSustituir el valor de ejemplo mediante entrada segura y evitar que el secreto quede en el historial del shell.
Source code leaks
Buscar copias públicas, mirrors, forks, archivos comprimidos, snippets y paquetes publicados.
"Example Corp" (source OR sourcecode OR repository)
"example.com" (github OR gitlab OR bitbucket)
"api.example.com" (filename:.env OR filename:config)
site:github.com "@example.com"
site:gitlab.com "example.com"Indicadores:
- Copyright, dominios y nombres de productos.
- Historial Git y autores corporativos.
- Configuración de CI/CD o infraestructura.
- Hostnames internos y endpoints no documentados.
- Secretos o ficheros excluidos normalmente del repositorio.
Confirmar propiedad antes de reportar y no ejecutar el código filtrado.
IntelX
Intelligence X indexa fuentes históricas, pastes, documentos y contenido de Internet.
Buscar por:
- Dominio raíz y subdominios.
- Emails corporativos confirmados.
- Marca, razón social y nombres históricos.
- IP, CIDR y ASN.
- Hostnames o fragmentos técnicos distintivos.
Registrar el selector utilizado, el bucket o tipo de fuente, fecha y referencia. No descargar datasets completos cuando un metadato o extracto redactado sea suficiente.
Pastebin
Pastebin puede aparecer en búsquedas indexadas o servicios de monitorización.
site:pastebin.com "example.com"
site:pastebin.com "@example.com"
site:pastebin.com "api.example.com"
site:pastebin.com "Example Corp"Comprobar fecha, contexto y si el paste es una copia de otra fuente. No asumir que el autor o el contenido son auténticos.
Have I Been Pwned
Have I Been Pwned permite consultar brechas conocidas. Las consultas de cuentas mediante API requieren una clave y deben respetar sus condiciones de uso.
# Metadatos públicos de todas las brechas
curl -s https://haveibeenpwned.com/api/v3/breaches \
| jq '.[] | {Name,Domain,BreachDate,AddedDate,DataClasses,IsVerified}'
# Consultar una cuenta autorizada; no escribir la API key en el historial
read -rsp 'HIBP API key: ' HIBP_API_KEY
printf '\n'
curl -s \
-H "hibp-api-key: $HIBP_API_KEY" \
-H 'user-agent: authorized-security-assessment' \
'https://haveibeenpwned.com/api/v3/breachedaccount/user%40example.com?truncateResponse=false'
unset HIBP_API_KEYNo realizar consultas masivas de empleados sin base legal, autorización y controles de tratamiento de datos.
GitHub
Utilizar búsquedas dirigidas por dominio, organización y repositorios confirmados.
gh search code '"example.com" (token OR secret OR password)' --limit 100
gh search code '"api.example.com"' --limit 100
gh search code '"@example.com"' --limit 100
gh search commits 'author-email:@example.com' --limit 100Dorks habituales:
"example.com" filename:.env
"example.com" filename:.npmrc
"example.com" filename:.pypirc
"example.com" "client_secret"
"example.com" "BEGIN PRIVATE KEY"
"api.example.com" extension:jsonAplicar Gitleaks o TruffleHog sobre clones locales autorizados y mantener desactivada cualquier verificación de secretos.
PublicWWW e indexed content
PublicWWW busca fragmentos presentes en el código fuente indexado de sitios web.
Selectores útiles:
- Dominios y endpoints exactos.
- IDs de analítica o tag managers.
- Identificadores de servicios de marketing.
- Fragmentos JavaScript distintivos.
- Nombres de buckets, tenants o proyectos.
- Direcciones de correo corporativas.
"api.example.com"
"@example.com"
"example-assets.s3.amazonaws.com"
"GTM-XXXXXXX"Los identificadores compartidos pueden relacionar sitios, pero no demuestran propiedad. Validar mediante DNS, contenido legal, certificados y fuentes corporativas.
Otros contenidos indexados útiles:
- Cachés y archivos web históricos.
- Documentos PDF, hojas de cálculo y ficheros de texto.
- Documentación API y colecciones Postman.
- Paquetes de npm, PyPI y otros registros.
- Imágenes de contenedor y repositorios de artefactos públicos.
Triage de un hallazgo
| Prioridad | Ejemplo | Acción inicial |
|---|---|---|
| Crítica | Clave privada o token aparentemente productivo | Escalado inmediato y revocación por el propietario |
| Alta | Credencial corporativa reciente con contexto | Notificar, rotar y revisar sesiones/MFA |
| Media | Dataset histórico o secreto de entorno de pruebas | Validar propietario y exposición sin usarlo |
| Baja | Email público o placeholder | Registrar solo si aporta contexto |
La prioridad final depende de vigencia, privilegios, entorno, controles adicionales y exposición real.
Manejo de evidencia
- Cifrar los archivos y restringir acceso.
- Redactar contraseñas, tokens, cookies y claves.
- Evitar capturas con valores completos.
- No copiar datos ajenos al alcance.
- Registrar cadena de custodia y fuente.
- Definir retención y borrado seguro con el cliente.
- No enviar secretos por chat, email o tickets sin protección.
Plantilla de inventario
Hallazgo | Tipo | Cuenta/recurso redactado | Fuente | Fecha origen | Fecha hallazgo | Contexto | Posible vigencia | Prioridad | Estado | ResponsableEstados recomendados: nuevo, triage, notificado, revocado, histórico, falso positivo o cerrado.