Debe poder iniciar sesión en otro host en el mismo segmento de red. Algunas de las formas de obtener acceso al host mal configurado requieren root en el host intermedio, pero también hay una manera fácil de obtener acceso sin necesidad de root en el host intermedio.
La forma fácil de acceder al host usando IPv6
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
Los siguientes valores de ejemplo de más arriba deben comando para ser sustituidos por valores correctos para su caso de uso: fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
, y target-server
.
Explicación detallada de cómo funciona.
ProxyCommand
es una función ssh para usar cuando no puede abrir una conexión TCP directamente al host de destino. El argumento para ProxyCommand
es un comando cuyo stdin / stdout usar en lugar de una conexión TCP.
-W
se usa para abrir un reenvío de un solo puerto y conectarlo a stdin / stdout. Esto encaja muy bien con ProxyCommand
.
fe80::42:ff:fe:42%%eth0
es la dirección local de enlace del host de destino. Tenga en cuenta que debido al ProxyCommand
uso %
como carácter de escape, el comando ssh escrito debe usarse %%
en esa ubicación. Puede encontrar todas las direcciones locales de enlace en el segmento ejecutando ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
El uso de direcciones locales de enlace IPv6 para este propósito suele ser la forma más fácil porque está habilitado de forma predeterminada en todos los sistemas modernos, y las direcciones locales de enlace siguen funcionando incluso si las pilas de IPv4 e IPv6 están muy mal configuradas.
Volviendo a IPv4
Si IPv6 está completamente deshabilitado en el host mal configurado (absolutamente no recomendado), entonces puede que tenga que recurrir al uso de IPv4. Dado que IPv4 no tiene direcciones locales de enlace de la misma manera que IPv6, el acceso al host mal configurado mediante IPv4 se vuelve más complicado y necesita acceso de root en el host intermedio.
Si el host mal configurado aún podía usar su puerta de enlace predeterminada, podría acceder desde afuera. Posiblemente, la máscara de red mal configurada también rompió la puerta de enlace predeterminada debido a que la pila se negó a usar una puerta de enlace fuera del prefijo cubierto por la máscara de red. Si este es el caso, el host mal configurado solo podrá comunicarse con 192.168.1.8 porque esa es la única otra dirección IP en la subred actualmente accesible para este host mal configurado.
Si tiene un inicio de sesión en 192.168.1.8, es posible que pueda enviar ssh desde allí a 192.168.1.9. Si 192.168.1.8 no está asignado actualmente, puede asignarlo temporalmente a cualquier host en el segmento en el que tiene acceso de root.
fe80::42:ff:fe:42
es la dirección de ...? mi servidor mal configurado supongo?kasperd
publicó una gran respuesta lo suficientemente detallada como para que yo pueda aprender cómo puedo recuperarme de la situación en la pregunta. Esta respuesta es exactamente el paso a paso de cómo lo hice.arp -a
oip neighbor list
comoroot
encontrar la dirección MAC del servidor mal configurado.ssh user@link-local%dev
donde:fuente
Debe cargar una dirección IP dentro de la subred configurada de su destino, no solo dentro del rango que realmente desea.
Si envía un paquete a 10.0.0.2 con la subred 255.255.255.248 de, por ejemplo, 10.0.0.220, 10.0.0.2 mirará su máscara de subred para descubrir cómo responder. Como .220 está WAAY fuera de la subred 255.255.255.248, .2 debe enviar la respuesta a la puerta de enlace predeterminada.
Entonces, si puede cargar una dirección IP dentro de la misma subred que .2, por ejemplo. 10.0.0.3, entonces funcionará.
En su caso específico, para 10.0.0.9, la subred 255.255.255.254 solo tiene 1 dirección IP adicional , es decir, 10.0.0.8. Entonces, si puede cargar esa dirección IP, debería poder SSH.
fuente