Articulo de referencia

Escaneo inactivo

Escaneo inactivo en un puerto abierto Un escaneo inactivo es un método de escaneo de puertos TCP para determinar qué servicios están abiertos en un equipo objetivo [1] sin dejar...

Escaneo inactivo en un puerto abierto

Un escaneo inactivo es un método de escaneo de puertos TCP para determinar qué servicios están abiertos en un equipo objetivo [1] sin dejar rastros que apunten hacia uno mismo. Esto se logra mediante el uso de suplantación de paquetes para hacerse pasar por otro equipo (llamado " zombi ") de modo que el objetivo crea que el zombi está accediendo a él. El objetivo responderá de diferentes maneras dependiendo de si el puerto está abierto, lo que a su vez se puede detectar consultando al zombi. [2]

Descripción general

Esta acción se puede realizar a través de utilidades de red de software comunes como nmap y hping . El ataque implica enviar paquetes falsificados a una máquina objetivo específica en un intento de encontrar características distintivas de otra máquina zombi . El ataque es sofisticado porque no hay interacción entre la computadora atacante y la máquina objetivo: el atacante interactúa solo con la computadora " zombi ".

Este exploit funciona con dos propósitos: como escáner de puertos y como mapeador de relaciones IP de confianza entre máquinas. El sistema objetivo interactúa con la computadora " zombi " y se pueden observar diferencias de comportamiento al utilizar diferentes "zombis" con evidencia de diferentes privilegios otorgados por el objetivo a diferentes computadoras. [3]

La intención general detrás del escaneo inactivo es "verificar el estado del puerto mientras permanece completamente invisible para el host de destino". [4]

Orígenes

Descubierto por Salvatore Sanfilippo (también conocido por su nombre de usuario "Antirez") en 1998, [5] muchos "hackers" de sombrero negro han utilizado el escaneo inactivo para identificar de forma encubierta los puertos abiertos en un equipo objetivo en preparación para atacarlo. Aunque originalmente se lo llamó escaneo tonto , el término escaneo inactivo se acuñó en 1999, después de la publicación de un escáner de campo de identificación de 16 bits (IPID) de prueba de concepto llamado idlescan , por Filipe Almeida (también conocido como LiquidK). [6] Este tipo de escaneo también se puede denominar escaneo zombi ; todas las nomenclaturas se deben a la naturaleza de uno de los equipos involucrados en el ataque.

Conceptos básicos de TCP/IP

El diseño y funcionamiento de Internet se basa en el conjunto de protocolos de Internet , también denominado comúnmente TCP/IP. IP es el protocolo principal de la capa de Internet del conjunto de protocolos de Internet y tiene la tarea de entregar datagramas desde el host de origen al host de destino basándose únicamente en sus direcciones . Para este propósito, IP define métodos de direccionamiento y estructuras para la encapsulación de datagramas . Es un protocolo sin conexión y se basa en la transmisión de paquetes. Cada paquete IP de una fuente determinada tiene un ID que identifica de forma única el datagrama IP. [ aclaración necesaria ]

TCP proporciona una entrega ordenada y confiable de un flujo de bytes desde un programa en una computadora a otro programa en otra computadora. TCP es el protocolo en el que se basan las principales aplicaciones de Internet, como la World Wide Web , el correo electrónico y la transferencia de archivos. Cada una de estas aplicaciones (servidor web, servidor de correo electrónico, servidor FTP) se denomina servicio de red . En este sistema, los servicios de red se identifican utilizando dos componentes: una dirección de host y un número de puerto. Hay 65536 números de puerto distintos y utilizables por host. La mayoría de los servicios utilizan un rango limitado de números de manera predeterminada, y casi siempre se utiliza el número de puerto predeterminado para un servicio.

Algunos escáneres de puertos escanean solo los números de puerto más comunes, o los puertos más comúnmente asociados con servicios vulnerables, en un host determinado. Consulte: Lista de números de puerto TCP y UDP .

