si tienes un troyano de conexión inversa, no importa cual puerto uses, así que deberías usar uno entre 1024 y menor a 40000, esto es porque son los puertos comunes de salida, si intentas conectarte por debajo de 1024 es sospechoso, por otro lado, si el puerto se ve "abierto" quiere decir que un programa lo está usando, en ese caso tu programa no podrá usarlo
Engel, no te lo tomes mal, pero no estoy pidiendo la información encontrada en un manual para kiddies, estoy yendo más a lo hondo, a lo técnico, te cuento.
Un troyano puede usar cualquier puerto entre el 1 y 65000 y pico, siempre y cuando dicho socket no lo tenga ocupado otro programa.
Por un lado, un puerto puede estar abierto y no haber ningún programa escuchando, y por otro un puerto solo está ocupado cuando un programa lo tiene asignado.
En caso de DNS no hay un programa que tenga asignado dicho puerto, simplemente son consultas (paquetes) que se envían y los servidores DNS resuelven. Lo que yo quiero hacer es que mi programa encapsule información en paquetes DNS (
Ejemplo de lo que quiero).
¿Que quiero hacer realmente? ─ Por si no ha quedado muy claro, me explico mejor.
Quiero cargar en la máquina remota mi "servidor troyano", que encapsule toda la información que envíe en paquetes DNS (por tcp o udp) y las envíe a mi "cliente troyano". Básicamente,
encapsular tráfico en paquetes DNS. También conocido como "tunel"