> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/reconnaissance/subdomains.md).

# Subdominios

Técnicas de enumeración de subdominios para descubrir registros DNS públicos, entradas de transparencia de certificados, hosts indexados e infraestructura expuesta.

La enumeración de subdominios amplía la superficie de ataque del objetivo al descubrir hosts públicos, registros DNS, hosts virtuales, entradas de transparencia de certificados e infraestructura indexada.

{% hint style="info" %}
Existen varias técnicas para descubrir los subdominios asociados con un sitio web. Estas técnicas se pueden realizar usando herramientas en línea o directamente desde la consola, y varían según los objetivos y los recursos disponibles. Aquí hay varias herramientas que puedes usar para esta tarea, con comandos de ejemplo detallados.
{% endhint %}

## Gobuster:

> Gobuster es una herramienta muy popular para descubrir subdominios rápidamente realizando consultas DNS en un sitio web. Utiliza una lista de palabras para probar diferentes combinaciones de subdominios. Aquí hay un ejemplo de su uso en la línea de comandos:

```bash
gobuster vhost -u https://website.com --append-domain -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-110000.txt -t 100
```

* **-u**: Especifica la URL del sitio web objetivo.
* **-w**: Establece la ruta del archivo de palabras que se usará para probar subdominios.
* **-t**: Establece el número de hilos (en este caso, 100), lo que aumenta la velocidad de búsqueda.
* /| grep -v "403": ignora las respuestas HTTP 403.

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-35ae065696aabc65359688f6e6e94e5871227cc4%2Fimage%20(1081).png?alt=media" alt=""><figcaption></figcaption></figure>

## Wfuzz:

> Wfuzz es otra herramienta de fuzzing que te permite probar diferentes subdominios explotando respuestas HTTP. Para buscar subdominios, usa el siguiente comando:

```bash
wfuzz -c -t 100 -w /usr/share/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.website.com" https://website.com
```

* **-c**: activa el modo en color para mejorar la legibilidad de los resultados.
* **-t 20**: establece el número de hilos simultáneos (aquí, 20) para acelerar el proceso.
* **-H "Host: FUZZ.website.com"**: reemplaza "FUZZ" por cada valor de la lista para probar posibles subdominios.
* **--hc=404**: ignora las respuestas HTTP 404.

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-eebcd6339da3c4d77f53017f997f2b0fe5c2dc27%2Fimage%20(1082).png?alt=media" alt=""><figcaption></figcaption></figure>

## **Sublist3r**

> Sublist3r es una herramienta en Python diseñada para enumerar subdominios de sitios web usando OSINT. Utiliza muchos motores de búsqueda como Google, Yahoo, Bing, Baidu y Ask, y otras fuentes como Netcraft, Virustotal, ThreatCrowd, DNSdumpster y ReverseDNS1.

* **Sublist3r**: Herramienta para enumerar subdominios, por ejemplo:/ `sublist3r -d website.com`

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-74b9ebd3455982b3108fdf563b52aa41f2a0495a%2Fimage%20(622).png?alt=media" alt="" width="518"><figcaption></figcaption></figure>

## Google Dorks:

> Google Dorks son consultas especiales que te permiten usar Google para encontrar información específica. Para descubrir los subdominios de un sitio web, puedes usar la siguiente consulta:

```makefile
site:*.website.com
```

Este comando mostrará todos los subdominios indexados de **website.com** usando el índice de Google. Esta técnica es particularmente útil para obtener rápidamente una lista de subdominios accesibles públicamente.

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-66a3006559b5e06f03ac149bd65ce1b759901838%2F%7BAA38A940-2299-4F46-B65F-FC7056F8DA2A%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

## DNSDumpster:

> [DNSDumpster ](https://dnsdumpster.com/)es una herramienta gratuita en línea utilizada para recopilar información sobre el Sistema de Nombres de Dominio (DNS) de un sitio web. Es especialmente útil en pruebas de penetración (pentesting) para obtener información sobre la infraestructura de red de una organización. Usando DNSDumpster, puedes acceder a detalles de los registros DNS públicos de un dominio y descubrir componentes clave de la infraestructura, como:

* Los servidores.
* Subdominios.
* Las direcciones IP asociadas.
* Otros servicios de red.

<figure><img src="https://754079710-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fgit-blob-b585c9b58fb1efc68c6c0ad43a8b11c0ce534d9f%2F%7BDBF2DD2D-392C-4C3E-AAD8-6F31141AFD5F%7D.png?alt=media" alt=""><figcaption></figcaption></figure>

## Enumeración pasiva de dominios

Usa primero fuentes pasivas para recopilar subdominios candidatos sin tocar directamente la infraestructura objetivo. Reemplaza `target.com` con el dominio autorizado.

```bash
export TARGET="target.com"
```

### Transparencia de Certificados

Consulta `crt.sh` y revisa la salida JSON sin procesar:

```bash
curl -s "https://crt.sh/?q=${TARGET}&output=json" | jq .
```

Extrae nombres de host únicos de los resultados de transparencia de certificados:

```bash
curl -s "https://crt.sh/?q=${TARGET}&output=json" \
  | jq -r '.[] | .name_value, .common_name' \
  | sed 's/\*\.//g' \
  | sort -u
```

### Project Sonar

Recopila subdominios, TLD relacionados y resultados de DNS inverso de conjuntos de datos públicos al estilo de Project Sonar:

```bash
curl -s "https://sonar.omnisint.io/subdomains/${TARGET}" | jq -r '.[]' | sort -u
curl -s "https://sonar.omnisint.io/tlds/${TARGET}" | jq -r '.[]' | sort -u
curl -s "https://sonar.omnisint.io/all/${TARGET}" | jq -r '.[]' | sort -u
```

Búsqueda DNS inversa para una IP o un rango CIDR:

```bash
curl -s "https://sonar.omnisint.io/reverse/192.0.2.10" | jq -r '.[]' | sort -u
curl -s "https://sonar.omnisint.io/reverse/192.0.2.0/24" | jq -r '.[]' | sort -u
```

### Recopilación de múltiples fuentes

Ejecuta `theHarvester` contra múltiples fuentes configuradas:

```bash
while read -r source; do
  theHarvester -d "${TARGET}" -b "$source" -f "${source}-${TARGET}"
done < sources.txt
```

### Resolver subdominios a IPs

Convierte los subdominios confirmados en una lista única de IPs:

```bash
while read -r subdomain; do
  host "$subdomain" | awk '/has address/ {print $4}'
done < subdomains.txt | sort -u > ip-addresses.txt
```

### Enriquecer IPs con Shodan

Usa Shodan para revisar los servicios expuestos para cada dirección IP resuelta:

```bash
while read -r ip; do
  shodan host "$ip"
done < ip-addresses.txt
```

## Recursos adicionales de OSINT

Phonebook y otros recursos públicos de OSINT están centralizados en [People and Breach Research](/es/hacking-tools/osint/people-and-breach-research.md). La infraestructura del sitio web, Shodan y los recursos de URL archivadas están centralizados en [Sitios web e infraestructura](/es/hacking-tools/osint/websites-and-infrastructure.md).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/es/reconnaissance/subdomains.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
