Universal Plug and Play (UPnP) oraz Simple Service Discovery Protocol (SSDP) to protokoły, które umożliwiają urządzeniom w sieci automatyczną konfigurację i komunikację bez potrzeby interwencji użytkownika.
Chociaż te technologie znacznie ułatwiają zarządzanie sieciami domowymi i biurowymi, stwarzają również potencjalne zagrożenia bezpieczeństwa, które mogą być wykorzystane przez cyberprzestępców. Jednym z takich zagrożeń jest złośliwe narzędzie Evil-SSDP.
Jak działa UPnP?
UPnP to zestaw protokołów sieciowych, które pozwalają urządzeniom, takim jak komputery, drukarki, routery i urządzenia multimedialne, na automatyczne wykrywanie i konfigurowanie się nawzajem. UPnP działa na poziomie TCP i składa się z kilku kluczowych komponentów:
1. SSDP (Simple Service Discovery Protocol):Używany do wykrywania urządzeń w sieci. Urządzenia wysyłają komunikaty SSDP na adres multicastowy, aby ogłosić swoją obecność lub wyszukać inne urządzenia. Działa na porcie 1900 UDP. To właśnie dzięki SSDP, urządzenia w sieci mogą automatycznie konfigurować się nawzajem, co znacznie upraszcza zarządzanie sieciami domowymi i biurowymi.
2. HTTPU (HTTP over UDP): Umożliwia przesyłanie żądań HTTP przez UDP.
3. SOAP (Simple Object Access Protocol): Używany do komunikacji między urządzeniami w sieci.
Proces działania UPnP można podzielić na kilka etapów:
- Discovery (Odkrywanie): Urządzenia wysyłają komunikaty SSDP, aby ogłosić swoją obecność lub wyszukać inne urządzenia.
- Description (Opis): Po odkryciu, urządzenia wymieniają informacje o swoich możliwościach i usługach za pomocą XML i HTTP.
- Control (Kontrola): Urządzenia mogą kontrolować usługi innych urządzeń za pomocą protokołu SOAP przesyłanego przez HTTP.
- Eventing (Powiadamianie): Urządzenia mogą wysyłać powiadomienia o zmianach stanu do innych urządzeń w sieci.
Dla wzrokowców - poniżej zwizualizowany pełny stos protokołu UPnP:
![]() |
Źródło: https://www.researchgate.net/figure/Proposed-UPnP-protocol-stack-for-applications_fig2_307898072 |
Evil-SSDP
Evil-SSDP to narzędzie wykorzystywane przez cyberprzestępców do przeprowadzania ataków na urządzenia korzystające z protokołu SSDP. Narzędzie to wykorzystuje luki w protokole SSDP, aby przeprowadzać różne złośliwe działania, takie jak:
1. Sfałszowane odkrywanie urządzeń: Evil-SSDP może wysyłać fałszywe komunikaty SSDP, udając inne urządzenia w sieci. Dzięki temu, złośliwe urządzenie może zostać wykryte przez inne urządzenia jako legalne i uzyskać dostęp do sieci lub jej zasobów.
2. Przechwytywanie i modyfikowanie komunikatów: Narzędzie może przechwytywać komunikaty SSDP i modyfikować je w trakcie przesyłania. Pozwala to na wprowadzenie zmian w konfiguracji urządzeń w sieci, takich jak przekierowanie ruchu do złośliwych serwerów.
Przykłady działania evil-ssdp
Narzędzie evil-ssdp (https://github.com/initstring/evil-ssdp), dostępne jako skrypt Python, pozwala na przeprowadzenie powyższych ataków. Oto kilka zrzutów ekranu pokazujących jego działanie:
1. Uruchomienie narzędzia Evil-SSDP:
python evil-ssdp.py --interface wlan0
Ten prosty przykład pokazuje uruchomienie narzędzia na interfejsie sieci bezprzewodowej.
Źródło: https://www.sevenlayers.com/index.php/294-evil-ssdp |
2. Fałszywe odkrywanie urządzeń:
python evil_ssdp.py --ip 192.168.1.100 --uuid fffffffff-ffff-ffff-ffff-ffffffffffff --device-type "MediaServer" --server "Linux/3.x UPnP/1.0 Test/1.0"
Wyjaśnienie opcji:
--ip
: Adres IP fałszywego urządzenia.--uuid
: Unikalny identyfikator fałszywego urządzenia.--device-type
: Typ urządzenia, które ma być symulowane (np. MediaServer).--server
: Informacje o serwerze.
3. Przechwytywanie i modyfikowanie komunikatów:
python evil_ssdp.py --log evil_ssdp.log
Ta komenda uruchomi Evil-SSDP i zapisze logi ruchu sieciowego do pliku evil_ssdp.log
.
python evil_ssdp.py --ip 192.168.1.100 --uuid fffffffff-ffff-ffff-ffff-ffffffffffff --device-type "MediaServer" --server "Linux/3.x UPnP/1.0 Test/1.0"
Następnie, w innej sesji terminala, uruchom tcpdump, aby przechwytywać ruch sieciowy:
sudo tcpdump -i eth0 host 192.168.1.100 -w capture.pcap
Wyjaśnienie opcji:
-i eth0
: Interfejs sieciowy do przechwytywania (dostosuj do swojej konfiguracji).host 192.168.1.100
: Przechwytywanie ruchu skierowanego do fałszywego urządzenia o adresie IP 192.168.1.100.-w capture.pcap
: Zapis przechwyconego ruchu do plikucapture.pcap
.
Zabezpieczenia przed atakami
Aby zabezpieczyć się przed zagrożeniami związanymi z UPnP i SSDP, należy podjąć kilka kroków:
1. Wyłączanie UPnP: Jeśli nie jest to absolutnie konieczne, wyłącz UPnP na routerze i innych urządzeniach sieciowych.
2. Monitorowanie ruchu sieciowego: Używaj narzędzi do monitorowania ruchu sieciowego, takich jak Wireshark, aby wykrywać podejrzane aktywności na porcie 1900.
3. Aktualizacja oprogramowania: Regularnie aktualizuj oprogramowanie routerów i innych urządzeń sieciowych, aby zminimalizować ryzyko wykorzystania znanych luk bezpieczeństwa.
Podsumowanie
UPnP i SSDP ułatwiają konfigurację sieci, ale również stwarzają potencjalne zagrożenia bezpieczeństwa. Narzędzia takie jak evil-ssdp pokazują, jak luki w tych protokołach mogą być wykorzystane do przeprowadzania ataków. Świadomość tych zagrożeń i wdrożenie odpowiednich zabezpieczeń jest kluczowe dla ochrony sieci domowych i biurowych.