Bloquear Bots usando el archivo robots.txt

Análisis de un dominio desde la terminal

Análisis de un dominio

Cuando realizamos el análisis de un dominio desde la terminal Linux buscamos extraer toda la información pública disponible sobre su infraestructura, tecnologías, configuración DNS, servidores, certificados, vulnerabilidades, entre otras cosas. Este proceso es fundamental para tareas de administración de sistemas, auditorías de seguridad, pentesting o simplemente para aprender cómo funciona la web por debajo.

En este artículo repasaremos herramientas básicas y avanzadas, pasando de consultas DNS simples a enumeraciones completas de subdominios, detección de CMS, escaneo de puertos, certificados SSL, y más.

⚠️ Aviso Legal: Realiza este tipo de análisis únicamente sobre dominios que te pertenezcan o para los que tengas autorización explícita. Este tipo de actividades sin permiso pueden ser consideradas ilegales.

0. Requisitos previos e instalación 🔧

Antes de comenzar, asegúrate de tener instaladas las herramientas necesarias. Aquí está la guía de instalación para las principales:

Herramientas básicas (generalmente ya instaladas)

# Debian/Ubuntu
sudo apt update
sudo apt install whois dnsutils net-tools curl wget nmap traceroute mtr

# RHEL/CentOS/Fedora
sudo dnf install whois bind-utils net-tools curl wget nmap traceroute mtr

# Arch Linux
sudo pacman -S whois bind-tools net-tools curl wget nmap traceroute mtr

Herramientas de enumeración de subdominios

# Subfinder
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest

# Amass
go install -v github.com/owasp-amass/amass/v4/...@master

# Assetfinder
go install github.com/tomnomnom/assetfinder@latest

Herramientas de fingerprinting

# WhatWeb
sudo apt install whatweb  # Debian/Ubuntu
# o desde el repositorio
git clone https://github.com/urbanadventurer/WhatWeb.git

# Wappalyzer CLI
npm install -g wappalyzer

# theHarvester
sudo apt install theharvester  # Debian/Ubuntu
# o
git clone https://github.com/laramies/theHarvester.git
cd theHarvester
pip3 install -r requirements.txt

# wafw00f (detección de WAF)
pip3 install wafw00f

Herramientas de fuzzing y escaneo

# Gobuster
go install github.com/OJ/gobuster/v3@latest

# ffuf
go install github.com/ffuf/ffuf/v2@latest

# httpx
go install -v github.com/projectdiscovery/httpx/cmd/httpx@latest

# Nuclei
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest

# Nikto
sudo apt install nikto

# WPScan
gem install wpscan

Herramientas SSL

# testssl.sh
git clone --depth 1 https://github.com/drwetter/testssl.sh.git

# sslscan
sudo apt install sslscan

Wordlists recomendadas

# SecLists (colección de wordlists)
sudo apt install seclists  # Debian/Ubuntu
# o
git clone https://github.com/danielmiessler/SecLists.git /usr/share/seclists

# Ubicaciones comunes de wordlists:
# /usr/share/wordlists/
# /usr/share/seclists/
# /usr/share/dirb/wordlists/

💡 Nota: Asegúrate de tener Go instalado para las herramientas que lo requieren. Puedes instalarlo desde https://go.dev/dl/

1. Consultas DNS y de registros básicas

whois: Información registral del dominio

El comando whois proporciona información sobre el propietario del dominio, fechas de registro, servidores de nombres y más.

# Consulta básica
whois ejemplo.com
# Más verboso
whois --verbose ejemplo.com
# Sin recursión (solo consulta directa)
whois --no-recursion ejemplo.com

dig: Consulta de registros DNS

dig (Domain Information Groper) es la herramienta más potente para consultas DNS avanzadas.

dig ejemplo.com
dig ejemplo.com MX
dig ejemplo.com NS
dig +short ejemplo.com
dig ejemplo.com A +trace
dig ejemplo.com ANY +noall +answer
dig ejemplo.com TXT

host: Resolución de registros

Una alternativa más simple a dig, ideal para consultas rápidas.

host ejemplo.com
host -t mx ejemplo.com
host -t ns ejemplo.com
host ejemplo.com 8.8.8.8

nslookup: Interactivo

Herramienta interactiva para consultas DNS, útil para sesiones de investigación.

nslookup
> set type=any
> ejemplo.com
nslookup -type=MX ejemplo.com

2. Enumeración de subdominios

La enumeración de subdominios es crucial para descubrir toda la superficie de ataque de un dominio.

Usar certificados SSL públicos desde crt.sh

Los registros de Transparencia de Certificados (CT Logs) son una mina de oro para encontrar subdominios.

curl -s "https://crt.sh/?q=%.ejemplo.com&output=json" | jq .

