---
name: build_search_dorks
kind: function
lang: py
domain: cybersecurity
version: "1.0.0"
purity: pure
signature: "def build_search_dorks(target: str, tipo: str = 'persona', extra_domains: list | None = None) -> list"
description: "Genera consultas (dorks) de motor de busqueda para investigar un target segun su tipo (persona|email|dominio|usuario): frase exacta, site:linkedin, filetype:pdf, intext con cv/curriculum, site:<dominio> filetype:xlsx, dorks de leaks/pastebin para email, redes sociales para usuario, etc. extra_domains acota via site:. OSINT pasivo puro, sin red."
tags: [osint-passive, dork, search, recon, google-dork, cybersecurity, python]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: ""
imports: []
params:
  - name: target
    desc: "Cadena objetivo: nombre de persona, email, dominio o username segun el tipo."
  - name: tipo
    desc: "Uno de 'persona', 'email', 'dominio', 'usuario'. Cualquier otro valor devuelve solo la frase exacta. Default 'persona'."
  - name: extra_domains
    desc: "Lista opcional de dominios para añadir dorks 'site:<dominio> \"<target>\"' independientemente del tipo."
output: "Lista de strings de dork listos para pegar en un buscador, en orden de generacion."
tested: true
tests:
  - "test_persona_genera_dorks_esperados"
  - "test_email_genera_dorks_esperados"
  - "test_dominio_genera_site_dorks"
  - "test_usuario_genera_redes_sociales"
  - "test_extra_domains_acota_con_site"
  - "test_tipo_desconocido_solo_frase_exacta"
test_file_path: "python/functions/cybersecurity/build_search_dorks_test.py"
file_path: "python/functions/cybersecurity/build_search_dorks.py"
---

## Ejemplo

```python
build_search_dorks("Juan Perez", tipo="persona", extra_domains=["acme.com"])
# ['"Juan Perez"',
#  '"Juan Perez" filetype:pdf',
#  'site:linkedin.com/in "Juan Perez"',
#  'site:twitter.com "Juan Perez"',
#  'intext:"Juan Perez" (curriculum OR cv OR resume)',
#  '"Juan Perez" (email OR correo OR contacto)',
#  '"Juan Perez" filetype:doc OR "Juan Perez" filetype:docx',
#  'site:acme.com "Juan Perez"']

build_search_dorks("empresa.com", tipo="dominio")
# ['"empresa.com"', 'site:empresa.com', 'site:empresa.com filetype:pdf',
#  'site:empresa.com filetype:xlsx', 'site:empresa.com (login OR admin OR dashboard)', ...]
```

## Cuando usarla

Usala cuando ya tengas un target identificado (persona, email, dominio o alias) y quieras una bateria de consultas de buscador listas para pegar manualmente y mapear documentos, perfiles y posibles filtraciones. Encaja despues de `guess_email_formats` (dorks de email) o `enumerate_username_sites` (dorks de usuario/persona) en una investigacion autorizada.

## Gotchas

- Funcion pura: solo genera strings de consulta, NO ejecuta busquedas ni toca la red. Los dorks se pegan a mano en el buscador.
- La sintaxis usa operadores de Google (site:, filetype:, intext:, inurl:); otros buscadores soportan un subconjunto distinto y algunos dorks no funcionaran igual.
- Para tipos no reconocidos devuelve unicamente la frase exacta entre comillas (mas los `extra_domains` si se pasan), no falla.
- Uso solo para investigacion OSINT autorizada; los dorks de leaks/breaches/pastebin pueden devolver datos sensibles cuyo tratamiento esta sujeto a ley.