El resultado de un escaneo en un puerto generalmente se generaliza en una de tres categorías:

  • Abierto o Aceptado : el host envió una respuesta indicando que un servicio está escuchando en el puerto.
  • Cerrado , denegado o no escucha : el host envió una respuesta indicando que se denegarán las conexiones al puerto.
  • Filtrado , descartado o bloqueado : no hubo respuesta del anfitrión.

Los puertos abiertos presentan dos vulnerabilidades de las que los administradores deben tener cuidado:

  1. Preocupaciones de seguridad y estabilidad asociadas con el programa responsable de entregar el servicio: Puertos abiertos.
  2. Preocupaciones de seguridad y estabilidad asociadas con el sistema operativo que se ejecuta en el host: puertos abiertos o cerrados.

Los puertos filtrados no suelen presentar vulnerabilidades. El host de una red local puede estar protegido por un firewall que filtra, según reglas que su administrador establezca, los paquetes. Esto se hace para denegar servicios a hosts desconocidos y evitar intrusiones en la red interna. El protocolo IP es un protocolo de transmisión de la capa de red.

Mecánica básica

Los escaneos inactivos aprovechan el valor predecible del campo de identificación del encabezado IP : cada paquete IP de una fuente determinada tiene un ID que identifica de forma única fragmentos de un datagrama IP original; la implementación del protocolo asigna valores a este campo obligatorio generalmente en un incremento de valor fijo (1). Debido a que los paquetes transmitidos se numeran en una secuencia, puede decir cuántos paquetes se transmiten entre dos paquetes que recibe.

Un atacante primero buscaría un host con un número de secuencia predecible y secuencial (IPID). Las últimas versiones de Linux , Solaris , OpenBSD y Windows Vista no son adecuadas como zombis, ya que el IPID se ha implementado con parches [7] que lo aleatorizan. [1] Los equipos elegidos para ser utilizados en esta etapa se conocen como "zombis". [2]

Una vez que se encuentra un zombi adecuado, el siguiente paso sería intentar establecer una conexión TCP con un servicio (puerto) determinado del sistema de destino, haciéndose pasar por el zombi. Esto se hace enviando un paquete SYN al equipo de destino, falsificando la dirección IP del zombi, es decir, con la dirección de origen igual a la dirección IP del zombi.

Si el puerto de la computadora de destino está abierto, aceptará la conexión para el servicio y responderá con un paquete SYN/ACK al zombie.

Luego, la computadora zombie enviará un paquete RST a la computadora de destino (para restablecer la conexión) porque en realidad no envió el paquete SYN en primer lugar.

Como el zombi tuvo que enviar el paquete RST, incrementará su IPID. De esta manera, un atacante podría saber si el puerto del objetivo está abierto. El atacante le enviará otro paquete al zombi. Si el IPID se incrementa solo en un paso, el atacante sabrá que el puerto en particular está cerrado.

El método asume que el zombie no tiene otras interacciones: si hay algún mensaje enviado por otras razones entre la primera interacción del atacante con el zombie y la segunda interacción que no sea el mensaje RST, habrá un falso positivo .

Encontrar un huésped zombi

El primer paso para ejecutar un escaneo inactivo es encontrar un zombie apropiado. Debe asignar paquetes de ID de IP de manera incremental en forma global (en lugar de por host con el que se comunica). Debería estar inactivo (de ahí el nombre del escaneo), ya que el tráfico extraño aumentará su secuencia de ID de IP, confundiendo la lógica del escaneo. Cuanto menor sea la latencia entre el atacante y el zombie, y entre el zombie y el objetivo, más rápido procederá el escaneo. [8]
Tenga en cuenta que cuando un puerto está abierto, los IPID se incrementan en 2. A continuación se muestra la secuencia:
1. Atacante al objetivo -> SYN, objetivo a zombie -> SYN/ACK, Zombie a objetivo -> RST (IPID se incrementa en 1)
2. Ahora el atacante intenta sondear al zombie para obtener el resultado. Atacante a Zombie -> SYN/ACK, Zombie a Atacante -> RST (IPID se incrementa en 1)
Entonces, en este proceso, IPID se incrementa en 2 finalmente.

