Los puertos son como agujeros en una pared, existen, pero si nadie les presta atención, no sirve de nada arrojarles objetos.
Un programa utiliza puertos (o sockets) para conectarse con otros dispositivos en la misma red (y, a través de técnicas de enrutamiento, el programa puede alcanzar otras redes). La forma en que funciona es que el programa abre una conexión hacia el exterior y escucha la conexión que abrió. El programa tiene que hacer algo especial para escuchar las conexiones entrantes desde el exterior (como hacen los servidores HTTP, toman todas las conexiones que van al puerto 80, por ejemplo, y procesan esa solicitud).
Si el programa no hace esto algo especial , entonces incluso si una conexión pasa por ese puerto, el programa no lo procesará y quedará anulado.
Cuando obtuviste la IP de tu atacante, exploraste en busca de puertos abiertos, pero el atacante no tenía un programa que escuchara las conexiones desde el mundo exterior (o lo configuró de manera que solo registrara tus solicitudes de conexión, pero nada con ellos).
La mejor manera de protegerse de ataques como este es instalar un firewall y tal vez un monitor de red, por ejemplo, Little Snitch le dirá cada vez que se realice una conexión desde o hacia un programa de su computadora, y podrá bloquear o permitir esa conexion Verá que al menos en OSX hay muchas llamadas a los servidores de Apple.