Lo que se ve ultimamente es que se utiliza javascript para llenar la memoria heap con la shellcode, la famosa tecnica "heap spraying" para explotar vulnerabilidades.
si tienes una conexiòn ADSL con un router significa que tienes una salida a internet nateada. Por defecto al router dejara salir cualquier conexion a cualquier puerto.
El problema es cuando intentan conectarse a ti... Tendras con configurar para hacer un forward de puertos y que la shell llegue a tu maquina con ip privada y no al router.