Prólogo
Sobre Bob AyersPrefacio
Estándares de evaluación reconocidos
NSA IAM
CESG CHECK
Definición de Hacker
Organización
¿A quién va dirigido este libro?
Encontrar las herramientas mencionadas en este libro
Utilizar los ejemplos de código
Reconocimientos
Capítulo 1. Evaluación de la seguridad de redes
Los beneficios empresariales
IP: la creación de Internet
Clasificación de los atacantes basados en Internet
Definiciones de servicios de evaluación
Metodología de evaluación de la seguridad de una red
Enumeración de servidores y redes de Internet
Rastreo masivo y sondeo de la red
Investigación de vulnerabilidades
Explotación de las vulnerabilidades
La aproximación de la evaluación cíclica
Capítulo 2. Las herramientas necesarias
Los sistemas operativos
Las plataformas de la familia Windows NT
Linux
Mac OS X
VMware
Herramientas de rastreo de red gratuitas
nmap
Nessus
NSAT
Foundstone SuperScan
Herramientas comerciales de rastreo de redes
Herramientas de evaluación dependientes del protocolo
Microsoft NetBIOS, SMB y CIFS
Herramientas de enumeración y obtención de información
Herramientas de ruptura de contraseñas mediante fuerza bruta
DNS
HTTP y HTTPS
Capítulo 3. Enumeración de servidores de Internet y de redes
Motores de búsqueda Web
Funcionalidad de búsqueda avanzada de Google
Enumerar detalles de contacto de la CIA con Google
Cadenas de búsqueda eficaces
Buscar en grupos de noticias
Consultas NIC
Herramientas y ejemplos de consultas NIC
Utilizar el cliente Sam Spade Windows
Utilizar la utilidad whois de Unix
Consultar ARIN directamente
Recopilar detalles de los usuarios mediante WHOIS
Consultas DNS
Consultas DNS avanzadas
Consultas DNS avanzadas utilizando nslookup
Consultas DNS avanzadas utilizando host
Consultas DNS avanzadas utilizando dig
Información obtenida mediante consultas DNS avanzadas
Técnicas de transferencia de zona DNS
Realizar transferencias de zona DNS con nslookup
Información obtenida mediante la transferencia de zona DNS
Realizar transferencias de zona DNS utilizando host y dig
Consultas avanzadas
Realizar mapas de subdominios utilizando host
Ejemplo de rechazo en la realización de una transferenciade zona DNS
Barrido de DNS inverso
Sondeo SMTP
Resumen de las técnicas de enumeración
Contramedidas para la enumeración
Capítulo 4. Exploración de redes IP
Sondeo ICMP
SING
nmap
Obtener direcciones IP internas
Identificar direcciones de amplia difusión para subredes
Explorar puertos TCP
Métodos de rastreo estándar
Rastreo vainilla connect()
Rastreo de indicador SYN medio abierto
Métodos sigilosos de rastreo TCP
Rastreo de indicador TCP inverso
Rastreo de sondeo de indicador ACK
Métodos de rastreo TCP desde terceras partes y con suplantación de identidad
Rastreo de rebote FTP
Rastreo de rebote en proxy
Rastreo de identidad suplantada basado en sniffer
Rastreo de cabecera del identificador de IP
Rastreo de puertos UDP
Herramientas que realizan el rastreo de puertos UDP
Eludir los sistemas IDS y burlar el filtrado
Fragmentar paquetes de sondeo
fragtest
fragroute
nmap
Simular múltiples equipos atacantes
Direccionamiento de origen
Evaluar vulnerabilidades del direccionamiento de origen
Utilizar puertos de origen TCP y UDP específicos
Evaluación IP de bajo nivel
Analizar las respuestas a los sondeos TCP
hping2
firewalk
Monitorizar pasivamente las respuestas ICMP
Marcaje para la identificación de IP
Secuencia TCP e incremento del ID de IP
Resumen del rastreo de redes
Contramedidas contra el rastreo de redes
Capítulo 5. Evaluar servicios de información remotos
Servicios de información remotos
systat y netstat
DNS
Obtener información sobre la versión de los servicios DNS
Transferencias de zona DNS
Fugas de información DNS y ataques de búsqueda inversa
Vulnerabilidades BIND
Vulnerabilidad de desbordamiento TSIG de BIND
Vulnerabilidades del servicio DNS de Microsoft
Vulnerabilidades remotas en el servidor DNS de Microsoft
finger
Fugas de información finger
Redirección finger
Fallos finger directamente explotables
auth
Vulnerabilidades de manipulación de procesos de auth
SNMP
ADMsnmp
snmpwalk
Cadenas de comunidad predeterminadas
Comprometer dispositivos mediante la lectura desde SNMP
Comprometer dispositivos mediante la escritura a SNMP
Vulnerabilidades de manipulación de procesos SNMP
LDAP
Acceso LDAP anónimo
Ataques de fuerza bruta LDAP
Active Directory Global Catalog
Vulnerabilidades de manipulación de procesos LDAP
rwho
RPC rusers
Contramedidas relacionadas con los servicios de información de acceso remoto
Capítulo 6. Evaluar servicios Web
Servicios Web
Identificar servicios Web
HTTP HEAD
HTTP OPTIONS
Respuestas más comunes para HTTP OPTIONS
Identificación automática de servicios Web
WebServerFP
hmap
404print
Identificar el servicio Web mediante un túnel SSL
Identificar subsistemas y componentes
ASP.NET
WebDAV
Microsoft FrontPage
Microsoft Outlook Web Access
Fuga de información de las carpetas públicas de Exchange 5.5 OWA
Extensiones IIS ISAPI predeterminadas
PHP
OpenSSL
Investigar vulnerabilidades de los servicios Web
Las herramientas
nikto
N-Stealth
Sitios Web y listas de correo sobre seguridad
Vulnerabilidades de Microsoft IIS
Herramientas y secuencias de comando ASP de IIS de ejemplo
Exposiciones de la extensión HTR (ISM.DLL)
Exposiciones a la extensión HTW (WEBHITS.DLL)
Vulnerabilidad IIS Unicode
Desbordamiento de la extensión PRINTER (MSW3PRT.DLL)
Desbordamiento de la extensión IDA (IDQ.DLL)
Vulnerabilidad WebDAV de IIS
Vulnerabilidades de Microsoft FrontPage
Permisos de IIS deficientemente configurados
Vulnerabilidades de Apache
Vulnerabilidad de gestión de fragmentos de Apache
Otras exposiciones y vulnerabilidades de Apache
Vulnerabilidades de OpenSSL
Desbordamiento de la clave de cliente en OpenSSL
Otras vulnerabilidades y exposiciones de OpenSSL
Exposiciones del componente proxy HTTP
HTTP CONNECT
HTTP POST
HTTP GET
Examinar proxies HTTP
Evaluar información pobremente protegida
Forzar la autentificación HTTP mediante fuerza bruta
Evaluar secuencias de comandos CGI y páginas ASP personalizadas
Manipulación de parámetros y eludir sistemas de filtrado
Manipulación de cadenas de consulta URL
Manipulación de cookies de usuario
Manipulación de campos de formulario
Eludir los sistemas de filtrado
Problemas en la gestión de errores
Introducción de comandos del sistema operativo
Ejecutar comandos de sistema
Modificar parámetros pasados a comandos del sistema
Ejecutar comandos adicionales
Medidas contra la introducción de comandos del sistema operativo
Introducción de comandos SQL
Metodología de comprobación básica
Invocación de procedimientos almacenados
Comprometer datos utilizando SELECT e INSERT
Herramientas de evaluación de aplicaciones Web
Achilles
Contramedidas en los servicios Web
Capítulo 7. Evaluar servicios de mantenimiento remoto
Servicios de mantenimiento remoto
SSH
Identificación SSH
Obtención de contraseñas SSH mediante fuerza bruta
Vulnerabilidades SSH
Vulnerabilidad de compensación SSH1 CRC32
Explotación de la vulnerabilidad de compensación SSH1 CRC32
Vulnerabilidad de respuesta de desafío de OpenSSH
Explotación de la vulnerabilidad de respuesta de desafío de OpenSSH
Otros fallos de SSH explotables de forma remota
Telnet
Identificación del servicio Telnet
telnetfp
Identificación manual telnet
Romper las contraseñas mediante fuerza bruta a través de Telnet
Contraseñas habituales de dispositivos mediante Telnet
Archivos diccionario y listas de palabras
Vulnerabilidades Telnet
Vulnerabilidad de desbordamiento estático del programa /bin/login de System V
Explotación de la vulnerabilidad de desbordamiento estático del programa /bin/login en Solaris
Vulnerabilidad de desbordamiento de la memoria libre telrcv( ) de BSD
Explotación de la vulnerabilidad de desbordamiento de memoria libre telrcv( ) de FreeBSD
Otros fallos de Telnet explotables de forma remota
Servicios R
Acceder directamente a los servicios R
Archivos ~/.rhosts y /etc/hosts.equiv de Unix
Utilizar técnicas de fuerza bruta con los servicios R
Suplantar conexiones RSH
Vulnerabilidades conocidas de los servicios R
X Windows
Autentificación X Windows
xhost
xauth
Evaluar servidores X
Realizar un listado de las ventanas abiertas
Capturar instantáneas de ventanas abiertas específicas
Capturar pulsaciones de teclado en ventanas específicas
Enviar pulsaciones de teclado a una ventana específica
Vulnerabilidades conocidas del sistema X Windows
Protocolo de escritorio remoto de Microsoft
Romper contraseñas RDP mediante fuerza bruta
Vulnerabilidades RDP
VNC
Ruptura de la contraseña VNC mediante fuerza bruta
Citrix
Utilizar el cliente Citrix ICA
Acceso a aplicaciones no públicas
Vulnerabilidades de Citrix
Contramedidas para los servicios de mantenimiento remoto
Capítulo 8. Evaluar servicios FTP y de bases de datos
FTP
Enumeración y obtención de la cabecera FTP
Analizar las cabeceras FTP
Evaluar permisos FTP
Obtención de contraseñas FTP mediante fuerza bruta
Ataques FTP de rebote
Rastreo de rebote de puertos FTP
Explotación de la entrega de la carga mediante rebote FTP
Evitar filtros utilizando FTP
PORT y PASV
Ataques de manipulación de procesos FTP
Problemas FTP Globbing en Solaris y BSD
Vulnerabilidades WU-FTPD
Explotar vulnerabilidades de WU-FTPD 2.6.1 en Linux con 7350wurm
Vulnerabilidades de ProFTPD
Microsoft IIS FTP Server
Contramedidas para los servicios FTP
Servicios de base de datos
Microsoft SQL Server
Enumeración SQL Server
Técnicas de fuerza bruta en SQL Server
SQLAT
Vulnerabilidades de manipulación de procesos en SQL Server
Oracle
Enumeración de TNS Listener y ataques de fuga de información
Realizar pings al servicio TNS Listener
Obtener información sobre la versión de Oracle y la plataforma operativa
Otros comandos de TNS Listener
Obtener el estatus actual del servicio TNS Listener
Realizar un ataque de fuga de información
Vulnerabilidades de manipulación de procesos del servicio TNS Listener
Explotación del desbordamiento de pila COMMAND en TNS Listener
Crear archivos utilizando el servicio TNS Listener (CVE-2000-00818)
Técnicas de fuerza bruta y problemas post autentificación en Oracle
OAT
MetaCoretex
MySQL
Enumeración de MySQL
Fuerza bruta en MySQL
Vulnerabilidades de manipulación de procesos en MySQL
Contramedidas en los servicios de base de datos
Capítulo 9. Evaluar servicios de red Windows
Servicios de red de Microsoft Windows
SMB, CIFS y NetBIOS
Servicios RPC de Microsoft
Enumerar información del sistema
epdump
Valores IFID conocidos
rpdump e ifids
RpcScan
Obtener detalles de usuario mediante las interfaces SAMR y LSARPC
walksam
rpcclient
Obtener contraseñas de administración mediante fuerza bruta
Ejecutar comandos arbitrarios
Explotar los servicios RPC directamente
Servicio de nombres NetBIOS
Enumerar detalles del sistema
Atacar el servicio de nombres NetBIOS
Servicio de datagrama de NetBIOS
El servicio de sesión de NetBIOS
Enumerar detalles del sistema
enum
winfo
GetAcct
Obtener contraseñas de usuario mediante fuerza bruta
Autentificación con NetBIOS
Ejecutar comandos
Acceder y modificar claves de registro
Acceder a la base de datos SAM
El servicio CIFS
Enumeración mediante CIFS
Enumeración de usuarios mediante smbdumpusers
Técnicas de fuerza bruta con CIFS
Vulnerabilidades del sistema Samba para Unix
Contramedidas para los servicios de red Windows
Capítulo 10. Evaluar servicios de correo electrónico
Protocolos de los servicios de correo electrónico
SMTP
Identificación del servicio SMTP
Sendmail
Exposiciones de fuga de información en Sendmail
Enumeración automática de usuarios en Sendmail
Vulnerabilidades de manipulación de procesos de Sendmail
El servicio SMTP de Microsoft Exchange
Comprobación de la transmisión de SMTP abierto
Transmisión SMTP y formas de eludir los antivirus
POP-2 y POP-3
Obtención de contraseñas en POP-3 mediante fuerza bruta
Ataques de manipulación de procesos en POP-3
Vulnerabilidades de manipulación de procesos de Qualcomm QPOP
Vulnerabilidades de procesos POP-3 en Microsoft Exchange
IMAP
Técnicas de fuerza bruta con IMAP
Ataques de manipulación de procesos con IMAP
Contramedidas para los servicios de correo electrónico
Capítulo 11. Evaluar servicios IP VPN
IPsec VPN
ISAKMP e IKE
Modo principal de IKE
Modo agresivo de IKE
Atacar a IPsec VPN
Enumeración IPsec
Sondeo inicial del servicio ISAKMP
Investigar debilidades conocidas de ISAKMP e IKE
Ruptura PSK del modo IKE agresivo
Problemas de seguridad en Check Point VPN
Enumeración de nombres de usuario en Check Point IKE
Enumeración de usuarios del servicio Telnet de Check Point
Ataques de fuga de información contra Check Point SecuRemote
Obtener direcciones IP de las interfaces
Descargar información de la topología de red mediante SecuRemote
Vulnerabilidad de eludir el cortafuegos Check Point RDP
Microsoft PPTP
Contramedidas para los servicios VPN
Capítulo 12. Evaluar servicios RPC de Unix
Servicios RPC de Unix
Identificar los servicios RPC sin el asignador de puertos
Vulnerabilidades de los servicios RPC
Vulnerabilidad rpc.mountd (100005)
CVE-1999-0002
CVE-2003-0252
Enumerar y acceder a directorios exportados mediante mountd y NFS
Vulnerabilidades rpc.statd (100024) en múltiples sistemas
CVE-1999-0018 y CVE-1999-0019
CVE-1999-0493
CVE-2000-0666
Vulnerabilidades de rpc.sadmind (100232) en Solaris
CVE-1999-0977
CVE-2003-0722
Vulnerabilidad rpc.cachefsd (100235) en Solaris
Vulnerabilidad rpc.snmpXdmid (100249) en Solaris
Vulnerabilidades rpc.cmsd (100068) en múltiples sistemas
Vulnerabilidad rpc.ttdbserverd (100083) en múltiples sistemas
Utilidad de explotación de rpc.ttdbserverd para Solaris
Utilidad de explotación de rpc.ttdbserverd para IRIX
Contramedidas para los servicios RPC de Unix
Capítulo 13. Riesgos a nivel aplicación
El concepto fundamental de hacking
Los motivos por los que el software es vulnerable
Vulnerabilidades y ataques de los servicios de red
Ataques de manipulación de memoria
Organización de la memoria en ejecución
El segmento de texto
Los segmentos de datos y BSS
La pila
La memoria libre
Registros y memoria del procesador
Vulnerabilidades clásicas de desbordamiento de buffer
Desbordamientos de pila
Aplastamiento de la pila (sobrescritura del puntero de instrucción guardado)
Provocar un bloqueo del programa
Comprometer el flujo lógico del programa
Analizar el bloqueo del programa
Crear e introducir el shellcode
Ataque off-by-one de la pila (sobrescritura del puntero del marco guardado)
Analizar el bloqueo del programa
Explotar una vulnerabilidad off-by-one para modificar el puntero de instrucción
Explotar una vulnerabilidad off-by-one para modificar datos en el marco de la pila de la función padre
Eficacia del ataque off-by-one en distintas arquitecturas de procesador
Desbordamientos de la memoria libre
Desbordar la memoria libre para comprometer el flujo del programa
Otros ataques de corrupción de la memoria libre
Fallos off-by-one y off-by-five de la memoria libre
Fallos double-free
Lecturas recomendadas
Desbordamientos de número entero
Ataques de bucle de memoria libre
Fallos de tamaño negativo
Fallos de cadena de formato
Leer elementos adyacentes en la pila
Leer datos de cualquier dirección de la pila
Sobrescribir cualquier palabra de la memoria
Lecturas recomendadas sobre fallos de cadena de formato
Resumen de los ataques de manipulación de memoria
Reducir los riesgos de la manipulación de procesos
Implementación no ejecutable de la pila y la memoria libre
Utilización de valores de alerta
Utilizar arquitecturas de servidor inusuales
Compilar las aplicaciones desde la fuente
Monitorización activa de las llamadas del sistema
Lecturas recomendadas sobre desarrollo seguro
Capítulo 14. Ejemplo de metodología de evaluación
Rastreo de la red
Rastreo inicial de la red
Rastreo completo de la red
Pruebas de red de bajo nivel
Generación de secuencias TCP ISN
Generación de identificadores de IP
Comprobación del direccionamiento del origen
Otras pruebas
Identificación de servicios de red accesibles
Evaluación inicial del servicio Telnet
Evaluación inicial del servicio SSH
Evaluación inicial del servicio SMTP
Evaluación inicial de servicios Web
Investigación ASP.NET
Enumeración de extensiones ISAPI
Rastreo automático de componentes FrontPage y OWA
Investigación del servicio Web SSL
Investigación de vulnerabilidades conocidas
Vulnerabilidades de los servicios accesibles de Cisco IOS
Vulnerabilidades de los servicios accesibles de Solaris 8
Vulnerabilidades de los servicios accesibles de Windows 2000
Examen de los servicios de red
Router Cisco IOS (192.168.10.1)
Servidor de correo electrónico Solaris (192.168.10.10)
Servidor Web Windows 2000 (192.168.10.25)
Diagrama de flujo de la metodología
Recomendaciones
Recomendaciones de acciones inmediatas
Router Cisco IOS
Servidor de correo electrónico Solaris
Servidor Web Windows 2000
Recomendaciones a largo plazo
Comentarios finales
Apéndice A. Puertos TCP y UDP y tipos de mensajes ICMP
Puertos TCP
Puertos UDP
Tipos de mensajes ICMP
Apéndice B. Fuentes de información sobre vulnerabilidades
Listas de correo electrónico sobre seguridad
Bases de datos y listas de vulnerabilidades
Sitios Web underground
Eventos y conferencias sobre seguridad
Índice alfabético