feat(infra): auto-commit con 88 cambios

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-11 00:16:46 +02:00
parent 6bc97df5c0
commit eb8dbf66a1
126 changed files with 10933 additions and 287 deletions
@@ -0,0 +1,81 @@
"""Genera consultas (dorks) de motor de busqueda para investigar un target.
Funcion pura de OSINT pasivo: a partir de un target y su tipo (persona,
email, dominio o usuario) produce una lista de cadenas de busqueda listas
para pegar en un buscador. No toca la red.
"""
def build_search_dorks(
target: str,
tipo: str = "persona",
extra_domains: list | None = None,
) -> list:
"""Genera dorks de motor de busqueda adaptados al tipo de target.
Segun el tipo seleccionado produce las consultas mas utiles para
investigar:
- persona: nombre exacto, en linkedin, con cv/curriculum, en ficheros.
- email: el email entre comillas, en pastebin/breaches, en filetypes.
- dominio: site:dominio, ficheros expuestos, subdominios, paneles.
- usuario: el alias en redes sociales y foros.
`extra_domains` añade dorks `site:<dominio> "<target>"` para acotar la
busqueda a dominios concretos, independientemente del tipo.
Args:
target: cadena objetivo (nombre, email, dominio o username).
tipo: uno de "persona", "email", "dominio", "usuario". Cualquier
otro valor cae al conjunto generico (solo la frase exacta).
extra_domains: lista opcional de dominios para acotar via site:.
Returns:
lista de strings de dork en orden de generacion (sin deduplicar
salvo el dork de frase exacta, que es la base comun).
"""
q = f'"{target}"' # frase exacta, base de casi todo dork
dorks = [q]
t = tipo.strip().lower()
if t == "persona":
dorks += [
f"{q} filetype:pdf",
f'site:linkedin.com/in {q}',
f'site:twitter.com {q}',
f'intext:{q} (curriculum OR cv OR resume)',
f'{q} (email OR correo OR contacto)',
f'{q} filetype:doc OR {q} filetype:docx',
]
elif t == "email":
dorks += [
f'{q} site:pastebin.com',
f'{q} (leak OR breach OR dump OR password)',
f'{q} filetype:txt',
f'{q} filetype:csv',
f'{q} site:github.com',
]
elif t == "dominio":
dorks += [
f'site:{target}',
f'site:{target} filetype:pdf',
f'site:{target} filetype:xlsx',
f'site:{target} (login OR admin OR dashboard)',
f'site:{target} intext:(password OR contraseña)',
f'site:*.{target}',
f'-www site:{target}',
]
elif t == "usuario":
dorks += [
f'{q} site:github.com',
f'{q} site:reddit.com',
f'{q} (profile OR perfil OR user OR usuario)',
f'inurl:{target}',
]
# Cualquier otro tipo: solo la frase exacta (ya añadida).
if extra_domains:
for dom in extra_domains:
dorks.append(f'site:{dom} {q}')
return dorks