Analisis.activo.pasivo.de.Redes

30
Análisis Activo y Pasivo de Redes Alejandro Castán Salinas [email protected]

Transcript of Analisis.activo.pasivo.de.Redes

  • Anlisis Activo y Pasivo de Redes

    Alejandro Castn Salinas

    [email protected]

  • 2

  • 3Anlisis activo y pasivo de redes - revisin 2.8

    Copyleft Alejandro Castn Salinas

    Se otorga el permiso para copiar, distribuir y/o modificar este documentobajo los trminos de la licencia de documentacin libre GNU, versin 1.1 ocualquier otra versin posterior publicada por la Free Software Foundation.

    Puedes consultar dicha licencia en http://www.gnu.org/copyleft/fdl.html.

    El contenido de este documento puede cambiar debido a ampliaciones ycorrecciones enviadas por los lectores. Encontrars siempre la ltima versin

    del documento en http://www.lsi.upc.es/~acastan/Hacking/.

  • 4Jaime Agudo, la persona del esCert que originariamente deba venir a dar eltaller de Hacking pasivo y anlisis de redes, no pudo asistir al evento.

    Ya que haba muchos asistentes interesados en su taller, en el ltimomomento me atrev a sustituirle para realizar una pequea introduccin al

    tema. En una hora intent prepararme unos apuntes a modo de guin. Comolos asistentes pudisteis comprobar, la charla no sali todo lo bien que me

    hubiera gustado, especialmente cuando hablaba de los aspectos ms tcnicos.

    He preparado este breve documento a modo de contenido de lo que fue micharla para toda la gente interesada que no pudo asistir y para la gente que

    pudo asistir pero se li con mi desastre de exposicin.

    No s si es correcto dedicar un resumen o unos apuntes. Si lo fuera, quierodedicarlos a toda la gente que me anim asistiendo a la charla y aguanto mi

    chapa durante una hora. La prxima vez lo har mejor ;-)

    Tambin quiero dedicarlos a la gente de Cathack!, un grupo dedicado alhacking que da sus primeros pasos, lleno de gente maravillosa a la que me

    alegro de haber conocido. http://cathack.hn.org/

    Nos vemos en el Hackmeeting Leioa 2001!

  • 5Anlisis activo y pasivo de redesIntroduccinEn la preparacin de un ataque remoto a un sistema informtico, el atacante no slo necesitaconocer la direccin en la red de la vctima, sino tambin obtener la mxima informacin sobreella.

    En Internet, no basta con conocer su direccin IP o URL. Si el atacante logra conocer el sistemaoperativo (por ej.: Linux, FreeBSD, Solaris, Windows NT, etc.) y los servicios (por ej.: ftp,telnet, http, smtp, etc.) de la vctima, este podr precisar ms su ataque. Si adems conoce laversin del sistema operativo (por ej.: Linux 2.0.35 o Linux 2.2.17) y de los servicios (por ej.wuftpd 2.6.0 o wuftpd 2.6.1) todava podr precisar mucho ms su ataque, ya que muchosagujeros de seguridad dependen en gran manera de una determinada versin de sistemaoperativo o de los servicios que sobre l corren.

    En las siguientes lneas realizar una breve introduccin al concepto de puerto y al proceso deestablecimiento de una conexin TCP, necesarios para comprender puntos posteriores.

    Dos protocolos separados son los encargados de manejar los mensajes TCP/IP (en el anexo D deeste documento se entra un poco ms en detalle sobre estos protocolos). TCP (TransmissionControl Protocol) es el responsable de romper el mensaje en datagramas, ensamblar losdatagramas en el otro extremo, reenviar toda la informacin extraviada y poner la informacinde nuevo en el orden correcto. IP (Internet Protocol) es el responsable de encaminar losdatagramas individualmente.

    Para el seguimiento de conversaciones individuales entre un cliente y un servicio, TCP utilizaun nmero de puerto asociado a dicho servicio (la lista con los nmeros de puerto msutilizados y su servicio asociado se encuentran en el anexo E de este documento). As, laconexin queda descrita por la direccin de Internet y el nmero de puerto de cada extremo.

    Los nmeros de puertos estn divididos en tres rangos: los puertos bien conocidos (del 0 al1023), los puertos registrados (del 1024 al 49151) y los puertos dinmicos y/o privados (del49152 hasta el 65535). Los puertos bien conocidos son asignados y controlados por unorganismo llamado IANA. En la mayora de sistemas estos puertos tan slo pueden ser usadospor los procesos del sistema y por programas ejecutados por usuarios privilegiados. Los puertosregistrados no son controlados por IANA. Estos puertos pueden ser utilizados por procesos deusuarios ordinarios y por programas ejecutados por usuarios sin privilegios de sistema.

    Por ejemplo, pensemos en el caso de querer enviar un fichero a travs de Internet. En dichoproceso quedan involucrados dos programas: en nuestro extremo el programa cliente de FTP,que acepta comandos desde el terminal y los enva al otro extremo, donde reside el programaservidor de FTP, que interpreta y ejecuta los comandos recibidos. El programa cliente de FTPabrir una conexin utilizando en nuestro extremo un nmero aleatorio de puerto, por ej. 1234,y en el otro extremo el puerto 21, que es el nmero de puerto oficial para el programa servidorde FTP. El cliente de FTP no necesita utilizar para l un nmero de puerto bien conocido, yaque nadie trata de localizarlo. Sin embargo, el servidor de FTP si necesita un nmero de puertobien conocido para que los clientes puedan iniciar una conexin y enviarle comandos. As, cadadatagrama llevar las direcciones de Internet de cada extremo en la cabecera IP, y los nmerosde puerto de cada extremo en la cabecera TCP. Dos conexiones no pueden tener los mismosnmeros, pero basta que un nmero de puerto sea diferente para que esto sea posible. En nuestroejemplo, dos usuarios en nuestra mquina pueden enviar simultneamente dos ficheros a otramquina utilizando los siguientes parmetros:

    direccin origen puerto origen direccin destino puerto destinoconexin 1 147.83.170.210 1234 147.83.2.11 21conexin 2 147.83.170.210 1235 147.83.2.11 21

  • 6En el inicio de una conexin TCP entre dos ordenadores se produce un proceso previo al envode informacin, que consiste en un saludo en tres pasos que garantiza que ambos lados estnpreparados para transferir datos, tengan conocimiento de que el otro tambin lo est y acuerdenun nmero de secuencia inicial. Escuetamente explicado, (1) el ordenador que desea iniciar laconexin enva al ordenador del otro extremo un segmento con el bit SYN activado en el campode cdigo y un nmero de secuencia inicial. El ordenador en el otro extremo recibe el segmentoy, si puede iniciar la conexin (puerto de destino abierto = servicio disponible), (2) responde asu vez con un segmento con los bits SYN y ACK activados, un acuse de recibo que es elnmero de secuencia inicial ms uno del cliente, y su propio nmero de secuencia inicial. A estesegmento de respuesta, (3) el ordenador origen responde con un segmento con el bit ACKactivado y se inicia el envo de informacin. Si el ordenador destino no puede iniciar laconexin (puerto de destino cerrado = servicio no disponible), al segmento SYN inicialresponde con un segmento con el bit de RST activado. A este segmento de respuesta, elordenador origen no responde nada y se cierra la conexin.

    (1) cliente ---SYN---> servidor(2) cliente servidor

    Anlisis activo de puertos

    El anlisis activo de puertos consiste en conocer qu servicios tiene disponibles un ordenador enla red, enviando determinados paquetes TCP y UDP a sus puertos para comprobar cules estnabiertos (es decir, esperando una conexin) y cules cerrados. Un resumen de las diferentestcnicas de anlisis activo de puertos se encuentra en el anexo A de este documento.

    Su principal desventaja reside en que el envo de estos paquetes sospechosos o concaractersticas especiales es fcilmente detectable por un sistema de deteccin de intrusos (IDS),pudiendo el ordenador que sufre el anlisis de puertos registrar dicho anlisis y obtener ladireccin IP del ordenador que la realiza.

    Anlisis activo del sistema operativoExisten numerosas tcnicas para el reconocimiento del sistema operativo de un ordenador en lared. Tcnicas tradicionales, como comprobar los mensajes iniciales en las conexiones vaTELNET o FTP, se pueden prevenir fcilmente y son de una efectividad limitada. Las tcnicasde mayor auge hoy en da estn basadas en que cada sistema operativo implementa de unamanera diferente su pila TCP, es decir, que procesan y responden de manera diferente ante unmismo mensaje TCP/IP, especialmente si se trata de un mensaje incorrecto. As, para identificarun sistema operativo basta con enviar una serie de mensajes y comprobar los valores derespuesta en una tabla. Un resumen de las diferentes tcnicas de anlisis activo de sistemasoperativos se encuentra en el anexo B de este documento.

    De manera similar al anlisis activo de puertos, en el anlisis activo de sistemas operativos elenvo de paquetes especiales TCP es fcilmente detectable por un sistema de deteccin deintrusos, que obtendr la direccin IP del ordenador que realiz el anlisis.

    Mejoras al anlisis activo

    Existen algunas tcnicas de mejora del anlisis activo que intentan subsanar el problema de lafcil deteccin de ste por sistemas de deteccin de intrusos. Entre estas tcnicas destacan elanlisis al azar de puertos, el anlisis lento, el anlisis distribuido, la fragmentacin de paquetes,el anlisis a travs de proxy y el anlisis con seuelos.

  • 7El anlisis al azar de puertos intenta burlar algunos sistemas de deteccin de intrusos realizandoel anlisis de puertos en orden aleatorio o pseudo-aleatorio, en lugar de en orden secuencial.Tambin se puede aleatoriezar el orden de las direcciones IP analizadas, el intervalo de tiempoentre las pruebas, y los valores de algunos campos no esenciales de los paquetes enviados pararealizar el anlisis, como el nmero de secuencia, el nmero de acuse de recibo, el identificadorIP y el puerto de origen.

    En el anlisis lento se intenta hacer la espera entre el anlisis de un puerto y el siguiente losuficientemente larga como para no ser detectada como anlisis.

    En el anlisis distribuido se utilizan simultneamente varios ordenadores para realizar el anlisisde manera coordinada. Este mtodo de anlisis, combinado con el anlisis lento y el anlisis alazar de puertos, es muy efectivo y prcticamente indetectable. Imaginemos, por ejemplo, unadocena de ordenadores situados en diferentes puntos de Internet analizando los ordenadores deuna gran red, a razn de dos puertos al da por ordenador vctima. En pocos das obtendran elmapa de dicha red. Otras ventajas del anlisis distribuido es la adquisicin de un modelo mscompleto de la vctima, que incluira informacin sobre mltiples rutas y la ruta ms rpida.

    La fragmentacin de paquetes consiste en romper los paquetes IP utilizados en el anlisis enfragmentos lo suficientemente pequeos como para que la informacin de la cabecera de losdatagramas TCP o UDP que contienen tambin quede dividida. De esta manera los cortafuegosy sistemas de deteccin de intrusos que no poseen la caracterstica de cola de ensamblaje dejanpasar los fragmentos, que se reensamblan en la pila TCP/IP del ordenador vctima. Existen dosversiones de este mtodo. La primera versin consiste en enviar fragmentos tan pequeos (8bytes de datos) que las seales de cdigo del datagrama TCP no viajan en el primer paquete IP.La segunda versin consiste en enviar el primer fragmento con un puerto destino y seales decdigo vlidas y aceptables, pero un segundo fragmento con un desplazamiento negativo quemachaca dicha informacin cuando se reensambla el paquete.

    En el anlisis a travs de proxy, aunque dicho anlisis sea detectado, se obtendr la direccin delproxy a travs de la cual se realiza el anlisis, pero no la direccin real del ordenador origen dedicho anlisis. Un tipo especial de anlisis a travs de proxy es el FTP bounce scan.

    De manera similar al anlisis a travs de proxy, en el anlisis con seuelos tambin es difcil deobtener la direccin real del ordenador que realiza el anlisis, aunque dicho anlisis seadetectado. Consiste en realizar una gran cantidad de anlisis de puertos simultneos sobre unamquina, pero todos los anlisis menos uno con la direccin de origen falsa. De esta manera, ala vctima le resultar prcticamente imposible encontrar la direccin verdadera de entre loscentenares de direcciones falsas. Una manera de dificultar la bsqueda de la direccin verdaderaes utilizar en los paquetes IP tiempos de vida aleatorios y direcciones IP origen de ordenadoresactivos. Una variante de este mtodo consiste en realizar anlisis con la direccin de origenfalseada hasta llenar por completo con avisos falsos el registro de eventos del sistema dedeteccin de intrusos. Una vez queda ste registro desbordado, pueden pasar dos cosas: que nose puedan anotar los eventos de nuevos anlisis o que los eventos de los anlisis ms antiguossean borrados.

    Anlisis pasivo del sistema operativoA diferencia del anlisis activo de puertos y de sistemas operativos, el anlisis pasivo noconsiste en enviar informacin al ordenador a analizar, sino en esperar a recibirla cuando steestablece una conexin a nuestro ordenador. Los paquetes capturados contienen suficienteinformacin para determinar el sistema operativo con que funciona. La combinacin de losvalores del tiempo inicial de vida (8 bits), el tamao de ventana (16 bits), el tamao mximo desegmento (16 bits), el bit de no fragmentacin (1 bit), la opcin sackOK (1 bit), la opcin NOP(1 bit) y la opcin de escalado de ventana (8 bits) forman una firma de 51 bits nica para cadasistema.

  • 8El anexo C de este documento muestra las tablas utilizadas por dos programas de anlisis pasivode redes. Dichas tablas contienen valores utilizados por un ordenador en el primer paquete deestablecimiento de la conexin (primer SYN del saludo TCP de tres tiempos).

    Cabe recordar que el campo tiempo inicial de vida (TTL) es un nmero (normalmente unapotencia de dos) que indica el tiempo de vida de un paquete IP desde que parte del ordenadororigen. Cada vez que dicho paquete se encamina por una nueva red, el valor TTL se decrementaen una unidad. Si dicho valor llega a cero el paquete se destruye. Por lo tanto, en las tablas lacolumna TTL indica la primera potencia de dos superior al valor devuelto en el anlisis.

    Como curiosidad, podemos ver la ruta seguida por el paquete IP sin necesidad de alertar alordenador que lo envi realizando un traceroute a la direccin IP origen con el valor de tiempode vida 2n TTL 1. Por ejemplo, si recibimos un paquete con direccin IP de origen147.83.170.211 con el valor 57 en el campo TTL, supondremos que parti con un valor inicialde 64 en el campo TTL y que pas por siete enrutadores antes de llegar a nuestro ordenador.Nos mostrar el camino pues:

    traceroute m 6 147.83.170.211

    En el anlisis pasivo existen todava numerosos campos y valores a explorar. Por ejemplo, losnmeros iniciales de secuencia, los nmeros de identificacin IP, algunas opciones TCP e IP, eltipo de servicio o TOS (aunque el valor de ste ltimo parece que depende ms del protocoloque del sistema operativo), etc.

    Existe otro mtodo de anlisis pasivo, alternativo al mtodo recin explicado de anlisis depaquetes IP, que consiste en recabar informacin proporcionada en el nivel de aplicacin.Numerosos programas adjuntan a los datos que envan por Internet informacin suficiente paraidentificar el sistema operativo y hardware del sistema que los envi. Por ejemplo: losprogramas clientes de correo electrnico y grupos noticias acostumbran a incorporarinformacin del usuario en el campo X-Mailer de la cabecera; las pginas web incorporaninformacin en los campos User-Agent, Host y Server de la cabecera; cada cliente de telnetnegocia la velocidad de lnea, el tipo de terminal y el eco de manera diferente; etc.

    Ventajas del anlisis pasivo

    El anlisis pasivo es imposible de detectar ya que, a diferencia del anlisis activo, noenviamos ninguna informacin sospechosa al ordenador a analizar.

    Permanecer a la escucha de conexiones permite descubrir ordenadores que estn activosdurante un breve lapso de tiempo. En Internet existen servidores que tan solo funcionandurante los segundos en que envan y reciben los datos.

    Permanecer a la escucha de conexiones permite descubrir servicios ocultos. Normalmente enun anlisis activo no se suelen analizar todos los puertos, ya que son 65536 y ello llevarabastante tiempo, sino que slo se analizan los ms conocidos o los que residen en nmerosbajos. Mediante el anlisis pasivo podemos descubrir si se estn utilizando puertos pococonocidos para servicios especiales o como puerta de acceso de algn troyano. Basta conbuscar las conexiones SYN|ACK de los puertos por encima de 1024.

    El anlisis pasivo permite identificar cortafuegos proxy remotos, ya que stos reconstruyenlas conexiones de sus clientes.

    Limitaciones del anlisis pasivo

    Es poco especfico, en el sentido de que cuesta analizar un ordenador en concreto debido aque se debe esperar un intento de conexin por parte de dicha mquina. En el caso de que elordenador a analizar sea un servidor de pginas web, basta con solicitar una pginacualquiera (conducta normal que no generar sospechas) y analizar su respuesta. An as, en

  • 9la mayora de casos no se puede escoger un ordenador ni unos servicios especficos aanalizar.

    En el caso de haber sufrido un anlisis activo, si se quiere conocer el sistema operativo delordenador origen del anlisis a partir del anlisis pasivo de los paquetes TCP/IP enviados porste, se debe tener en cuenta que la mayora de los paquetes generados por herramientas deanlisis activo difieren de los generados por defecto por el sistema operativo, lo que darlugar a error.

    Es fcil cambiar los parmetros que son observados por un anlisis pasivo. Por ejemplo, paracambiar el valor del campo tiempo de vida en diferentes sistemas operativos:

    Solaris: ndd -set /dev/ip ip_def_ttl 'numero'Linux: echo 'numero' > /proc/sys/net/ipv4/ip_default_ttlNT: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters

    Usos del anlisis pasivo

    Previamente al uso de una herramienta de anlisis pasivo debe instalarse un sniffer, que no esms que un programa o dispositivo que monitoriza todo el trfico que circula por la red. Elsniffer pone a trabajar a la tarjeta de red del ordenador donde est instalado en un mododenominado promiscuo, en el que la tarjeta escucha tanto los paquetes que van dirigidosexplcitamente a su estacin de trabajo como los que van dirigidos a otras estaciones. En unprincipio, una mquina no debera estar trabajando en modo promiscuo a menos que existierauna buena razn. Por ello, encontrar una tarjeta de red funcionando en dicho modo es un fuerteindicador de que un sniffer est espiando el trfico de la red. Existen varios mtodos paracomprobar si una tarjeta de red est funcionando en modo promiscuo. El ms sencillo y rpidoes ejecutar el comando Unix ifconfig a, aunque se debe tener en cuenta que la mayora derootkits substituyen dicha instruccin por otra falsa que impide detectar el sniffer.

    El anlisis pasivo puede tener distintos usos o motivaciones.

    Atacantes pueden determinar el sistema operativo de una vctima en potencia, como porejemplo un servidor de pginas web, solicitando una pgina de dicho servidor, que es unaconducta normal que no levantar sospechas, y analizando despus los rastros del sniffer.

    Organizaciones pueden inventariar rpidamente los sistemas operativos de los ordenadoresde sus redes sin alterar el rendimiento de dichas redes, e identificar tanto sistemas crticos(por ej. superordenadores centrales), como sistemas no autorizados (por ej. si un empleadode Microsoft o Sun ha instalado Linux o FreeBSD en su ordenador).

    Los sistemas de deteccin de intrusos (IDS) pueden incorporar herramientas de anlisispasivo para detectar el sistema operativo de las mquinas que han realizado un anlisisactivo sobre un sistema, ya que los paquetes enviados por algunas herramientas de anlisisactivo heredan valores del sistema operativo subyacente sobre el cual trabajan.

    Escuchando el trfico en puntos crticos o de choque de Internet, se pueden utilizar los datosobtenidos para mapear redes. Es decir, no slo mapear la propia red, sino mapear lentamentelas redes donde se dirigen los usuarios y las redes de donde vienen solicitudes de servicios.Una red grande y distribuida de filtros puede obtener mapas de redes de calidad. Esto no esteora, si no que ya lo estn utilizando estados para mapear las redes de otros pases. Porejemplo, el proyecto SORM-2 de Rusia consta de 350 proveedores de acceso a Internet y seest utilizando para mapear redes de dentro y fuera del pas. Comienza la guerra electrnica!

    Bibliografa

    Un excelente artculo sobre anlisis activo de puertos es The Art of Port Scanning, queencontrareis en http://www.insecure.org/nmap/nmap_doc.html.

  • 10

    Un excelente artculo sobre anlisis activo de sistemas operativos es Remote OS detectionvia TCP/IP Stack FingerPrinting, que encontrareis en http://www.insecure.org/nmap/nmap-fingerprinting-article.html.

    Un artculo sobre anlisis pasivo de sistemas operativos es Passive FingerPrinting, queencontrareis en http://project.honeynet.org/papers/finger/.

    Un artculo que permite observar el estado del arte en anlisis mediante paquetes ICMP esICMP Usage in Scanning, que encontrareis en http://www.sys-security.com/archive/papers/ICMP_Scanning_v3.0.pdf.

    Una lectura imprescindible para aprender algo ms acerca de sniffers: Sniffing (networkwiretap, sniffer) FAQ, en http://www.robertgraham.com/pubs/sniffing-faq.html.

    Software

    Una herramienta excelente para el anlisis activo de puertos y sistemas operativos es nmap.La encontrareis en http://www.insecure.org/nmap/. Otra herramienta tambin valiosa, quepermite enviar paquetes a medida, es hping3. La encontrareis enhttp://www.kyuzz.org/antirez/hping.html.

    Dos herramientas para el anlisis pasivo de sistemas operativos son siphon y p0f. Lasencontrareis respectivamente en http://gravitino.net/projects/siphon/ yhttp://www.stearns.org/p0f/, o buscando en el repositorio http://packetstorm.decepticons.org.

    Un conocido sniffer para el trfico TCP es tcpdump, que encontrareis enhttp://www.tcpdump.org. Otro conocido sniffer es ethereal, que encontrareis enhttp://www.ethereal.com. Por ltimo, dsniff es una imprescindible coleccin de herramientaspara monitorizar redes, que encontrareis en http://www.monkey.org/~dugsong/dsniff/.

    Una herramienta que apareca referenciada en el taller de Jaime Agudo era nstreams, queencontrareis en http://www.hsc.fr/ressources/outils/nstreams/. Dicha herramienta interpretala salida de tcpdump n.

    En tcpdump se puede conseguir aumentar la velocidad de filtrado para el anlisis pasivo conel siguiente filtro: tcpdump q n 'tcp[13] = 18'.

    Para detectar tarjetas de red funcionando en modo promiscuo, indicador de queprobablemente haya un sniffer instalado en vuestra red, recomiendo antisniff, cuya versinde evaluacin encontrareis en http://www.securitysoftwaretech.com/antisniff/, y checkpromiscuous mode, en ftp://coast.cs.purdue.edu/pub/tools/unix/sysutils/cpm/.

    Existen varias herramientas que permiten detectar y analizar escaneados de puertos. Mispreferidas sn: snort, que encontrareis en http://www.snort.org; portsentry, que encontrareisen http://www.psionic.com/products/portsentry.html; y scanlogd, que encontrareis enhttp://www.openwall.com/scanlogd/. Tambin estn: iplog, en http://ojnk.sourceforge.net;tcplogd, en http://kalug.lug.net/tcplogd/; y astaro, en http://download.astaro.com/patches/.

    Como curiosidad: una pgina web que permite analizar el sistema operativo de un ordenadorconectado a Internet es http://www.netcraft.net.

  • 11

    Anexo A: resumen de tcnicas para el anlisisactivo de puertos abiertos

    TCP connect() scanning. Es la forma ms bsica de anlisis de puertos. Se intentaestablecer una conexin normal al puerto mediante la llamada connect() del sistema. +--(RST|ACK puerto cerrado)-> OrigenOrigen --(SYN)-> Destino --+ +--(SYN|ACK puerto abierto)-> Origen -(ACK)-> Destino

    Ventajas: (1) no se necesita privilegios especiales para realizar el anlisis y (2) se consigueuna gran velocidad al analizar puertos en paralelo.

    Desventajas: (1) muy fcil de detectar y filtrar, ya que en los registros del sistema para cadapuerto analizado aparece que se ha intentado establecer conexin y a continuacin se hacerrado sin enviar la informacin.

    TCP SYN scanning. No establece una conexin TCP completa, sino que cuando recibe larespuesta SYN|ACK indicando que el puerto est a la escucha, inmediatamente enva unpaquete RST para romper la conexin. Existe otra variante que no enva el paquete RST y,por lo tanto, deja el proceso de establecimiento de la conexin a medias. +--(RST|ACK puerto cerrado)-> OrigenOrigen --(SYN)-> Destino --+ +--(SYN|ACK puerto abierto)-> Origen -(RST)-> Destino

    Ventajas: (1) pocos sitios registran este intento de conexin anlisis y (2) se consigue unagran velocidad al analizar puertos en paralelo.

    Desventajas: (1) hacen falta privilegios de administrador para construir el paquete SYNinicial.

    TCP SYN|ACK scanning. Salta el primer paso en el establecimiento de conexin TCP,enviando directamente un paquete SYN|ACK al ordenador destino. Si el puerto est abiertono se recibe respuesta, pero si est cerrado se recibe RST. En este caso podemos determinarque puertos estn cerrados y, por exclusin, cuales estn abiertos (mapeo inverso). En lastcnicas de mapeo inverso, se pueden producir lentos falsos positivos debido a paquetesdestruidos, ya sea por la accin de cortafuegos, filtros de paquetes o lmites de tiempo. +--(RST puerto cerrado)-> OrigenOrigen --(SYN|ACK)-> Destino --+ +--(puerto abierto)

    Ventajas: (1) los paquetes SYN|ACK son capaces de pasar a travs de cortafuegos y sistemasde deteccin de intrusos que filtran paquetes SYN a puertos restringidos.

    Desventajas: (1) Se pueden producir falsos positivos lentos y (2) la familia de sistemas BSD(BSD, OpenBSD, NetBSD y FreeBSD) ignoran los paquetes SYN|ACK sea cual sea elestado del puerto.

    TCP ACK scanning. Consiste en enviar un paquete ACK al ordenador destino, que siempreresponder con un paquete RST. No obstante, si el puerto est abierto, el valor del campoTTL ser menor que 64 y el valor del campo win ser diferente de 0. +--(RST puerto cerrado)-> OrigenOrigen --(ACK)-> Destino --+ +--(RST win0 ttl Origen

    Ventajas: (1) los paquetes ACK se pueden utilizar para mapear el conjunto de reglas dealgunos cortafuegos que no devuelven respuesta para los puertos filtrados.

    Desventajas: (1) Su funcionamiento depende del sistema operativo del ordenador analizado,que debe ser de tipo Unix.

  • 12

    TCP FIN scanning. Ante un paquete FIN, los puertos cerrados deberan replicar con eldebido RST y los puertos abiertos deberan ignoran el paquete FIN (mapeo inverso). +--(RST|ACK puerto cerrado)-> OrigenOrigen --(FIN)-> Destino --+ +--(puerto abierto)

    Ventajas: (1) los paquetes FIN son capaces de pasar a travs de cortafuegos que filtranpaquetes SYN a puertos restringidos.

    Desventajas: (1) Algunos sistemas (por ej. Microsoft) responden paquetes RST sea cual seael estado del puerto y (2) se pueden producir falsos positivos lentos.

    TCP Null scanning. Consiste en enviar un paquete con todas las seales de cdigo (URG,ACK, PSH, RST, SYN y FIN) de la cabecera TCP desactivadas. Si el puerto est abierto, no serecibe respuesta (mapeo inverso), pero si est cerrado se recibe RST|ACK. +--(RST|ACK puerto cerrado)-> OrigenOrigen --()-> Destino --+ +--(puerto abierto)

    Ventajas: (1) los paquetes NULL son capaces de evitar algunos sistemas de deteccin deintrusos.

    Desventajas: (1) Su funcionamiento depende del sistema operativo del ordenador analizado,que debe ser una variante de Unix, (2) es fcil de detectar y registrar, y (3) se puedenproducir falsos positivos lentos.

    TCP Xmas scanning. Consiste en enviar un paquete con todas las seales de cdigo (URG,ACK, PSH, RST, SYN y FIN) de la cabecera TCP activadas. Si el puerto est abierto, no serecibe respuesta (mapeo inverso), pero si est cerrado se recibe RST|ACK. +--(RST|ACK puerto cerrado)-> OrigenOrigen --(URG|ACK|PSH|RST|SYN|FYN)-> Destino --+ +--(puerto abierto)

    Ventajas: (1) los paquetes XMAS son capaces de evitar algunos sistemas de deteccin deintrusos.

    Desventajas: (1) Su funcionamiento depende del sistema operativo del ordenador analizado,que debe ser una variante de Unix, (2) es fcil de detectar y registrar, y (3) se puedenproducir falsos positivos lentos.

    UDP ICMP port unreachable scanning. Utiliza el protocolo UDP en lugar de TCP. Endicho protocolo los puertos abiertos no envan paquetes ACK en respuesta a las pruebas y lospuertos cerrados no estn obligados a enviar un paquete RST. Afortunadamente, muchospuertos cerrados envan un error ICMP_PORT_UNREACH. En este caso podemosdeterminar que puertos estn cerrados y, por exclusin, cules estn abiertos. +--(ICMP port_unreachable puerto cerrado)-> OrigenOrigen --(UDP)-> Destino --+ +--(puerto abierto o cerrado)

    Ventajas: (1) nos permite saber que puertos UDP estn abiertos. (Por ejemplo, en un agujerode seguridad del rpcbin de Solaris, se encontr que ste esconda un puerto indocumentadopor encima de 32770, as que no importaba que su puerto 111 estuviera bloqueado por uncortafuegos).

    Desventajas: (1) hacen falta privilegios de administrador, (2) es lento y (3) no se garantiza lallegada ni de los paquetes UDP ni de los errores ICMP, as que en el anlisis se puedenencontrar falsos positivos debidos a paquetes que no han llegado.

    UDP recvfrom() and write() scanning. Los usuarios no privilegiados no pueden leerdirectamente los errores de puertos inalcanzables. Algunos sistemas, como Linux, soncapaces de informar al usuario indirectamente. Por ejemplo, una segunda llamada a write()sobre un puerto cerrado fallar. Otro ejemplo, una llamada a recvfrom() sobre sockets UDP

  • 13

    no bloqueados normalmente devuelve EAGAIN (error n 13 Try Again) si el error ICMPno ha sido recibido, y ECONNREFUSED (error n 111 Connection refused) en casocontrario.

    Ventajas: (1) No son necesarios privilegios de administrador.

    Desventajas: (1) No funciona para todos los sistemas.

    TCP reverse ident scanning. El protocolo IDENT, normalmente asociado al puerto 113,permite descubrir el nombre de usuario propietario de cualquier proceso conectado medianteTCP. Por ejemplo, si recibimos que el propietario del proceso del puerto 80 es root, estoquiere decir que el servidor de web se est ejecutando con privilegios de administrador.

    Ventajas: (1) no se necesita privilegios especiales para realizar el anlisis y (2) funcionaaunque el proceso no inicie la conexin.

    Desventajas: (1) este anlisis es fcilmente detectable, ya que tan solo puede realizarse conuna conexin TCP completa al puerto en cuestin.

    Fragmentation scanning. No es un nuevo mtodo, sino una modificacin de otras tcnicas.Consiste en romper el paquete TCP de prueba en pequeos fragmentos IP, tales que lacabecera TCP queda dividida en paquetes tan pequeos que el primero de ellos no llega aincluir el nmero de puerto.

    Otra variante es utilizar fragmentos con desplazamientos ilegales, tales que el primerfragmento es correcto y aceptado, pero parte de su informacin (por ejemplo: el puerto dedestino) queda superpuesta por otro fragmento, cuando se reconstruye el paquete.

    Ventajas: (1) este anlisis es difcil de detectar y filtrar.

    Desventajas: (1) Algunos programas tienen problemas (se cuelgan) al recibir este tipo depaquetes tan pequeos y (2) no funciona con cortafuegos y filtros que encolan yreconstruyen los fragmentos IP antes de procesarlos.

    FTP bounce scanning. El protocolo FTP permite conexiones proxy. En otras palabras,desde un ordenador se puede conectar a un servidor de FTP para solicitarle que enve unfichero a cualquier parte de Internet o lo reciba. Dicha caracterstica se puede aprovecharpara analizar puertos TCP, ejecutando el comando PORT del servidor de FTP proxy paraindicarle que escuche un determinado puerto del ordenador vctima. Si dicho servidorconsigue establecer una conexin (puerto abierto) responder con un mensaje FTP 150 y226. En caso contrario (puerto cerrado) responder con el mensaje de error FTP 425.

    Ventajas: (1) es difcil realizar un rastreo del anlisis de puertos y (2) puede traspasarcortafuegos, conectndose a un servidor FTP detrs del cortafuegos y despus analizandopuertos que estn bloqueados. Incluso, si el servidor FTP permite leer y escribir en algndirectorio (normalmente el directorio /incoming) se puede enviar datos a los puertos quese encuentren abiertos.

    Desventajas: (1) este tipo de anlisis es lento y (2) muchos servidores de FTP ya handeshabilitado la caracterstica de proxy.

    Dumb host scanning. Se trata de un anlisis de puertos con la direccin IP de origenfalseada por la de un ordenador intermedio sin trfico, es decir, que no enve paquetesmientras se analiza al destino. En Internet hay muchos ordenadores de este tipo,especialmente por la noche. Para saber si un puerto del ordenador destino est abierto,bastar escuchar el trfico del ordenador intermedio, ya que ste generar paquetes RST. Encambio, si el puerto del ordenador destino est cerrado no generar ningn tipo de trfico. +--(RST puerto cerrado)-> IntermedioOrigen --(spoofed SYN)-> Destino --+ +--(SYN|ACK puerto abierto)-> Intermedio -(RST)-> Destino

    Ventajas: (1) El ordenador origen del anlisis es difcil de detectar.

  • 14

    Desventajas: (1) Hace falta encontrar un ordenador intermedio sin trfico.

    ICMP echo scanning. No se trata realmente de un anlisis de puertos, ya que ICMP no tieneuna abstraccin de puertos. Consiste en determinar que ordenadores de una red estn activosrealizando un ping directamente sobre ellos o sobre la direccin de broadcast de la red. +--(ICMP echo_reply activo)-> OrigenOrigen --(ICMP echo_request)-> Destino --+ +--(muerto)

    Ventajas: (1) es rpido, ya que dicho anlisis se puede realizar en paralelo.

    Desventajas: (1) los ping quedan registrados.

    IP protocol scanning. No se trata realmente de un anlisis de puertos, sino que consiste endeterminar qu protocolos IP son soportados por la pila IP del ordenador destino (existennumerosos protocolos sobre IP aparte de los archiconocidos TCP, UDP e ICMP: IGMP, IGP,EGP, GRE, SWIPE, NARP, MOBILE, SUN-ND, EIGRP, OSPFIGP, IPIP, PIM, etc.). Latcnica consiste en enviar paquetes IP con los diferentes nmeros de protocolo a probar. Si elprotocolo no se utiliza recibiremos el mensaje ICMP de protocolo inalcanzable. En casocontrario no obtendremos respuesta, asumiendo entonces que el protocolo s se utiliza o queha sido filtrado por un encaminador. +--(ICMP protocol_unreachable cerrado)-> OrigenOrigen --(IP protocol)-> Destino --+ +--(abierto o filtrado)

    Ventajas: (1) permite conocer otros protocolos utilizados aparte de TCP, UDP e ICMP, y (2)permite conocer el sistema operativo, ya que muchos protocolos soportados soncaractersticos de un fabricante, mientras que otros no son implementados.

    Desventajas: (1) algunos sistemas operativos (AIX, HP-UX, Digital UNIX) y cortafuegospueden no enviar los mensajes de protocolo inalcanzable, causando que todos los protocolosaparezcan como abiertos.

    Podis probar la mayora de estos anlisis con la herramienta nmap, y estudiar el trficogenerado con las herramientas tcpdump y snort. La lnea de comandos de nmap es:nmap [s] [p ] []

    TCP connect scan: nmap sT TCP SYN scan: nmap sS TCP ACK scan: nmap sA y nmap sW TCP FIN scan: nmap sF TCP Null scan: nmap sN TCP Xmas scan: nmap sX UDP scan: nmap sU RPC scan: nmap sR TCP reverse ident scan: nmap I ICMP echo scan: nmap sP IP protocol scan: nmap sO Operative System scan: nmap O Slow scan: nmap --scan_delay Fragmentation scan: nmap f FTP bounce scan: nmap b Spoofed scan: nmap -S Decoy scan: nmap -D Dumb host scan: nmap sI Random scan: nmap --randomize_hosts (por defecto, los puertos destino yaestn en orden aleatorio)

  • 15

    Ejemplos de uso:nmap -hnmap -v destino.ejemplo.comnmap -sS -O I destino.ejemplo.com/24nmap -sX f -p 22,53,110,143,4564 198.116.*.1-127nmap --randomize_hosts -p 80 '*.*.2.3-5'

    Las anotaciones del preprocesador de anlisis de puertos de snort son fciles de leer. Suestructura bsica s:

    fecha hora origen:puerto -> destino:puerto tipo_paquete

    A continuacin vemos las huellas que deja en snort un anlisis horizontal, en el que el atacanteconoce una vulnerabilidad en un servicio y est intentando encontrar todas las mquinas queexponen dicho servicio. El atacante analiza el mismo puerto para un rango de direcciones IP.

    Apr 1 19:02:12 666.66.666.66:1078 -> 111.11.11.197:53 SYNFINApr 1 19:02:12 666.66.666.66:1079 -> 111.11.11.198:53 SYNFINApr 1 19:02:12 666.66.666.66:1080 -> 111.11.11.199:53 SYNFINApr 1 19:02:12 666.66.666.66:1081 -> 111.11.11.200:53 SYNFINApr 1 19:02:12 666.66.666.66:1082 -> 111.11.11.201:53 SYNFINApr 1 19:02:12 666.66.666.66:1083 -> 111.11.11.202:53 SYNFIN

    A continuacin vemos las huellas que deja en snort un anlisis vertical, en el que el atacanteest interesado en una mquina en particular e intenta averiguar todos los servicios que estadispone, seguramente con la intencin de a continuacin buscar en Internet programas queexploten vulnerabilidades en dichos servicios.

    Apr 1 19:36:01 666.66.666.66:1093 -> 111.11.11.49:21 SYNApr 1 19:36:01 666.66.666.66:1094 -> 111.11.11.49:23 SYNApr 1 19:36:01 666.66.666.66:1095 -> 111.11.11.49:25 SYNApr 1 19:36:02 666.66.666.66:1096 -> 111.11.11.49:79 SYNApr 1 19:36:02 666.66.666.66:1097 -> 111.11.11.49:80 SYN

    Cabe recordar que, hasta la fecha, el plugin de snort que le proporciona la caracterstica dedeteccin de anlisis de puertos, no detecta anlisis distribuidos, anlisis lentos, ni anlisis conpaquetes fragmentados.

    En comparacin con snort, resulta un tanto lioso interpretar la salida de tcpdump. El significadode los campos para un paquete TCP/IP es el siguiente:timestamp origen.puerto > destino.puerto : seales TCP nmeros desecuencia (bytes de datos) tamao de ventana (seal deno fragmentacin) (tiempo de vida, identificador IP)

    Ejemplo de salida de tcpdump para un TCP connect() scan al puerto 21 (abierto) y 37 (cerrado):11:56:20.442740 connect.scanner.net.1141 > victim.cablemodem.com.21: S 929641:929641(0) win 8192 (DF)11:56:21.191786 victim.cablemodem.com.21 > connect.scanner.net.1141: S 779881634:779881634(0) ack 929642 win 8576 (DF)11:56:21.201490 connect.scanner.net.1141 > victim.cablemodem.com.21: . ack 1 win 8576 (DF)

    11:56:23.954930 connect.scanner.net.1144 > victim.cablemodem.com.37: S 932103:932103(0) win 8192 (DF)11:56:24.647238 victim.cablemodem.com.37 > connect.scanner.net.1144: R 0:0(0) ack 1 win 0

    Ejemplo de salida de tcpdump para un TCP SYN scan al puerto 21 (abierto) y 37 (cerrado):10:22:45.030552 half.scanner.net.49724 > victim.cablemodem.com.21: S 2421827136:2421827136(0)10:22:45.030552 victim.cablemodem.com.21 > half.scanner.net.49724: S 4046313668:4046313668(0) ack 242182713710:22:45.030552 half.scanner.net.49724 > victim.cablemodem.com.21: R 2421827137:2421827137(0)

    10:22:45.050552 half.scanner.net.49724 > victim.cablemodem.com.37: S 2418821749:2418821749(0)10:22:45.050552 victim.cablemodem.com.37 > half.scanner.net.49724: R 0:0(0) ack 2418821750

  • 16

    Anexo B: resumen de tcnicas para el anlisisactivo de sistemas operativos

    FIN probe. Consiste en enviar a un puerto abierto un paquete FIN o cualquier paquete sin elbit de ACK o SYN activado, y esperar la respuesta. El comportamiento correcto es noresponder, pero muchas implementaciones incorrectas (MS Windows, BSDI, CISCO,HP/UX, MVS e IRIX) envan como respuesta un RST. +--(correcto)Origen --(FIN)-> Puerto abierto destino --+ +--(RST incorrecto)-> Origen

    BOGUS flag probe. Consiste en activar un bit TCP no definido (64 o 128) en la cabeceraTCP de un paquete SYN. Las versiones de Linux anteriores a la 2.0.35 devuelven el bitactivado en su respuesta. Algunos otros sistemas operativos reinicializan la conexin cuandoreciben un paquete SYN+BOGUS.

    TCP ISN Sampling. Consiste en encontrar patrones en los nmeros de secuencia inicialeselegidos por la implementacin de TCP cuando se responde a una solicitud de conexin.Existen varios grupos: 64K (varias versiones antiguas de Unix), incrementos aleatorios(versiones nuevas de Solaris, IRIX, FreeBSD, Digital UNIX, Cray y otros), aleatorioverdadero (Linux 2.0.*, OpenVMS, versiones nuevas de AIX, etc.), dependiente del tiempo(Windows y unos pocos otros), constante (algunos hubs 3Com y impresoras AppleLaserWriter). A su vez se pueden clasificar grupos como el de incrementos aleatorioscalculando varianzas, mximos comunes divisores y otras funciones sobre el conjunto denmeros de secuencia y las diferencias entre dichos nmeros.

    Dont Fragment bit. Algunos sistemas operativos activan el bit IP de no fragmentacin enalgunos de los paquetes que envan, para conseguir varios beneficios de rendimiento. Ya queno todos los sistemas operativos lo hacen y algunos lo hacen en determinados casos, prestaratencin a este bit proporciona informacin sobre el sistema operativo.

    TCP Initial Window. Consiste en comprobar el tamao de ventana en los paquetesdevueltos. Esta prueba proporciona informacin valiosa, ya que algunos sistemas operativos(por ej. AIX) ya pueden ser identificados nicamente por este campo.

    ACK Value. Aunque parece que debiera ser completamente estndar, en algunos casos lasimplementaciones difieren del valor que utilizan para el campo ACK. Por ejemplo, si seenva FIN|PSH|URG a un puerto cerrado la mayora de implementaciones activarn ACKpara que sea el mismo nmero de secuencia inicial, aunque Windows y algunas impresorasde red respondern con el mismo nmero de secuencia inicial ms uno. Otro ejemplo, si seenva SYN|FIN|URG|PSH a un puerto abierto el sistema operativo Windows se comporta demanera inconsistente, respondiendo a veces el mismo nmero de secuencia, respondiendootras veces con el mismo nmero de secuencia incrementado en uno y respondiendo otrasveces con un nmero de secuencia aparentemente aleatorio.

    ICMP Error Message Quenching. Algunos sistemas operativos siguen la sugerencia delimitar la tasa a la que son enviados varios mensajes de error. Por ejemplo, el ncleo deLinux (en net/ipv4/icmp.h) limita la generacin de mensajes de destino inalcanzable a 80cada 4 segundos, con una penalizacin de de segundo si dicha tasa se excede. Una manerade probar esto es enviar un grupo de paquetes a algn puerto UDP alto y aleatorio, y contarel nmero de mensajes de puerto inalcanzable recibidos.

    ICMP Message Quoting. La especificacin de los mensajes de error ICMP indica que stoshacen referencia a una pequea cantidad de un mensaje ICMP que causa diversos errores. Enun mensaje de destino inalcanzable la mayora de implementaciones retornan la cabecera IPrequerida y 8 bytes. Sin embargo Solaris retorna un bit ms, y Linux todava ms. Ello nos

  • 17

    permite reconocer a ordenadores con Linux y Solaris aunque no tengan ningn puertoabierto.

    ICMP Error message echoing integrity. En caso de error de puerto inalcanzable, elordenador destino debe devolver parte del mensaje original enviado junto con el error.Algunos ordenadores utilizan la cabecera del mensaje enviado como espacio de trabajodurante el procesamiento del error y, por lo tanto, la cabecera est ligeramente modificadacuando se devuelve el mensaje. Devolver el campo IP de longitud aumentado, cambiar ladireccin IP de origen, devolver sumas de verificacin TCP o UDP inconsistentes, etc., soncambios que realizan algunos sistemas operativos y que permiten identificarlos.

    Type of Service. En el mensaje ICMP de puerto inalcanzable, la mayora de sistemasoperativos devuelven el campo TOS con valor 0, aunque Linux devuelve el valorhexadecimal 0xC0. En el mensaje ICMP de solicitud de eco con el ltimo bit del campo TOSactivado a 1, la mayora de sistemas operativos devuelven el ltimo bit del campo TOS convalor 0, aunque Windows 2000 y Ultrix devuelven dicho bit con el mismo valor 1.

    Fragmentation Handling. Consiste en que a menudo diferentes implementaciones manejande manera diferente fragmentos IP superpuestos. Algunos sobreescriben las porciones viejascon las nuevas, y otros sobreescriben las porciones nuevas con las viejas. Existen diferentespruebas para determinar como se reensamblan dichos fragmentos.

    TCP Options. Las opciones de los mensajes TCP (escala de ventana, no operacin, tamaomximo de segmento, marca de tiempo, fin de opciones, etc.) son una gran fuente deinformacin a la hora de identificar sistemas operativos. Estas opciones son generalmenteopcionales, as que no todos los sistemas las implementan. Se puede saber si una mquina lasimplementa envindole un mensaje con una opcin activada. Si la mquina destino soportala opcin generalmente lo har saber activando dicha opcin en la respuesta. Dentro de unmismo mensaje, se pueden activar varias opciones para probarlas todas simultneamente.

    En el caso de que varios sistemas operativos soporten el mismo conjunto de opciones, aveces se les puede distinguir por los valores de dichas opciones. Incluso en el caso de quesoporten el mismo conjunto de opciones y devuelvan los mismos valores, a veces se lespuede distinguir por el orden en que dichas opciones se devuelven y donde se aplica elrelleno.

    Exploit Chronology. Incluso con todos los tests comentados anteriormente, a veces no sepuede limitar suficiente como para distinguir el sistema operativo. Por ejemplo, Windows95, Windows 98 y Windows NT 4.0 utilizan el mismo sistema de pila TCP. Una solucin aeste problema puede ser probar diferentes vulnerabilidades en el orden cronolgico en quefueron apareciendo, para comprobar que versin del sistema operativo y parches tieneinstalados la mquina. En el ejemplo anterior, podemos probar consecutivamente con Pingof Death, Winnuke, Teardrop, Land, y tras cada ataque comprobar con un ping si lamquina se ha colgado o no.

    SYN Flood Resistance. Algunos sistemas operativos dejan de aceptar nuevas conexiones siles envan numerosos paquetes SYN falsos. Unos sistemas operativos pueden manipular tansolo 8 paquetes, mientras que versiones recientes de Linux y otros sistemas operativospermiten varios mtodos para impedir que la recepcin de estos paquetes sea un serioproblema. As, se puede obtener informacin sobre el sistema operativo enviando 8 paquetescon origen falso a un puerto abierto y comprobando si despus se puede establecer conexina dicho puerto.

  • 18

    Anexo C: tablas para el anlisis pasivo

    Siphon*

    Window TTL DF Operating System

    7D78 64 1 Linux 2.1.122 - 2.2.14 77C4 64 1 Linux 2.1.122 - 2.2.14 7BF0 64 1 Linux 2.1.122 - 2.2.14 7BC0 64 1 Linux 2.1.122 - 2.2.14 832C 64 1 Linux 2.0.34 - 2.0.38 7FE0 64 0 Linux 2.0.34 - 2.0.38 0B68 64 1 Linux 2.0.32 - 2.0.34

    4470 64 0 FreeBSD 2.2.1 - 4.0 4470 64 1 FreeBSD 2.2.1 - 4.0 43E0 64 1 FreeBSD 2.2.1 - 4.0 4074 64 0 OpenBSD 2.x 43E0 64 0 OpenBSD 2.x 4000 64 0 FreeBSD 2.2.1 - 4.0 4000 64 1 FreeBSD 2.2.1 - 4.0

    2238 64 1 BSDI BSD/OS 2180 64 1 BSDI BSD/OS 2220 64 1 BSDI BSD/OS 2000 64 1 BSDI BSD/OS

    81D0 64 1 Compaq Tru64 UNIX 5.0

    ED90 64 1 IRIX 6.2 - 6.5 EE48 64 1 IRIX 5.1 - 5.3 EF88 64 1 IRIX 6.2 - 6.5 C000 64 1 IRIX 6.2 - 6.5

    1800 64 1 VMS MultiNet V4.2(16) / OpenVMS V7.1-2

    3EBC 64 1 AIX 4.02.0001.0000 / AIX 4.2

    1000 64 0 SCO UnixWare 2.1.2 60F4 64 1 SCO OpenServer 5.0.5

    2238 32 1 Windows NT / Win9x 2190 32 1 Windows NT / Win9x 2180 32 1 Windows NT / Win9x 2238 128 0 Windows NT / Win9x 2010 128 1 Windows NT / Win9x 2058 128 1 Windows NT / Win9x 2000 128 1 Windows NT / Win9x 2180 128 1 Windows NT / Win9x 2190 128 1 Windows NT / Win9x 2220 128 1 Windows NT / Win9x 2238 128 0 Windows NT / Win9x 2238 128 1 Windows NT / Win9x 21D2 128 1 Windows NT / Win9x 4470 128 1 Windows 2000 RC1

    2328 255 1 Solaris 2.6 - 2.7 2238 255 1 Solaris 2.6 - 2.7 2400 255 1 Solaris 2.6 - 2.7 2798 255 1 Solaris 2.6 - 2.7 FE88 255 1 Solaris 2.6 - 2.7 87C0 255 1 Solaris 2.6 - 2.7 FAF0 255 0 Solaris 2.6 - 2.7 FAF0 255 1 Solaris 2.6 - 2.7 FFFF 255 1 Solaris 2.6 - 2.7

    1020 255 1 Cisco IOS 4150 64 1 Cisco Localdirector 430 / running OS 2.1

    200 0 1 Ascend Pipeline 50 ISDN Router

    Leyenda:

    Window = window size - tamao de ventanaTTL = time to live - tiempo de vidaDF = don't fragment flag bit de no fragmentacin (0 = no activado, 1 = activado)

  • 19

    P0f*

    Window TTL Segment DF WS SF NOP PS Operating System

    32694 255 536 0 0 0 0 -1 3Com HiPer ARC, System V4.2.3216384 64 512 0 0 0 0 44 AIX 3.2, 4.2 - 4.316384 64 1460 0 -1 0 0 44 AIX 4.3 - 4.3.365535 64 1460 0 1 0 1 48 AOL proxy, Compaq Tru64 UNIX V5.1 (Rev. 732) 8192 64 1460 1 -1 0 0 44 AXCENT Raptor Firewall Windows NT 4.0/SP3 4096 32 1024 0 245 0 0 -1 Alcatel (Xylan) OmniStack 5024 4096 32 1024 0 245 0 0 -1 Alcatel (Xylan) OmniStack 5024 v3.4.532696 64 536 1 0 1 1 60 Anonymizer.com proxy (Unixware?) 8192 64 1460 1 0 1 1 60 BSDI BSD/OS 3.0 - 4.0 (or MacOS, NetBSD) 8192 64 1460 1 0 0 1 60 BSDI BSD/OS 3.1 - 4.012288 255 1460 0 -1 0 0 44 BeOS 5.0 (1)12288 255 1460 0 -1 0 1 44 BeOS 5.0 (2)65535 128 1368 1 -1 0 0 44 BorderManager 3.0 - 3.5 8192 64 1460 0 -1 0 0 44 CacheFlow 500x CacheOS 2.1.08 - 2.2.165535 64 1460 0 0 0 1 60 CacheOS 3.1 on a CacheFlow 6000 4096 32 1024 0 -1 0 0 -1 Chorus MiX V.3.2 r4.1.5 COMP-386 2144 255 536 0 -1 0 0 -1 Cisco IGS 3000 IOS 11.x(16), 2500 IOS 11.2(3)P 4288 255 536 0 -1 0 0 -1 Cisco IOS 1600/11.2(15)P, 2500/11.2(5)P, 4500/11.1(7) 4128 255 556 0 0 0 0 -1 Cisco IOS 1750/12.0(5), 2500/11.3(1), 3600/12.0(7) 4128 255 1460 0 -1 0 0 -1 Cisco IOS 2611/11.3(2)XA4, C2600/12.0(5)T1, 4500/12.0(9), 3640/12.1(2), 3620/12.0(8) or 11.3(11a) 4288 255 1460 0 -1 0 0 -1 Cisco IOS 3620/11.2(17)P65535 64 1432 0 -1 0 0 44 Cisco webcache32768 128 1460 1 0 0 1 48 Dec V4.0 OSF132768 64 1460 1 0 0 1 48 Digital UNIX V4.0E 5535 64 1460 1 0 0 1 60 FreeBSD 2.2.1 - 4.116384 255 1460 1 0 0 1 48 FreeBSD 2.2.6-RELEASE16384 64 1460 1 0 0 1 44 FreeBSD 2.2.8-RELEASE16384 64 1460 1 0 0 0 44 FreeBSD 4.0-STABLE, 3.2-RELEASE16384 64 1460 1 94 0 1 44 FreeBSD 4.0-STABLE, 3.2-RELEASE (2)16384 64 1460 1 98 0 0 44 FreeBSD 4.0-STABLE, 3.2-RELEASE (3)16384 64 1460 1 112 0 0 44 FreeBSD 4.0-STABLE, 3.2-RELEASE (4)16384 64 1460 1 0 0 1 68 FreeBSD 4.3 - 4.4PRERELEASE32768 64 1460 1 0 0 0 44 HP-UX B.10.01 A 9000/71261440 64 512 0 -1 0 0 -1 IRIX 5.3 / 4.0.5F61440 64 1460 0 -1 0 0 44 IRIX 6.349152 64 1460 0 0 0 0 44 IRIX 6.5 / 6.461440 64 1460 0 -1 1 1 48 IRIX 6.5.1032320 64 1616 1 0 1 1 60 Linux (unknown?) (1) 5840 64 1460 0 0 1 1 60 Linux (unknown?) (2)32120 64 1460 0 -1 0 0 -1 Linux 2.0.33 (1) 512 64 1460 0 52 0 0 44 Linux 2.0.33 (2) 512 64 1460 0 -1 0 0 44 Linux 2.0.34-38 512 64 0 0 -1 0 0 -1 Linux 2.0.35 - 2.0.37 512 64 1460 0 0 0 0 44 Linux 2.0.35 - 2.0.3832120 64 1460 0 -1 0 0 44 Linux 2.0.38 (2)64240 255 1460 1 -1 0 0 44 Linux 2.1.xx (?)31944 64 1412 1 0 1 1 60 Linux 2.231072 64 3884 1 0 1 1 -1 Linux 2.2.12-20 (RH 6.1)32120 32 1460 1 0 1 1 60 Linux 2.2.13 (1) 8192 128 1456 1 0 1 1 64 Linux 2.2.13 (2)32120 64 1460 1 100 1 1 60 Linux 2.2.1432120 64 1460 1 101 1 1 60 Linux 2.2.1532120 64 1460 1 190 1 1 60 Linux 2.2.1632120 64 1460 0 0 1 1 60 Linux 2.2.1932120 64 1460 1 0 1 1 60 Linux 2.2.9 - 2.2.1832120 64 1460 1 9 1 1 60 Linux 2.2.x16060 64 1460 1 0 1 1 60 Linux 2.2.x Debian/Caldera (check)

    Leyenda:

    Window = window size - tamao de ventanaTTL = time to live - tiempo de vidaSegment = maximum segment size - tamao mximo de segmentoDF = don't fragment flag bit de no fragmentacin (0 = no activado, 1 = activado)WS = window scaling escala de ventana (-1 = no presente, otro = valor)SF = sackOK flag bit sackOK (0 = no activado, 1 = activado)NOP = nop flag bit NOP (0 = no activado, 1 = activado)PS = packet size tamao de paquete (-1 = irrelevante)

  • 20

    63903 128 0 0 -1 0 0 40 Linux 2.2.x or 2.4.x31856 64 1460 1 0 1 1 60 Linux 2.3.99-ac - 2.4.0-test124820 64 1460 1 0 0 1 60 Linux 2.4.0 5840 64 1460 1 0 1 1 52 Linux 2.4.1-14 (1) 5840 64 1460 1 0 1 1 48 Linux 2.4.1-14 (2) 5808 64 1452 1 0 1 1 60 Linux 2.4.10 (1) 5808 64 1452 1 111 1 1 60 Linux 2.4.10 (2) 5840 64 1460 1 0 0 1 60 Linux 2.4.13-ac7 5840 64 1460 1 0 1 1 60 Linux 2.4.2 - 2.4.14 (1)16384 64 1460 1 0 0 1 60 Linux 2.4.2 - 2.4.14 (2) 5840 64 1460 1 223 1 1 60 Linux-2.4.13-ac716616 255 1460 1 0 0 0 48 Mac OS 7.x-9.x32768 255 1460 1 0 0 1 48 Mac OS 9 (1)65535 255 1460 1 1 0 1 48 Mac OS 9 (2)32768 64 1460 1 0 0 1 48 Mac OS X32768 64 1460 1 0 0 1 60 Mac OS X 10.132768 64 1460 1 122 0 1 60 Mac OS X 10.1 (2) 1024 64 0 0 -1 0 0 40 NMAP scan (distance inaccurate) (1) 4096 64 0 0 -1 0 0 40 NMAP scan (distance inaccurate) (10) 4096 64 265 0 10 0 1 60 NMAP scan (distance inaccurate) (11) 4096 64 536 0 -1 0 0 40 NMAP scan (distance inaccurate) (12) 1024 64 265 0 10 0 1 60 NMAP scan (distance inaccurate) (2) 1024 64 536 0 -1 0 0 40 NMAP scan (distance inaccurate) (3) 3072 64 0 0 -1 0 0 40 NMAP scan (distance inaccurate) (4) 3072 64 265 0 10 0 1 60 NMAP scan (distance inaccurate) (5) 3072 64 536 0 -1 0 0 40 NMAP scan (distance inaccurate) (6) 2048 64 0 0 -1 0 0 40 NMAP scan (distance inaccurate) (7) 2048 64 265 0 10 0 1 60 NMAP scan (distance inaccurate) (8) 2048 64 536 0 -1 0 0 40 NMAP scan (distance inaccurate) (9)16384 64 1460 0 0 0 1 60 NetBSD 1.3/i38632768 128 1460 1 -1 0 0 -1 Novell NetWare 4.1116384 64 512 0 0 0 1 60 OpenBSD 2.6-2.816384 64 572 1 0 1 1 64 OpenBSD 3.032768 64 1432 0 0 0 0 44 PlusGSM, InterNetia proxy ??? 4660 255 0 0 -1 0 0 40 Queso 1.2 (OS unknown, Linux, Solaris, *BSD)24820 64 1460 1 0 0 0 44 SCO UnixWare 7.0.132696 64 536 0 0 1 1 60 SCO UnixWare 7.1.0 x86 (1)24820 64 1460 1 0 0 1 60 SCO UnixWare 7.1.0 x86 (2)24820 64 1460 1 0 0 1 48 SCO UnixWare 7.1.0 x86 ? (3) 8760 64 1460 1 0 0 0 -1 Solaris 2.6 (2) 9140 255 9140 1 0 0 0 -1 Solaris 2.6 (sunsite) 8760 255 1460 1 -1 1 0 44 Solaris 2.6 - 2.7 8760 255 1460 1 0 0 0 44 Solaris 2.6 or 2.7 (1) 8760 255 1460 1 -1 0 1 44 Solaris 2.6 or 2.7 (2) 8760 255 1380 1 0 0 0 44 Solaris 2.733580 255 1460 1 -1 0 0 44 Solaris 724820 64 1460 1 -1 1 1 48 SunOS 5.824820 64 1460 1 -1 1 1 -1 SunOS 5.8 Sparc16384 64 0 0 -1 0 0 -1 ULTRIX V4.5 (Rev. 47) 8192 64 1460 1 0 1 1 64 WebTV netcache engine (BSDI)16384 128 1460 1 0 1 1 48 Windows 2000 (1)16384 128 1460 1 52 1 1 48 Windows 2000 (1)16384 128 25275 1 -1 1 1 -1 Windows 2000 (2) 8760 128 1460 1 -1 1 1 48 Windows 2000 (2)60352 64 1360 1 2 1 1 52 Windows 2000 (3)16384 128 1452 1 -1 1 1 48 Windows 2000 (4)16384 128 1360 1 -1 1 1 48 Windows 2000 (5)16384 128 1414 1 -1 1 1 48 Windows 2000 (8)16384 128 1460 1 -1 1 1 48 Windows 2000 (9) 8760 128 536 1 -1 1 1 48 Windows 2000 Pro (2128)44032 128 64059 1 -1 1 1 -1 Windows 2000 SP2 (1)44032 128 1452 1 -1 1 1 48 Windows 2000 SP2 (2)16384 128 55370 1 -1 1 1 48 Windows 2000 early 5840 128 536 1 0 1 1 48 Windows 95 (3) 8192 32 1456 1 -1 0 0 44 Windows 95 (4) 8192 128 1460 0 -1 1 1 48 Windows 95 (?) (6) 5840 128 1460 1 -1 1 1 48 Windows 95 or early NT416384 64 1460 0 -1 0 0 44 Windows 9865535 128 1372 1 -1 1 1 48 Windows 98 (2) 8192 128 1460 1 52 1 1 48 Windows 98 (3)65535 128 1460 1 -1 1 1 48 Windows 98 (4)15972 64 1452 1 0 1 1 60 Windows 98 (?)65535 128 1368 1 -1 0 0 44 Windows 98, Windows NT 5.024820 64 1460 1 0 0 0 44 Windows 9x 8192 128 1460 1 0 1 1 48 Windows 9x (1) 2144 64 536 1 0 1 1 48 Windows 9x (10) 8192 128 536 1 0 1 1 48 Windows 9x (2)

  • 21

    2144 64 536 1 0 1 1 60 Windows 9x (4) 8192 128 1460 1 0 1 1 64 Windows 9x (5) 8192 128 1460 1 0 1 1 44 Windows 9x (6) 8192 128 1360 1 -1 1 1 48 Windows 9x (9) 8192 128 536 1 -1 1 1 48 Windows 9x or 2000 8192 128 1414 1 -1 1 1 48 Windows 9x or NT432768 32 1460 1 -1 0 0 44 Windows CE 3.0 (Ipaq 3670) (1)32768 32 1460 1 -1 0 1 44 Windows CE 3.0 (Ipaq 3670) (2)16384 128 1460 1 75 1 1 48 Windows ME 8192 128 1460 1 -1 1 0 44 Windows NT 8192 128 1460 1 0 0 0 44 Windows NT 4.0 (1) 8192 32 1460 1 0 0 0 44 Windows NT 4.0 (2) 4288 128 1460 1 -1 1 1 48 Windows NT 4.0 SP3 (1) 8192 128 1456 1 -1 1 1 48 Windows NT 4.0 SP3 (2)16384 128 1272 1 -1 1 1 48 Windows NT 4.0 SP3 (3)16384 128 572 1 -1 1 1 48 Windows NT 4.0 SP4+ 8192 128 25443 1 -1 1 1 -1 Windows NT 4.0 Server SP516384 128 1440 1 -1 1 1 48 Windows XP Pro64240 128 1460 1 -1 1 1 48 Windows XP Pro, Windows 2000 Pro

  • 22

    Anexo D: TCP, UDP, ICMP e IP

    Transmission Control Protocol

    El propsito de TCP es proporcionar un servicio de reparto seguro orientado a conexin. TCPinterpreta los datos como flujo de bytes, no como tramas, y su unidad de transferencia sedenomina segmento. Los segmentos se utilizan para establecer conexiones, as como paratransportar datos y acuses de recibo. TCP cuida de asegurar la fiabilidad, control del flujo ymantenimiento de la conexin, recuperando los datos que estn daados, perdidos, duplicados ointencionadamente fuera de secuencia. Para lograr su objetivo, TCP aade una cabecera de 20bytes a inicio de cada datagrama:

    0 4 10 15 16 24 31PUERTO TCP DE ORIGEN PUERTO TCP DE DESTINO

    NMERO DE SECUENCIANMERO DE ACUSE DE RECIBO

    DESPLAZ. RESERVADO SEALES CDIGO TAMAO DE VENTANASUMA DE VERIFICACIN TCP PUNTERO DE URGENCIA

    OPCIONES TCP (SI LAS HAY) RELLENODATOS...

    Formato de los campos en un segmento TCP con un encabezado TCP seguido de datos.

    Seales de cdigo Significado si el bit est puesto a 1

    10 URG El campo de puntero urgente es vlido

    11 ACK El campo de acuse de recibo es vlido

    12 PSH El receptor no pondr en cola los datos, sino que los pasar a la aplicacin

    13 RST Destruir la conexin

    14 SYN Iniciar la conexin - Sincronizar los nmeros de secuencia

    15 FIN Finalizar la conexin - El emisor ha llegado al final de su flujo de octetos

    Bits del campo cdigo en el encabezado TCP.

    Los nmeros de puerto se utilizan para el seguimiento de diferentes conversaciones.

    El nmero de secuencia se utiliza para que el extremo que recibe los datagramas se asegure decolocarlos en el orden correcto y de no haber extraviado ninguno. TCP asigna un nmero desecuencia a cada byte transmitido, no a cada datagrama. As, si hay 500 bytes de datos en cadadatagrama, el primer datagrama ser numerado 0, el segundo 500, el siguiente 1000, etc. Elordenador que recibe los datos debe devolver un segmento con el bit ACK activado en el campode cdigo para confirmar que recibi la informacin. Si no lo hace antes de un cierto periodo detiempo, se retransmiten los datos.

    El nmero de acuse de recibo guarda el valor del siguiente nmero de secuencia esperado yconfirma que se han recibido todos los datos a travs del nmero de acuse de recibo menos uno.

    Los bits del desplazamiento de datos, multiplicados por cuatro, indican la longitud en bytes dela cabecera TCP, que puede variar segn se aadan ms o menos opciones TCP. Algunas deestas opciones son: tamao mximo de segmento, escala de ventana, marca de tiempo, nooperacin (NOP), acuse de recibo selectivo, acuse de recibo selectivo permitido (SackOK) ydatos del acuse de recibo selectivo.

  • 23

    El tamao de ventana se utiliza para controlar cuanta informacin puede estar en trnsito en unmomento dado. No es prctico esperar a que cada datagrama enviado sea confirmado antes detransmitir el siguiente, cosa que ralentizara bastante el proceso. Por otro lado, si se enva lainformacin sin esperar la confirmacin, el ordenador que enva la informacin puedesobrepasar la capacidad de absorber la informacin del ordenador que la recibe si ste ltimo esms lento. As, cada extremo indica en el campo tamao de ventana cuantos bytes de datosnuevos est actualmente preparado para aceptar. A medida que un ordenador recibe datos, lacantidad de espacio que queda en su ventana decrementa hasta aproximarse a cero, momento enel cual el ordenador que enva los datos debe parar. Mientras el receptor procesa los datos,incrementa su tamao de ventana indicando que est preparado para aceptar ms datos. Amenudo el mismo datagrama puede utilizarse para confirmar la recepcin de datos y para darpermiso para transmitir nuevos datos incrementando el tamao de ventana.

    La suma de verificacin es un nmero que se calcula, ms o menos, sumando todos los bytes deldatagrama. Al recibir los datos en el otro extremo, se calcula la suma de verificacin de nuevo.Si la suma es errnea, no se enva el segmento ACK de confirmacin y los datos sonreenviados.

    User Datagram ProtocolUDP es un protocolo no orientado a conexin que, al igual que TCP, utiliza IP para enviardatagramas, pero que a diferencia de TCP, no vigila que los paquetes lleguen a su destino. UDPse utiliza en aplicaciones donde no es esencial que lleguen el 100% de los paquetes (como elflujo de sonido o vdeo) o donde los mensajes caben en un solo datagrama y no es necesaria lacomplejidad de TCP (si no se obtiene respuesta pasados unos segundos, se vuelve a enviar).Recientemente muchas aplicaciones de Internet comienzan a utilizar a la vez UDP y TCP. TCPpara enviar los datos ms esenciales y de control, mientras que UDP para los datos cuyasprdidas son aceptables.

    La cabecera de un datagrama UDP es mucho ms sencilla que la de un segmento TCP:

    0 15 16 31PUERTO UDP DE ORIGEN PUERTO UDP DE DESTINO

    LONGITUD DEL MENSAJE UDP SUMA DE VERIFICACIN UDPDATOS...

    Formato de los campos en un datagrama UDP.

    Internet Control Message Protocol

    ICMP es un protocolo alternativo utilizado para la transmisin de mensajes de error y otrosmensajes relacionados con el software TCP/IP, ms que con programas particulares del usuario.ICMP es un mecanismo de reporte de errores que proporciona una forma para que losenrutadores que encuentren un error lo enven a la fuente original. Por ejemplo, si un ordenadorintenta conectar con otro al que no encuentra, recibir un mensaje ICMP diciendo hostunreachable. ICMP tambin puede utilizarse para obtener cierta informacin sobre la red.

    0 7 8 15 16 31TIPO CDIGO SUMA DE VERIFICACIN

    MAS CAMPOS Y DATOS DEPENDIENTES DEL TIPO DE MENSAJE...

    Formato de mensaje ICMP.

  • 24

    Campo de tipo Tipo de mensaje ICMP0 Respuesta de eco3 Destino inalcanzable4 Origen acallado5 Redireccionar (cambiar una ruta)8 Solicitud de eco11 Tiempo excedido para un datagrama12 Problema de parmetros en un datagrama13 Solicitud de marca de tiempo14 Respuesta de marca de tiempo15 Solicitud de informacin (obsoleto)16 Respuesta de informacin (obsoleto)17 Solicitud de mscara de direccin18 Respuesta de mscara de direccin

    Campo de tipo en un mensaje ICMP.

    Aunque cada mensaje ICMP tiene su propio formato, todos comienzan con un campo de tipo demensaje que identifica el mensaje, un campo cdigo de mensaje que proporciona msinformacin sobre el tipo del mensaje y un campo de suma de verificacin.

    Internet Protocol

    El trabajo de IP es encontrar una ruta para los datagramas TCP, UDP o ICMP y llevarlos a sudestino. IP aade una cabecera propia a dichos datagramas para permitir a las puertas de enlacey sistemas intermedios reenviar el datagrama.

    0 4 8 15 16 19 24 31VERSION LONG. CAB. TIPO DE SERVICIO LONGITUD TOTAL

    IDENTIFICACIN BANDERAS DESPLAZAMIENTO DE FRAGMENTOTIEMPO DE VIDA PROTOCOLO SUMA DE VERIFICACIN DE LA CABECERA

    DIRECCIN IP DE ORIGENDIRECCIN IP DE DESTINO

    OPCIONES IP (SI LAS HAY) RELLENODATOS...

    Formato de un datagrama IP, la unidad bsica de transferencia en Internet.

    Los campos principales de la cabecera son: la direccin Internet del origen, necesaria para saberde donde viene el datagrama; la direccin Internet del destino, necesaria para que las puertas deenlace intermedias sepan hacia donde deben dirigir el datagrama; el nmero de protocolo, queindica cual es el protocolo del datagrama contenido dentro del datagrama IP (no slo TCPutiliza IP, hay ms protocolos que tambin lo utilizan); y una suma de verificacin de lacabecera, que permite comprobar si sta se da durante el transporte.

    Las direcciones de Internet son campos de 32 bits divididos en cuatro subcampos de 8 bits, quecontienen valores como por ejemplo 147.83.170.211, aunque actualmente se est trabajando enunas nuevas direcciones IP de 128 bits (IPv6).

    El nmero de identificacin, las banderas y el desplazamiento de fragmento se utilizan para elseguimiento de las partes cuando un datagrama se deba partir, por ejemplo, porque losdatagramas se reenven por una red para la cual son demasiado grandes.

  • 25

    El tiempo de vida es un nmero que se decrementa cada vez que el datagrama pasa a travs deun sistema. Cuando llega a cero, el datagrama se destruye. Esto es til si de alguna manera seoriginara un bucle en el sistema (caso tericamente imposible).

    Los primeros cuatro bits de la cabecera (versin) indican el formato de la cabecera IP. Lossiguientes cuatro bits (longitud de cabecera), multiplicados por cuatro, indican la longitud enbytes de la cabecera, que es variable debido a que no es obligatorio que aparezcan todas lasopciones IP. Dichas opciones son: no operacin, seguridad, ruta de origen desconectada, ruta deorigen estricta, registro de ruta, identificador de flujo y marcas de tiempo.

    El tipo de servicio se utiliza para la priorizacin de datagramas IP. Los tres primeros bits(campo de precedencia) indican el nivel de prioridad del datagrama. Existen ocho niveles deprioridad y los datagramas con mayor prioridad se envan antes que los menos prioritarios. Lossiguientes cuatro bits (campo de tipo de servicio) indican como debe la red equilibrar entreespera, rendimiento, fiabilidad y coste en el momento de encaminar el datagrama IP. El ltimobit (campo MBZ) no se utiliza y debe ser cero.

    Para aprender ms sobre los protocolos TCP, UDP, ICMP e IP de Internet, recomiendo leer,respectivamente, los RFC 793, 768, 792 y 791, que se pueden encontrar enhttp://www.faqs.org/rfcs/ y http://www.rfc-editor.org/rfcxx00.html.

  • 26

    Anexo E: algunos puertos famososLista de los puertos ms utilizados*

    Puerto Protocolo Palabra clave Descripcin0 TCP / UDP Reservado1 TCP TCPMUX Multiplexador de servicios TCP5 TCP RJE Entrada de trabajo remoto7 TCP / UDP ECHO Eco9 TCP / UDP DISCARD Descartar (el /dev/null de Internet)

    11 TCP SYSTAT Usuarios activos13 TCP / UDP DAYTIME Hora del da (en formato humano)15 TCP - (antes NETSTAT) No asignado (antes, programa de estado de red)17 TCP / UDP QUOTE Cita del da19 TCP / UDP CHARGEN Generador de caracteres20 TCP FTP-DATA Protocolo de transferencia de archivos (datos)21 TCP FTP Protocolo de transferencia de archivos (control)22 TCP SSH Conexin de terminal segura23 TCP TELNET Conexin de terminal25 TCP SMTP Protocolo de transporte de correo sencillo37 TCP / UDP TIME Hora del da (en formato mquina)42 TCP / UDP NAMESERVER Servidor de nombres de anfitriones43 TCP NICNAME Quin est ah? (whois)53 TCP / UDP DOMAIN Servidor de nombres de dominios (dns)67 UDP BOOTPS Servidor de protocolo bootstrap68 UDP BOOTPC Cliente de protocolo bootstrap69 UDP TFTP Transferencia trivial de archivos70 TCP GOPHER Gopher77 TCP - Cualquier servicio RJE privado79 TCP FINGER Finger

    80 i 80xx TCP WWW-HTTP World Wide Web HTTP88 UDP KERBEROS Protocolo de autentificacin Kerberos

    101 TCP HOSTNAME Servidor de nombre de anfitrin NIC110 TCP POP3 Protocolo de oficina postal v. 3111 TCP / UDP RPC / PORTMAP Llamada a procedimiento remoto113 TCP AUTH Servicio de autenticacin117 TCP UUCP-PATH Servicio de trayecto UUCP119 TCP NNTP Protocolo de transferencia de noticias de red129 TCP PWDGEN Protocolo generador de clave de acceso137 TCP / UDP NETBIOS-NS Servicio de nombre NETBIOS138 TCP / UDP NETBIOS-DGM Servicio de datagrama NETBIOS139 TCP / UDP NETBIOS-SSN Servicio de sesin NETBIOS143 TCP / UDP IMAP Protocolo de acceso a mensajes de Internet161 UDP SNMP Monitor de red SNMP162 UDP SNMPTRAP Interrupciones SNMP389 TCP / UDP LDAP Protocolo de acceso ligero a directorios443 TCP HTTPS HTTP seguro sobre TLS/SSL512 UDP / TCP BIFF / EXEC Notific. correo / Ejecucin remota de procesos513 UDP / TCP WHO / LOGIN Quien est conectado / Conexin remota a telnet514 UDP / TCP SYSLOG / SHELL Conexin de sistema / Lnea de comandos remota515 TCP PRINTER Cola de la impresora (spooler)

    517 / 518 UDP TALK / NTALK Protocolo de conversacin520 UDP ROUTE Tablas de encaminamiento

    1080 TCP SOCKS Socks2049 UDP NFS Sistema de ficheros de red

    6000 a 6xxx TCP X11 X-Windows6667 TCP IRC Transmisor de charlas (chat)

    * Encontrareis la lista de puertos completa en http://www.iana.org/assignments/port-numbers

  • 27

    Lista de puertos (por defecto) utilizados por troyanos*

    * Encontrareis varias listas actualizadas en http://www.sys-security.com/html/papers/trojan_list.html,http://www.simovits.com/nyheter9902.html, http://www.robertgraham.com/pubs/firewall-seen.html,http://www.wittys.com/files/all-ip-numbers.txt, o buscando trojan port list en http://www.google.com.

    2 Death21 Back Construction, Blade Runner,

    Doly Trojan, Fore, FTP Trojan,Invisible FTP, Larva, MBT, Motiv,Net Administrator, Senna Spy FTPServer, WebEx, WinCrash

    23 Tint Telnet Server, Truva Atl25 Ajan, Antigen, Email Password

    Sender, Gip, Haebu Coceda (Naebi),Happy 99, I Love You, Kaung2, ProMail Trojan, Shtrilitz, Stealth,Tapiras, Terminator, WinPC,WinSpy

    31 Agent 31, Hackers Paradise, MastersParadise

    41 Deep Throat48 DRAT50 DRAT59 DMSetup79 Firehotcker80 Back End, Executer, Hooker,

    RingZero99 Hidden Port 2.0110 ProMail Trojan113 Invisible Identd daemon, Kazimas119 Happy99121 Jammer Killah V123 Net Controller133 Faranz, port 146 - Infector146 UDP Infector170 A-Trojan421 TCP Wrappers456 Hackers Paradise531 Rasmin555 ini-Killer, NetAdmin, Phase Zero,

    Stealth Spy666 Attack FTP, Back Construction,

    Cain & Able, NokNok, SatanzBackdoor, ServeU, Shadow Phyre

    667 SniperNet669 DP Trojan692 GayOL777 Aimspy133 Faranz, port 146 - Infector808 WinHole911 Dark Shadow999 Deep Throat, WinSatan1000 Der Spaeher 31001 Der Spaeher 3, Doly Trojan,

    Silencer, WebEx1010 Doly Trojan 1.35

    1011 Doly Trojan1012 Doly Trojan1015 Doly Trojan 1.51016 Doly Trojan 1.61020 Vampire1024 NetSpy, Psyber Streaming Server1029 InCommand Access1033 NetSpy1042 Blah 1.11045 Rasmin1050 Mini Command 1.2 Access1080 WinHole1081 WinHole1082 WinHole1083 WinHole1090 Xtreme1095 RAT1097 RAT1098 RAT1099 BFevolution, RAT1170 Psyber Stream Server, Streaming

    Audio Trojan, Voice1200 UDP NoBackO1201 UDP NoBackO1207 Softwar1212 Kaos1225 Scarab1234 Ultors Trojan1243 BackDoor-G, SunSeven, SubSeven

    Apocalypse1245 VooDoo Doll1255 Scarab1256 Project nEXT1269 Mavericks Matrix1313 NETrojan1338 Millenium Worm1349 UDP BackOrifice DLL1492 FTP99CMP1509 Psyber Streaming Server1524 Trinoo1600 Shivka-Burka1777 Scarab1807 Spy Sender1981 Shockrave1966 Fake FTP1969 OpC BO1981 Shockrave1999 TransScout, Backdoor2000 Der Spaeher 3, TransScout, Insane

    Network 4, Milennium2001 Der Spaeher 3, TransScout, Trojan

  • 28

    Cow2002 TransScout2003 TransScout2004 TranScout2005 TransScout2023 Ripper Pro, PassRipper2080 WinHole2115 Bugs2140 Deep Throat, The invasor2155 illusion Mailer2283 HVL Rat 52300 Xplorer2565 Striker2583 WinCrash 22600 Digital Root Beer2716 The Prayer 22773 SubSeven2801 Phineas Phucker2989 UDP Rat3000 Remote Shutdown3024 WinCrash3128 RingZero3129 Masters Paradise3150 Deep Throat, The invasor3459 Eclipse 2000, Sanctuary3700 Portal Of Doom3791 Eclypse, Totaleclipse 1.03801 UDP Eclypse4000 Psyber Streaming Server, Skydance4092 WinCrash4242 Virtual Hacking Machine4321 BoBo, SchoolBus 1.04444 Prosiak, Swift remote4567 File Nail4590 ICQTrojan5000 Bubbel, Back Door Setup, S ockets

    de Troie, Socket 235001 Back Door Setup, Socket de Troie5010 Solo5011 One Of The Last Trojans (OOTLT),

    OOTLT Cart5031 NetMetropolitan 1.0/1.045032 NetMetropolitan5321 Filehotcker5343 wCrat5400 Blade Runner, Back Construction

    1.2/1.55401 Blade Runner, Back Construction5402 Blade Runner, Back Construciton5512 illusion Mailer5521 illusion Mailer5550 Xtcp, Xtcp25555 ServeMe5556 Bo Facil5557 Bo Facil5569 RoboHack5637 Crasher5638 Crasher5714 WinCrash5741 WinCrash

    5742 WinCrash5882 UDP Y3K RAT5888 Y3K RAT6000 The Thing6006 The Thing6272 Secret Service6400 The Thing6666 TCPShell (*NIX Backdoor)6669 Vampyre6670 Deep Throat6711 SubSeven6712 SubSeven6713 SebSeven6723 Mstream6771 Deep Throat6776 BackDoor-G, SubSeven6838 UDP Mstream6883 DeltaSource6912 ShitHeep6913 ShitHeep Danny6939 Indoctrination6969 GeteCrasher, Priority, IRC 36970 GeteCrasher7000 Remote Grab, Kazimas7001 Freak887215 SubSeven7300 NetMonitor7301 NetMonitor7302 NetMonitor7303 NetMonitor7304 NetMonitor7305 NetMonitor7306 NetMonitor7307 NetMonitor7308 NetMonitor7309 NetMonitor7424 Host Control7424 UDP Host Control7789 Back Door Setup, ICKiller7983 Mstream8080 RingZero8787 BO2K8879 Hack Office Armageddon8988 BacHack8989 Rcon9000 Netministrator9325 UDP Mstream9400 InCommand9872 Portal Of Doom9873 Portal Of Doom9874 Portal Of Doom9875 Portal Of Doom9876 Cyber Attack, RUX9878 TransScout9989 ini-Killer9999 The Prayer 110067 UDP Portal Of Doom10085 Syphillis10086 Syphillis10101 BrainSpy

  • 29

    10167 UDP Portal Of Doom10520 Acid Shivers10528 Host Control10607 Coma10666 Ambush10752 LINUX mounts Backdoor11000 Senna Spy11050 Host Control11051 Host Control11223 Progenic Trojan12076 Gjamer12223 Hack 99 KeyLogger12345 NetBus, GabanBus, X-Bill, Pie Bill

    Gates12346 NetBus 1.0, GabanBus, X-Bill12361 Whack-a-Mule12362 Whack-a-Mule12623 UDP DUN Control12624 Buttman12631 Whack Job12701 Eclipse 200012754 Mstream13000 Senna Spy13010 Hacker Brazil13700 Kuang 2 The Virus15092 Host Control15104 Mstream16484 Mosucker16660 Stracheldracht16772 ICQ Revenge16959 Subseven DEFCON8 2.116969 Priority, Portal Of Doom17166 Mosaic17300 Kaung 2 The Virus17777 Nephron18753 UDP Shaft19864 ICQ Revenge20000 Milennium20001 Milennium20002 AcidkoR20034 NetBus 2 Pro20203 Logged!, Chupacabra20331 Bla20432 Shaft20432 UDP Shaft21544 Girl Friend, Kidterror, Schwindler

    1.8, Schwindler 1.8222222 Prosiak23023 Logged23432 Asylum23456 Evil FTP, Ugly FTP, Whack Job23476 Donald Duck23476 UDP Donald Duck23477 Donald Duck26274 UDP Delta Source26681 Spy Voice27374 SubSeven 2.127444 UDP Trinoo27573 SubSeven27665 Trinoo

    29104 Host Control29891 UDP The Unexplained30001 TerrOr3230029 AOL Trojan 1.130100 NetSphere30101 NetSphere30102 NetSphere30103 NetSphere30103 UDP NetSphere30133 NetSphere Final 1.31.337, Trojan

    Spirit 2001a30303 Sockets de troie, Socket 23, Socket

    2530974 Intruse30999 Kaung 231335 UDP Trinoo31336 BO Whack, ButtFunnel31337 Baron Night, BO Client, BO2, BO

    Facil31337 UDP Back fire, Back Orifice, Deep BO31338 NetSpy DK, ButtFunnel31338 UDP Back Orifice, Deep BO31399 NetSpy DK31554 Schwindler31666 BoWhack31785 Hack a Tack31787 Hack a Tack31788 Hack a Tack31789 UDP Hack a Tack31791 UDP Hack a Tack31792 Hack a Tack32100 Peanut Brittle, Project nEXT32418 Acid Battery 1.033333 Blakharaz, Prosiak33577 PsychWard33777 PsychWard33911 Spirit 2001a34324 BigGluck, TN, Tiny Telnet Server34555 UDP Trinoo - Windows35555 UDP Trinoo - Windows37651 Yet Another Trojan40412 The Spy40421 Masters Paradise, Agent 4042140422 Masters Paradise40423 Masters Paradise40426 Masters Paradise41666 Remote Boot41666 UDP Remote Boot43210 SchoolBus 1.6/2.044444 Prosiak47262 UDP Delta Source49301 Online KeyLogger50505 Sockets de Troie50766 Fore, Schwindler50776 Fore, Remote Windows Shutdown51996 Cafeini52317 Acid Battery 200053001 Remote Windows Shutdown54283 SubSeven54320 Back Orifice 2000

  • 30

    54321 Back Orifice 2000, SchoolBus1.6/2.0

    54321 UDP Back Orifice57341 Netraider58339 ButtFunnel60000 Deep Throat60068 Xzip 600006860411 Connection

    61348 BunkerHill61466 TeleCommando61603 BunkerHill63485 BunkerHill65000 Devil 1.03, Stacheldracht65432 The Traitor65432 UDP The Traitor65535 RC