Napisał: Patryk Krawaczyński
29/01/2017 w Administracja, Debug
Jeśli podczas łatania np. DirtyCow na naszym serwerze wyposażonym w Ubuntu Trusty lub Xenial zainstalowane zostało jądro w wersji 4.4.0-59-generic i nagle wcześniej działające bez problemu aplikacje oraz daemony zaczęły zaliczać błędy typu: out of memory
(brak pamięci) jest wielce prawdopodobne, że jest to spowodowane błędem, który wkradł się podczas rozwoju wersji. Tymczasowym rozwiązaniem do czasu aż zostanie wydany kolejny patchset naprawiający to zachowanie jest cofnięcie się do wersji: 4.4.0-57.
Więcej informacji: mm, oom: prevent premature OOM killer invocation for high order request
Napisał: Patryk Krawaczyński
27/01/2017 w Bezpieczeństwo
Sebastian Krahmer z SUSE Security Team odkrył lokalny exploit w systemd v228. Przez ten błąd użytkownik znajdujący się w podatnym systemie jest w stanie podnieść swoje uprawnienia do roli administratora. Patrząc na sedno błędu z wysokiego poziomu proces ten jest dość prosty:
1) Systemd używa wartości -1
do reprezentacji nieprawidłowej wartości mode_t
(praw dostępu do systemu plików)
2) Przez przypadek wartość ta jest przekazywana podczas tworzenia (open
) nowego pliku, co w rezultacie dawało nam plik z ustawionymi wszystkimi bitami dostępu: globalny zapis, globalne wykonanie i najgorsze: setuid dla root.
3) Atakujący może nadpisać ten plik dowolnym programem, ponieważ jest dostępny do zapisu dla wszystkich.
4) Atakujący może wykonać ten plik z wgranym programem, ponieważ jest dostępny do wykonania dla wszystkich.
5) Atakujący wykonuje program z prawami administratora, ponieważ plik posiada setuid dla root.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
22/01/2017 w Ataki Internetowe, Bezpieczeństwo
M
imo, że nginx zyskuje coraz więcej na popularności, jeśli chodzi o główny serwer serwujący treści w internecie to Apache z jego mod_php nadal jest faworyzowany w większości systemów CMS oraz webaplikacji napisanych w języku PHP. Bardzo częstym błędem jest oddawanie pełnej kontroli takim aplikacjom i ustawianiu dla ich katalogu opcji AllowOverride
na wartość All
. Poniżej znajduje się kilka przykładów (w większości działają nawet z 7 wersją PHP), które po wstrzyknięciu / umieszczeniu pliku .htaccess
do takiego katalogu dają ciekawe efekty:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
09/01/2017 w Ataki Internetowe, Bezpieczeństwo
Przez przypadek trafiłem na wpis na wykopie. Idąc tym tropem dotarłem do źródła, w którym możemy znaleźć prosty przepis na stworzenie szkodliwego skryptu w powłoce bash, który z pozoru będzie wyglądał normalnie:
$ printf '#!/bin/bash\necho szkodliwy kod!\nexit\n\033[2Aecho cos tam! ...\n' > backdoor.sh
$ chmod +x backdoor.sh
$ cat backdoor.sh
#!/bin/bash
echo cos tam! cos tam!
$ ./backdoor.sh
szkodliwy kod!
Jak to działa? Istnieją specjalne sekwencje znaków, które interpretuje terminal nie wyświetlając ich, ale podejmując daną akcję. Dlaczego takie polecenia, jak: cat, head, tail, more
i inne zostają oszukane? Ponieważ sekwencja \033[XA powoduje przesunięcie kursora do góry o X linii nadpisując to, co jest w tej X linii. Przez, co użytkownik widzi zupełnie inny kod niż w rzeczywistości zostanie wykonany. W połączeniu z innymi atakami mogą stanowić kompletny wektor na oszukanie użytkownika sytemu z rodziny *nix.
Więcej informacji: JournalCTL Terminal Escape Injection && Log Injection, Terminal Emulator Security Issues
Napisał: Patryk Krawaczyński
30/12/2016 w Bezpieczeństwo
N
agłówek protokołu HTTP: X-Forwarded-For (XFF) pierwotnie został przedstawiony przez zespół developerów odpowiedzialnych za rozwijanie serwera Squid, jako metoda identyfikacji oryginalnego adresu IP klienta łączącego się do serwera web, poprzez inny serwer proxy lub load balancer. Bez użycia XFF lub innej, podobnej techniki, dowolne połączenie za pośrednictwem proxy, pozostawiłoby jedynie adres IP pochodzący z samego serwera proxy zamieniając go w usługę anonimizującą klientów. W ten sposób, wykrywanie i zapobieganie nieautoryzowanym dostępom, stałoby się znacznie trudniejsze niż w przypadku przekazywania informacji o adresie IP, z którego przyszło żądanie. Przydatność X-Forwarded-For zależy od serwera proxy, który zgodnie z rzeczywistością, powinien przekazać adres IP łączącego się z nim klienta. Z tego powodu, serwery będące za serwerami proxy muszą wiedzieć, które z nich są “godne zaufania”. Niestety, czasami nawet i to nie wystarczy. W najnowszym Sekurak Zine #3 (mirror) postaram się przedstawić, dlaczego nie powinniśmy na ślepo ufać wartościom pochodzącym z tego nagłówka.
Napisał: Patryk Krawaczyński
10/12/2016 w Bezpieczeństwo
W październiku Phil Oester odkrył lukę w jądrze Linuksa o nazwie Dirty COW, która mogła zostać wykorzystana przez lokalnego napastnika do podniesienia swoich uprawnień do roli administratora. 28.11.2016 Philip Pettersson znalazł i zgłosił do zespołu bezpieczeństwa jądra kolejny błąd, który był obecny w systemie Linux od pięciu lat (2011). 06.12.2016 luka została publicznie ogłoszona. Błąd polega na możliwości sytuacji wyścigu w pliku net/packet/af_packet.c
. Sytuacja ta z kolei prowadzi do błędu typu use-after-free w sposobie w jakim implementacja surowych gniazd w podsystemie sieciowym jądra obsługuje synchronizację podczas tworzenia buforu pierścieniowego TPACKET_V3. UAF głównie odnosi się do próby uzyskania dostępu do pamięci po jej zwolnieniu, co może powodować zawieszenie się programu, czy potencjalnie zakończyć się bezwględnym wykonaniem kodu lub nawet przyznać możliwości jego zdalnego wykonania.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
22/11/2016 w Bezpieczeństwo
N
owy błąd w daemonie NTP pozwala na przeprowadzenie ataku Denial of Service za pomocą jednego, spreparowanego pakietu UDP, który wywołuje null pointer dereference. Atak można przeprowadzić zdalnie, a atakujący nie musi być uwierzytelniony. Cały atak ogranicza się do wysłania na port NTP wiadomości:
echo "FgoAEAAAAAAAAAA2bm9uY2UsIGxhZGRyPVtdOkhyYWdzPTMyLCBsY"\
"WRkcj1bXTpXT1AAMiwgbGFkZHI9W106V09QAAA=" | base64 -d | nc -u -v 127.0.0.1 123
Podatne są wszystkie wersje do ntp-4.2.7p22 z wykluczeniem ntp-4.2.8p9 oraz do ntp-4.3.0 z wykluczeniem ntp-4.3.94. O ile aktywnie utrzymywane systemy operacyjne poradzą sobie z aktualizacją pakietów – ponownie nie wszystkie urządzenia korzystające z wbudowanych systemów będą mogły zostać zaktualizowane. Większość urządzeń nie posiada już wsparcia ze strony producentów lub dostarczenie odpowiedniej poprawki może być bardzo przeciągnięte w czasie. W takich wypadkach należy wyłączyć usługę serwera czasu (jeśli nie jest ona w ogóle potrzebna) lub ograniczyć do niej sieciowy dostęp tylko z zaufanych źródeł.
Więcej informacji: Vulnerability Note VU#633847, CVE-2016-7434
Napisał: Patryk Krawaczyński
17/11/2016 w Debug
J
ak sprawdzić czas utworzenia pliku w systemie plików ext2/ext3/ext4? Na początku należy za pomocą stat pobrać numer i-node pliku, a następnie posłużyć się debugfs, aby wyświetlić jego szczegóły na danym urządzeniu:
root@darkstar:~# stat -c %i plik
131124
root@darkstar:~# debugfs -R 'stat <131124>' /dev/sda2
Inode: 131124 Type: regular Mode: 0755 Flags: 0x80000
Generation: 2191072338 Version: 0x00000000:00000001
User: 0 Group: 0 Size: 8988
File ACL: 0 Directory ACL: 0
Links: 1 Blockcount: 24
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x57ae0ac4:22d8c824 -- Fri Aug 12 19:43:32 2016
atime: 0x57ae0abf:1c2bc7bc -- Fri Aug 12 19:43:27 2016
mtime: 0x57ae0abf:1c2bc7bc -- Fri Aug 12 19:43:27 2016
crtime: 0x57ae0abf:1c2bc7bc -- Fri Aug 12 19:43:27 2016
Size of extra inode fields: 32
EXTENTS:
(0-2):557400-557402
Więcej informacji: Birth is empty on ext4
Napisał: Patryk Krawaczyński
17/11/2016 w Bezpieczeństwo
P
akiet nginx w dystrybucjach Debian i Ubuntu systemu Linux jest podatny na eskalację uprawnień poprzez zastosowanie niebezpiecznych praw dostępu do katalogu, gdzie przechowywane są logi serwera WWW. Skutkiem błędnej konfiguracji może być uzyskanie praw administratora przez atakującego, który na przykład wcześniej zdołał skompromitować aplikację internetową uruchomioną na serwerze nginx i uzyskał dostęp do konta www-data lub taki dostęp został mu wcześniej przyznany, aby móc wdrażać aplikacje internetowe. Za pomocą odpowiedniego eksploita jest w stanie podnieść swoje uprawnienia w ciągu 24 godzin za pomocą narzędzia logrotate, które poddaje logi rotacji raz dziennie.
Więcej informacji: CVE-2016-1247, PoC Video
Napisał: Patryk Krawaczyński
15/11/2016 w Bezpieczeństwo
B
łąd w implementacji narzędzia cryptsetup używanego do szyfrowania dysków w systemie Linux za pomocą LUKS pozwala atakującemu na ominięcie procedur uwierzytelniania za pomocą. Uwaga. Naciskania klawisza “ENTER” przez 70 sekund. Skutkiem jest otrzymanie powłoki uruchomionej z uprawnieniami administratora. Luka została odkryta przez Hektora Marco – tak, tego samego odpowiedzialnego za znalezienie błędu pozwalającego na ominięcie uwierzytelniania w bootloaderze GRUB2.
[ czytaj całość… ]
Ostatni komentarz :