NFsec Logo

Błędy w weryfikatorze BPF pozwalają na wykonanie dowolnego kodu w jądrze

22/12/2017 w Bezpieczeństwo Możliwość komentowania Błędy w weryfikatorze BPF pozwalają na wykonanie dowolnego kodu w jądrze została wyłączona

J

ądro Linuksa zbudowane ze wsparciem wywołania systemowego bpf(2) (CONFIG_BPF_SYSCALL) podatne jest na uzyskanie dostępu do odczytu i zapisu przestrzeni adresowej jądra. Do błędu może dojść, gdy użytkownik systemu uruchomi szkodliwy program BPF powodujący błędy obliczeń w module weryfikatora (funkcja check_alu_op) Berkeley Packet Filter. Tym samym nieuprawniony użytkownik może wykorzystać tę lukę do eskalacji swoich uprawnień w systemie. Podatne są wersje jądra od 4.9 do 4.14.8. Ograniczenie luki jest możliwe poprzez ustawienie opcji w sysctl:

echo 1 > /proc/sys/kernel/unprivileged_bpf_disabled

lub

sysctl -w kernel.unprivileged_bpf_disabled=1
echo kernel.unprivileged_bpf_disabled=1 | \
tee /etc/sysctl.d/90-CVE-2017-16995-CVE-2017-16996.conf

Spowoduje ona zablokowanie dostępu do wywołania bpf() dla nieuprawnionych użytkowników (ponowne jej wyłączenie wymagać będzie restartu systemu).

Więcej informacji: Unprivileged bpf(), Debian, RedHat/CentOS, Ubuntu

Wyłączenie szybkiego przeładowywania systemu z kexec

18/10/2017 w Bezpieczeństwo Możliwość komentowania Wyłączenie szybkiego przeładowywania systemu z kexec została wyłączona

K

exec to wywołanie systemowe, które umożliwia załadowanie i uruchomienie innego jądra z aktualnie uruchomionego systemu. Jest to bardzo przydatna funkcjonalność dla deweloperów jądra Linuksa lub innych osób, którym zależy na czasie. Bardzo szybki restart odbywa się bez czekania na cały proces ładowania systemu BIOS lub UEFI. Nowe jądro ładowane jest bezpośrednio do pamięci i z niej uruchamiane. Zapobiega to długim czasom oczekiwania związanym z pełnym uruchomieniem komputera i może pomagać w niektórych przypadkach spełnić wymagania wysokiej dostępności minimalizując przestoje systemów (należy jednak pamiętać, że kexec w zależności od konfiguracji sprzętowych może działać niepoprawnie z powodu urządzeń, które nie zostały w pełni zainicjowane podczas korzystania z tej metody).
[ czytaj całość… ]

KRACK – Key Reinstallation Attack

16/10/2017 w Bezpieczeństwo 1 komentarz.

M

athy Vanhoef oraz Frank Pissens z KU Leuven odkryli lukę, która wykorzystuje błąd w poczwórnym ucisku dłoni standardu 802.11i (WPA2). Nie jest to błąd kryptograficzny, ale błąd protokołu (dość oczywisty i trywialny). Kiedy klient łączy się z siecią, punkt dostępowy w pewnym momencie wyśle losowe “klucze” w celu rozpoczęcia szyfrowania transmisji. Ponieważ tego rodzaju pakiety mogą zostać utracone w transmisji – mogą one być wielokrotnie powtarzalne. To, co może zrobić atakujący to po prostu wielokrotnie wysyłać tego rodzaju pakiety – potencjalnie, nawet kilka godzin po pierwszej negocjacji. Za każdorazowym wykonaniem tej czynności zresetuje on “strumień klucza” do początkowych wartości.
[ czytaj całość… ]

TLS – Wyciek informacji przez rozszerzenie Server Name Indication (SNI)

09/10/2017 w Bezpieczeństwo Możliwość komentowania TLS – Wyciek informacji przez rozszerzenie Server Name Indication (SNI) została wyłączona

M

oże się nam wydawać, że skoro używamy szyfrowanego połączenia TLS/SSL to tylko serwery DNS mogą zdradzać naszą aktywność w sieci. Nic bardziej mylnego. Powodem bardzo szybkiej identyfikacji odwiedzanych przez nas stron może być rozszerzenie TLS – SNI (ang. Server Name Indication) pozwalające na instalację wielu certyfikatów SSL na pojedynczym adresie IP (mogliśmy wcześniej się z nim spotkać przy analizie Cloudflare).
[ czytaj całość… ]

2-letnia luka powraca do jądra Linuksa

08/10/2017 w Bezpieczeństwo Możliwość komentowania 2-letnia luka powraca do jądra Linuksa została wyłączona

Błąd w jądrze Linuksa, który został odkryty dwa lata temu, ale nie był uważany za zagrożenie dla bezpieczeństwa w tym czasie, został właśnie uznany za lukę umożliwiającą eskalację uprawnień na poziomie lokalnym. Błąd ten został zidentyfikowany jako CVE-2017-1000253 i pierwotnie został odkryty przez badacza pracującego dla Google Michaela Davidsona w kwietniu 2015 roku. Z powodu zignorowania powagi tego błędu – poprawka dla niego nie została przekazana do długoterminowo wspieranej wersji jądra 3.10.77 (warto wspomnieć, że wersje LTS właśnie przeszły z cyklu 2 letniego, na 6 letni).
[ czytaj całość… ]

OPTIONSbleed – HTTP OPTIONS może prowadzić do wycieku pamięci serwera Apache

18/09/2017 w Bezpieczeństwo Możliwość komentowania OPTIONSbleed – HTTP OPTIONS może prowadzić do wycieku pamięci serwera Apache została wyłączona

