NFsec Logo

SMBLoris

04/08/2017 w Bezpieczeństwo Brak komentarzy.  (artykuł nr 630, ilość słów: 464)

Podczas studiowania eksploita EternalBlue badacze Sean Dillon oraz Jenna Magius w czerwcu 2017 r. odkryli 20’sto letnią lukę w protokole SMB (ang. Server Message Block), która umożliwia przeprowadzenie ataku odmowy usługi (DoS) poprzez wyczerpanie zasobów pamięci wybranego komputera. Podatne są wszystkie wersje protokołu SMB (1,2 i 3) oraz systemy Windows 10 aż do wersji 2000 (patrząc wstecz od najnowszej wersji).

Jak zostało to zaprezentowane na konferencji DefCON do przeprowadzenia ataku wystarczy Raspberry Pi oraz 20 linii kodu w Pythonie. Firma Microsoft zapowiedziała, że nie wyda oficjalnej poprawki, ponieważ problem ten może zostać rozwiązany poprzez blokadę połączeń na port 445 z internetu. W dodatku system Windows 10 jest nadal podatny mimo wyłączenia wszystkich jego wersji protokołu SMB:

Set-SmbServerConfiguration -EnableSMB1Protocol $false
Set-SmbServerConfiguration -EnableSMB2Protocol $false

Na czym dokładnie polega atak?

The first 3 bytes of an SMB connection are an NBSS header. The last 17 bits of the NBSS header are a length field. 17 bit length = 128kiB. If you connect + send NBSS + do nothing, kernel allocates 128kiB and then closes connection after 30sec. You can open one connection/tcp port. 128k*65535 = 8GiB. These allocations are non-paged. Meaning: use physical memory, cannot be swapped out. When the kernel tries to do an allocation, but there’s not much memory free it spends CPU cycles searching for a gap in existing allocations. It spends these CPU cycles in Ring 0 with interrupts suspended. If you use IPv4+IPv6 you can tie up 16GiB. Use two IPs? 32GiB. Once you’ve filled up enough memory to make doing allocations hard, then ask for more allocations? The computer freezes.
– Jenna Magius

NBSS jest protokołem NetBIOS Session Service, który dla każdego połączenia alokuje 128 KB pamięci zwalnianej dopiero po jego zamknięciu. Standardowo połączenie jest zamykane po 30 sekundach bezczynności. Jeśli wykorzystamy 65535 portów TCP do związania serwera z klientem to możemy wypełnić połączeniami powyżej 8 GB pamięci RAM atakowanego serwera. Jeśli wykorzystamy IPv4 i IPv6 – możemy osiągnąć 16 GB. Wolumen może zostać dodatkowo podwojony (32 GB) przy użyciu dwóch różnych adresów IP itd. W wielu przypadkach saturacja pamięci dla NBSS będzie tak wysoka, że wymagany będzie restart serwera.

Odpowiednikiem dla systemu Linux jest Samba, która również jest podatna w standardowej konfiguracji. W celu złagodzenia ataku wystarczy ograniczyć liczbę użytkowników, którzy mogą połączyć się do serwera np. do 500 (standardowo nie ma limitu) – poprzez dodanie poniższego wpisu do pliku /etc/samba/smb.conf:

max smbd processes = 500 

Nazwa SMBloris została wymyślona w odniesieniu do ataku Slowloris autorstwa Roberta Hansena. Obywa ataki są w stanie za pomocą jednej maszyny zawiesić znacznie potężniejsze serwery.

Więcej informacji: SMBLoris, SMBLoris: What You Need To Know

Kategorie K a t e g o r i e : Bezpieczeństwo

Tagi T a g i : , , , , , , ,

Podobne artykuły:

  • Brak tematycznie powiązanych artykułów.

Komentowanie tego wpisu jest zablokowane.