Para conocer y subsanar las vulnerabilidades de un sistema es necesario profundizar en las características de los ataques a los que puede ser sometido. No obstante, muchos administradores únicamente logran alcanzar los límites de sus sistemas de forma casual. Con esta obra, descubrirá las estrategias que siguen los expertos en seguridad de redes empresariales para identificar y determinar los riesgos existentes en las redes informáticas, logrando de esta manera una reducción significativa de riesgos. Este libro comienza presentando las herramientas y rápidamente le conduce a través de los medios de los que dispone un atacante para aprender sobre las máquinas que forman su red. De esta manera, se progresará tanto en el conocimiento de los componentes de su red, como en los diferentes servicios en ejecución y cómo pueden ser atacados, de modo que descubra progresivamente y de una manera efectiva las técnicas a seguir para combatir los temidos ataques.ÍndicePrólogo Sobre Bob Ayers Prefacio 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 rec omendadas 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