Hay una diferencia entre un gusano y un virus. Este último es más un fragmento de código oportunista que se copia a sí mismo, pero generalmente requiere que un usuario haga algo para ayudar o ayudar al proceso. Un gusano, por otro lado, es mucho más proactivo. Es un programa independiente, que intentará propagarse y ejecutarse en otras máquinas. Normalmente lo hace explotando algún tipo de vulnerabilidad, en un sentido, es un "pirata informático automatizado" que irrumpe en otra máquina, copia el algoritmo y lo ejecuta.
Esta línea, por supuesto, es bastante abstracta, ya que los virus de correo electrónico son, para todos los propósitos prácticos, realmente gusanos, ya que iniciarán su propagación ellos mismos, y solo requieren la pequeña 'ayuda' del usuario que ejecuta el archivo adjunto.
En cuanto a cómo lo hacen los gusanos, dependerá de qué gusano particular estás hablando. Si desea una descripción general sin detalles, lea el artículo "gusano informático" en Wikipedia.