DNS, WHOIS y crt.sh
import { Aside } from ‘@astrojs/starlight/components’;
DNS Lookup
Consulta todos los tipos de registros DNS de un dominio.
from src.tools.dns_tool import dns_lookupresult = await dns_lookup("acme-corp.com")Registros que consulta
| Registro | Que contiene |
|---|---|
A | IPv4 del dominio |
AAAA | IPv6 del dominio |
MX | Servidores de correo |
NS | Servidores de nombres (nameservers) |
TXT | Texto libre — SPF, DKIM, verificaciones de propiedad |
CNAME | Alias a otro dominio |
SOA | Start of Authority — admin del dominio |
Que buscar
- Registros MX: proveedores de correo inusuales pueden indicar uso de servicios anonimos
- SPF/TXT: la ausencia de SPF facilita el spoofing del dominio
- NS: nameservers baratos o de registradores “bulletproof” son senales de alerta
- TTL bajo: puede indicar dominio preparado para cambio rapido (DGA-like)
Ejemplo de salida
[DNS] evil-phishing.com ├─ A: 185.220.101.34 ├─ MX: mail.evil-phishing.com (prioridad 10) ├─ NS: ns1.bulletproof-hosting.ru, ns2.bulletproof-hosting.ru └─ TXT: "v=spf1 include:mailchimp.com ~all"WHOIS Lookup
Consulta la informacion de registro de un dominio.
from src.tools.whois_tool import whois_lookupresult = await whois_lookup("acme-corp.com")Informacion que devuelve
| Campo | Descripcion |
|---|---|
registrar | Empresa que registro el dominio |
creation_date | Fecha de registro original |
expiration_date | Fecha de expiracion |
updated_date | Ultima actualizacion |
name_servers | Nameservers actuales |
status | Estado (active, redemptionPeriod, etc.) |
registrant | Registrant (si no esta oculto por privacy) |
emails | Emails de contacto |
Senales de alerta en WHOIS
- Registro muy reciente (< 30 dias): dominios de phishing suelen ser nuevos
- Expiracion pronto: dominio temporal
- Privacy protection: oculta los datos del registrante (comun pero relevante)
- Registrador “bulletproof”: algunos registradores son conocidos por ignorar abusos
Limitaciones
Con GDPR, la mayoria de WHOIS anonimiza los datos del registrante. Para info mas completa usa RDAP o servicios premium como DomainTools.
crt.sh — Certificate Transparency
Certificate Transparency es un registro publico de todos los certificados SSL emitidos. crt.sh lo indexa y permite buscar subdominios.
from src.tools.crtsh import crtsh_lookupresult = await crtsh_lookup("acme-corp.com")Que devuelve
Lista de subdominios encontrados en certificados emitidos para ese dominio:
[crt.sh] acme-corp.com ├─ mail.acme-corp.com ├─ vpn.acme-corp.com ├─ staging.acme-corp.com ├─ admin.acme-corp.com ├─ api-internal.acme-corp.com └─ dev.acme-corp.com ← ¡Interesante!Por que es util
Los certificados SSL son publicos por definicion — incluso para subdominios internos que no aparecen en DNS publico. Esto hace que crt.sh revele infraestructura que el objetivo no ha hecho visible intencionalmente.
Tecnicas adicionales
- Wildcard search: busca
%.acme-corp.compara encontrar cualquier subdominio - Busca el dominio en el CN (Common Name) y en los SANs (Subject Alternative Names)
- Correlaciona con los resultados de DNS para identificar subdominios activos vs inactivos
Limitaciones
- Solo muestra subdominios que han tenido certificado SSL — los que usan solo HTTP no aparecen
- Puede haber falsos positivos por certificados de empresas con nombres similares