Cuando se intenta un escaneo inactivo, las herramientas (por ejemplo, nmap) prueban el zombi propuesto e informan de cualquier problema que tenga. Si uno no funciona, prueba con otro. Hay suficientes hosts de Internet vulnerables como para que no sea difícil encontrar candidatos a zombis. Un enfoque común es simplemente ejecutar un barrido de ping de alguna red. Elegir una red cercana a la dirección de origen o cerca de la de destino produce mejores resultados. Puedes probar un escaneo inactivo usando cada host disponible de los resultados del barrido de ping hasta que encuentres uno que funcione. Como siempre, es mejor pedir permiso antes de usar las máquinas de alguien para fines inesperados, como un escaneo inactivo.

Los dispositivos de red simples a menudo se convierten en grandes zombis porque normalmente están subutilizados (inactivos) y construidos con pilas de red simples que son vulnerables a la detección de tráfico de ID de IP.

Aunque identificar un zombi adecuado requiere algo de trabajo inicial, se pueden seguir reutilizando los buenos. Como alternativa, se han realizado algunas investigaciones sobre el uso de servicios web públicos no deseados como hosts zombi para realizar escaneos inactivos similares. Aprovechar la forma en que algunos de estos servicios realizan conexiones salientes tras los envíos de los usuarios puede servir como una especie de escaneo inactivo de pobre. [9]

Usando hping

El método hping para el escaneo inactivo proporciona un ejemplo de nivel inferior de cómo se realiza el escaneo inactivo. En este ejemplo, se escaneará el host de destino (172.16.0.100) utilizando un host inactivo (172.16.0.105). Se probará un puerto abierto y uno cerrado para ver cómo se desarrolla cada escenario.

En primer lugar, establezca que el host inactivo está realmente inactivo, envíe paquetes mediante hping2 y observe que los números de identificación aumentan de a uno. Si los números de identificación aumentan de forma aleatoria, el host no está realmente inactivo o tiene un sistema operativo que no tiene una identificación IP predecible.

[root@localhost hping2-rc3]# ./hping2  -S 172 .16.0.105
 HPING 172.16.0.105 (eth0 172.16.0.105): S establecido, 40 encabezados + 0 bytes de datos len=46 ip=172.16.0.105 ttl=128 id=1371 sport=0 flags=RA seq=0 win=0 rtt=0,3 ms len=46 ip=172.16.0.105 ttl=128 id=1372 sport=0 flags=RA seq=1 win=0 rtt=0,2 ms len=46 ip=172.16.0.105 ttl=128 id=1373 sport=0 flags=RA seq=2 win=0 rtt=0,3 ms len=46 ip=172.16.0.105 ttl= 128 id=1374 deporte=0 indicadores=RA seq=3 win=0 rtt=0,2 ms len=46 ip=172.16.0.105 ttl=128 id=1375 deporte=0 indicadores=RA seq=4 win=0 rtt=0,2 ms len=46 ip=172.16.0.105 ttl= 128 id=1376 deporte=0 indicadores=RA seq=5 win=0 rtt=0,2 ms len=46 ip=172.16.0.105 ttl=128 id=1377 deporte=0 indicadores=RA seq=6 win=0 rtt=0,2 ms len=46 ip=172.16.0.105 ttl=128 id=1378 deporte=0 indicadores=RA seq=7 win=0 rtt=0,2 ms len=46 ip=172.16.0.105 ttl=128 id=1379 deporte=0 indicadores=RA seq=8 win=0 rtt=0,4 ms 









Envíe un paquete SYN falsificado al host de destino en un puerto que espera que esté abierto. En este caso, se está probando el puerto 22 (ssh).

# hping2  —spoof 172 .16.0.105 -S 172 .16.0.100 -p 22 -c 1 HPING 172.16.0.100 (eth0 172.16.0.100): S establecido, 40 encabezados + 0 bytes de datos       


--- 172.16.0.100 estadística de hping --- 
1 paquete transmitido, 0 paquetes recibidos, 100 % de pérdida de paquetes 
en ida y vuelta mín./promedio/máx. = 0,0/0,0/0,0 ms