Otros artículos de curl

amass: Enumeración activa y pasiva

OWASP Amass es una de las herramientas más completas para enumeración de subdominios.

amass enum -d ejemplo.com
amass enum -d ejemplo.com -p 80,443
amass enum -d ejemplo.com -o subdominios.txt
amass enum -d ejemplo.com -o subdominios.txt -v

subfinder: Alternativa ligera

Subfinder es rápido y eficiente, ideal para enumeración pasiva.

subfinder -d ejemplo.com
subfinder -d ejemplo.com -o subdominios.txt
subfinder -d ejemplo.com -v

3. Fingerprinting de tecnologías y CMS

whatweb: Tecnologías web

WhatWeb identifica tecnologías web, CMS, frameworks, servidores y más.

whatweb www.ejemplo.com

wappalyzer (CLI)

Herramienta que, a través de la línea de comandos (CLI), permite detectar tecnologías web utilizadas en un sitio, como CMS, servidores, lenguajes y otras tecnologías

npx wappalyzer https://www.ejemplo.com

theHarvester: Correos, hosts, redes

TheHarvester recopila emails, subdominios, hosts, puertos abiertos y más mediante OSINT.

theHarvester -d ejemplo.com -b google
theHarvester -d ejemplo.com -b bing -l 100

4. Análisis de infraestructura y red

nmap: Escaneo de puertos y servicios

Nmap es el rey del escaneo de puertos y detección de servicios.

nmap -sV -Pn -T4 ejemplo.com
nmap -A -p- ejemplo.com
nmap -sT -p 1-65535 ejemplo.com -oA nmap_full
nmap --script vuln -sV ejemplo.com
nmap -oX salida.xml ejemplo.com

masscan: Escaneo rápido

Masscan es extremadamente rápido, ideal para escanear rangos grandes.

masscan ejemplo.com -p1-65535 --rate=1000 -oL masscan.txt
# convertir a nmap para ver servicios:
cat masscan.txt | awk '/open/ {print $4}' | sed 's/\/tcp//' | xargs -I{} nmap -sV -p {}

traceroute y mtr

Herramientas para rastrear la ruta que sigue un paquete de datos a través de la red hasta llegar a un destino. Ayudan a identificar posibles cuellos de botella o puntos de fallo en la red.

traceroute ejemplo.com
traceroute -I ejemplo.com            # usar ICMP
mtr -r -c 100 ejemplo.com            # reporte con 100 paquetes

5. Análisis de certificados SSL/TLS

openssl s_client: Ver metadatos

Permite obtener información detallada sobre el certificado SSL/TLS de un dominio, como fechas de validez, emisor, y más.

echo | openssl s_client -servername ejemplo.com -connect ejemplo.com:443 2>/dev/null | openssl x509 -noout -dates -issuer -subject
openssl s_client -connect ejemplo.com:443 -servername ejemplo.com -tls1_2
openssl s_client -connect ejemplo.com:443 -servername ejemplo.com -cipher 'ECDHE-RSA-AES128-GCM-SHA256'

Detalles completos del certificado

echo | openssl s_client -servername ejemplo.com -connect ejemplo.com:443 2>/dev/null | openssl x509 -noout -text | less
# exportar certificado PEM
echo | openssl s_client -connect ejemplo.com:443 -servername ejemplo.com 2>/dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ejemplo.pem

testssl.sh

Herramienta de análisis de SSL/TLS que permite verificar la configuración de seguridad de un servidor, incluidos los protocolos soportados y las vulnerabilidades conocidas.

./testssl.sh ejemplo.com
./testssl.sh --openssl=openssl --jsonfile -o testssl.json ejemplo.com

gnutls-cli: Alternativa a OpenSSL

Alternativa a OpenSSL para la verificación y análisis de certificados SSL/TLS.

gnutls-cli -p 443 ejemplo.com
gnutls-cli -s -p 443 -V ejemplo.com    # mostrar versión

sslscan

Analiza la configuración SSL/TLS de un servidor, identificando ciphers, vulnerabilidades y configuraciones débiles.

sslscan ejemplo.com:443
sslscan --no-fallback --show-cipher ejemplo.com

ssl-cert-check: Validez de certificados

Herramienta para verificar la validez de los certificados SSL, incluida la fecha de expiración.

ssl-cert-check -c ejemplo.com -p 443

curl: Comprobar encabezados SSL

Utilizado para comprobar encabezados SSL/TLS y verificar la validez del certificado al realizar solicitudes HTTPS.

curl -vI https://ejemplo.com 2>&1 | grep -i "SSL certificate"
curl -I https://ejemplo.com

Verificar certificados con openssl

6. Enumeración de rutas, directorios y vulnerabilidades

gobuster: Fuerza bruta de rutas

