Musisz mieć możliwość zalogowania się na innym hoście w tym samym segmencie sieci. Niektóre sposoby uzyskania dostępu do źle skonfigurowanego hosta wymagają roota na hoście pośrednim, ale jest też jeden prosty sposób na uzyskanie dostępu bez konieczności rootowania na hoście pośrednim.
Łatwy sposób na dostęp do hosta za pomocą IPv6
ssh -o ProxyCommand='ssh -W [fe80::42:ff:fe:42%%eth0]:%p user@intermediate-host' root@target-server
Poniższy przykład wartości w powyższym poleceniu konieczności być podstawiony prawidłowych wartości dla przypadku użycia: fe80::42:ff:fe:42
, eth0
, user
, intermediate-host
, i target-server
.
Szczegółowe wyjaśnienie, jak to działa
ProxyCommand
to funkcja ssh, z której można korzystać, gdy nie można otworzyć połączenia TCP bezpośrednio z hostem docelowym. Argumentem ProxyCommand
jest polecenie, którego stdin / stdout należy użyć zamiast połączenia TCP.
-W
służy do otwierania przekierowania pojedynczego portu i podłączania go do stdin / stdout. To ładnie pasuje do ProxyCommand
.
fe80::42:ff:fe:42%%eth0
to lokalny adres łącza dla hosta docelowego. Zwróć uwagę, że ze względu na ProxyCommand
użycie %
jako znaku ucieczki wpisane polecenie ssh musi być używane %%
w tym miejscu. Możesz znaleźć wszystkie adresy lokalne dla łącza w segmencie, uruchamiając ssh user@intermediate-host ping6 -nc2 ff02::1%eth0
.
Użycie do tego celu adresów lokalnych dla łącza IPv6 jest zwykle najłatwiejszym sposobem, ponieważ jest ono domyślnie włączone we wszystkich nowoczesnych systemach, a adresy lokalne dla łącza nadal działają, nawet jeśli stosy IPv4 i IPv6 są poważnie źle skonfigurowane.
Powrót do IPv4
Jeśli IPv6 jest całkowicie wyłączony na źle skonfigurowanym hoście (absolutnie niezalecane), być może będziesz musiał skorzystać z IPv4. Ponieważ IPv4 nie ma adresów lokalnych dla łącza, sposób, w jaki robi to IPv6, to dostęp do źle skonfigurowanego hosta za pomocą IPv4 staje się bardziej skomplikowany i wymaga dostępu do konta root na hoście pośrednim.
Jeśli źle skonfigurowany host nadal będzie mógł korzystać z domyślnej bramy, będzie można uzyskać do niej dostęp z zewnątrz. Możliwe, że źle skonfigurowana maska sieci również złamała bramę domyślną, ponieważ stos odmawia użycia bramy poza prefiksem objętym maską. Jeśli tak jest w rzeczywistości, źle skonfigurowany host będzie mógł komunikować się tylko z 192.168.1.8, ponieważ jest to jedyny inny adres IP w podsieci obecnie dostępny dla tego źle skonfigurowanego hosta.
Jeśli masz login 192.168.1.8, być może będziesz w stanie ssh stamtąd do 192.168.1.9. Jeśli 192.168.1.8 jest obecnie nieprzypisane, możesz tymczasowo przypisać go do dowolnego hosta w segmencie, do którego masz dostęp root.
fe80::42:ff:fe:42
czy adres ...? mój źle skonfigurowany serwer?kasperd
opublikował świetną odpowiedź wystarczająco szczegółową, aby dowiedzieć się, jak mogę wyjść z sytuacji w pytaniu. Ta odpowiedź jest dokładnym krok po kroku, jak to zrobiłem.arp -a
lubip neighbor list
jakroot
znaleźć adres MAC źle skonfigurowanego serwera.ssh user@link-local%dev
:źródło
Trzeba załadować adresu IP w ciągu skonfigurowanego podsieci swojego celu, nie tylko w zakresie, który rzeczywiście chcesz.
Jeśli wyślesz pakiet do 10.0.0.2 z podsiecią 255.255.255.248 z, na przykład, 10.0.0.220, 10.0.0.2 spojrzy na swoją maskę podsieci, aby dowiedzieć się, jak odpowiedzieć. Ponieważ .220 jest ZWOLNIONY z podsieci 255.255.255.248, .2 zamiast tego musi wysłać odpowiedź do bramy domyślnej.
Więc jeśli możesz załadować adres IP w tej samej podsieci co .2, np. 10.0.0.3, to zadziała.
W konkretnym przypadku w przypadku 10.0.0.9 podsieć 255.255.255.254 ma tylko 1 dodatkowy adres IP , a mianowicie 10.0.0.8. Jeśli więc możesz załadować ten adres IP, powinieneś mieć możliwość SSH.
źródło