Como falsificamos el paquete, no recibimos una respuesta y hping informa una pérdida de paquetes del 100 %. El host de destino respondió directamente al host inactivo con un paquete de sincronización/confirmación. Ahora, verifique el host inactivo para ver si el número de identificación ha aumentado.

# hping2  -S 172 .16.0.105 -p 445 -c 1     

HPING 172.16.0.105 (eth0 172.16.0.105): S configurado, 40 encabezados + 0 bytes de datos 
len=46 ip=172.16.0.105 ttl=128 DF id=1381 sport=445 flags=SA seq=0 win=64320 rtt=0,3 ms

--- 172.16.0.105 estadística de hping --- 
1 paquete transmitido, 1 paquete recibido, 0 % de pérdida de paquetes 
en ida y vuelta, mín./promedio/máx. = 0,3/0,3/0,3 ms

Tenga en cuenta que el ID de los hosts proxy aumentó de id=1379 a id=1381. Se consumieron 1380 cuando el host inactivo respondió al paquete syn/ack del host de destino con un primer paquete.

Vuelva a ejecutar los mismos procesos probando un puerto que probablemente esté cerrado. Aquí estamos probando el puerto 23 (telnet).

# hping2  -S 172 .16.0.105 -p 445 -c 1 ; hping2—spoof 172 .16.0.105 -S 172 .16.0.100 -p 23 -c 1 ; hping2 -S 172 .16.0.105 -p 445 -c 1 HPING 172.16.0.105 (eth0 172.16.0.105): S establecido, 40 encabezados + 0 bytes de datos len=46 ip=172.16.0.105 ttl=128 DF id=1382 sport=445 flags=SA seq=0 win=64320 rtt=2.1 ms                    



--- 172.16.0.105 estadística de hping --- 
1 paquete transmitido, 1 paquete recibido, 0 % de pérdida de paquetes 
en el viaje de ida y vuelta, mín./promedio/máx. = 2,1/2,1/2,1 ms 
HPING 172.16.0.100 (eth0 172.16.0.100): S establecido, 40 encabezados + 0 bytes de datos

--- 172.16.0.100 estadística de hping --- 
1 paquete transmitido, 0 paquetes recibidos, 100 % pérdida de paquetes 
en ida y vuelta mín./prom./máx. = 0,0/0,0/0,0 ms 
HPING 172.16.0.105 (eth0 172.16.0.105): S configurado, 40 encabezados + 0 bytes de datos 
len=46 ip=172.16.0.105 ttl=128 DF id=1383 sport=445 flags=SA seq=0 win=64320 rtt=0,3 ms

--- 172.16.0.105 estadística de hping --- 
1 paquete transmitido, 1 paquete recibido, 0 % de pérdida de paquetes 
en ida y vuelta, mín./promedio/máx. = 0,3/0,3/0,3 ms

Tenga en cuenta que esta vez, el ID no aumentó porque el puerto estaba cerrado. Cuando enviamos el paquete falsificado al host de destino, respondió al host inactivo con un primer paquete que no aumentó el contador de ID.

Usando nmap

Lo primero que haría el usuario sería encontrar un zombi adecuado en la LAN :

Realizar un escaneo de puertos e identificación del SO (opción -O en nmap) en la red candidata a zombi en lugar de solo un escaneo de ping ayuda a seleccionar un buen zombi. Mientras esté habilitado el modo verbose (-v), la detección del SO generalmente determinará el método de generación de secuencia de ID de IP e imprimirá una línea como “Generación de secuencia de ID de IP: incremental”. Si el tipo se proporciona como incremental o incremental little-endian roto, la máquina es un buen candidato a zombi. Eso aún no es garantía de que funcionará, ya que Solaris y algunos otros sistemas crean una nueva secuencia de ID de IP para cada host con el que se comunican. El host también podría estar demasiado ocupado. La detección del SO y la lista de puertos abiertos también pueden ayudar a identificar sistemas que probablemente estén inactivos.

