<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
Jeśli interesuje Cię **kariera hakerska** i hakowanie niemożliwych do zhakowania rzeczy - **zatrudniamy!** (_wymagane biegłe posługiwanie się językiem polskim w mowie i piśmie_).
**SSH (Secure Shell lub Secure Socket Shell)** to protokół sieciowy umożliwiający bezpieczne połączenie z komputerem przez nieszyfrowaną sieć. Jest niezbędny do utrzymania poufności i integralności danych podczas dostępu do zdalnych systemów.
* [openSSH](http://www.openssh.org) - OpenBSD SSH, dostarczany w dystrybucjach BSD, Linuxa i Windows od wersji 10
* [Dropbear](https://matt.ucc.asn.au/dropbear/dropbear.html) - implementacja SSH dla środowisk o niskiej pamięci i zasobach procesora, dostarczana w OpenWrt
* [PuTTY](https://www.chiark.greenend.org.uk/\~sgtatham/putty/) - implementacja SSH dla systemu Windows, klient jest powszechnie używany, ale użycie serwera jest rzadsze
* [CopSSH](https://www.itefix.net/copssh) - implementacja OpenSSH dla systemu Windows
* [libssh](https://www.libssh.org) - wieloplatformowa biblioteka C implementująca protokół SSHv2 z wiązaniami w [Pythonie](https://github.com/ParallelSSH/ssh-python), [Perl](https://github.com/garnier-quentin/perl-libssh/) i [R](https://github.com/ropensci/ssh); jest używana przez KDE do sftp i przez GitHub do infrastruktury git SSH
* [wolfSSH](https://www.wolfssl.com/products/wolfssh/) - biblioteka serwera SSHv2 napisana w ANSI C, przeznaczona dla wbudowanych, systemów operacyjnych czasu rzeczywistego i środowisk o ograniczonych zasobach
* [Apache MINA SSHD](https://mina.apache.org/sshd-project/index.html) - biblioteka SSHD Apache oparta na Apache MINA
* [paramiko](https://github.com/paramiko/paramiko) - biblioteka protokołu SSHv2 dla Pythona
[https://github.com/jtesta/ssh-audit](https://github.com/jtesta/ssh-audit) to zaktualizowana wersja od [https://github.com/arthepsy/ssh-audit/](https://github.com/arthepsy/ssh-audit/)
Niektóre powszechne dane uwierzytelniające ssh [tutaj](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Default-Credentials/ssh-betterdefaultpasslist.txt) i [tutaj](https://github.com/danielmiessler/SecLists/blob/master/Passwords/Common-Credentials/top-20-common-SSH-passwords.txt) oraz poniżej.
Niektóre systemy mają znane wady w losowym ziarnie używanym do generowania materiału kryptograficznego. Może to prowadzić do dramatycznego zmniejszenia przestrzeni kluczy, które można złamać metodą bruteforce. Tutaj można znaleźć zestawy wcześniej wygenerowanych kluczy wygenerowanych na systemach Debian dotkniętych słabym PRNG: [g0tmi1k/debian-ssh](https://github.com/g0tmi1k/debian-ssh).
Jeśli znajdujesz się w tej samej sieci lokalnej co ofiara, która będzie łączyć się z serwerem SSH za pomocą nazwy użytkownika i hasła, możesz spróbować **przeprowadzić atak typu MitM, aby ukraść te dane uwierzytelniające**:
* **Przekierowanie ruchu:** Atakujący **przekierowuje** ruch ofiary na swoje urządzenie, efektywnie **przechwytując** próbę połączenia z serwerem SSH.
* **Przechwycenie i logowanie:** Urządzenie atakujące działa jako **proxy**, **przechwytując** dane logowania użytkownika, udając prawidłowy serwer SSH.
* **Wykonanie poleceń i przekazywanie:** Na koniec, serwer atakującego **rejestruje dane uwierzytelniające użytkownika**, **przekazuje polecenia** do prawdziwego serwera SSH, **wykonuje** je i **przesyła wyniki** z powrotem do użytkownika, sprawiając, że proces wydaje się płynny i prawidłowy.
Aby przechwycić i przeprowadzić rzeczywisty atak typu MitM, można użyć technik takich jak ARP spoofing, DNS spoofing lub inne opisane w [**ataki podstawiania**](../generic-methodologies-and-resources/pentesting-network/#spoofing).
Jeśli chcesz przemierzać sieć, korzystając z odkrytych prywatnych kluczy SSH na systemach, wykorzystując każdy klucz prywatny na każdym systemie dla nowych hostów, to [**SSH-Snake**](https://github.com/MegaManSec/SSH-Snake) jest tym, czego potrzebujesz.
Często serwery SSH pozwalają na logowanie użytkownika root domyślnie, co stanowi znaczne ryzyko dla bezpieczeństwa. **Wyłączenie logowania jako root** to kluczowy krok w zabezpieczaniu serwera. Nieautoryzowany dostęp z uprawnieniami administratora i ataki brute force można zminimalizować, dokonując tej zmiany.
Często popełnianym błędem w konfiguracji SFTP jest umożliwienie użytkownikom wymiany plików bez włączania zdalnego dostępu do powłoki. Pomimo ustawienia użytkowników z nieinteraktywnymi powłokami (np. `/usr/bin/nologin`) i ograniczenia ich do określonego katalogu, pozostaje luka w zabezpieczeniach. **Użytkownicy mogą ominąć te ograniczenia**, żądając wykonania polecenia (np. `/bin/bash`) zaraz po zalogowaniu, zanim przejmie kontrolę ich nieinteraktywna powłoka. Pozwala to na nieautoryzowane wykonanie poleceń, podważając zamierzone środki bezpieczeństwa.
Ta konfiguracja zapewnia bezpieczny dostęp SFTP dla użytkownika `noraj`. Użytkownik zostanie ograniczony do swojego katalogu domowego (`/home/noraj`), a jedyną dozwoloną operacją będzie SFTP. Wymusza to uwierzytelnianie za pomocą hasła (`PasswordAuthentication yes`) lub klucza publicznego (`PubkeyAuthentication yes`). Wszystkie inne opcje, takie jak przekierowanie X11 czy przekierowanie agenta SSH, są wyłączone.
```
Match User noraj
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
PermitTunnel no
X11Forwarding no
PermitTTY no
```
Ta konfiguracja pozwoli tylko na SFTP: wyłącza dostęp do powłoki, wymuszając uruchomienie polecenia startowego oraz wyłącza dostęp do TTY, ale również wyłącza wszelkie przekierowania portów lub tunelowanie.
**SFTP** posiada polecenie "**symlink**". Dlatego, jeśli masz **prawa do zapisu** w pewnym folderze, możesz tworzyć **symlinki** do **innych folderów/plików**. Prawdopodobnie jesteś **uwięziony** wewnątrz chroot, więc to **nie będzie specjalnie przydatne** dla Ciebie, ale jeśli możesz **uzyskać dostęp** do utworzonego **symlinku** z **usługi bez chroot** (na przykład, jeśli możesz uzyskać dostęp do symlinku z sieci), możesz **otworzyć symlinkowane pliki przez sieć**.
W środowiskach o wysokim poziomie bezpieczeństwa powszechną praktyką jest włączanie tylko uwierzytelniania opartego na kluczach lub dwuskładnikowego, zamiast prostego uwierzytelniania opartego na haśle. Jednak często silniejsze metody uwierzytelniania są włączane bez wyłączania słabszych. Częstym przypadkiem jest włączenie `publickey` w konfiguracji openSSH i ustawienie go jako domyślną metodę, ale nie wyłączenie `password`. Dlatego, korzystając z trybu verbose klienta SSH, atakujący może zobaczyć, że włączona jest słabsza metoda:
Na przykład, jeśli ustawiono limit nieudanych prób uwierzytelnienia i nigdy nie masz szansy dotrzeć do metody hasła, możesz użyć opcji `PreferredAuthentications`, aby wymusić użycie tej metody.
Przegląd konfiguracji serwera SSH jest konieczny, aby sprawdzić, czy są upoważnione tylko oczekiwane metody. Użycie trybu verbose na kliencie może pomóc w zobaczeniu skuteczności konfiguracji.
* Możesz znaleźć interesujące poradniki dotyczące zabezpieczania SSH na stronie [https://www.ssh-audit.com/hardening\_guides.html](https://www.ssh-audit.com/hardening\_guides.html)
Jeśli interesuje Cię **kariera w dziedzinie hakowania** i chcesz zhakować to, co nie do zhakowania - **zatrudniamy!** (_wymagane biegłe posługiwanie się językiem polskim w mowie i piśmie_).
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repozytoriów github.