
Utilidad ligera para engañar escáneres de puertos
Este script está diseñado para abrir tantos sockets como desees (entre 1024 y 65535).
Los puertos menores a 1024 también funcionan, pero debes ser usuario root para ello.
Esto puede ser útil cuando no quieres que otros mapeen tu dispositivo
para ver qué estás ejecutando y qué no, por lo que es un pequeño paso para frustrar el reconocimiento.
Portforge.cr utiliza una técnica incorporada en el compilador Crystal llamada Fibers.
Son muy similares a los hilos del sistema, pero Fibers es mucho más ligero
y la ejecución se gestiona a través del proceso 1.
Cuanto mayor sea el rango que elijas, más tardará el script en
cargar cada socket, pero he intentado optimizar el script al máximo
por lo que solo debería tomar unos minutos (dependiendo del sistema, por supuesto).
El script funciona en 2 pasos.
Primero realiza su propio escaneo del sistema para ver qué puerto ya está abierto.
Luego, los puertos abiertos se colocan en una lista y los puertos cerrados en otra lista.
El siguiente paso es abrir los puertos cerrados, por lo que el script toma la lista con todos los puertos cerrados
y abre un socket en cada uno de ellos.
Mientras la fibra principal abre un socket en cada puerto,
se llama a otra fibra bajo la principal que escucha conexiones entrantes y las cierra directamente.
Este proceso se repite indefinidamente, o hasta que interrumpas el script.
crystal build portforge.cr
./portforge IP startport endport
La primera imagen muestra portforge.cr en ejecución y la segunda es el resultado de un escaneo con Nmap.
Como puedes ver, Nmap piensa que estoy ejecutando todos estos servicios cuando en realidad solo está portforge.cr en ejecución.
