Files
fn_registry/python/functions/cybersecurity/enrich_person_passive.md
T
egutierrez eb8dbf66a1 feat(infra): auto-commit con 88 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-11 00:16:46 +02:00

3.8 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
enrich_person_passive function py cybersecurity 1.0.0 impure def enrich_person_passive(nombre: str, apellidos: str, dominios: list | None = None, usernames: list | None = None) -> dict Orquestador OSINT pasivo: genera candidatos de enriquecimiento de una persona SIN tocar al objetivo. Compone guess_email_formats (emails candidatos por cada dominio dado, o gmail/outlook por defecto), enumerate_username_sites (comprobacion de usernames en servicios publicos) y build_search_dorks (dorks tipo persona, que NO se ejecutan, solo se generan).
osint-enrich
osint-passive
cybersecurity
person
email
username
dorks
guess_email_formats_py_cybersecurity
enumerate_username_sites_py_cybersecurity
build_search_dorks_py_cybersecurity
false error_go_core
name desc
nombre nombre de pila de la persona
name desc
apellidos apellido(s) de la persona. nombre y apellidos no pueden estar ambos vacios (ValueError)
name desc
dominios lista de dominios de correo donde generar formatos de email candidatos. None o vacia => usa los dominios comunes gmail.com/outlook.com
name desc
usernames lista de usernames a comprobar en sitios publicos via enumerate_username_sites. None o vacia => no se comprueba ningun username
dict con email_candidates (lista de emails candidatos NO verificados, deduplicada y ordenada), username_hits (lista de {username, hits} con el resultado de enumerate_username_sites por username) y dorks (lista de dorks de busqueda tipo persona generados pero NO ejecutados) true
test_golden_compone_emails_usernames_y_dorks
test_sin_dominios_usa_comunes
test_sin_usernames_no_comprueba
test_nombre_y_apellidos_vacios_lanza
test_emails_deduplicados
python/functions/cybersecurity/enrich_person_passive_test.py python/functions/cybersecurity/enrich_person_passive.py

Ejemplo

import sys, os
sys.path.insert(0, os.path.join("python", "functions"))
from cybersecurity import enrich_person_passive

res = enrich_person_passive(
    "Juan", "Perez",
    dominios=["organic-machine.com"],
    usernames=["jperez", "juanp"],
)

print(res["email_candidates"])   # ['juan.perez@organic-machine.com', 'jperez@organic-machine.com', ...]
for u in res["username_hits"]:
    print(u["username"], len(u["hits"]))   # sitios publicos donde aparece cada username
print(res["dorks"])              # dorks listos para pegar en un buscador (no se ejecutan aqui)

Cuando usarla

  • Cuando arrancas la ficha OSINT de una persona y quieres una primera tanda de candidatos (emails probables, presencia de usernames, dorks) sin enviar nada al objetivo ni a su correo.
  • Antes de verificar manualmente: genera el espacio de candidatos para que despues confirmes cuales son reales.
  • Como paso pasivo previo a cualquier accion activa (que requeriria otra autorizacion y otras funciones).

Gotchas

  • Uso solo para investigacion autorizada. Generar candidatos sobre una persona sin base legitima puede vulnerar privacidad/leyes de proteccion de datos.
  • Los email_candidates son candidatos NO verificados: son permutaciones plausibles del nombre, NO emails confirmados. No asumas que existen ni los uses para envio.
  • Funcion IMPURA: enumerate_username_sites consulta servicios publicos por red, lo que deja una huella minima (requests a esos sitios). build_search_dorks y guess_email_formats son locales.
  • Los dorks se generan pero NO se ejecutan aqui: ejecutarlos en un buscador es un paso aparte y deja su propia huella.
  • Si no aportas dominios, se usan gmail.com/outlook.com como heuristica; ajusta la lista a los dominios reales del entorno de la persona para candidatos utiles.