La Metodología OSSTMM
El Manual de la Metodología Abierta de Comprobación de la Seguridad (OSSTMM, Open Source Security Testing Methodology Manual) es uno de los estándares profesionales más completos y comúnmente utilizados en Auditorías de Seguridad para revisar la Seguridad de los Sistemas desde Internet. Incluye un marco de trabajo que describe las fases que habría que realizar para la ejecución de la auditoría. Se ha logrado gracias a un consenso entre más de 150 expertos internacionales sobre el tema, que colaboran entre sí mediante Internet. Se encuentra en constante evolución y actualmente se compone de las siguientes fases:
Sección A -Seguridad de la Información
Sección B - Seguridad de los Procesos
Sección C - Seguridad en las tecnologías de Internet
Sección D - Seguridad en las Comunicaciones
Sección E - Seguridad Inalámbrica
Sección F - Seguridad Física
En el calendario de entrevistas se aclaran los puntos relacionados con la Auditoría de Seguridad, antes de realizarse:
Dependiendo del tipo de Auditoría, es posible que se requiera cierta información para facilitar el trabajo de Auditoría y no sobreutilizar recursos para obtener información que ya se posee; sobre todo en Auditorías que incluyen un proceso de revisión interna de los Sistemas de Información:
Puede realizarse búsquedas por DNS mediante los comandos del sistema nslookup o el más moderno dig; ambas utilidades originales del servidor de DNS bind. Las búsquedas pueden realizarse también desde Internet mediante un interfaz web: interfaz web para nslookup e interfaz web para dig. dnsdigger es un script en perl, diseñado para obtener el máximo posible de información de un servidor de DNS. Con NetCraft es posible realizar búsquedas de nombres de dominio similares, al igual que con Whois Source.
El método más convencional es realizar las consultas desde web a las empresas de registro: Network Solutions para dominios internacionales, RIPE para Europa y NIC.es para España; así como interfaces Web de Whois como SamSpade.
Para la búsqueda de la ruta IP se utiliza traceroute o una interfaz visual como como Visual Route o NeoTrace. IP-to-Country permite averiguar el País a partir de la dirección IP, así como GeoBytes localiza el ISP.
Un buen truco se basa en registrar el idioma mediante la respuesta al comando Accept-Language de una solicitud GET / HTTP/1.0.
Adquisión de blancos
Una de las partes más costosas en tiempo para redes grandes es determinar los hosts que están vivos dentro del direccionamientos IP de tipo clases C o clases B. En estos casos se suele utilizar el nmap como un "bulk scanner", comprobando si un host está vivo o no mediante su respuesta a una solicitud icmp, o a una solicitud TCP por defecto al puerto 80 o a otros puertos.
Sin embargo este tipo de escenarios no son tan fáciles: lo normal es que se trate de servidores con puertos abiertos en números de puerto no usuales, protegidos con un cortafuegos, con las respuestas de ICMP filtradas por las ACLs de los routers de acceso y con los accesos registrados IDS con posibilidades de bloqueo dinamico de IPs.
La herramienta más utilizada en este entorno es nmap, cuya próxima versión 3.49 está próxima a liberarse. En este caso hay que optimizar los parámetros de nmap, para que evite la detección (envíos SYN) y se ajusten los puertos a comprobar; pues un escaneo completo de todos los puertos TCP y UDP puede llevar varias horas para una única máquina. Por ejemplo:
# nmap www.dvc.es -sS -SU -sV -O -p1-65535 -v -P0 -T4 -oN nmap-www.dvc.es Total: 14350 segundos # nmap www.ausejo.net -sS -SU -sV -O -p1-65535 -v -P0 -T4 -oN nmap-www.ausejo.net Sólo TCP: 1666 segundos Total: 74509 segundos
Mark Wolfgang, autor de Host Discovery with nmap, (PPs) ha perfeccionado la técnica de la automatización mediante su famoso script en perl discover.pl, que ha evolucionado al nuevo script pads.pl. También son interesantes los script targen.pl, últil cuando se quiere pasar como parámetro de entrada una red de clase B con determinadas exclusiones y Nmap::Scanner, un módulo en PERL que parsea la salida de nmap. Mad Hat también ha hecho públicos varios scripts en perl sobre la automatización de salidas del nmap. ndiff y nmap audit permiten escaneos diferenciales.
Identificación de Sistemas Operativos
Las técnicas de detección remota de sistemas operativos se basan en analizar cómo ante determinadas solicitudes de red, documentadas o no en los estándares del protocolo, el sistema responde con una serie de características, frecuentemente valores en los campos del protocolo de red. La idea original surgió de un artículo del número 51 de la revista Phrack titulado The Art of Port Scanning, fruto del cual surgió la herramienta nmap, que utiliza esta técnica, según su artículo Remote OS detection via TCP/IP Stack FingerPrinting.
Posteriormente, Ofir Arkin y Fyodor Yarochkin escribieron un artículo en el número 57 de la citada revista Prack, denominado ICMP based remote OS TCP/IP stack fingerprinting techniques, que fueron la base de su programa Xprobe. La versión más reciente, XProbe2, se basa en técnicas de Lógica Difusa y adivinación probabilística. En su web pueden encontrarse varias presentaciones en PowerPoint sobre el tema.
Otras herramientas que realizan detección remota de sistemas son hping2, la española SING (de Alfredo de Andrés), el reciente OSFP - Operating System Fingerprinting Project y Cron-OS (PPTs)
Pueden encontrarse ejemplos de utilización de las herramientas anteriores en el artículo , en la conferencia de Honoriak) titulada "Análisis remoto de sistemas" y publicada en el número 24 de la revista SET Magazine y en una noticia de BULMA.
También existen herramientas de detección remota para Windows. Entre las más conocidas se encuentran MingSweepr (que necesita modificar el parámetro TCP DisableUserTOSSetting), Winfingerprint y osfinger. SuperScanner v4.0 es un escaneador pequeño y sencillo de usar bajo Windows.
Actualmente, unad e las herramientas más modernas es SYnscan, presentada en el CanSecWest 2004, que se basa en la firma de todos y cada uno de los campos de la pila TCP/IP de las respuestas de red recibidas. Se ejecuta bajo linux y necesita de las librerías libdnet, libevent y libpcap. El whitepaper SYNSCAN: Towards Complete TCP/IP Fingerprinting muestra las técnicas en las que se basa.
Identificación Pasiva de Sistemas
Existe otra técnica denominada Passive OS Fingerprinting, basada en determinar el Sistema Operativo en base a la captura no intrusiva de paquetes. Esta técnica está detallada en el artículo Passive OS Fingerprinting: Details and Techniques y su segunda parte. Dentro de las herramientas de detección pasiva de Sistemas se encuentran NeVO, RNA, Ettercap, ARCHAEOPTERYX, Prelude, pfprintd, la española K9, DISCO (IP DIsCOvery) y la recién lanzada p0f 2.0 (también portada a Windows). Pueden encontrarse más herramientas para detección remota de Sistemas en SecurityFocus.
Identificación de Sistemas de Red
Existen algunos trucos para identificar las versiones antiguas de routers Cisco o cortafuegos Check Point FireWall-1 y Altavista Firewall 97.
Escaneo de Puertos
Existen multitud de escaneadores de puertos, siendo sin duda Nmap el escaneador Open Source por excelencia. Dispone de múltiples opciones, además de implementar el escaneo de tipo idle mediante una máquina zombie. También existe una versión para Windows y una modificación nmapsql que permite almacenar en base de datos para poder realizar escaneos distribuidos.
El libro Building Open Source Network Security Tools: Components and Techniques permite escribir varias herramientas de este tipo. Angry IP Scanner es un escaneador interno para Windows que detecta la dirección MAC, el nombre del grupo y del usuario activo en ese momento.
Steven M. Bellovin ha publicado un documento denominado A Technique for Counting NATted Hosts donde se describen técnicas para enumerar servidores internos protegidos por NAT.
Hay que tener en cuenta el cache-proxy de puertos abiertos cuando se realizan escaneos con routers ADSL, que puede generar falsos positivos; sobre todo en los puertos 80 (HTTP), 1755 (Streaming de Microsoft Windows Media) y 554 (Streaming de Real Networks y Quicktime).
Identificación de Servicios
Respecto a la identificación de servicios, lo normal es que el dispositivo a auditar esté atendiendo solicitudes de conexión en los puertos estándar, que aparecen listados en el directorio /etc/services en sistemas Unix o en C:\WINDOWS\system32\drivers\etc\services en sistemas Windows, en formato < nombre de servicio > < tabulador > < número de puerto > / < protocolo > < [alias] > < [#comentario] >. Se recomienda actualizar dicho fichero, incluso sobreescribirlo, con la última versión del fichero de asignaciones de números de puerto oficiales de la IANA
amap
También es posible que existan servicios con puertos abiertos escuchando con numeración no estándar. En este caso es muy útil la herramienta unix THC-Amap 4.5, que comprueba servicios y aplicaciones independientemente de su número de puerto e identifica a qué servicio corresponde en base a la respuesta de una simulación de solicitudes. Funciona con servicios no ASCII (telnet, smtp, pop3, etc.) al basarse en triggers. Incluye la utilidad amapcrap para identificar servicios que no muestran ninguna salida aparente, mediante el envío de solicitudes aleatorias no estándares. Aunque no existe una versión Windows de AMAP y en el readme aparece que lo hará en fecha lejana, la versión 2.7 (la anterior a la 4.0) podía compilarse con Cygwin. La sintaxis es
aunque pueden automatizarse las tareas de amap mediante ficheros de entrada de nmap:# amap [Parámetros] IPOBJETIVO PUERTOINICIAL [-PUERTOFINAL]
# nmap -sS -oM entrada.nmap -p 1-65535 IPOBJETIVO # amap -i entrada.nmap -o salida.amap -m
Algunos de los posibles parámetros son:
-u: comprueba sockets UDP (por defecto comprueba TCP) -1: agiliza la ejecución de amap (recomendado) -b: muestra el banner de aquellos servicios con salida ASCII -q: no muestra los mensajes relativos a puertos cerrados -v: el "famoso modo verboso" ;-) -t y -T para opciones de timeout
En la documentación se sugiere que amap también puede utilizarse como un escaneador y capturador de banners, perdiendo sus ventajas de identificación de aplicaciones; algo muy útil para los scripts de escaneos bulk de grandes redes que tengan filtrado de icmp y se quiera saber cuales son los hosts existentes antes de pasar a identificar los servicios.
# amap -qbp http TARGET 1-65535
nmap
nmap ha incluido en sus últimas versiones la identificación de servicios. Un ejemplo sacado de su web:
# nmap -A -T4 -F www.insecure.org Starting nmap 3.40PVT16 ( http://www.insecure.org/nmap/ ) at 2003-09-06 19:49 PDT Interesting ports on www.insecure.org (205.217.153.53): (The 1206 ports scanned but not shown below are in state: filtered) PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 3.1p1 (protocol 1.99) 25/tcp open smtp Qmail smtpd 53/tcp open domain ISC Bind 9.2.1 80/tcp open http Apache httpd 2.0.39 ((Unix) mod_perl/1.99_07-dev Perl/v5.6.1) 113/tcp closed auth Device type: general purpose Running: Linux 2.4.X|2.5.X OS details: Linux Kernel 2.4.0 - 2.5.20 Uptime 108.307 days (since Wed May 21 12:27:44 2003) Nmap run completed -- 1 IP address (1 host up) scanned in 34.962 seconds
Un ejemplo a lo bruto de escaneo bulk de todos los puertos TCP y UDP para comprobar las versiones:
# nmap -sS -sV -P0 -v -p 1,65535 -n 192.168.1.1 # nmap -sU -sV -P0 -v -p 1,65535 -n 192.168.1.1
Identificación manual
Por último, hablando de ejemplos a lo bruto, siempre nos queda la opción de identificar los servicios a mano, uno a uno: ;-)
# nc -v -n 192.168.1.1 80 # nc -u -v -n 192.168.1.1 53 # telnet 192.168.1.1 25 # telnet 192.168.1.1 110
Identificación de Servicios Web
Jeremiah Grossman y Bill Pennington mantienen varios artículos y conferencias sobre la identificación remota de servidores web. La herramienta netcat es muy útil en este sentido:
# nc -v -n 192.168.1.1 80
aunque existen herramientas que detectan la versión del servidor web a través de su banner como WotWeb, hmap y la reciente (diciembre 2003) httprint v200, con un whitepaper sobre HTTP Fingerprinting.
En caso de que la conexión sea http; pueden comprobarse solicitudes HTTP mediante OpenSSL:
# $ openssl s_client -connect localhost:443 -state -debug GET / HTTP/1.0
Es posible utilizar el interfaz web de navegación SamSpade para recopilar datos desde un direccionamiento seguro.
NetCraft realiza periódicamente un estudio de los sistemas utilizados en Servidores Web, tanto para http como para https mediante detección remota.
DNS
Un truco para identificar la versión de DNS es:
# nslookup -q=txt -class=chaos version.bind ns0.example.com # dig CHAOS TXT version.bind @IP.ADD.RE.SSAunque una de las técnicas más completas de identificación remota de DNSs es la de D. J. Bernstein
SMTP
Enviando un email modificado puede obtenerse en la cabecera de la respuesta la información correspondiente al servidor SMTP
IKE
Ike-scan es una herramienta de comprobación para dispositivos que permitan abrir túneles VPN. Permite identificar el producto de forma remota.
Es posible realizar una comprobación por fuerza bruta de las posibles combinaciones de contraseñas en una web. Entre los principales programas de este tipo se encuentran Webcracker 4.0, wwwhack y Brutus. Menos conocidos son: accessdiver, Ares, Bugs ACGold Cracker, crackwhore, Golden Eye, hO2k y TYR. Pueden descargarse en Fredom to Crack y en Tomsdomain |
Scanners: MetaCoretex, A Simple Oracle Host-Based Scanner. Best Practices Analyzer Tool for Microsoft SQL Server 2000 1.0
Ataques de diccionario: Forcesql 2.0, SQLdict, Oracle Password Cracker v1.6
Artículos: Introduction to Simple Oracle Auditing, Conducting a Security Audit of an Oracle Database SQL Security,
Improving Web Application Security: Threats and Countermeasures Roadmap, un libro en línea publicado por Microsoft, es un buen lugar para conocer los conceptos de la securización de aplicaciones. El Open Web Application Security Project (OWASP) mantiene una lista de las vulnerabilidades más frecuentes en aplicaciones Web, actualizada a enero de 2004. Una de las técnicas más modernas es la denominada One-way Web Hacking. Pueden encontrarse muchas técnicas orientadas a la comprobación de la seguridad de aplicaciones en la Página de Román Medina, entre ellas su proyecto fin de carrera Análisis de seguridad, optimización y mejora de un portal web basado en PHP y MySQL y la resolución de los concursos Boinas Negras y Hack21. Algunas otras herramientas útiles pueden en los scripts perl de Digital Offence. Entre las herramientas comerciales de comprobación de aplicaciones se encuentran WebInspect, de SPI Dynamics; AppScan, de Sanctum, AppDetective, de Application Security ScanDo, de Kavado y N-Stealth Security Scanner, de N-Stalker, casi todas ellas compatibles con las últimas legislaciones americanas tan de moda actualmente: Healthcare Services (HIPAA), Sarbanes-Oxley Act, Gramm-Leach-Bliley Act (GLBA) y California Senate Bill No. 1386. Un documento interesante sobre shellcodes es Exploit Instruction Code Construction: assisting the manipulation of services on obscure operating systems. El artículo Gcc Inline Assembly - How to es una buena introducción para poder insertar shellcodes en los exploits. |
|
|
La inyección de tramas puede ser muy compleja dependiendo de lo que se quiera hacer (léase el artículo Strange Attractors and TCP/IP Sequence Number Analysis). El portal más conocido en este entorno es PacketFactory, que aloja los proyectos Nemesis (una herramienta para la inyección de paquetes desde línea de comandos o desde un script, recientemente portada a Win32); ISIC (IP Stack Integrity Checker, que comprueba la integridad de una pila IP) y PackIt (una herramienta para auditoría de red); además de la API Libnet.
packETH es una herramienta reciente basado en un GUI de Linux que genera paquetes IP en una LAN, útil para simular ataques DoS locales.
Otras APIS para contruir tramas de red, además de Libnet son Net::RawIP en PERL e Impacket, de de Core Security, en lenguaje Python.
Derivado de Nemesis y basado en libnet para Win32 se encuentra Engage Packet Builder
Hping también puede ser utilizado para lo que se denomina Packet Crafting
ARP0c Connection Interceptor permiten ataques de tipo Man-in-the-middle mediante la inyección de respuestas falsas de arp spoofing en un entorno de switching
Algo que tengo curiosidad de probar es Scapy. Según su web, debe ser impresionante: "Scapy is a powerful interactive packet manipulation tool, packet generator, network scanner, network discovery, packet sniffer, etc. It can for the moment replace hping, 85% of nmap, arpspoof, arp-sk, arping, tcpdump, tethereal, p0f, .... "
Datatpipe permite encapsular a través de un proxy cualquier conexión que permita connect(). Se pueden encontrar algunos ejemplos de su uso en la presentación HTTP Fingerprinting and Advanced Assessment Techniques. Otro método de saltarse un cortafuegos es mediante un SOCKS Proxy local, como por ejemplo hopster o httptunnel.
Las listas de discusión, los foros y portales más conocidos muestras las últimas tendencias y noticias del sector. En este sentido destacan SecurityFocus e Infosyssec). En Español, Hispasec, con su servicio de noticias Una-al-dia; el Boletín de Kriptópolis; el Boletín del Criptonomicón, de Gonzalo Álvarez Marañón; el Centro de Alerta Antivirus, la Campaña de Seguridad en Internet de la Asociación de Internautas; la lista de hacking de Argo, moderada por Jesús Cea y la lista de Fido-Hack. Otros foros interesantes son el PenTest Group y Security Forums. Recientemente se realizó una encuesta entre los usuarios de nmap para determinar cuales eran las webs más visitadas por los hackers.
Los e-Zines son recopilaciones periódicas de artículos, a modo de revista que suelen publicarse gratuitamente en Internet. Phrack, es el E-zine por excelencia, en Inglés, con artículos míticos. Otros magazines, en Español son Raregazz, NetSearch Ezine y el CyberNotes, del National Infrastructure Protection Center.
Entre los retos o concursos de Hacking (los denominados Hacker Games) se encuentran el Forensic Challenge, los RSA Cryptographic Challenges, OpenHack, Battlehack, Hack21, Ferrari 360, Boinas Negras, Izhal, el King of Fighters 2001 del HackersLab y los diversos juegos de PullthePlug.
De forma anual suelen realizarse varios congresos y conferencias, generalmente por las mismas fechas, por ejemplo:
La temática hacker se ha llevado al mundo del cine en varias ocasiones, entre ellas
Respecto a los libros, destaca The Hackers Crackdown
Entre los hackers (construyen sistemas) y crackers (los revientan) más conocidos se encuentran:
Otros nombre conocidos, a nivel mundial son:
En España es interesante mencionar a ciertas personas que tienen mucho que decir en lo relativo a Seguridad de la Información, entre ellos:
Copyright © 2003 Rafael Ausejo Prieto. |