Napisał: Patryk Krawaczyński
31/03/2020 w Pen Test
W
pierwszej części poznaliśmy możliwości zaatakowania niezabezpieczonych API REST daemonów Docker. W tej części dokończymy kilka aspektów powiązanych z poprzednimi metodami. Po pierwsze nie musimy wykonywać wszystkich poleceń za pomocą stricte żądań HTTP – były one wykonane, aby przekazać Czytelnikowi widzę, jak to wygląda z niższego poziomu. Docker posiada własną wersję klienta przeznaczoną do takiej komunikacji. Dlaczego jeśli wskażemy mu zdalny host możemy wydawać wszystkie polecenia za pomocą lokalnego klienta.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
13/02/2019 w Bezpieczeństwo
P
oważna luka w zabezpieczeniach została odkryta w głównym kodzie kontenera – runC, która wpływa na kilka systemów open source do zarządzania kontenerami. Umożliwia ona atakującemu potencjalną ucieczkę z kontenera systemu Linux i uzyskanie nieautoryzowanego dostępu na poziomie administratora systemu do systemu operacyjnego hosta. Luka, która otrzymała numer CVE-2019-5736 została odkryta przez badaczy bezpieczeństwa Adama Iwaniuka i Borysa Popławskiego i ujawniona publicznie przez Aleksa Sarai, starszego inżyniera oprogramowania i opiekuna runC w SUSE.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
05/12/2018 w Bezpieczeństwo
U
żytkownicy posiadający UID większy od INT_MAX posiadają możliwość wykonania dowolnego polecenia za pomocą systemctl. Błąd nie tkwi w samym systemd, jak mogliśmy się przyzwyczaić, ale w narzędziu pkttyagent, w którym PolicyKit (polkit) podczas wystąpienia błędu twierdzi, że użytkownik jest uprawniony do wykonania polecenia. Przykład działania takiego zachowania:
$ systemctl --version
systemd 239
$ pkttyagent --version
pkttyagent version 0.115
$ id
uid=4000000000(someuser) gid=100(users) groups=100(users)
$ systemctl stop sshd.service
(pkttyagent:3342): GLib-GObject-WARNING **: 13:28:53.802: value "-294967296"
of type 'gint' is invalid or out of range for property 'uid' of type 'gint' **
ERROR:pkttyagent.c:156:main: assertion failed:
(polkit_unix_process_get_uid (POLKIT_UNIX_PROCESS (subject)) >= 0)
$ systemctl is-active sshd.service
inactive
Luka sama w sobie nie jest groźna, ponieważ do stworzenia użytkownika z takim UID są już wymagane prawa administratora. Można ją jednak użyć do zamaskowania użytkownika, który ma podniesione prawa, a nie ma przypisanego UID/GID=0. Do czasu naprawienia luki można użyć obejścia w postaci wyłączenia polkit’a:
systemctl mask polkit && systemctl stop polkit
Więcej informacji: systemd issue, polkit issue, CVE-2018-19788
Napisał: Patryk Krawaczyński
11/07/2018 w Bezpieczeństwo
J
eśli nie używasz dockera z pomocą docker-machine (standardowo na systemie OSX oraz Windows) to może dojść do sytuacji, gdy polecenia dockera doprowadzą do przejęcia hosta na którym zostały uruchomione. Jeśli dodamy naszego użytkownika systemu do grupy dockera lub zmienimy uprawnienia do gniazda sieciowego – to Twój użytkownik lub szkodliwe oprogramowanie będzie mógło uzyskać uprawnienia administratora bez konieczności podawania hasła.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
08/10/2017 w Bezpieczeństwo
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ść… ]
Napisał: Patryk Krawaczyński
16/07/2017 w Bezpieczeństwo
L
uka została ujawniona podczas zgłoszenia błędu na githubie. systemd nie potrafi obsłużyć odpalenia procesu użytkownika, którego login zaczyna się od liczby np. 0day i tym samym uruchamia proces z prawami administratora zamiast owego użytkownika. Brzmi to dość drastycznie:
> In case of bug report: Expected behaviour you didn’t see
The process started by systemd should be user previlege
> In case of bug report: Unexpected behaviour you saw
The process started by systemd was root previlege
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
20/06/2017 w Bezpieczeństwo
Czym jest Stack Clash? Jest to eksploatacja błędu w zarządzaniu pamięci oparta na dość starej (12 letniej) technice. Dotyka ona kilku systemów operacyjnych: Linuksa, OpenBSD, NetBSD, FreeBSD oraz Solarisa dla architektury i386 oraz amd64. Technika ta może zostać wykorzystana przez atakujących do naruszenia bezpieczeństwa pamięci oraz wykonania dowolnego kodu. Polega ona na pewnej zależności: każdy program uruchomiony na komputerze używa specjalnego obszaru pamięci zwanego stosem (ang. stack). Obszar tej pamięci jest szczególny, ponieważ rośnie automatycznie wraz z zapotrzebowaniem na niego przez program. Jeśli jednak przyrost jest zbyt duży i zbliży się do innego obszaru pamięci (na przykład sterty – ang. heap) może dojść do sytuacji, w której program może pomylić stos z innym obszarem pamięci. Daje to możliwość wykorzystania owego zamieszania do nadpisania stosu przez inny obszary pamięci lub odwrotnie.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
12/03/2017 w Bezpieczeństwo
W
parę tygodni po ukazaniu się błędu w protokole DCCP – Andrey Konovalov ponownie odkrywa możliwość eskalacji uprawnień i lokalne uzyskanie praw administratora w sterowniku drivers/tty/n_hdlc.c. Sterownik zapewniający wsparcie dla HDLC występuje jako moduł jądra w wielu dystrybucjach, które mają w konfiguracji ustawioną opcję CONFIG_N_HDLC=m. Standardowo błąd jest obecny w systemie Linux od 2009 roku i również został znaleziony przy pomocy syzkallera. Łatanie systemu jest szybkie i proste, jak w przypadku podatności DCCP – poniżej dla rodziny RedHat:
echo "install n_hdlc /bin/true" >> /etc/modprobe.d/disable-n_hdlc.conf
Więcej informacji: Linux kernel: CVE-2017-2636: local privilege escalation flaw in n_hdlc
Napisał: Patryk Krawaczyński
25/02/2017 w Bezpieczeństwo
N
owa podatność została odnaleziona przez badacza bezpieczeństwa. Andrey Konovalov odkrył za pomocą (do tego stworzonego) fuzzera spod stajni Google błąd w protokole DCCP – The Datagram Congestion Control Protocol. Luka ta podobnie, jak DirtyCow istnieje w jądrze już ponad 11 lat i dotyka wszystkie kluczowe dystrybucje systemu Linux: Debian, Ubuntu, OpenSUSE oraz RedHat. Luka typu use-after-free została rozpoznana w implementacji zwalniania przez DCCP zasobów SKB (buffor gniazda) dla pakietu typu DCCP_PKT_REQUEST kiedy opcja IPV6_RECVPKTINFO jest ustawiona na gnieździe. Lokalny użytkownik jest w stanie wykorzystać ten błąd do modyfikacji pamięci jądra i w ten sposób podniesienia swoich uprawnień w systemie. Warto wspomnieć, że dwa miesiące temu została ujawniona podobna luka w pakiecie AF. Osoby, które nie chcą aktualizować swoich systemów do nowszych wersji np. z powodu obawy o stabilność – powinny zadbać o odpowiednie wpisy blokujące ładowanie wspomnianego modułu.
Więcej informacji: Security expert discovered a new 11-year old privilege escalation vulnerability, tracked as CVE-2017-6074, in the Linux kernel
Napisał: Patryk Krawaczyński
18/02/2017 w Bezpieczeństwo
M
ój administrator idzie z duchem po(d)stępu i podzielił nasz wielki serwer na mniejsze byśmy mogli robić te…, jak one mają… – mikroserwisy. Jako najprostszy i najszybszy sposób dla systemu Ubuntu 16.04 LTS wybrał szybującą w rozwoju technologię, czyli Dockera. Po szybkiej i sprawnej instalacji najnowszej wersji 1.13.1 mój zwykły użytkownik (darkstar) uzyskał możliwość posługiwania się tą technologią poprzez dopisanie go do grupy docker:
[ czytaj całość… ]
Ostatni komentarz :