Shodan es un motor de búsqueda para dispositivos conectados a internet. A diferencia de Google, que indexa contenido web, Shodan indexa banners de servicios : respuestas de servidores, dispositivos IoT, cámaras, routers, sistemas SCADA, y cualquier cosa expuesta en la red.
Shodan escanea continuamente el espacio de direcciones IPv4 enviando probes a puertos comunes y recoge los banners de respuesta (HTTP headers, SSH banners, FTP banners, etc.). Cada resultado incluye:
Dirección IP y hostname (si resuelve)
Puertos abiertos y servicios detectados
País, ciudad, organización/ASN
Certificados TLS/SSL
Timestamps del último escaneo
Vulnerabilidades conocidas (CVEs asociados)
Método
URL
Web UI
shodan.io
CLI
pip install shodan → shodan init <API_KEY>
API REST
https://api.shodan.io/shodan/host/{ip}?key=<API_KEY>
# Inicializar con tu API key
# Descargar resultados (requiere créditos)
shodan download resultados.json.gz " nginx country:ES "
shodan parse resultados.json.gz --fields ip_str,port,org
Las búsquedas en Shodan combinan términos de texto libre con filtros usando la sintaxis filtro:valor. Los filtros se pueden encadenar con espacios (AND implícito).
término filtro1:valor1 filtro2:valor2
Ejemplos:
apache port:8080 country:ES
"default password" product:router org:"Telefonica"
Aplicables a cualquier tipo de búsqueda.
Filtro
Descripción
Ejemplo
country
Código de país ISO 3166-1 alpha-2
country:ES
city
Ciudad
city:Madrid
geo
Coordenadas + radio en km
geo:40.41,3.70,50
org
Nombre de organización (ASN)
org:"Telefonica"
isp
Proveedor de servicios de internet
isp:"Movistar"
net
Rango de red en CIDR
net:192.168.1.0/24
ip
Dirección IP específica
ip:1.2.3.4
hostname
Hostname o dominio
hostname:.gov.es
asn
Número de sistema autónomo
asn:AS3352
port
Puerto específico
port:22
os
Sistema operativo detectado
os:"Windows Server 2019"
product
Nombre del producto/software
product:nginx
version
Versión del producto
version:2.4.49
before
Resultados antes de fecha
before:01/01/2024
after
Resultados después de fecha
after:01/06/2024
vuln
CVE asociado al host
vuln:CVE-2021-44228
has_screenshot
Hosts con captura de pantalla
has_screenshot:true
tag
Etiqueta Shodan interna
tag:honeypot
http.title:"Dashboard" country:ES
http.status:200 http.favicon.hash:-297xxxxxxxxx
http.html:"Powered by WordPress" country:ES
Filtro
Descripción
Ejemplo
http.title
Título de la página HTML
http.title:"Login"
http.html
Contenido del cuerpo HTML
http.html:"index of /"
http.status
Código de respuesta HTTP
http.status:200
http.server
Header Server de la respuesta
http.server:"Apache/2.4"
http.component
Tecnología detectada (Wappalyzer)
http.component:wordpress
http.favicon.hash
Hash MMH3 del favicon
http.favicon.hash:116323821
http.headers_hash
Hash de las cabeceras HTTP
http.headers_hash:1234567890
http.waf
WAF detectado
http.waf:cloudflare
Puedes calcular el hash del favicon de un objetivo y buscarlo en Shodan para encontrar todos sus activos expuestos, incluso los que no aparecen en DNS.
import mmh3, requests, base64
r = requests. get ( " https://target.com/favicon.ico " )
favicon = base64. encodebytes ( r.content )
print ( mmh3. hash ( favicon ))
port:22 product:"OpenSSH" version:"7.4" country:ES
"SSH-2.0-OpenSSH_7.4" country:ES
Filtro
Descripción
Ejemplo
port
Puerto SSH (por defecto 22)
port:22
product
Implementación SSH
product:"OpenSSH"
version
Versión de OpenSSH
version:"8.9"
os
Sistema operativo del servidor
os:"Ubuntu"
banner
Contenido del banner SSH
banner:"SSH-2.0"
port:21 "230 Login successful" anonymous
"220" "FTP" "anonymous" country:ES
Filtro
Descripción
Ejemplo
port
Puerto FTP (21)
port:21
ftp.anonymous
Login anónimo habilitado
ftp.anonymous:true
banner
Banner del servicio FTP
banner:"220 ProFTPD"
MongoDB
port:27017 product:"MongoDB" -authentication
Filtro
Descripción
Ejemplo
port
Puerto MongoDB
port:27017
product
Producto
product:"MongoDB"
mongodb.databases
Bases de datos expuestas
mongodb.databases:admin
Elasticsearch
port:9200 product:"Elastic" country:ES
http.title:"Kibana" port:5601
Filtro
Descripción
Ejemplo
port
Puerto ES (9200) o Kibana (5601)
port:9200
product
Elastic/Kibana
product:"Kibana"
elasticsearch.cluster
Nombre del clúster
elasticsearch.cluster:production
Redis
port:6379 product:"Redis" -requirepass
Filtro
Descripción
Ejemplo
port
Puerto Redis
port:6379
product
Redis
product:"Redis"
MySQL / MSSQL / PostgreSQL
port:3306 product:"MySQL"
port:1433 product:"Microsoft SQL Server"
port:5432 product:"PostgreSQL"
ssl.cert.subject.cn:"*.target.com"
ssl.cert.issuer.cn:"Let's Encrypt"
ssl:"target.com" port:443
Filtro
Descripción
Ejemplo
ssl
Cualquier campo del certificado
ssl:"company name"
ssl.cert.subject.cn
Common Name del subject
ssl.cert.subject.cn:"*.empresa.es"
ssl.cert.issuer.cn
Common Name del emisor
ssl.cert.issuer.cn:"DigiCert"
ssl.cert.subject.o
Organización del subject
ssl.cert.subject.o:"Target Corp"
ssl.cert.expired
Certificado caducado
ssl.cert.expired:true
ssl.cert.self_signed
Certificado autofirmado
ssl.cert.self_signed:true
ssl.jarm
Hash JARM del servidor TLS
ssl.jarm:29d29d...
ssl.version
Versión de TLS/SSL
ssl.version:TLSv1
ssl.cipher.name
Cipher suite activo
ssl.cipher.name:RC4
Enumeración de subdominios: ssl.cert.subject.cn:"*.empresa.com" encuentra todos los activos de una empresa que usan certificados wildcard.
Solo para uso autorizado. Estos sistemas son infraestructura crítica.
port:102 product:"Siemens"
port:502 product:"Modbus"
port:44818 product:"EtherNet/IP"
Protocolo
Puerto
Filtro
Modbus
502
port:502 product:Modbus
DNP3
20000
port:20000
S7 (Siemens)
102
port:102 product:Siemens
BACnet
47808
port:47808
EtherNet/IP
44818
port:44818
IEC 60870-5-104
2404
port:2404
"webcam" has_screenshot:true country:ES
http.title:"IP Camera" -password
Filtro
Descripción
Ejemplo
has_screenshot
Tiene captura de pantalla
has_screenshot:true
product
Producto/firmware detectado
product:"Hikvision"
http.title
Título del panel de la cámara
http.title:"Live View"
port
RTSP (554), ONVIF (80/8080)
port:554
port:3389 product:"Remote Desktop" country:ES os:"Windows"
port:5900 product:"VNC" -authentication
port:8443 http.title:"pfSense"
Servicio
Puerto
Filtro
RDP
3389
port:3389 product:"Remote Desktop"
VNC
5900-5903
port:5900 product:"VNC"
TeamViewer
5938
port:5938 product:"TeamViewer"
Telnet
23
port:23
WinRM
5985/5986
port:5985
IPMI
623
port:623
http.title:"Proxmox Virtual Environment" country:ES
http.title:"VMware ESXi" -"This page requires"
http.title:"Grafana" country:ES
Panel
Filtro
Proxmox
http.title:"Proxmox Virtual Environment"
VMware ESXi
http.title:"VMware ESXi"
Kibana
http.title:"Kibana" / port:5601
Grafana
http.title:"Grafana"
phpMyAdmin
http.title:"phpMyAdmin"
Jupyter Notebook
http.title:"Jupyter"
Kubernetes API
port:6443 product:"Kubernetes"
Docker API
port:2375
vuln:CVE-2021-44228 country:ES
product:"Exchange" version:"15.1" country:ES
Filtro
Descripción
Ejemplo
vuln
CVE específico asociado al host
vuln:CVE-2021-26084
version
Versión vulnerable conocida
version:"2.4.49"
product + version
Combinación para versiones EOL
product:OpenSSL version:1.0.1
El filtro vuln requiere plan Membership o superior.
Operador
Uso
Ejemplo
AND
Implícito (espacio)
apache port:80
OR
Alternativa entre términos
port:80 OR port:8080
-
Exclusión (NOT)
nginx -country:US
"..."
Frase exacta
"default password"
*
Wildcard (solo en algunos filtros)
hostname:*.gov.es
# Estadísticas de una búsqueda sin consumir créditos
shodan stats --facets country,port " apache "
shodan search --limit 100 --fields ip_str,port,org " nginx country:ES " > resultados.txt
# Alertas (monitorización continua)
shodan alert create " Mi red " 192.168.0.0/24
# Scan bajo demanda (requiere créditos)
shodan scan submit 93.184.216.34
# Información de tu cuenta/créditos
# Convertir descarga a CSV
shodan convert resultados.json.gz csv
# Paneles con credenciales por defecto
"admin" " password " http.title: " Router "
# Jenkins sin autenticación
http.title: "Dashboard [Jenkins]" -authentication
http.title: "GitLab" - " Sign in "
# Servidores con DirectoryListing
# Memcached expuesto (amplificación DDoS)
port:11211 product: " Memcached "
# Hadoop sin autenticación
port:50070 http.title: " Hadoop "
port:9100 OR port:631 product:printer
# Cobalt Strike C2 (JARM fingerprint)
ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1
BASE: https://api.shodan.io
GET /shodan/host/{ip}?key=API_KEY
GET /shodan/host/search?key=API_KEY & query = QUERY & facets = country
# Contar resultados sin consumir créditos
GET /shodan/host/count?key=API_KEY & query = QUERY
GET /dns/resolve?hostnames=google.com & key = API_KEY
GET /dns/reverse?ips= 8.8.8.8 & key = API_KEY
GET /api-info?key=API_KEY
Plan
Búsquedas/mes
Filtros avanzados
vuln
Descargas
Free
2 páginas
❌
❌
❌
Membership (~$49)
Ilimitadas
✅
✅
1M resultados
Enterprise
Ilimitadas
✅
✅
Ilimitadas
La mayoría de filtros avanzados requieren al menos cuenta Membership .