NFsec Logo

Procmon dla Linuksa

11/05/2021 w Administracja Możliwość komentowania Procmon dla Linuksa została wyłączona

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

Badanie szkodliwych procesów za pomocą deskryptorów plików

22/03/2021 w Bezpieczeństwo Możliwość komentowania Badanie szkodliwych procesów za pomocą deskryptorów plików została wyłączona

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 descriptorFD, 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ść… ]

Podsumowanie ucieczek z sudo: GTFOBins (skaner)

14/03/2021 w Bezpieczeństwo Możliwość komentowania Podsumowanie ucieczek z sudo: GTFOBins (skaner) została wyłączona

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ść… ]

Wykrywanie szkodliwego oprogramowania stworzonego przez memfd_create()

20/02/2021 w Bezpieczeństwo Możliwość komentowania Wykrywanie szkodliwego oprogramowania stworzonego przez memfd_create() została wyłączona

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ść… ]

CVE-2021-3156: Przepełnienie bufora sterty w sudo

27/01/2021 w Bezpieczeństwo Możliwość komentowania CVE-2021-3156: Przepełnienie bufora sterty w sudo została wyłączona

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ść… ]

Gdzie entropia tam szkodliwe oprogramowanie

24/04/2020 w Bezpieczeństwo 1 komentarz.

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ść… ]

Ściągawka z informatyki śledczej w wykrywaniu włamań za pomocą linii poleceń Linuksa

16/04/2020 w Bezpieczeństwo Możliwość komentowania Ściągawka z informatyki śledczej w wykrywaniu włamań za pomocą linii poleceń Linuksa została wyłączona

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ść… ]

Tsurugi Linux

01/03/2020 w Bezpieczeństwo Możliwość komentowania Tsurugi Linux została wyłączona

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ść… ]

Obchodzenie flagi montowania noexec za pomocą memfd

07/12/2019 w Bezpieczeństwo Możliwość komentowania Obchodzenie flagi montowania noexec za pomocą memfd została wyłączona

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ść… ]

Gdybym miał ukryć flagę CTF w Linuksie

29/09/2019 w CmdLineFu, Debug Możliwość komentowania Gdybym miał ukryć flagę CTF w Linuksie została wyłączona

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