Herramienta de fuerza bruta para descubrir rutas, directorios y virtual hosts en un servidor web.

gobuster dir -u https://www.ejemplo.com -w /usr/share/wordlists/dirb/common.txt -t 50 -o gobuster.txt
gobuster vhost -u ejemplo.com -w vhosts.txt -o vhosts.txt

ffuf (fuzz rápido)

Herramienta de fuzzing rápida que permite realizar pruebas de fuerza bruta sobre rutas, subdominios o incluso parámetros URL.

ffuf -u https://www.ejemplo.com/FUZZ -w wordlist.txt -mc 200,301 -o ffuf.json
ffuf -u https://FUZZ.ejemplo.com -w subdomains.txt -c

dirsearch: Alternativa en Python

Alternativa en Python a gobuster, utilizada para descubrir directorios y archivos ocultos en un servidor web.

python3 dirsearch/dirsearch.py -u https://www.ejemplo.com -e php,html,js -w /path/wordlist.txt -o dirsearch_results.txt

nikto: Vulnerabilidades comunes

Escáner de vulnerabilidades web que revisa configuraciones comunes de servidores y aplicaciones para detectar vulnerabilidades conocidas.

nikto -h https://www.ejemplo.com -output nikto.txt
nikto -h https://www.ejemplo.com -Plugins "server,headers"

wpscan: Escáner de WordPress

Escáner especializado en WordPress, que detecta vulnerabilidades, plugins, temas y configuraciones inseguras.

wpscan --url https://www.ejemplo.com --enumerate u,vp,vt,cb,dbe --api-token TU_TOKEN
wpscan --url https://www.ejemplo.com --plugins-detection mixed -o wpscan.json

nuclei (plantillas)

Herramienta de escaneo de vulnerabilidades basada en plantillas, que permite detectar vulnerabilidades y problemas de seguridad en los sitios web.

nuclei -t cves/ -u https://www.ejemplo.com -o nuclei_results.txt
nuclei -l vivos.txt -t ~/nuclei-templates/ -o nuclei_all.txt

7. Automatización y frameworks de reconocimiento

Osmedeus: Marco de automatización

Framework de automatización para realizar reconocimiento y análisis de un dominio y de redes, que integra múltiples herramientas y genera informes automáticos.

osmedeus scan -t ejemplo.com -w workspace_ejemplo
osmedeus config set output /ruta/a/salidas

Recon-ng: Consola modular para recolección

Consola modular para recolección de información sobre dominios, que permite integrar diversas fuentes y realizar tareas automatizadas de reconocimiento.

recon-ng
workspaces create ejemplo
modules load recon/domains-hosts/brute_hosts
options set SOURCE ejemplo.com
run

SpiderFoot: Interfaz web y CLI

Herramienta que realiza una recolección pasiva de información sobre un objetivo, ofreciendo tanto una interfaz web como una versión CLI.

spiderfoot -s ejemplo.com -o spiderfoot.json -m all
# o usar interfaz web:
spiderfoot -l 127.0.0.1:5001

Scripts combinados (bash, Python)

Existen scripts personalizados que combinan whois, nmap, dig, curl, etc., y pueden generar informes automáticos. Un ejemplo:

#!/usr/bin/env bash
target="$1"
if [ -z "$target" ]; then echo "uso: $0 ejemplo.com"; exit 1; fi
mkdir -p recon/"$target"
echo "[*] whois" > recon/"$target"/report.txt
whois "$target" >> recon/"$target"/report.txt
echo "[*] subfinder" >> recon/"$target"/report.txt
subfinder -d "$target" -o recon/"$target"/subfinder.txt
echo "[*] httpx (comprobar vivos)" >> recon/"$target"/report.txt
cat recon/"$target"/subfinder.txt | httpx -silent -status-code -o recon/"$target"/alive.txt
echo "Listo: recon/$target"

Antes de realizar cualquier análisis, obtén permiso por escrito del propietario del dominio. Respeta políticas de uso aceptable y evita afectar servicios de terceros. Estas prácticas deben realizarse en entornos autorizados y controlados.

9. Conclusión

Desde simples consultas DNS hasta escaneos completos de infraestructura, la terminal de Linux nos brinda un arsenal poderoso para el análisis de un dominio. Estas herramientas permiten entender mejor la superficie de exposición de una web, identificar vulnerabilidades y prepararse para fortalecer la seguridad de nuestros sistemas.

Domina estas técnicas, automatiza tus procesos, y recuerda: un gran poder conlleva una gran responsabilidad.

Más apuntes

Invítame a un café con bitcoins:
1QESjZDPxWtZ9sj3v5tvgfFn3ks13AxWVZ

Bitcoins para café
También puedes invitarme a algo para mojar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar