¿Son posibles los ataques MITM en los bucles de retorno HTTP?

4

Tengo un servidor web que se ejecuta en example.com . El servidor web realiza una solicitud del lado del servidor a example.com que produce un bucle de retorno, por lo que la solicitud nunca pasa a través de la red.

¿Esta solicitud es susceptible a un ataque MITM? Si es así, ¿cómo?

    
pregunta John Blackbourn 19.06.2014 - 00:15
fuente

2 respuestas

5

El problema está en acceder al servidor y obtener un nivel de privilegio adecuado .

actualización : y, por supuesto, si tiene dicho acceso, probablemente pueda tomar el control directamente del "servidor" o del "cliente", o de ambos, o acceder de forma encubierta a sus mismos datos sin saberlo. a ellos No hay necesidad de un hombre en el medio si eres el hombre dentro .

Pero digamos que tiene root allí ... entonces, sí, puede montar un ataque MitM incluso si no puede usar nada más que la interfaz de bucle de retorno por cualquier motivo, y no puede interferir de otro modo Operación del cliente o del servidor.

Todo lo que necesita es ve calhost duplicando su dirección en algo utilizable, y le dicen a la víctima que example.com se asigna a esa dirección .

Ejemplo práctico utilizando un servicio que escucho en el puerto localhost 631 - cupsd. Un servidor web escucharía en el puerto 80, pero todo lo demás sigue igual.

netstat -napo | grep LISTEN | grep -F 127.0.0.1
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      1321/cupsd          off (0.00/0/0)
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      1721/named          off (0.00/0/0)
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      1721/named          off (0.00/0/0)

Ahora no puedo escuchar de inmediato en el puerto elegido porque ya hay un proceso legítimo:

# netcat -l 127.0.0.1 631 &
[1] 26264
netcat: Address already in use
[1]+  Exit 1                  netcat -l 127.0.0.1 631
#

Pero nada me impide que cree otra interfaz de bucle invertido (lo: 0 en lugar de lo) usando aliasing ...

# ifconfig lo:0 127.0.0.42
# ifconfig lo:0
lo:0      Link encap:Local Loopback
          inet addr:127.0.0.42  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1

y le digo al sistema que example.com es de hecho 127.0.0.42 al manipular el archivo de hosts (si el DNS tuviera prioridad, modificaría su archivo de zona) ...

... y ahora puedo escuchar (en este caso, una sola línea)

# netcat -l 127.0.0.42 631 &
[1] 26442

y si envío esa línea, mi netcat escucha recibe (y podría responder):

# echo "Hello" | netcat 127.0.0.42 631
Hello
[1]+  Done                    netcat -l 127.0.0.42 631
#

Nada ha salido de la interfaz de bucle invertido (, excepto que, por supuesto, ¿cómo estoy dentro de ese cuadro si solo tiene una interfaz de bucle invertido? ), y si la conexión va a "example.com", el servidor no tiene forma de saber que la conexión está siendo secuestrada.

Podría intentar y hacer esto incluso sin crear un alias, pero el procedimiento requerido interrumpiría mucho las comunicaciones y podría no funcionar siempre, o incluso en absoluto, ya que no puedo evitar que el cliente y el servidor escuchen una. otro.

(El alias que hice aquí es solo una prueba de concepto, y probablemente causará estragos en la línea, solo considere que ahora tengo 127.0.0.1 y 127.0.0.42 en el mismo "troncal" y ambos tienen / 8 enmascaramiento )

    
respondido por el LSerni 19.06.2014 - 02:22
fuente
1

Suponiendo que example.com realmente se resuelve de nuevo en el servidor, y no en un equilibrador de carga, un terminador SSL u otra pieza de hardware, entonces no, no hay MITM ya que no hay nada en el medio. Si puede, usar localhost puede ser una mejor opción para asegurarse de que la solicitud siempre se mantenga local, pero eso no será posible si los vhosts basados en nombres están en uso.

    
respondido por el David 19.06.2014 - 00:32
fuente

Lea otras preguntas en las etiquetas