NFsec Logo

Obchodzenie zapór pośrednicząco-filtrujących strony web #4

15/12/2019 w Pen Test Możliwość komentowania Obchodzenie zapór pośrednicząco-filtrujących strony web #4 została wyłączona

J

eśli posiadamy podatność, która bazuje na adresie IP, ale zapora pośrednicząco-filtrująca utrudnia nam zadanie eksploatacji pamiętajmy, że adres IP od strony klienta można zapisać na wiele sposobów. Na przykład:

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes

$ ping 3232235521
PING 3232235521 (192.168.0.1): 56 data bytes

$ ping 0xC0A80001
PING 0xC0A80001 (192.168.0.1): 56 data bytes

$ ping 192.168.1
PING 192.168.1 (192.168.0.1): 56 data bytes

$ ping 192.168.257
PING 192.168.257 (192.168.1.1): 56 data bytes

$ ping ::ffff:c0a8:0001
PING ::ffff:c0a8:0001(::ffff:192.168.0.1) 56 data bytes

$ ping 0000:0000:0000:0000:0000:ffff:c0a8:0001
PING 0000:0000:0000:0000:0000:ffff:c0a8:0001(::ffff:192.168.0.1) 56 data bytes

Więcej informacji: IPv4 Converter, inet_aton(3), IPv6 address formats,

Obchodzenie flagi montowania: noexec

07/12/2019 w Bezpieczeństwo Możliwość komentowania Obchodzenie flagi montowania: noexec 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ść… ]

Obejście ograniczeń w sudo

15/10/2019 w Bezpieczeństwo Możliwość komentowania Obejście ograniczeń w sudo została wyłączona

G

dy sudo jest skonfigurowane tak, aby umożliwić użytkownikowi uruchamianie poleceń jako dowolny użytkownik za pomocą słowa kluczowego ALL w sekcji „uruchom jako” (ang. Runas) możliwe jest uruchomienie poleceń jako administrator systemu (root) podając ID użytkownika jako wartość -1 lub 4294967295. Może to być użyte przez użytkownika z wystarczającymi uprawnieniami sudo do uruchamiania poleceń jako root, nawet jeśli w sekcji „uruchom jako” jest wyraźny zakaz dostępu do uprawnień tego użytkownika. Jest to tylko możliwe, o ile słowo kluczowe ALL jest wymienione jako pierwsze w specyfikacji Runas. Wpisy dziennika dla uruchomionych w ten sposób poleceń będą wyświetlać docelowego użytkownika jako 4294967295 zamiast root. Ponadto moduły PAM nie będą uruchamiane dla polecenia.
[ czytaj całość… ]

Podstawy skryptów shell #4

30/08/2017 w Bezpieczeństwo Możliwość komentowania Podstawy skryptów shell #4 została wyłączona

W

kolejnej części naszej serii [ 1 ] [ 2 ] [ 3 ] zajmiemy się atakami związanymi z uwierzytelnianiem. Zaczniemy od tezy, że nie należy polegać na skryptach, aby ustalać, czy użytkownik ma lub nie ma uprawnień do danej czynności. Jest to możliwe, jednak istnieją dobre i złe strony takiego rozwiązania. Za przykład posłuży nam skrypt:

#!/bin/bash

if [ $UID = 0 -a $USER = "root" ] ; then
    echo "Jesteś administratorem zapraszam do domu."
    echo $HOME
fi

Kod ten zawiera trzy błędy bezpieczeństwa i wszystkie są spowodowane używaniem zmiennych. Mimo, że bash chroni przed modyfikacją zmienną $UID to już $USER jest niezabezpieczona. No i kto powiedział, że inne powłoki chronią zmienną $UID?

root@darkstar:/home/agresor# ./test.sh
Jesteś administratorem zapraszam do domu.
/root
root@darkstar:~#

Skrypt działa poprawnie dla konta administratora. Przeprowadźmy teraz atak za pomocą zwykłego użytkownika:

agresor@darkstar:~$ ./test.sh
agresor@darkstar:~$ # Niestety nic z tego, ale...
agresor@darkstar:~$ tcsh
darkstar:~> setenv UID 0
darkstar:~> setenv USER root
darkstar:~> setenv HOME /tmp
darkstar:/home/agresor> /bin/bash test.sh
Jesteś administratorem zapraszam do domu.
/tmp

Jeśli ewentualnie chcemy pozyskać informacje o użytkowniku powinniśmy wykorzystać polecenie id:

# Prawdziwy UID
USRUID="$(/usr/bin/id -u -r)"
# Efektywny UID
USEUID="$(/usr/bin/id -u)"
# Nazwa użytkownika
USNUID="$(/usr/bin/id -u -n)"

Na szczęście powyższy skrypt operował tylko wyświetlaniem komunikatów za pomocą echo. W połączeniu z innym możliwym atakiem (wstrzykiwania) można te błędy wykorzystać w bardziej zły sposób.

Więcej informacji: TCSH / CSH Shell Set PATH Variable, Shell Script Security

POINTYFEATHER aka ominięcie ścieżki rozpakowania tar

31/10/2016 w Bezpieczeństwo Możliwość komentowania POINTYFEATHER aka ominięcie ścieżki rozpakowania tar została wyłączona

B

łąd w programie tar umożliwia pomyślne wypakowanie plików i katalogów do dowolnej lokalizacji, gdy podsunie mu się odpowiednio spreparowany plik archiwum. W przypadku, gdy na systemie zostanie rozpakowane archiwum dostarczone przez atakującego podatność może zostać wykorzystania do nadpisania wrażliwych plików zwykłego użytkownika (np. .ssh/authorized_keys, .bashrc, .bash_logout, .profile, .subversion, czy .anyconnect), a w przypadku użycia tar przez administratora np. podmiany /etc/shadow, wpisów cron użytkownika root, plików binarnych na te zawierające tylną furtkę lub atrybut suid.
[ czytaj całość… ]

Zapalmy flarę nad CloudFlare

09/09/2016 w Pen Test Możliwość komentowania Zapalmy flarę nad CloudFlare została wyłączona

P

rzy okazji wygasania certyfikatu na stronie zacząłem się zastanawiać, czy skorzystać z Let’s Encrypt, czy może z CloudFlare? CF to serwis oferujący „darmową” ochronę webaplikacji, CDN oraz szyfrowanie SSL (jeśli używa się go poprawnie). Zastanawiało mnie ile klientów / domen korzysta z tego serwisu? Oto, co udało mi się ustalić.
[ czytaj całość… ]

Logujemy się do każdej maszyny zabezpieczonej GRUB2

30/12/2015 w Ataki Internetowe, Bezpieczeństwo Możliwość komentowania Logujemy się do każdej maszyny zabezpieczonej GRUB2 została wyłączona

Z

espół cyberbezpieczeństwa w Polytechnic University of Valencia (UPV) w Hiszpanii znalazł sposób na bardzo proste ominięcie mechanizmu uwierzytelniania na poziomie bootloadera GRUB2. Wystarczy, że zamiast podania nazwy użytkownika zostanie wciśnięty 28 razy klawisz BACKSPACE, który spowoduje uruchomienie „Grub rescue shell” umożliwiając atakującemu dostęp do dowolnej części systemu.

Więcej informacji: Back to 28: Grub2 Authentication 0-Day