Napisał: Patryk Krawaczyński
11/05/2021 w Administracja
K
iedyś zestaw narzędzi dla Microsoft Windows znany pod nazwą SysInternals był przeznaczony tylko dla tego systemu operacyjnego. Od jakiegoś czasu narzędzie do monitorowania procesów o nazwie Process Monitor (znane również jako procmon) jest dostępne dla systemu Linux. Osoby, które chociaż raz pracowały z tym narzędziem na systemie okienek wiedzą, że jest to wygodne narzędzie do przeglądania aktywności wywołań systemowych w czasie rzeczywistym.
Proces instalacji ogranicza się do zarejestrowania repozytorium Microsoftu:
wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
Oraz wrzuceniu odpowiedniej paczki do systemu:
sudo apt-get update
sudo apt-get install procmon
Samo polecenie interfejsem graficznym przypomina htop. Uruchomienie śledzenia wszystkich procesów i wywołań systemowych w systemie można osiągnąć poprzez uruchomienie:
sudo procmon
Jeśli chcemy na przykład śledzić proces o ID = 20 i tylko wywołania systemowe odczytu, zapisu i otwierania wystarczy przekazać poleceniu składnie:
sudo procmon -p 20 -e read,write,openat
Więcej informacji: ProcMon for Linux, procmon -h
Napisał: Patryk Krawaczyński
22/03/2021 w Bezpieczeństwo
O
d samego początku Uniksa (na którym oparty jest Linux) wszystko jest plikiem. Możemy spierać się o szczegóły, ale w większości przypadków jest to prawda. W dodatku w systemach Unix i pokrewnych systemach operacyjnych istnieje taki obiekt, jak deskryptor pliku (ang. file descriptor – FD, rzadziej fildes), który jest abstrakcyjnym wskaźnikiem / uchwytem (ang. handle) używanym do uzyskiwania dostępu do pliku lub innego zasobu wejścia / wyjścia, takiego jak potok (ang. pipe) lub gniazdo sieciowe (ang. network socket). Deskryptory plików stanowią część interfejsu programowania aplikacji POSIX – są nieujemną liczbą całkowitą, zwykle reprezentowaną w języku programowania C jako typ int
(ang. integer) (wartości ujemne są zarezerwowane, aby wskazać “brak wartości” lub stan błędu).
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
14/03/2021 w Bezpieczeństwo
Jest to ostatni wpis odnośnie ucieczek (1, 2, 3, 4) z sudo. Aktywnie utrzymywana, wyselekcjonowanych plików binarnych oraz skryptów Linuksa, których można użyć do ominięcia lokalnych ograniczeń bezpieczeństwa w źle skonfigurowanych systemach jest zawarta w projekcie GTFOBins (alternatywa dla systemu Windows to LOLBAS). Projekt gromadzi wykorzystanie zaimplementowanych funkcjonalności *niksowych plików binarnych, które mogą być wykorzystane do wyłamywania się z ograniczeń powłok, poleceń sudo, eskalacji uprawnień, czytania zastrzeżonych plików, czy uruchamiania powłok zwrotnych. Należy mieć na uwadze, że nie jest to lista eksploitów, a programy wymienione w GTFOBins same w sobie nie są podatne na ataki. Raczej projekt ten jest kompendium wiedzy o tym, jak wykorzystać je jeśli, któreś z nich uruchamiane jest z prawami administratora lub w ograniczonych środowiskach / powłokach.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
20/02/2021 w Bezpieczeństwo
Z
memfd_create()
spotkaliśmy się przy okazji omawiania obchodzenia flagi montowania noexec. Nie jest to jedyny przypadek, gdzie pomysł bezplikowej metody jest stosowany. Złośliwe oprogramowanie również stosuje bezplikową technikę do wstrzykiwania się w ramach działającego systemu Linux, aby nie pozostawić żadnych śladów na dysku. Przypomnijmy szybko, co robi wywołanie memfd_create()
: pozwala na utworzenie pliku, który rezyduje w części pamięci RAM. Strona manualna opisuje to jako:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
27/01/2021 w Bezpieczeństwo
Zespół badawczy Qualys odkrył lukę przepełnienia sterty w sudo – prawie wszechobecnym narzędziu dostępnym w głównych systemach operacyjnych typu *nix. Każdy nieuprzywilejowany użytkownik posiadający dostęp do powłoki systemowej może uzyskać uprawnienia administratora (root) na hoście, którego dotyczy luka (przy domyślnej konfiguracji sudo). Sudo to potężne narzędzie, które jest zawarte w większości, jeśli nie we wszystkich systemach operacyjnych na systemach Unix i Linux. Umożliwia użytkownikom uruchamianie programów z uprawnieniami innego użytkownika. Luka sama w sobie ukrywała się na widoku prawie od 10 lat. W lipcu 2011 roku została wprowadzona zmiana (commit 8255ed69) i dotyczy ona wszystkich starszych wersji od 1.8.2 do 1.8.31p2 oraz wszystkich stabilnych wersji od 1.9.0 do 1.9.5p1 w ich domyślnej konfiguracji.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
24/04/2020 w Bezpieczeństwo
E
ntropia może być wykorzystywana jako miara stopnia losowości. Wiele plików wykonywalnych złośliwego oprogramowania jest spakowana, aby uniknąć wykrycia i utrudnić inżynierię wsteczną (ang. reverse engineering). Twórcy szkodliwego oprogramowania często wykorzystują pakowanie lub zaciemnianie, aby utrudnić wykrycie lub analizę plików. Większość standardowych plików binarnych systemu Linux nie jest spakowanych, ponieważ nie próbują ukryć tego, czym są. Wyszukiwanie plików wykonywalnych o wysokiej entropii to dobry sposób na znalezienie programów, które mogą być złośliwe. Dla danych binarnych wskaźnik 0.0 określa nielosowość, a 8.0 pokazuje zupełną losowość. Dobre szyfrowanie wygląda jak losowy biały szum i będzie bliskie wskaźnika 8.0. Dobra kompresja usuwa zbędne dane sprawiając, że wydają się bardziej losowe niż gdyby kompresja nie miała miejsca i zwykle wynoszą 7.7 lub więcej.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
16/04/2020 w Bezpieczeństwo
C
raig H. Rowland na konferencji Purplecon 2018 opowiedział o szybkiej ocenie kompromitacji systemu Linux. Jak zauważył, 90% wdrożeń opartych na publicznych chmurach obliczeniowych odbywa się na systemie operacyjnym Linux. Nawet jeśli nie mamy z nim bezpośrednio do czynienia z powodu wysokich poziomowo abstrakcji i wywołań (np. API) – prędzej czy później natchniemy się na niego, a jako przyszły administrator dobrze posiadać wiedzę o jego działaniu oraz czy jego zachowanie nie budzi jakiś zastrzeżeń. Jeśli posiadamy podejrzenie, że doszło do naruszenia jego bezpieczeństwa – nie panikujmy. Podstępując pochopnie możemy tylko pogorszyć sytuację poprzez zniszczenie krytycznej informacji z punktu widzenia analizy pozwalającej ustalić główną przyczynę włamania.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
01/03/2020 w Bezpieczeństwo
T
surugi Linux jest dystrybucją typu DFIR (ang. Digital Forensic in Incident Response), czyli coś dla specjalistów informatyki śledczej zajmujących się wsparciem reakcji na incydenty. Został stworzony przez weteranów takich dystrybucji, jak Deft oraz Blacktrack jako w pełni darmowy, niezależny od komercyjnych marek projekt. Jego głównym celem jest dzielenie się wiedzą i “oddawanie jej społeczności”. Jego nazwa – Tsurugi (剣) – oznacza legendarny japoński miecz z podwójnym ostrzem używany przez starożytnych japońskich mnichów. Został podzielony na trzy typy:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
07/12/2019 w Bezpieczeństwo
W
historii rozwoju Linuksa znalazło się kilka sposobów na obejście ograniczeń montowania przez atakującego. Najprostszy był możliwy w Linuksie przed 2.4.25 / 2.6.0, gdzie opcję noexec
można było ominąć używając /lib/ld-linux.so do wykonywania plików binarnych znajdujących się w ścieżkach takich systemów plików:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
29/09/2019 w CmdLineFu, Debug
0. Utworzenie pliku:
touch .findmehere
1. Lokalizacja obiektu w systemie plików:
ls -i .findmehere
15466911 .findmehere
2. Zakodowanie wiadomości:
while read -n1 char; do printf "%d " \'$char; done
C67 T84 F70 .46 f102 l108 a97 g103
3. Umieszczenie wiadomości w pliku:
sudo debugfs -w -R 'set_inode_field /home/ctf/.findmehere \
version 6784704610210897103' /dev/sda2
4. Sprawdzenie zapisu wiadomości:
sudo debugfs -R 'stat <15466911>' /dev/sda2
Inode: 15466911 Type: regular Mode: 0640 Flags: 0x80000
Generation: 1555060808 Version: 0x5e281ce5:65935ccf
User: 0 Group: 0 Project: 0 Size: 0
File ACL: 0
Links: 1 Blockcount: 0
Fragment: Address: 0 Number: 0 Size: 0
ctime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
atime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
mtime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
crtime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
Size of extra inode fields: 32
EXTENTS:
5. Weryfikacja wiadomości:
printf "%d\n" 0x5e281ce565935ccf
6784704610210897103
for i in `echo 67 84 70 46 102 108 97 103`; do echo -ne \\x$(printf %02x $i); done
CTF.flag
Więcej informacji: Ext4 Disk Layout, Czas utworzenia pliku w Linuksie
Ostatni komentarz :