P

odczas codziennego użytkowania Internetu zazwyczaj korzystamy z dwóch metod HTTP: GET oraz POST. Inną metodą jest OPTIONS, która po prostu pozwala na odpytanie serwera HTTP, jakich metod może użyć użytkownik w komunikacji z nim. Serwer powinien nam odpowiedzieć wartością nagłówka “Allow”, gdzie obsługiwane metody będą wymienione po przecinku:

curl -v -XOPTIONS https://www.0x0.pl > /dev/null

HTTP/1.1 200 OK
Allow: OPTIONS, GET, HEAD, POST
Cache-Control: max-age=604800

[ czytaj całość… ]

BlueBorne = Bluetooth OFF

16/09/2017 w Bezpieczeństwo 1 komentarz.

J

eśli używasz urządzenia obsługującego technologię Bluetooth: smartfona, laptopa, TV, zestaw w samochodzie, czy inne urządzenia IoT – właśnie stałeś się narażony na ataki ze strony złośliwego oprogramowania, które może zdalnie przejąć kontrolę nad Twoim urządzeniem nawet bez potrzeby interakcji z Twojej strony. Naukowcy ds. bezpieczeństwa właśnie odkryli w sumie 8 podatności typu zero-day w protokole Bluetooth, które mają wpływ na bezpieczeństwo ponad 5.3 mld urządzeń – od Androida po iOS, Windows i na systemie Linux kończąc.
[ czytaj całość… ]

Podstawy skryptów shell #4

30/08/2017 w Bezpieczeństwo Możliwość komentowania Podstawy skryptów shell #4 została wyłączona

W

kolejnej części naszej serii [ 1 ] [ 2 ] [ 3 ] zajmiemy się atakami związanymi z uwierzytelnianiem. Zaczniemy od tezy, że nie należy polegać na skryptach, aby ustalać, czy użytkownik ma lub nie ma uprawnień do danej czynności. Jest to możliwe, jednak istnieją dobre i złe strony takiego rozwiązania. Za przykład posłuży nam skrypt:

#!/bin/bash

if [ $UID = 0 -a $USER = "root" ] ; then
    echo "Jesteś administratorem zapraszam do domu."
    echo $HOME
fi

Kod ten zawiera trzy błędy bezpieczeństwa i wszystkie są spowodowane używaniem zmiennych. Mimo, że bash chroni przed modyfikacją zmienną $UID to już $USER jest niezabezpieczona. No i kto powiedział, że inne powłoki chronią zmienną $UID?

root@darkstar:/home/agresor# ./test.sh
Jesteś administratorem zapraszam do domu.
/root
root@darkstar:~#

Skrypt działa poprawnie dla konta administratora. Przeprowadźmy teraz atak za pomocą zwykłego użytkownika:

agresor@darkstar:~$ ./test.sh
agresor@darkstar:~$ # Niestety nic z tego, ale...
agresor@darkstar:~$ tcsh
darkstar:~> setenv UID 0
darkstar:~> setenv USER root
darkstar:~> setenv HOME /tmp
darkstar:/home/agresor> /bin/bash test.sh
Jesteś administratorem zapraszam do domu.
/tmp

Jeśli ewentualnie chcemy pozyskać informacje o użytkowniku powinniśmy wykorzystać polecenie id:

# Prawdziwy UID
USRUID="$(/usr/bin/id -u -r)"
# Efektywny UID
USEUID="$(/usr/bin/id -u)"
# Nazwa użytkownika
USNUID="$(/usr/bin/id -u -n)"

Na szczęście powyższy skrypt operował tylko wyświetlaniem komunikatów za pomocą echo. W połączeniu z innym możliwym atakiem (wstrzykiwania) można te błędy wykorzystać w bardziej zły sposób.

Więcej informacji: TCSH / CSH Shell Set PATH Variable, Shell Script Security

Ukryty wymiar praw dostępu

24/08/2017 w Administracja, Bezpieczeństwo Możliwość komentowania Ukryty wymiar praw dostępu została wyłączona

P

otężny administrator systemu postanowił stworzyć bramę do ukrytego wymiaru. Dla niepoznaki zrobił to w katalogu domowym zwykłego użytkownika. By chronić portal przed różnymi daemonami rzucił na niego zaklęcie zdejmujące wszystkie prawa dostępu:

:~# bash -c "echo 'Niedostrzegalne barwy - czarne wodospady' > \
/home/agresor/ukryty_wymiar"
:~# chmod 0000 /home/agresor/ukryty_wymiar

Podczas powrotu do swojego katalogu ($HOME) użytkownik zauważył dziwne wrota:

agresor@darkstar:~$ ls -lah ukryty_wymiar
---------- 1 root root 39 Aug 24 21:01 ukryty_wymiar

Dookoła nich krążyły już Kerberos, Sphinx oraz sam Dracula. Widząc to, w użytkowniku wezbrał niepohamowany gniew, który przekształcił w ukrytą moc zniszczenia. Użytkownik wiedział, że bez księgi sudo nie jest w stanie zniszczyć portalu potężnego administratora, ale postanowił chociaż spróbować:
[ czytaj całość… ]

Apache 2.4 – o jeden slash od otwartego przekierowania

20/08/2017 w Bezpieczeństwo Możliwość komentowania Apache 2.4 – o jeden slash od otwartego przekierowania została wyłączona

Bardzo często zdarza się, że dla lepszych wyników SEO stosuje się przekierowanie 301 z subdomeny www na “czystą” domenę np. z www.openredirect.pl na openredirect.pl. W serwerze Apache jednym z sposobów na uzyskanie tego efektu jest wykorzystanie dyrektywy Redirect pochodzącej z modułu alias:
[ czytaj całość… ]