Fundamentos del Pivoting

El pivoting es una técnica crucial en el hacking ofensivo, ya que permite a un atacante acceder a redes o sistemas que están detrás de la máquina comprometida.

Importancia del Pivoting

  1. Acceso a redes internas: Muchas redes están segmentadas o aisladas, por lo que una máquina comprometida en la red perimetral no tiene acceso directo a sistemas sensibles o servidores internos. Con pivoting, un atacante puede usar la máquina comprometida como un puente para alcanzar estas áreas protegidas.

  2. Movimiento lateral: El pivoting permite al atacante realizar movimiento lateral, es decir, moverse de un sistema a otro dentro de una red interna. Esto es crucial para escalar privilegios y comprometer más máquinas dentro de la infraestructura objetivo.

  3. Persistencia: Establecer un pivote proporciona al atacante un punto de entrada persistente a la red, permitiéndole mantener acceso a largo plazo y realizar actividades como exfiltración de datos o instalación de malware adicional.

  4. Evasión de defensas perimetrales: El tráfico entre el atacante y la red interna pasa desapercibido para los sistemas de monitoreo perimetral, ya que todo el tráfico parece provenir de la máquina comprometida.

Diferencias entre el Pivoting en Windows y Linux

Aunque el concepto de pivoting es el mismo en ambos sistemas operativos, las diferencias en sus arquitecturas, APIs y herramientas disponibles hacen que el enfoque para establecer el pivoting varíe entre Windows y Linux.

1. Pivoting en Windows

En Windows, el pivoting puede ser más complejo debido a las características del sistema operativo, pero es igual de poderoso. Windows cuenta con un conjunto de APIs y bibliotecas como Winsock y RRAS (Routing and Remote Access Service), que permiten establecer conexiones avanzadas y manipular el tráfico de red. Además, Windows ofrece un soporte nativo para múltiples redes y la creación de rutas estáticas, lo que facilita el redireccionamiento del tráfico a través de la máquina comprometida.

  • Herramientas utilizadas en Windows:

    • Metasploit: Incluye módulos para crear SOCKS proxies que redirigen el tráfico a través de la máquina comprometida. Con el uso del meterpreter, se puede configurar un pivote y enrutar el tráfico hacia otras máquinas de la red interna.

    • Cobalt Strike: Permite crear "beacons" que pueden actuar como pivotes para redirigir el tráfico de red. Los beacons pueden ser configurados para interactuar con redes internas y ejecutar comandos en máquinas remotas.

    • Chisel: Es una herramienta muy utilizada para pivoting y tunneling que permite establecer un proxy TCP/HTTP entre dos sistemas. Ideal para escenarios de pivoting en redes Windows comprometidas.

    • Rpivot: Una herramienta que permite el tunneling de conexiones TCP desde un equipo cliente a un servidor. Es útil en pivoting cuando se requiere que las conexiones de red fluyan a través de un pivote de forma segura y controlada.

  • Técnicas en Windows:

    • SOCKS proxy: Configuración de proxies para redirigir tráfico desde el sistema comprometido a través de la red interna.

    • Port forwarding: Permite redirigir puertos desde el sistema comprometido a otras máquinas dentro de la red.

2. Pivoting en Linux

El pivoting en Linux tiende a ser más directo, dado que Linux está diseñado para ser un sistema operativo flexible y poderoso para la administración de redes. Linux tiene una amplia gama de herramientas y comandos nativos para manipular la red, y el pivoting puede ser más fácil de configurar en entornos Linux con herramientas como sshuttle, SSH, o Proxychains.

  • Herramientas utilizadas en Linux:

  • SSH (Secure Shell): Una de las herramientas más utilizadas para pivoting en Linux. Utilizando la opción de SSH tunneling, los atacantes pueden redirigir tráfico hacia la red interna, tanto con local port forwarding como dynamic port forwarding (utilizando un proxy SOCKS5).

