Napisał: Patryk Krawaczyński
14/07/2022 w Bezpieczeństwo, Pen Test
N
arzędzie pamspy jest programem, który został zainspirowany przez podobną pracę, ale stworzoną znacznie wcześniej (Brendon Tiszka poczynił to dzieło na swoich studiach): 3snake. W przeciwieństwie do swojego poprzednika nie korzysta już z mechanizmu odczytu pamięci wywołań systemowych sshd i sudo, które obsługują uwierzytelnianie oparte na hasłach, ale wykorzystuje technologię eBPF. Dzięki temu jest w stanie śledzić konkretną funkcję w przestrzeni użytkownika wewnątrz biblioteki PAM (ang. Pluggable Authentication Modules) używanej przez wiele krytycznych aplikacji (sudo, sshd, passwd, gnome, X11 itp.) do obsługi uwierzytelniania. Ponieważ pamspy opiera się na libpam przed uruchomieniem programu musimy podać ścieżkę, gdzie biblioteka ta jest zainstalowana na naszej dystrybucji. W tym celu należy wydać następujące polecenie:
ldconfig -p | egrep -o '\/.*libpam\.so.*'
Po uzyskaniu ścieżki możemy uruchomić program:
sudo ./pamspy -p /lib/x86_64-linux-gnu/libpam.so.0
Załaduje on program eBPF, aby podczepić się pod funkcję pam_get_authtok
z libpam.so. Za każdym razem, gdy proces uwierzytelnienia spróbuje sprawdzić nowego użytkownika, wywoła on wspomnianą funkcję pam_get_authtok
, a pamspy będzie na konsolę zrzucać zawartość krytycznych sekretów. Jeśli teraz w drugiej konsoli zalogujemy się do serwera i podniesiemy swoje uprawnienia program powinien odnotować ten fakt:
1500 | sshd | agresor | K0ci.0g0n
1528 | sudo | agresor | K0ci.0g0n
3815 | passwd | agresor | P5i3.U5zy
Jeśli chcemy przeprowadzić kompilację programu ze źródeł to wymaga on kilku pakietów (Ubuntu 22.04):
apt install git make clang-11 gcc libelf-dev pkg-config -y
apt install linux-tools-common linux-tools-5.15.0-41-generic -y
git clone https://github.com/citronneur/pamspy --recursive
cd pamspy/src
make
Nie musimy kompilować programu od podstaw, ponieważ w repozytorium jest już także plik zbudowany jako statyczna binarka bez żadnych zależności.
Więcej informacji: pamspy
Napisał: Patryk Krawaczyński
06/04/2016 w Bezpieczeństwo
P
odówjne uwierzytelnianie polega na zabezpieczeniu dostępu do danej usługi (tutaj SSH) polegająca na dodatkowym uwierzytelnieniu oprócz wpisania standardowego loginu i hasła. Najczęściej występujące rodzaje zabezpieczeń to: sms z dodatkowym kodem; kody jednorazowe spisane na kartce lub wysyłane na adres e-mail; aplikacja z kodami jednorazowymi zainstalowana na komputerze lub urządzeniu mobilnym (tablet / telefon). W tym artykule skupimy się na kodach jednorazowych (OTP – One Time Passwords), które dodatkowo będą chronić naszą usługę SSH.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
27/01/2016 w Bezpieczeństwo
Z
ałóżmy, że posiadamy centralny system logowania, który gromadzi różne dane z wszystkich naszych serwerów. Może być on oparty o komercyjne usługi typu Loggly, Logentries, DataDog lub własne rozwiązania, których sercem jest Elasticsearch, czy RethinkDB. Zależy nam na tym, aby każde normalne logowanie i to na uprzywilejowane konto root, czy to bezpośrednio na maszynę, czy to za pomocą sudo było przesyłane do naszego centrum danych. Dane te mogą posłużyć nie tylko jako ewidencja i kontrola osób, które mają prawo do tego typu działań, ale również umożliwia nam ich analizę i wykrywanie potencjalnych naruszeń bezpieczeństwa.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
16/03/2013 w Bezpieczeństwo
S
ystemy z rodziny RHEL w wersji 5‘tej korzystają z kryptograficznej funkcji skrótu MD5 do przechowywania haseł systemowych. Nie jest to zły algorytm, ale nie na tyle dobry i trudny do złamania – aby obecnie korzystać z jego możliwości. W celu zmiany metody szyfrowania z MD5 na SHA512, która jest o wiele bezpieczniejsza (i używana standardowo w wersji 6.x) wystarczy wydać polecenie:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
05/09/2011 w Debug
J
eśli w logu systemowym /var/log/secure
podczas logowania się użytkowników do systemu otrzymujemy informację związaną z błędami w konfiguracji PAM, a dokładniej – związaną z modułem czytnika linii papilarnych:
Sep 5 19:35:17 stardust su: PAM unable to dlopen(/lib/security/pam_fprintd.so):
/lib/security/pam_fprintd.so: nie można otworzyć pliku obiektu dzielonego:
Nie ma takiego pliku ani katalogu
---
Sep 5 19:35:17 stardust su: PAM unable to dlopen(/lib64/security/pam_fprintd.so):
/lib64/security/pam_fprintd.so: cannot open shared object file:
No such file or directory
Którego nie posiadamy – wystarczy wydać polecenie:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
31/10/2009 w Magazyny
U
miejętność pisania modułów PAM jest bardzo przydatna, gdy tworzymy niestandardowy lub nietypowy system uwierzytelniania. Ponadto przekazywana tu wiedza z pewnością przyda się przy modyfikacjach konfiguracji PAM wykraczających poza tematy zawarte na ubogich nieraz stronach manuali. Analiza kodu źródłowego modułu może często wyjaśnić wiele pozornych nieprawidłowości w jego funkcjonowaniu albo nietypowych zachowań.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
22/07/2009 w Bezpieczeństwo
L
inux jest systemem, w którym hasła pełnią jedną z głównych funkcji zabezpieczających (Punkt 3. Skomplikowane hasła). Niestety nie każdy użytkownik naszego systemu potrafi zrozumieć rangi ich bezpieczeństwa. Wielu z nich tworzy bardzo łatwe kombinacje przy ich doborze. Wpływa to nie tylko negatywnie na bezpieczeństwo samego konta danego użytkownika, ale również bezpieczeństwo całego systemu. By przeciwdziałać tego rodzaju uchybieniom, możemy wymusić tworzenie lepszych haseł na samych użytkownikach z poziomu mechanizmów służących do ustanowienia i zmiany hasła. Proces taki nazywany jest proaktywnym testowaniem haseł i polega on na eliminowaniu słabych haseł zanim pojawią się w plikach zawierających informacje o kontach użytkowników.
[ czytaj całość… ]
Ostatni komentarz :