---
name: enumerate_subdomains
kind: function
lang: bash
domain: cybersecurity
version: "1.0.0"
purity: impure
signature: "enumerate_subdomains(domain: string, output_file: string) -> void"
description: "Enumera subdominios de un dominio objetivo usando un diccionario integrado de ~100 subdominios comunes (www, mail, api, dev, admin, vpn, etc.). Detecta tanto registros A (IP directa) como CNAME. Muestra progreso cada 20 subdominios y opcionalmente guarda los resultados en un archivo."
tags: [bash, cybersecurity, dns, subdomain, enumeration, reconnaissance, osint, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
params:
  - name: domain
    desc: "dominio objetivo a enumerar, ej: example.com"
  - name: output_file
    desc: "ruta al archivo donde guardar los resultados (opcional; si se omite, solo imprime a stdout)"
output: "imprime subdominios encontrados con su IP o CNAME, progreso cada 20 entradas y resumen final con total encontrados"
tested: false
tests: []
test_file_path: ""
file_path: "bash/functions/cybersecurity/enumerate_subdomains.sh"
source_repo: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/egutierrez/DevLauncher.git"
source_license: "MIT"
source_file: "scripts/linux/ciberseguridad/web/subdominios.sh"
---

## Ejemplo

```bash
source bash/functions/cybersecurity/enumerate_subdomains.sh

# Solo imprimir resultados
enumerate_subdomains example.com

# Guardar resultados en archivo
enumerate_subdomains example.com /tmp/subdominios.txt
```

## Notas

Requiere `dig` (paquete dnsutils). El diccionario integrado cubre subdominios comunes en entornos corporativos y de desarrollo: www, api, dev, admin, vpn, git, jenkins, staging, prod, db, mail, smtp, ns1/ns2, grafana, kibana, docker, k8s, auth, sso, etc. (~100 entradas). La enumeración es puramente pasiva via DNS — no realiza ningún tipo de conexión al servidor web. Los subdominios con CNAME sin resolución A se marcan en amarillo.