Otro método para identificar candidatos a zombis es ejecutar el script ipidseq NSE contra un host. Este script sondea un host para clasificar su método de generación de ID de IP y luego imprime la clasificación de ID de IP de manera muy similar a como lo hace la detección del SO. Como la mayoría de los scripts NSE, ipidseq.nse se puede ejecutar contra muchos hosts en paralelo, lo que lo convierte en otra buena opción para escanear redes enteras en busca de hosts adecuados.

nmap -v -O -sS 192.168.1.0/24

Esto le indica a nmap que haga un barrido de ping y muestre todos los hosts que están activos en el rango de IP indicado. Una vez que haya encontrado un zombie, deberá enviar los paquetes falsificados:

nmap -P0 -p <port> -sI <zombie IP> <target IP>

La yuxtaposición de imágenes muestra ambas etapas en un escenario exitoso.

Eficacia

Aunque muchos sistemas operativos son inmunes a este tipo de ataques, algunos sistemas populares siguen siendo vulnerables [1] , lo que hace que el escaneo inactivo siga siendo muy eficaz. Una vez que se completa un escaneo con éxito, no queda rastro de la dirección IP del atacante en el firewall del objetivo ni en el registro del sistema de detección de intrusiones . Otra posibilidad útil es la de eludir un firewall porque se está escaneando el objetivo desde la computadora del zombi [10] , que podría tener más derechos que el atacante.

Véase también

Notas

  1. ^ abc Erikson, Jon (1977). HACKING el arte de la explotación . San Francisco: NoStarch Press. p. 264. ISBN 1-59327-144-1.
  2. ^ ab "¿Qué es Idle Scan? | ICterra Tecnologías de la Información y la Comunicación". 2017-02-01 . Consultado el 2020-09-09 .
  3. ^ Son, Do (1 de diciembre de 2017). "Introducción al escaneo inactivo/zombi • Pruebas de penetración". Pruebas de penetración . Consultado el 9 de septiembre de 2020 .
  4. ^ Trapickin, Roman (septiembre de 2015). "¿Quién está escaneando Internet?" (PDF) . Semantic Scholar . S2CID  55929767. Archivado (PDF) del original el 20 de febrero de 2019. Consultado el 9 de septiembre de 2020 .
  5. ^ Sanfilippo, Salvatore (18 de diciembre de 1998). "Nuevo método de escaneo TCP" . Consultado el 28 de septiembre de 2010 .
  6. ^ Filipe Almeida (también conocido como LiquidK) (3 de diciembre de 1999). "idlescan (ip.id portscanner)" . Consultado el 9 de noviembre de 2010 .
  7. ^ Sanfilippo, Salvatore (26 de octubre de 1999). "predictable ip->id patch" (Parche predecible de IP a ID) . Consultado el 28 de septiembre de 2010 .
  8. ^ Gordon “Fyodor” Lyon (2010). “Capítulo 5 de escaneo de redes Nmap. Técnicas y algoritmos de escaneo de puertos”. Insecure.Com LLC . Consultado el 28 de septiembre de 2010 .
  9. ^ Martin “olemoudi” Obiols (2011). "Zombie Scans using Unintended Public Services" (Escaneos de zombis mediante servicios públicos no previstos). (Almost) No Tech Hacking Blog. Archivado desde el original el 20 de marzo de 2011. Consultado el 16 de marzo de 2011 .
  10. ^ Gordon “Fyodor” Lyon (2010). “Nmap Network Scanning Chapter 15. Nmap Reference Guide”. Insecure.Com LLC . Consultado el 28 de septiembre de 2010 .
  • Insecure.org/nmap/idlescan: un artículo detallado sobre el escaneo inactivo
  • Insecure.org - Sitio oficial de Nmap
  • Hping.org Archivado el 12 de marzo de 2007 en Wayback Machine - Sitio oficial de Hping
  • nmap.online-domain-tools.com - Un escáner Nmap en línea
  • Techtarget.com - Un artículo sobre escaneo inactivo
  • Seclists.org - Publicación original de seguimiento de errores
  • Blog ANTH: escaneos inactivos que utilizan servicios públicos
Obtenido de "https://es.wikipedia.org/w/index.php?title=Escaneo_inactivo&oldid=1196020346"