NFsec Logo

Prosty trick, aby ukryć prawdziwą nazwę procesu

27/10/2024 w CmdLineFu, Hacks & Scripts Możliwość komentowania Prosty trick, aby ukryć prawdziwą nazwę procesu została wyłączona

// sleeper.c

#include 
#include 

int main()
{

    sleep(60);
    printf("Infecting Linux Host.");
    return 0;
}
agresor@darkstar:~$ gcc -o sleeper sleeper.c
agresor@darkstar:~$ exec -a '/lib/systemd/systemd --abuse' ./sleeper &
[1] 5354
agresor@darkstar:~$ ps x
    PID TTY      STAT   TIME COMMAND
   4925 ?        Ss     0:00 /lib/systemd/systemd --user
   4926 ?        S      0:00 (sd-pam)
   4988 ?        R      0:00 sshd: agresor@pts/0
   4989 pts/0    Ss     0:00 -bash
   5354 pts/0    S      0:00 /lib/systemd/systemd --abuse
   5357 pts/0    R+     0:00 ps x

Należy mieć na uwadze, że exec najlepiej w tym przypadku działa z plikami binarnymi. I bardzo prosto wykryć ten trick:

agresor@darkstar:~$ ls -al /proc/5354/exe
lrwxrwxrwx 1 agresor agresor 0 Oct 27 19:24 /proc/5354/exe -> /home/agresor/sleeper
agresor@darkstar:~$ cat /proc/5354/cmdline
/lib/systemd/systemd --abuse
agresor@darkstar:~$ cat /proc/5354/comm
sleeper

Więcej informacji: Why isn’t `exec -a` working the way I expect?

Upakowane ELFy – czerwona flaga dla pliku binarnego w Linuksie

21/06/2024 w Bezpieczeństwo, Debug Możliwość komentowania Upakowane ELFy – czerwona flaga dla pliku binarnego w Linuksie została wyłączona

U

ltimate Packer for Executables (UPX) to program pakujący dla kilku formatów wykonywalnych, takich jak biblioteki DLL systemu Windows, aplikacji macOS oraz Linux ELF. Jak możemy przeczytać na oficjalnej stronie programu UPX: “potrafi zazwyczaj zmniejszyć rozmiar plików programów i bibliotek DDL o około 50% – 70%, redukując w ten sposób miejsce na dysku, czas ładowania w sieci, czas pobierania oraz inne koszty dystrybucji i przechowywania”. Programy pakujące zasadniczo biorą oryginalny plik wykonywalny i dodają mały fragment kodu zwany “odgałęzieniem” (ang. stub) do nowo utworzonego wykonywalnego pliku. Kod pośredniczący zostanie następnie użyty do rozpakowania pliku i “przywrócenia” pliku wykonywalnego do jego pierwotnego stanu. Podczas, gdy niektóre programu pakujące, takie jak wspomniany UPX, tylko kompresują pliki, inne mogą je również szyfrować. Atakujący często używają kompresji, aby ukrywać złośliwe oprogramowanie jako pozornie nieszkodliwe i legalne pliki, co może oszukać silniki antywirusowe oparte na sygnaturach.
[ czytaj całość… ]

Wykrywanie ukrytych procesów za pomocą libprocesshider.so

21/08/2023 w Bezpieczeństwo Możliwość komentowania Wykrywanie ukrytych procesów za pomocą libprocesshider.so została wyłączona

W

artykule ukrywanie procesów za pomocą ld.so.preload poznaliśmy zasadę działania podstawowych narzędzi do zarządzania procesami w systemie Linux oraz w jaki sposób za pomocą biblioteki współdzielonej możemy je oszukać. W tej publikacji postaramy się napisać prosty skrypt w języku Python, który za pomocą enumeracji sprawdzi czego nam nie mówią oszukane narzędzia. Jego zasada działania jest bardzo prosta – jego zadaniem jest wejść do katalogu /proc i pobrać wszystkie katalogi, które mają format numeryczny ([0-9]) i dodać je do listy:

proc_path = '/proc'

def process_list_behind_the_fog():
    pid_list = []
    for pid_number in os.listdir(proc_path):
        if os.path.isdir(os.path.join(proc_path, pid_number)):
            if pid_number.isnumeric():
                pid_list.append(int(pid_number))
    return(pid_list)

[ czytaj całość… ]

Chowamy dowolny proces w systemie za pomocą polecenia mount

17/12/2022 w Pen Test Możliwość komentowania Chowamy dowolny proces w systemie za pomocą polecenia mount została wyłączona

P

oniżej zaprezentuje, jak za pomocą polecenia mount ukryć dowolny proces w systemie przed takim poleceniem jak np. ps. Dokonamy tego dzięki funkcji bind. Klasyczne montowanie tworzy widok urządzenia pamięci masowej jako drzewa katalogów. Funkcja bind zamiast tego pobiera istniejące drzewo katalogów i replikuje je w innym punkcie. Montując katalog w ten sposób możemy myśleć o montowaniu jak o aliasie do innej ścieżki. Katalogi i pliki w są takie same jak w oryginale. Każda modyfikacja po jednej stronie jest natychmiast odzwierciedlana po drugiej stronie, ponieważ oba widoki przedstawiają te same dane. Na przykład, kiedy powiążemy katalog /tmp/narf z /tmp/nfsec, oba będą odwoływać się do tych samych danych:
[ czytaj całość… ]

Symbiote – kolejne szkodliwe oprogramowanie wykorzystujące BPF

14/06/2022 w Bezpieczeństwo Możliwość komentowania Symbiote – kolejne szkodliwe oprogramowanie wykorzystujące BPF została wyłączona

W

biologii symbiont to organizm żyjący w symbiozie z innym organizmem (np. bakterie w jelicie grubym u człowieka, bakterie; które trawią celulozę u przeżuwaczy). Symbioza może być obustronnie korzystna dla obu organizmów, ale czasami może być pasożytnicza, gdy jeden organizm zyskuje, a drugi jest uszkadzany. Kilka miesięcy temu zespoły bezpieczeństwa z firmy Intezer oraz BlackBerry odkryły nowe, dobrze maskujące się złośliwe oprogramowanie dla systemu Linux, które działa właśnie w taki pasożytniczy sposób. Tym, co odróżnia Symbiote od innych złośliwych programów dla systemu Linux, z którymi zazwyczaj można się spotkać, jest fakt, że musi zainfekować inne uruchomione procesy, aby wyrządzić szkody zainfekowanym maszynom. Nie jest to samodzielny plik wykonywalny uruchamiany w celu zainfekowania systemu, ale biblioteka obiektów współdzielonych (.so), która jest ładowana do wszystkich uruchomionych procesów przy użyciu LD_PRELOAD (T1574.006) i pasożytniczo infekuje maszynę. Po zainfekowaniu wszystkich uruchomionych procesów zapewnia aktorowi funkcjonalność rootkita, możliwość zbierania poświadczeń oraz zdalny dostęp.
[ czytaj całość… ]