¿Qué es el Movimiento Lateral?
Puesto de manera simple, el movimiento lateral es el grupo de técnicas usadas por los atacantes para moverse en una red. Una vez que el atacante ha ganado acceso a la primera máquina de la red, moverse es esencial por muchas razones, incluyendo:
- Conseguir nuestros objetivos como atacantes.
- Bypassear las restricciones de red existentes.
- Establecer puntos adicionales de entrada a la red.
- Crear confusión y evitar detección.
Mientras que muchas cadenas referencian movimiento lateral como un paso adicional en un proceso linear, es realmente parte de un ciclo. Durante este ciclo, usamos cualquier credencial disponible para realizar movimiento lateral, dándonos acceso a nuevas máquinas donde elevamos privilegios y extraemos credenciales si es posible. Con las nuevas credenciales, el ciclo comienza de nuevo.

Normalmente repetiremos el ciclo varias veces antes de alcanzar nuestro objetivo final. Si la primera máquina a la que accedemos es una máquina con muy poco acceso a recursos, puede que debamos movernos lateralmente hacia otros hosts que tengan más privilegios.
Un Ejemplo Rápido
Supón que estamos realizando un engagement de red team donde nuestro objetivo final es alcanzar el código interno de un repositorio, donde obtuvimos nuestro primer compromiso en la erd objetivo usando una campaña de phishing. Normalmente, las campañas de phishing son más efectivas contra usuarios no técnicos, por lo que nuestro primer acceso puede ser una máquina en el departamento de marketing.
Las estaciones de trabjo de marketing normalmente estarán limitadas a través de políticas de firewall par ano acceder a ningún servicio crítico en la red, incluyendo protocolos administrativos, puertos de bases de datos, servicios de monitorización, etc.
Para llegar a hosts y servicios sensibles, necesitamos movernos a otros hosts y pivotar desde ahí hacia nuestro objetivo final. Podríamos tratar de elevar privilegios de la estación de trabajo de Marketing y extraer los hashes de las contraseñas de usuarios locales. Si encontramos un administrador local, la misma cuenta puede estar presente en otros hosts. Después de hacer reconocimiento, encontramos una estación de trabajo con el nombre DEV-0001-PC. Podemos usar la contraseña del administrador local para acceder a DEV-001-PC y confirmar si pertenece a uno de los desarrolladores de la compañía. Desde ahí, el acceso al código objetivo está disponible.

Ten en cuenta que aunque el movimiento lateral necesita ser usado para circunvalar restricciones de firewall, es también útil para evadir la detección. En nuestro ejemplo, incluso si la estación de Marketing tiene acceso directo al repositorio, es probablemente deseable coonectar a través del PC del desarrollador. Este comportamiento sería menos sospechoso desde el punto de vista de un blue teamer.
La Perspectiva del Atacante
Hay varias maneras en las que un atacante puede moverse lateralmente. La forma más simple sería usar protocolos administrativos estandar como WinRM, RDP, VNC o SSH para conectarse a otras máquinas de la red. Este acercamiento puede ser usado para emular el comportamiento habitual de un usuario mientras que se mantenga alguna coherencia al planear dónde conectarse con la cuenta. Mientras que un usuario de IT conectándose al servidor vía RDP puede ser habitual y pasar desapercibido, hay que tener cuidadod no realizar conexiones sospechosas.
Los atacantes hoy en día también tienen otros métodos de moverse lateralmente mientras hacen más difícil para el blue team detectarlos. Aunque ninguna técnica debería considerarse infalible, podemos por lo menos intentar ser lo más silenciosos posible.
Administradores y UAC
Al realizar la mayoría de técnicas de movimiento lateral introducidas en esta unidad, usaremos principalmente credenciales de administrador. Mientras que uno puede esperar que cada cuenta de administrador sirva el mismo propósito, se debe de hacer una distinción entre dos tipos de administradores.
- Cuentas locales parte del grupo de administradores locales.
- Cuentas de dominio parte del grupo de administradores locales.
Las diferencias en las que estamos interesados son restricciones impuestas por el UAC (User Account Control) sobre los administradores locales (excepto la cuenta de administrador por defecto). Por defecto, los administradores locales no serán capaces de conectarse remotamente a una máquina y realizar tareas administrativas a no ser que usen una sesión interactiva a través de RDP. Windos denegará cualquier tarea administrativa pedida vía RPC, SMB o WinRM ya que dichos administradores estarán logueados con un token filtrado de indentidad media, previniendo que la cuenta ejecute acciones privilegiadas. La única cuenta local con privilegios completos es la cuenta Administrator (la por defecto).
Las cuentas de dominio con privilegios de administración local no estarán sujetas al mismo tratamiento y estarán logueadas con privilegios administrativos completos.
Esta funcionalidad de seguridad puede ser desactivada si así se desea y a veces puedes no encontrar diferencias entre cuentas locales o de dominio en el grupo de administradores. Aún así, es esencial tener en cuenta que si fallan algunas técnicas de movimiento lateral puede ser debido a usar un administrador local no por defecto donde se fuerza el UAC.