ssh -D 9050 usuario@maquina_comprometida
  • Este comando establece un proxy dinámico en el puerto 9050, permitiendo redirigir tráfico a través de la máquina comprometida.

  • Proxychains: Se utiliza para encadenar herramientas a través de un proxy SOCKS o HTTP. Es muy útil en conjunto con SSH para enviar tráfico de herramientas como Nmap o Metasploit a través de un túnel.

  • Chisel: Al igual que en Windows, Chisel se puede utilizar en Linux para crear túneles TCP/HTTP, facilitando la redirección del tráfico hacia sistemas internos.

  • Rpivot: Proporciona una forma sencilla de establecer túneles TCP desde la máquina comprometida a través de un pivote hacia redes internas.

  • sshuttle: Es una herramienta muy versátil que permite hacer pivoting utilizando el protocolo SSH. A diferencia de solo redirigir puertos, sshuttle permite redirigir todo el tráfico de la red a través de la máquina comprometida, como si se tratara de una VPN.

  • Técnicas en Linux:

    • Local Port Forwarding: Redirige el tráfico de un puerto local en la máquina comprometida a un puerto en una máquina remota dentro de la red interna.

    • Dynamic Port Forwarding: Permite establecer un proxy SOCKS en la máquina comprometida para redirigir todo el tráfico hacia la red interna a través del túnel SSH.

    • sshuttle: Una opción más avanzada que permite redirigir todo el tráfico de red a través de la máquina comprometida, simulando el funcionamiento de una VPN interna.

SIGAMOS CON EL Wordpress

Proxychains con SSH dinámico

Hemos logrado identificar efectivamente la existencia de 9 servidores dentro de la red interna.

Estos servidores que se encuentran en la red interna no tienen visibilidad desde el exterior o no tienen una ip publica.

Esto lo podemos validar con el siguiente comando desde un Kali Linux externo que se encuentra alojado en la maquina atacante:

Se puede apreciar la perdida de paquete ICMP por lo tanto no tenemos alcance directo con la IP 172.16.1.6
  • Sin embargo, si ejecutamos estos mismos comandos desde el WordPress comprometido si tenemos alcance:

Teniendo en cuenta lo anterior, vamos a realizar un proceso de pivoting para tener alcance desde nuestro KaliLinux local contra la red privada detectada previamente.

El pivoting es una técnica de seguridad que se utiliza en las auditorías de seguridad autorizadas para moverse lateralmente a través de la red después de haber comprometido un activo tecnológico. Esta técnica implica utilizar el acceso obtenido a través de un activo tecnológico comprometido para tratar de acceder a otros sistemas dentro de la red que podrían estar más protegidos.

Es importante realizar pivoting después de comprometer un activo tecnológico en una auditoría de seguridad autorizada porque ayuda a identificar otras posibles vulnerabilidades y riesgos de seguridad en la red que pueden ser explotados por los atacantes. Al moverse lateralmente a través de la red, los auditores de seguridad pueden encontrar otros sistemas que podrían ser vulnerables a los mismos tipos de ataques y explotarlos antes de que sean utilizados por atacantes malintencionados.

Además, el pivoting también permite a los auditores de seguridad evaluar la eficacia de las medidas de seguridad de la red en su conjunto. Al comprometer un activo tecnológico y luego moverse lateralmente a través de la red, los auditores de seguridad pueden identificar posibles lagunas en la seguridad de la red y recomendar mejoras en la estrategia de seguridad.

Nosotros vamos a utilizar proxychains y el archivo de configuración se encuentra en la primera línea de comando:

En la segunda línea estamos utilizando el comando que nos permitirá obtener alcance desde proxychains con SSH dinámico.

El pivoting utilizando SSH dinámico es una técnica de seguridad que se utiliza para moverse lateralmente a través de una red después de haber comprometido un activo tecnológico. En lugar de utilizar herramientas específicas para el pivoting, esta técnica utiliza una conexión SSH dinámica para redirigir el tráfico de red a través del sistema comprometido.

Para utilizar esta técnica, el primer paso es comprometer un activo tecnológico dentro de la red, como una computadora o un servidor. Una vez comprometido, se establece una conexión SSH dinámica entre el sistema comprometido y el sistema atacante.

Una vez establecida la conexión SSH dinámica, se puede redirigir el tráfico de red a través del sistema comprometido para acceder a otros sistemas dentro de la red. Esto se hace configurando la herramienta o aplicación que se está utilizando para conectarse a los sistemas de la red para que utilice la conexión SSH dinámica en lugar de una conexión directa.

La ventaja de utilizar SSH dinámico para el pivoting es que la conexión SSH cifra el tráfico de red y lo hace más difícil de detectar. Además, al utilizar una conexión SSH dinámica, se puede evitar la necesidad de instalar herramientas específicas de pivoting en el sistema comprometido, lo que puede ser detectado por las medidas de seguridad de la red.

Para validar que este proceso funciono correctamente podemos intentar lanzando un Nmap hacia un recurso anteponiendo proxychains:

Si se pudo realizar el escaneo desde la maquina atacante.

Last updated