Hace unos días me enfrenté a una pregunta sobre cómo un servidor RAT puede llegar a través del firewall y conectarse al cliente. Esto era algo en lo que nunca antes había pensado, así que me sorprendió un poco la pregunta.
Entonces, la pregunta es, como se indicó anteriormente, cómo el servidor RAT puede conectarse al cliente RAT a través de un firewall. El cliente a menudo está configurado para escuchar un puerto, bastante arriba en el rango, y para que el cliente funcione correctamente, a menudo se necesita el reenvío de puertos. Esto tiene sentido; el alto número de puerto no interferirá con otras aplicaciones, por lo que su uso debería ser seguro y no están abiertos de forma predeterminada en la mayoría de los firewalls. No hay problemas aquí.
Ahora, para el servidor. Sabemos que solo infecta la computadora de la víctima y, por lo tanto, no puede realizar el reenvío de puertos. Supongo que tener el servidor de sondeo para una conexión podría ser una solución, pero sería feo, ineficiente y notable (al menos si está monitoreando su tráfico). Hacer que el cliente envíe una solicitud de conexión al servidor a través de otro puerto, que está abierto por defecto, podría ser otra solución, pero que podría interferir con otras aplicaciones, lo que sería muy malo desde el punto de vista de los atacantes.
Entonces, ¿cómo se hace? ¿Cómo llega el servidor RAT a través del firewall para conectarse al cliente y cómo recibe el servidor la solicitud de conexión del cliente sin la capacidad de reenviar los puertos utilizados?